# # CMakeLists for calyp lib component # INCLUDE(GNUInstallDirs) SET(CMAKE_EXPORT_PACKAGE_REGISTRY ON) EXPORT(PACKAGE MyLib) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/..) SET(Calyp_Lib_Frame_SRCS CalypPixel.cpp PixelFormats.h PixelFormats.cpp CalypFrame.h CalypFrame.cpp) SET(Calyp_Lib_Stream_SRCS CalypStream.h CalypStream.cpp CalypStreamHandlerIf.h StreamHandlerRaw.h StreamHandlerRaw.cpp StreamHandlerPortableMap.h StreamHandlerPortableMap.cpp ) SET(Calyp_Lib_OptionParser_SRCS CalypOptions.h CalypOptions.cpp) SET(Calyp_Lib_Modules_SRCS CalypOptions.h CalypOptions.cpp) SET(Calyp_Lib_SRCS CalypLib.h CalypDefs.h ${Calyp_Lib_Frame_SRCS} ${Calyp_Lib_Stream_SRCS} ${Calyp_Lib_OptionParser_SRCS} ${Calyp_Lib_Modules_SRCS}) LIST(APPEND CMAKE_CFG_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}) IF(USE_FFMPEG) LIST(APPEND Calyp_Lib_SRCS StreamHandlerLibav.h) LIST(APPEND Calyp_Lib_SRCS StreamHandlerLibav.cpp) LIST(APPEND CMAKE_CFG_LINKER_LIBSS ${FFMPEG_LIBRARIES}) LIST(APPEND CMAKE_CFG_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(${FFMPEG_INCLUDE_DIRS}) LIST(APPEND CALYP_LIB_LINKER_DEPENDENCIES ${FFMPEG_LIBRARIES}) ENDIF() IF(USE_OPENCV) LIST(APPEND Calyp_Lib_SRCS StreamHandlerOpenCV.h) LIST(APPEND Calyp_Lib_SRCS StreamHandlerOpenCV.cpp) LIST(APPEND Calyp_Lib_SRCS CalypOpenCVModuleIf.cpp) LIST(APPEND CMAKE_CFG_LINKER_LIBSS ${OpenCV_LIBRARIES}) LIST(APPEND CMAKE_CFG_INCLUDE_DIRS ${OpenCV_INCLUDE_DIRS}) LIST(APPEND CMAKE_CFG_LINKER_LIBSS ${PROJECT_LIBRARY}) LIST(APPEND CMAKE_CFG_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}) INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS}) LIST(APPEND CALYP_LIB_LINKER_DEPENDENCIES ${OpenCV_LIBRARIES}) ENDIF() SET(Calyp_Lib_HEADERS CalypFrame.h CalypStream.h CalypOptions.h CalypModuleIf.h) INCLUDE(CMakePackageConfigHelpers) CONFIGURE_PACKAGE_CONFIG_FILE(CalypConfig.cmake.in CalypConfig.cmake INSTALL_DESTINATION share/calyp) WRITE_BASIC_PACKAGE_VERSION_FILE( CalypConfigVersion.cmake VERSION ${CALYP_VERSION} COMPATIBILITY SameMajorVersion ) # CONFIGURE_FILE(CalypConfig.cmake.in CalypConfig.cmake @ONLY) IF(USE_STATIC) ADD_LIBRARY(${PROJECT_LIBRARY} STATIC ${Calyp_Lib_SRCS}) ELSE() ADD_LIBRARY(${PROJECT_LIBRARY} SHARED ${Calyp_Lib_SRCS}) ENDIF() TARGET_LINK_LIBRARIES(${PROJECT_LIBRARY} ${CALYP_LIB_LINKER_DEPENDENCIES}) # TARGET_INCLUDE_DIRECTORIES(${PROJECT_LIBRARY} PUBLIC $ $) SET_TARGET_PROPERTIES(${PROJECT_LIBRARY} PROPERTIES VERSION ${CALYP_VERSION} SOVERSION ${CALYP_VERSION_MAJOR}) IF(USE_IWYU) SET_PROPERTY(TARGET ${PROJECT_LIBRARY} PROPERTY CXX_INCLUDE_WHAT_YOU_USE ${iwyu_path}) ENDIF() EXPORT(TARGETS ${PROJECT_LIBRARY} FILE ${CMAKE_CURRENT_BINARY_DIR}/CalypTargets.cmake) EXPORT(PACKAGE ${PROJECT_LIBRARY}) IF(NOT USE_STATIC) INSTALL( TARGETS ${PROJECT_LIBRARY} EXPORT "${PROJECT_LIBRARY}Targets" RUNTIME DESTINATION bin LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) INSTALL(FILES ${Calyp_Lib_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/CalypConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/CalypConfigVersion.cmake DESTINATION share/calyp) INSTALL(EXPORT CalypTargets DESTINATION share/calyp) ENDIF() IF(BUILD_TESTS) ADD_SUBDIRECTORY(tests) ADD_SUBDIRECTORY(catch2) ENDIF()