cmake_minimum_required(VERSION 3.10) set(libName VideoPlayer) #包含源文件 file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.qrc ${CMAKE_CURRENT_SOURCE_DIR}/*.rc ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/*.ui # ${CMAKE_CURRENT_SOURCE_DIR}/OpenGLWidgetAPI/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/VideoPlayer/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/VideoPlayerAPI/*.cpp ${CMAKE_SOURCE_DIR}/External/module/Logs/*.cpp # ${CMAKE_SOURCE_DIR}/External/module/ThreadPool/*.cpp ${OpenGLWidget_SOURCE_DIR}/*.cpp ) # 生成可执行程序 add_library(${libName} SHARED # WIN32 ${GLOBAL_SRC} ${LOCAL_SRC} ) set_target_properties(${libName} PROPERTIES DEBUG_POSTFIX d ) #添加头文件 target_include_directories(${libName} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} # ${CMAKE_CURRENT_SOURCE_DIR}/OpenGLWidgetAPI ${CMAKE_CURRENT_SOURCE_DIR}/VideoPlayer ${CMAKE_CURRENT_SOURCE_DIR}/VideoPlayerAPI ${CMAKE_SOURCE_DIR}/External/common ${CMAKE_SOURCE_DIR}/External/module # ${CMAKE_SOURCE_DIR}/External/module/ThreadPool ${CMAKE_SOURCE_DIR}/External/module/RingQueue ${spdlog_INCLUDE_DIR} ${FFMPEG_INCLUDE_DIR} ${OpenGLWidget_INCLUDE_DIR} ) target_link_libraries(${libName} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Core # Qt${QT_VERSION_MAJOR}::Network # Qt${QT_VERSION_MAJOR}::Gui ) target_link_libraries(${libName} PRIVATE # ${CURL_LIBRARY} ${FFMPEG_LIBRARY} ${spdlog_LIBRARY} ) if(QT_VERSION_MAJOR EQUAL 5) target_link_libraries(${libName} PRIVATE Qt5::OpenGL ) elseif(QT_VERSION_MAJOR EQUAL 6) target_link_libraries(${libName} PRIVATE Qt6::OpenGLWidgets ) endif(QT_VERSION_MAJOR EQUAL 5) if(CMAKE_SYSTEM_NAME MATCHES "Windows") target_link_libraries(${libName} PRIVATE opengl32 ) elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") target_link_libraries(${libName} PRIVATE GL ) endif() # if(CMAKE_CXX_COMPILER_VERSION LESS 9.0) # target_link_libraries(${libName} PRIVATE # stdc++fs # ) # endif() # target_link_libraries(${libName} PRIVATE # GL # GUL # ) # message(STATUS "CURL_LIBRARY: ${CURL_LIBRARY}") # if(CMAKE_CXX_COMPILER_ID MATCHES MSVC) # target_link_libraries(${libName} PRIVATE # # debug spdlogd.lib # # optimized spdlog.lib # ) # elseif(CMAKE_CXX_COMPILER_ID MATCHES GNU) # target_link_libraries(${libName} PRIVATE # # debug # # optimized ${SM_DLL} # ) # endif()