xref: /phasta/phSolver/incompressible/CMakeLists.txt (revision bd36043d6c86bfee311b9eaff539555a870d94ea)
1file(GLOB SRC_FILES *.cc *.f *.f90 *.c)
2list(REMOVE_ITEM SRC_FILES "main.cc")
3
4if(PHASTA_BUILD_SVLS)
5	add_definitions(-DHAVE_SVLS)
6endif()
7if(ACUSOLVE_LIB)
8	add_definitions(-DHAVE_ACUSOLVE)
9endif()
10
11add_library(incompressible ${SRC_FILES})
12
13find_package(phastaCommon REQUIRED PATHS ${CMAKE_BINARY_DIR})
14set(PHASTAIC_LIBS ${CMAKE_THREAD_LIBS_INIT} ${PHASTA_COMMON_LIBS})
15set(PHASTAIC_INCLUDE_DIRS
16  ${PHASTAIC_INCLUDE_DIRS}
17  ${PHASTA_COMMON_INCLUDE_DIRS}
18  ${PHASTA_BINARY_DIR}
19)
20
21add_executable(phastaIC.exe main.cc)
22include_directories(${PHASTAIC_INCLUDE_DIRS})
23set_target_properties(phastaIC.exe PROPERTIES HAS_CXX TRUE)
24set_target_properties(incompressible PROPERTIES HAS_CXX TRUE)
25set_target_properties(phastaIC.exe PROPERTIES LINKER_LANGUAGE Fortran)
26set_target_properties(incompressible PROPERTIES LINKER_LANGUAGE Fortran)
27if(CMAKE_Fortran_COMPILER_ID MATCHES XL)
28	#force preprocessing of solfar.f
29	set_source_files_properties(solfar.f PROPERTIES COMPILE_FLAGS "-qsuffix=cpp=f")
30	set_source_files_properties(itrdrv.f PROPERTIES COMPILE_FLAGS "-qsuffix=cpp=f")
31endif(CMAKE_Fortran_COMPILER_ID MATCHES XL)
32if(CMAKE_Fortran_COMPILER_ID MATCHES PGI)
33	#force preprocessing of solfar.f
34	set_source_files_properties(solfar.f PROPERTIES COMPILE_FLAGS "-Mpreprocess")
35endif(CMAKE_Fortran_COMPILER_ID MATCHES PGI)
36#incompressible reuses a fortran module from common w/o telling cmake
37#this is why we specify a module directory in the next cmakelists up
38#and we need to serialize incompressible after common
39add_dependencies(incompressible common)
40find_library(ACUSOLVE_LIB libles)
41if(PHASTA_BUILD_SVLS)
42set(PHASTAIC_LIBS
43  ${PHASTA_COMMON_LIBS}
44  incompressible
45  ${ACUSOLVE_LIB}
46  svLS
47  incompressible
48  ${PHASTA_COMMON_LIBS}
49)
50else()
51set(PHASTAIC_LIBS
52  ${PHASTA_COMMON_LIBS}
53  incompressible
54  ${ACUSOLVE_LIB}
55  incompressible
56  ${PHASTA_COMMON_LIBS}
57)
58endif(PHASTA_BUILD_SVLS)
59
60set(PHASTAIC_LIBS ${PHASTAIC_LIBS} phastaIO)
61if(PHASTA_BUILD_SHAPEFUNCTION)
62  set(PHASTAIC_LIBS ${PHASTAIC_LIBS} shapeFunction)
63endif(PHASTA_BUILD_SHAPEFUNCTION)
64if(PHASTA_BUILD_PHSHAPE)
65  set(PHASTAIC_LIBS ${PHASTAIC_LIBS} phshape)
66endif(PHASTA_BUILD_PHSHAPE)
67target_link_libraries(phastaIC.exe ${PHASTAIC_LIBS})
68if(PHASTA_USE_PETSC)
69	#target_link_libraries(phastaC.exe ${PETSC_LIB}/libpetsc.a ${PETSC_PACKAGE_LIBS})
70	target_link_libraries(phastaIC.exe petsc ${PETSC_PACKAGE_LIBS} ${PHASTAIC_LIBS})
71endif()
72configure_file(
73  "${CMAKE_CURRENT_SOURCE_DIR}/phastaICConfig.cmake.in"
74  "${CMAKE_BINARY_DIR}/phastaICConfig.cmake"
75)
76
77if(PHASTA_TESTING)
78  add_subdirectory(test)
79endif(PHASTA_TESTING)
80