Select Git revision
CMakeLists.txt
CMakeLists.txt 3.09 KiB
# ------------------- Source files --------------------
add_library(
PugsUtils
BuildInfo.cpp
BacktraceManager.cpp
CommunicatorManager.cpp
ConsoleManager.cpp
Demangle.cpp
Exceptions.cpp
ExecutionStatManager.cpp
FPEManager.cpp
GlobalVariableManager.cpp
Messenger.cpp
Partitioner.cpp
PETScWrapper.cpp
PugsUtils.cpp
RandomEngine.cpp
ReproducibleSumManager.cpp
RevisionInfo.cpp
SignalManager.cpp
SLEPcWrapper.cpp
Socket.cpp)
if(${MPI_FOUND})
target_include_directories(PugsUtils PRIVATE ${PARMETIS_INCLUDE_DIR})
target_include_directories(PugsUtils PRIVATE ${METIS_INCLUDE_DIR})
endif()
target_link_libraries(
PugsUtils
${PETSC_LIBRARIES}
${SLEPC_LIBRARIES}
${HIGHFIVE_TARGET}
)
# --------------- get git revision info ---------------
# Generates revision header file
add_custom_target(
PugsGitRevison
ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pugs_git_revision.hpp
)
set_source_files_properties(
${CMAKE_CURRENT_BINARY_DIR}/pugs_git_revision.hpp
PROPERTIES
GENERATED TRUE
HEADER_FILE_ONLY TRUE
)
# --------- check git revision info at build ----------
add_custom_command(TARGET PugsGitRevison
COMMAND ${CMAKE_COMMAND} -E remove -f
${CMAKE_CURRENT_BINARY_DIR}/pugs_git_revision
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pugs_git_revision.hpp
COMMENT ""
)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pugs_git_revision.hpp
PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_BINARY_DIR}/pugs_git_revision
${CMAKE_CURRENT_BINARY_DIR}/pugs_git_revision.hpp
COMMENT ""
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pugs_git_revision
VERBATIM
)