xref: /phasta/phSolver/incompressible/CMakeLists.txt (revision 79f1763e38fe03466335328e9c0a1a0a45544a96)
159599516SKenneth E. Jansenfile(GLOB SRC_FILES *.cc *.f *.f90 *.c)
26d494944SCameron Smithlist(REMOVE_ITEM SRC_FILES "main.cc")
3bd36043dSBen Matthews
4*79f1763eSKenneth E. Jansenoption(PHASTA_USE_LESLIB "Use LESLIB Solver" OFF)
5*79f1763eSKenneth E. Jansen
6*79f1763eSKenneth E. Jansenif(PHASTA_USE_SVLS)
7bd36043dSBen Matthews	add_definitions(-DHAVE_SVLS)
8bd36043dSBen Matthewsendif()
9*79f1763eSKenneth E. Jansen
10*79f1763eSKenneth E. Jansenif(PHASTA_USE_LESLIB)
11*79f1763eSKenneth E. Jansen	add_definitions(-DHAVE_LESLIB)
12*79f1763eSKenneth E. Jansenelse()
13*79f1763eSKenneth E. Jansen list(REMOVE_ITEM SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/usr.c )
14*79f1763eSKenneth E. Jansen list(REMOVE_ITEM SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/getSol.c )
15*79f1763eSKenneth E. Jansen list(REMOVE_ITEM SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/lestools.c )
16*79f1763eSKenneth E. Jansen list(REMOVE_ITEM SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/lesSparse.f )
17*79f1763eSKenneth E. Jansen list(REMOVE_ITEM SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/ftools.f )
18bd36043dSBen Matthewsendif()
19bd36043dSBen Matthews
20*79f1763eSKenneth E. Jansen
2159599516SKenneth E. Jansenadd_library(incompressible ${SRC_FILES})
229d930e92SCameron Smith
239d930e92SCameron Smithfind_package(phastaCommon REQUIRED PATHS ${CMAKE_BINARY_DIR})
249d930e92SCameron Smithset(PHASTAIC_LIBS ${CMAKE_THREAD_LIBS_INIT} ${PHASTA_COMMON_LIBS})
2520c2c887SCameron Smithset(PHASTAIC_INCLUDE_DIRS
269d930e92SCameron Smith  ${PHASTAIC_INCLUDE_DIRS}
279d930e92SCameron Smith  ${PHASTA_COMMON_INCLUDE_DIRS}
289d930e92SCameron Smith  ${PHASTA_BINARY_DIR}
299d930e92SCameron Smith)
3020c2c887SCameron Smith
3120c2c887SCameron Smithadd_executable(phastaIC.exe main.cc)
3220c2c887SCameron Smithinclude_directories(${PHASTAIC_INCLUDE_DIRS})
3359599516SKenneth E. Jansenset_target_properties(phastaIC.exe PROPERTIES HAS_CXX TRUE)
3459599516SKenneth E. Jansenset_target_properties(incompressible PROPERTIES HAS_CXX TRUE)
3559599516SKenneth E. Jansenset_target_properties(phastaIC.exe PROPERTIES LINKER_LANGUAGE Fortran)
3659599516SKenneth E. Jansenset_target_properties(incompressible PROPERTIES LINKER_LANGUAGE Fortran)
3759599516SKenneth E. Jansenif(CMAKE_Fortran_COMPILER_ID MATCHES XL)
3859599516SKenneth E. Jansen	#force preprocessing of solfar.f
3959599516SKenneth E. Jansen	set_source_files_properties(solfar.f PROPERTIES COMPILE_FLAGS "-qsuffix=cpp=f")
40053ea58eSKenneth E. Jansen	set_source_files_properties(itrdrv.f PROPERTIES COMPILE_FLAGS "-qsuffix=cpp=f")
4159599516SKenneth E. Jansenendif(CMAKE_Fortran_COMPILER_ID MATCHES XL)
4259599516SKenneth E. Jansenif(CMAKE_Fortran_COMPILER_ID MATCHES PGI)
4359599516SKenneth E. Jansen	#force preprocessing of solfar.f
4459599516SKenneth E. Jansen	set_source_files_properties(solfar.f PROPERTIES COMPILE_FLAGS "-Mpreprocess")
4559599516SKenneth E. Jansenendif(CMAKE_Fortran_COMPILER_ID MATCHES PGI)
4659599516SKenneth E. Jansen#incompressible reuses a fortran module from common w/o telling cmake
4759599516SKenneth E. Jansen#this is why we specify a module directory in the next cmakelists up
4859599516SKenneth E. Jansen#and we need to serialize incompressible after common
4959599516SKenneth E. Jansenadd_dependencies(incompressible common)
50*79f1763eSKenneth E. Jansenif( PHASTA_USE_LESLIB AND PHASTA_USE_SVLS )
51*79f1763eSKenneth E. Jansenmessage(STATUS "using SVLS and LESLIB")
529d930e92SCameron Smithset(PHASTAIC_LIBS
539d930e92SCameron Smith  ${PHASTA_COMMON_LIBS}
549d930e92SCameron Smith  incompressible
55*79f1763eSKenneth E. Jansen  ${LESLIB}
565fd60115SBen Matthews  svLS
579d930e92SCameron Smith  incompressible
589d930e92SCameron Smith  ${PHASTA_COMMON_LIBS}
599d930e92SCameron Smith)
60*79f1763eSKenneth E. Jansen
61*79f1763eSKenneth E. Jansenelseif(PHASTA_USE_LESLIB)
62*79f1763eSKenneth E. Jansenmessage(STATUS "using LESLIB")
63*79f1763eSKenneth E. Jansen  find_library(LESLIB libles)
64bd36043dSBen Matthews  set(PHASTAIC_LIBS
65bd36043dSBen Matthews  ${PHASTA_COMMON_LIBS}
66bd36043dSBen Matthews  incompressible
67*79f1763eSKenneth E. Jansen  ${LESLIB}
68bd36043dSBen Matthews  incompressible
69bd36043dSBen Matthews  ${PHASTA_COMMON_LIBS}
70bd36043dSBen Matthews)
71*79f1763eSKenneth E. Jansen
72*79f1763eSKenneth E. Jansenelse(PHASTA_USE_SVLS)
73*79f1763eSKenneth E. Jansenmessage(STATUS "using SVLS")
74*79f1763eSKenneth E. Jansenset(PHASTAIC_LIBS
75*79f1763eSKenneth E. Jansen  ${PHASTA_COMMON_LIBS}
76*79f1763eSKenneth E. Jansen  incompressible
77*79f1763eSKenneth E. Jansen  svLS
78*79f1763eSKenneth E. Jansen  incompressible
79*79f1763eSKenneth E. Jansen  ${PHASTA_COMMON_LIBS}
80*79f1763eSKenneth E. Jansen)
81*79f1763eSKenneth E. Jansenendif()
82bd36043dSBen Matthews
839d930e92SCameron Smithset(PHASTAIC_LIBS ${PHASTAIC_LIBS} phastaIO)
8459599516SKenneth E. Jansenif(PHASTA_BUILD_SHAPEFUNCTION)
859d930e92SCameron Smith  set(PHASTAIC_LIBS ${PHASTAIC_LIBS} shapeFunction)
8659599516SKenneth E. Jansenendif(PHASTA_BUILD_SHAPEFUNCTION)
8759599516SKenneth E. Jansenif(PHASTA_BUILD_PHSHAPE)
889d930e92SCameron Smith  set(PHASTAIC_LIBS ${PHASTAIC_LIBS} phshape)
8959599516SKenneth E. Jansenendif(PHASTA_BUILD_PHSHAPE)
909d930e92SCameron Smithtarget_link_libraries(phastaIC.exe ${PHASTAIC_LIBS})
910d32f9a8SKenneth E. Jansenif(PHASTA_USE_PETSC)
920d32f9a8SKenneth E. Jansen	#target_link_libraries(phastaC.exe ${PETSC_LIB}/libpetsc.a ${PETSC_PACKAGE_LIBS})
930d32f9a8SKenneth E. Jansen	target_link_libraries(phastaIC.exe petsc ${PETSC_PACKAGE_LIBS} ${PHASTAIC_LIBS})
940d32f9a8SKenneth E. Jansenendif()
959d930e92SCameron Smithconfigure_file(
969d930e92SCameron Smith  "${CMAKE_CURRENT_SOURCE_DIR}/phastaICConfig.cmake.in"
979d930e92SCameron Smith  "${CMAKE_BINARY_DIR}/phastaICConfig.cmake"
989d930e92SCameron Smith)
99f3b67ec7SCameron Smith
1002e3b5a4aSCameron Smithif(PHASTA_TESTING)
101f3b67ec7SCameron Smith  add_subdirectory(test)
1022e3b5a4aSCameron Smithendif(PHASTA_TESTING)
103