xref: /phasta/phSolver/common/CMakeLists.txt (revision 74b268397c97eef39f36c07e443e8602011cd444)
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    phastaIO
16  )
17endif(PHASTA_USE_MPI)
18
19if(NOT PHASTA_CHEF_ENABLED)
20  set(SRC_FILES ${SRC_FILES} phstreamEmpty/phstreamEmpty.cc)
21  set(PHASTA_COMMON_INCLUDE_DIRS
22      ${PHASTA_COMMON_INCLUDE_DIRS}
23      ${CMAKE_CURRENT_SOURCE_DIR}/phstreamEmpty)
24endif()
25
26include_directories(${PHASTA_COMMON_INCLUDE_DIRS})
27
28ADD_LIBRARY(common ${SRC_FILES})
29if(CMAKE_Fortran_COMPILER_ID MATCHES XL)
30        set_source_files_properties(fillsparse.f PROPERTIES COMPILE_FLAGS
31"-qsuffix=cpp=f")
32        set_source_files_properties(petscdbg.f PROPERTIES COMPILE_FLAGS
33"-qsuffix=cpp=f")
34endif(CMAKE_Fortran_COMPILER_ID MATCHES XL)
35TARGET_LINK_LIBRARIES(common PUBLIC ${PHASTA_COMMON_LIBS})
36if(PHASTA_CHEF_ENABLED)
37  TARGET_LINK_LIBRARIES(common PUBLIC SCOREC::ph)
38endif()
39
40configure_file(
41  "${CMAKE_CURRENT_SOURCE_DIR}/phastaCommonConfig.cmake.in"
42  "${CMAKE_BINARY_DIR}/phastaCommonConfig.cmake"
43)
44
45get_git_head_revision(PHASTA_GIT_REFSPEC PHASTA_GIT_SHA1)
46configure_file(phasta_version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/phasta_version.h )
47set(git_hash_string "# git hash ${PHASTA_GIT_SHA1}")
48execute_process(
49  COMMAND echo ${git_hash_string}
50  COMMAND cat - input.config
51  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
52  OUTPUT_FILE ${CMAKE_BINARY_DIR}/input.config
53)
54
55if(PHASTA_TESTING)
56  add_subdirectory(test)
57endif(PHASTA_TESTING)
58