109 lines
3.5 KiB
CMake
109 lines
3.5 KiB
CMake
#
|
|
# 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(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
|
|
|
|
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 CalypModuleIf.h CalypModuleIf.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 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 $<INSTALL_INTERFACE:include> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>)
|
|
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()
|