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