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