xref: /phasta/phSolver/common/CMakeLists.txt (revision a746c8388dc23edf599359c13f1b1cf7ce2766e3)
1# collect all the source files
2FILE(GLOB SRC_FILES *.cc *.f *.f90 *.c *.F90)
3set(PHASTA_COMMON_INCLUDE_DIRS)
4set(PHASTA_COMMON_LIBS)
5if(PHASTA_USE_MPI)
6  add_definitions(-DOMPI_SKIP_MPICXX=1)
7  set(PHASTA_COMMON_INCLUDE_DIRS ${PHASTA_COMMON_INCLUDE_DIRS}
8    ${CMAKE_CURRENT_SOURCE_DIR}
9    ${MPI_INCLUDE_PATH}
10    ${MPI_Fortran_INCLUDE_PATH}
11  )
12  set(PHASTA_COMMON_LIBS ${PHASTA_COMMON_LIBS}
13    ${MPI_LIBRARIES}
14    ${MPI_Fortran_LIBRARIES}
15  )
16endif(PHASTA_USE_MPI)
17
18if(NOT PHASTA_CHEF_ENABLED)
19  set(SRC_FILES ${SRC_FILES} phstreamEmpty/phstreamEmpty.cc)
20  set(PHASTA_COMMON_INCLUDE_DIRS
21      ${PHASTA_COMMON_INCLUDE_DIRS}
22      ${CMAKE_CURRENT_SOURCE_DIR}/phstreamEmpty)
23endif()
24
25include_directories(${PHASTA_COMMON_INCLUDE_DIRS})
26
27ADD_LIBRARY(common ${SRC_FILES})
28if(CMAKE_Fortran_COMPILER_ID MATCHES XL)
29        set_source_files_properties(fillsparse.f PROPERTIES COMPILE_FLAGS
30"-qsuffix=cpp=f")
31        set_source_files_properties(petscdbg.f PROPERTIES COMPILE_FLAGS
32"-qsuffix=cpp=f")
33endif(CMAKE_Fortran_COMPILER_ID MATCHES XL)
34TARGET_LINK_LIBRARIES(common PUBLIC ${PHASTA_COMMON_LIBS})
35if(PHASTA_CHEF_ENABLED)
36  TARGET_LINK_LIBRARIES(common PUBLIC SCOREC::ph)
37endif()
38
39configure_file(
40  "${CMAKE_CURRENT_SOURCE_DIR}/phastaCommonConfig.cmake.in"
41  "${CMAKE_BINARY_DIR}/phastaCommonConfig.cmake"
42)
43
44execute_process(
45  COMMAND git rev-parse HEAD
46  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
47  OUTPUT_VARIABLE git_hash
48)
49set(git_hash_string "# git hash ${git_hash}")
50execute_process(
51  COMMAND echo -n ${git_hash_string}
52  COMMAND cat - input.config
53  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
54  OUTPUT_FILE ${CMAKE_BINARY_DIR}/input.config
55)
56
57if(PHASTA_TESTING)
58  add_subdirectory(test)
59endif(PHASTA_TESTING)
60