Skip to content
Snippets Groups Projects
Select Git revision
  • b24312838a4becbc6655ccef07a0829b8664b95f
  • develop default protected
  • feature/gmsh-reader
  • feature/reconstruction
  • save_clemence
  • origin/stage/bouguettaia
  • feature/kinetic-schemes
  • feature/local-dt-fsi
  • feature/composite-scheme-sources
  • feature/composite-scheme-other-fluxes
  • feature/serraille
  • feature/variational-hydro
  • feature/composite-scheme
  • hyperplastic
  • feature/polynomials
  • feature/gks
  • feature/implicit-solver-o2
  • feature/coupling_module
  • feature/implicit-solver
  • feature/merge-local-dt-fsi
  • master protected
  • v0.5.0 protected
  • v0.4.1 protected
  • v0.4.0 protected
  • v0.3.0 protected
  • v0.2.0 protected
  • v0.1.0 protected
  • Kidder
  • v0.0.4 protected
  • v0.0.3 protected
  • v0.0.2 protected
  • v0 protected
  • v0.0.1 protected
33 results

CMakeLists.txt

Blame
  • CMakeLists.txt 2.92 KiB
    # ------------------- Source files --------------------
    
    add_library(
      PugsUtils
      BuildInfo.cpp
      BacktraceManager.cpp
      ConsoleManager.cpp
      Demangle.cpp
      Exceptions.cpp
      FPEManager.cpp
      Messenger.cpp
      Partitioner.cpp
      PETScWrapper.cpp
      PugsUtils.cpp
      RevisionInfo.cpp
      SignalManager.cpp)
    
    # --------------- 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
      )
    
    add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pugs_git_revision
      PRE_BUILD
      COMMAND ${CMAKE_COMMAND} -DPUGS_VERSION=${PUGS_VERSION} -DPUGS_SOURCE_DIR=${PUGS_SOURCE_DIR} -P ${PUGS_SOURCE_DIR}/cmake/GetPugsGitRevision.cmake
      COMMENT "Check pugs git status"
      VERBATIM
      )
    
    # ----------------- get version info ------------------
    
    configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pugs_version.hpp.in"
      "${CMAKE_CURRENT_BINARY_DIR}/pugs_version.hpp"
      @ONLY)
    
    
    list(
      APPEND
      SOURCES
      ${CMAKE_CURRENT_BINARY_DIR}/pugs_git_revision.hpp
      ${CMAKE_CURRENT_BINARY_DIR}/pugs_version.hpp
      ${PUGS_BINARY_DIR}/pugs_config.hpp
      )
    
    # Additional dependencies
    add_dependencies(
      PugsUtils
      PugsGitRevison)
    
    # ---------------- Checks for includes ----------------
    
    # Checks for FPE
    include(CheckIncludeFile)
    check_include_file(fenv.h PUGS_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 pugs_config.hpp
    configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pugs_config.hpp.in"
      "${CMAKE_CURRENT_BINARY_DIR}/pugs_config.hpp"
      @ONLY)
    
    # Generates pugs_build_info.hpp
    configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pugs_build_info.hpp.in"
      "${CMAKE_CURRENT_BINARY_DIR}/pugs_build_info.hpp"
      @ONLY)
    
    # ------------------- Installation --------------------
    # temporary version workaround
    if(${CMAKE_VERSION} VERSION_LESS "3.13.0")
      install(TARGETS PugsUtils
        RUNTIME DESTINATION bin
        LIBRARY DESTINATION lib
        ARCHIVE DESTINATION lib)
    endif()