1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yunshiting-ABLPush

Клонировать/Скачать
CMakeLists.txt 3.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 24.05.2025 09:25 f8f6a27
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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/yunshiting-ABLPush.git
git@api.gitlife.ru:oschina-mirror/yunshiting-ABLPush.git
oschina-mirror
yunshiting-ABLPush
yunshiting-ABLPush
master