include_directories(${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}) # ------------------- Source files -------------------- add_library( PastisUtils BacktraceManager.cpp ConsoleManager.cpp FPEManager.cpp PastisUtils.cpp RevisionInfo.cpp SignalManager.cpp) # --------------- get git revision info --------------- # Generates revision header file add_custom_target( PastisGitRevison ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp ) set_source_files_properties( ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp PROPERTIES GENERATED TRUE HEADER_FILE_ONLY TRUE ) # --------- check git revision info at build ---------- add_custom_command(TARGET PastisGitRevison COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp COMMENT "" ) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp COMMENT "" DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision VERBATIM ) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision PRE_BUILD COMMAND ${CMAKE_COMMAND} -DCMAKE_PASTIS_VERSION=${Pastis_VERSION} -DPASTIS_SOURCE_DIR=${PASTIS_SOURCE_DIR} -P ${PASTIS_SOURCE_DIR}/cmake/GetPastisGitRevision.cmake COMMENT "Check pastis git status" VERBATIM ) # ----------------- get version info ------------------ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pastis_version.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/pastis_version.hpp" @ONLY) list( APPEND SOURCES ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp ${CMAKE_CURRENT_BINARY_DIR}/pastis_version.hpp ${PASTIS_BINARY_DIR}/pastis_config.hpp ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${PASTIS_BINARY_DIR}) include_directories(${PASTIS_SOURCE_DIR}/packages/rang/include) # Additional dependencies add_dependencies( PastisUtils PastisGitRevison) # ---------------- Checks for includes ---------------- # Checks for FPE include(CheckIncludeFile) check_include_file(fenv.h PASTIS_HAS_FENV_H) # Checks for host system name if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") set(SYSTEM_IS_LINUX 1) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") set(SYSTEM_IS_DARWIN 1) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") set(SYSTEM_IS_WINDOWS 1) else() message(WARNMSG "Your system is ${CMAKE_HOST_SYSTEM_NAME} which may not be managed!") endif() # Generates pastis_config.hpp configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pastis_config.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/pastis_config.hpp" @ONLY)