cmake_minimum_required(VERSION 3.10) # 可配置的项目名称 set(APP_NAME "video_manager") # 可配置的配置文件名 set(CONFIG_EXAMPLE_FILE "config.example.json") set(CONFIG_FILE "config.json") project(${APP_NAME}) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_compile_definitions(GLIB_DISABLE_DEPRECATION_WARNINGS) # 输出目录 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin) # GStreamer find_package(PkgConfig REQUIRED) pkg_check_modules(GSTREAMER REQUIRED gstreamer-1.0) # include 路径 include_directories( ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/third_party/include ${CMAKE_SOURCE_DIR}/third_party/include/paho_mqtt ${GSTREAMER_INCLUDE_DIRS} ) # 源文件 file(GLOB SRC_FILES src/*.cpp) # 生成可执行文件 add_executable(${APP_NAME} ${SRC_FILES}) # lib 路径 link_directories( ${GSTREAMER_LIBRARY_DIRS} ${CMAKE_SOURCE_DIR}/third_party/lib ) # 链接库 target_link_libraries(${APP_NAME} ${GSTREAMER_LIBRARIES} pthread ${CMAKE_SOURCE_DIR}/third_party/lib/libmp4v2.a ${CMAKE_SOURCE_DIR}/third_party/lib/libutil.a ${CMAKE_SOURCE_DIR}/third_party/lib/libpaho-mqttpp3.a ${CMAKE_SOURCE_DIR}/third_party/lib/libpaho-mqtt3a.a ${CMAKE_SOURCE_DIR}/third_party/lib/libpaho-mqtt3c.a ) # 拷贝配置文件(仅在不存在时) add_custom_command(TARGET ${APP_NAME} POST_BUILD COMMAND /bin/bash -c "if [ ! -f \"$/${CONFIG_FILE}\" ]; then \ mkdir -p \"$\" && \ cp \"${CMAKE_SOURCE_DIR}/${CONFIG_EXAMPLE_FILE}\" \ \"$/${CONFIG_FILE}\"; \ fi" )