You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
5.3 KiB
150 lines
5.3 KiB
PROJECT (trax)
|
|
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
|
|
GET_FILENAME_COMPONENT(PROJECT_ROOT . ABSOLUTE)
|
|
SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
INCLUDE(GNUInstallDirs)
|
|
INCLUDE(CMakePackageConfigHelpers)
|
|
|
|
SET (BUILD_DEBUG FALSE CACHE BOOL "Build in debug mode")
|
|
|
|
IF (NOT BUILD_DATE)
|
|
STRING(TIMESTAMP BUILD_DATE "%Y-%m-%d")
|
|
ENDIF()
|
|
|
|
IF (NOT BUILD_VERSION)
|
|
FILE(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" BUILD_VERSION)
|
|
STRING(REPLACE "\n" "" BUILD_VERSION ${BUILD_VERSION})
|
|
ENDIF()
|
|
|
|
IF (WIN32 OR WIN64)
|
|
SET(LIBRARIES ws2_32)
|
|
SET(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_DATAROOTDIR}")
|
|
SET(CMAKE_DEBUG_POSTFIX "d")
|
|
ELSE ()
|
|
SET(LIBRARIES m)
|
|
SET(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/trax")
|
|
IF (CMAKE_COMPILER_IS_GNUCXX)
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
|
|
ENDIF ()
|
|
SET(CPACK_SET_DESTDIR 1)
|
|
ENDIF ()
|
|
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
|
|
|
LINK_LIBRARIES(${LIBRARIES})
|
|
ADD_DEFINITIONS(-DTRAX_BUILD_VERSION="${BUILD_VERSION}" -DTRAX_BUILD_DATE="${BUILD_DATE}")
|
|
SET(TRAX_SOURCE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/trax.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/region.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/strmap.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/message.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/base64.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/traxpp.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/debug.c)
|
|
|
|
SET(TRAX_HEADERS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include/trax.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/region.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/strmap.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/message.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/base64.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/buffer.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/debug.h)
|
|
|
|
IF (BUILD_DEBUG)
|
|
ADD_DEFINITIONS(-DTRAX_DEBUG=1)
|
|
ENDIF ()
|
|
|
|
ADD_LIBRARY(trax SHARED ${TRAX_SOURCE})
|
|
ADD_LIBRARY(traxstatic STATIC ${TRAX_SOURCE})
|
|
|
|
if(MSVC)
|
|
ADD_DEFINITIONS(/MP) # Build with multiple processes
|
|
ADD_DEFINITIONS(/wd4244 /wd4267 /wd4018 /wd4355 /wd4800 /wd4251 /wd4996 /wd4146 /wd4305) # Ignore some of the warnings
|
|
elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic")
|
|
IF (BUILD_DEBUG)
|
|
SET_TARGET_PROPERTIES(trax PROPERTIES COMPILE_FLAGS "-finstrument-functions")
|
|
SET_TARGET_PROPERTIES(traxstatic PROPERTIES COMPILE_FLAGS "-finstrument-functions")
|
|
ADD_SUBDIRECTORY(src/tests)
|
|
ENDIF ()
|
|
endif()
|
|
|
|
SET_TARGET_PROPERTIES(trax PROPERTIES VERSION ${BUILD_VERSION} SOVERSION 2)
|
|
TARGET_COMPILE_OPTIONS(traxstatic PUBLIC -DTRAX_STATIC_DEFINE)
|
|
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src)
|
|
SET_TARGET_PROPERTIES(traxstatic PROPERTIES POSITION_INDEPENDENT_CODE 1)
|
|
|
|
SET (BUILD_TESTS FALSE CACHE BOOL "Build with support for tests")
|
|
SET (BUILD_OPENCV FALSE CACHE BOOL "Build with OpenCV support")
|
|
SET (BUILD_CLIENT FALSE CACHE BOOL "Build with client support library and executable")
|
|
SET (BUILD_MATLAB FALSE CACHE BOOL "Build Matlab/Octave bindings")
|
|
SET (BUILD_PYTHON FALSE CACHE BOOL "Build Python wrapper")
|
|
|
|
IF (BUILD_OPENCV)
|
|
FIND_PACKAGE(OpenCV REQUIRED)
|
|
ADD_SUBDIRECTORY(support/opencv)
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/support/opencv/include)
|
|
ENDIF (BUILD_OPENCV)
|
|
|
|
IF (BUILD_CLIENT)
|
|
ADD_SUBDIRECTORY(support/client)
|
|
ENDIF (BUILD_CLIENT)
|
|
|
|
IF (BUILD_MATLAB)
|
|
ADD_SUBDIRECTORY(support/matlab)
|
|
ENDIF (BUILD_MATLAB)
|
|
|
|
IF (WIN32 OR WIN64)
|
|
INSTALL(TARGETS trax traxstatic EXPORT core RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
ELSE ()
|
|
INSTALL(TARGETS trax EXPORT core LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
ENDIF()
|
|
|
|
INSTALL(FILES include/trax.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
INSTALL(EXPORT core DESTINATION ${CONFIG_INSTALL_DIR} FILE trax-component-core.cmake)
|
|
|
|
IF (BUILD_PYTHON)
|
|
ADD_SUBDIRECTORY(support/python)
|
|
ENDIF (BUILD_PYTHON)
|
|
|
|
IF (BUILD_TESTS)
|
|
INCLUDE( CTest )
|
|
ADD_SUBDIRECTORY(support/tests)
|
|
ENDIF (BUILD_TESTS)
|
|
|
|
# CMake config file
|
|
SET(LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR})
|
|
SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}")
|
|
|
|
CONFIGURE_PACKAGE_CONFIG_FILE(trax-config.cmake.in
|
|
${PROJECT_BINARY_DIR}/trax-config.cmake
|
|
INSTALL_DESTINATION ${CONFIG_INSTALL_DIR}
|
|
PATH_VARS LIB_INSTALL_DIR INCLUDE_INSTALL_DIR)
|
|
|
|
WRITE_BASIC_PACKAGE_VERSION_FILE(
|
|
${PROJECT_BINARY_DIR}/trax-config-version.cmake
|
|
VERSION ${BUILD_VERSION}
|
|
COMPATIBILITY SameMajorVersion)
|
|
|
|
INSTALL(FILES
|
|
${CMAKE_CURRENT_BINARY_DIR}/trax-config.cmake
|
|
${CMAKE_CURRENT_BINARY_DIR}/trax-config-version.cmake
|
|
DESTINATION ${CONFIG_INSTALL_DIR})
|
|
|
|
SET(CPACK_PACKAGE_NAME "TraX")
|
|
SET(CPACK_GENERATOR "ZIP")
|
|
STRING(REPLACE "." ";" VERSION_LIST ${BUILD_VERSION})
|
|
LIST(GET VERSION_LIST 0 CPACK_PACKAGE_VERSION_MAJOR)
|
|
LIST(GET VERSION_LIST 1 CPACK_PACKAGE_VERSION_MINOR)
|
|
LIST(GET VERSION_LIST 2 CPACK_PACKAGE_VERSION_PATCH)
|
|
SET(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
|
|
IF (BUILD_PLATFORM)
|
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-${BUILD_PLATFORM}")
|
|
ELSE()
|
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
|
|
ENDIF()
|
|
INCLUDE(CPack)
|