Слияние кода завершено, страница обновится автоматически
cmake_minimum_required(VERSION 3.0)
project(ABLPush
VERSION 0.2.5.4
DESCRIPTION "ABLPush"
LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
# Опция для выбора использования Boost
option(USE_BOOST "Включить поддержку библиотеки Boost" ON)
# Настройка RPATH
set(CMAKE_SKIP_BUILD_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "$ORIGIN")
# Определение целевой платформы
if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64")
set(LIB_PLATFORM "arm64")
message(STATUS "Целевая платформа: ARM64")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
set(LIB_PLATFORM "linux_x86")
message(STATUS "Целевая платформа: Linux x86_64")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_SYSTEM_PROCESSOR MATCHES "AMD64")
set(LIB_PLATFORM "win_x64")
message(STATUS "Целевая платформа: Windows x64")
else()
message(FATAL_ERROR "Неподдерживаемая платформа: ${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}")
endif()
# Установка директории для третьих сторон
set(3RD_LIB_LINK_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libs/${LIB_PLATFORM}")
# Добавление директорий для включения
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/inc
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/3rd/media-server-master/libflv/include
${CMAKE_CURRENT_SOURCE_DIR}/3rd/media-server-master/librtmp/include
${CMAKE_CURRENT_SOURCE_DIR}/3rd/media-server-master/libmpeg/include
)
# Включение директорий для Boost, если опция USE_BOOST включена
if(USE_BOOST)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rd/boost/include)
link_directories(${3RD_LIB_LINK_DIR})
# Установка библиотек Boost
set(BOOST_LIBS
system
thread
log
regex
filesystem
date_time
chrono
atomic
)
message(STATUS "Директория включения Boost: ${Boost_INCLUDE_DIRS}")
message(STATUS "Библиотеки Boost: ${BOOST_LIBS}")
endif()# Получение списка исходных файлов
file(GLOB SOURCE_FILES
${CMAKE_CURRENT_SOURCE_DIR}/3rd/media-server-master/libflv/source/*.c
${CMAKE_CURRENT_SOURCE_DIR}/3rd/media-server-master/librtmp/source/*.c
${CMAKE_CURRENT_SOURCE_DIR}/3rd/media-server-master/libmpeg/source/*.c
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp))
# Создание общей библиотеки
add_library(ABLPush SHARED ${SOURCE_FILES})
# Установка RPATH
set_target_properties(${PROJECT_NAME} PROPERTIES INSTALL_RPATH "$ORIGIN")
# Связывание библиотек
target_link_libraries(ABLPush
pthread
XHNetSDK
RtpPacket
PsMux
faac
)
# Связывание библиотек Boost, если они используются
if(USE_BOOST)
target_link_libraries(ABLPush ${Boost_LIBRARIES})
target_compile_definitions(ABLPush PUBLIC USE_BOOST)
endif()
# Установка выходной директории библиотек
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin/${LIB_PLATFORM})
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )