159599516SKenneth E. Jansenfile(GLOB SRC_FILES *.cc *.f *.f90 *.c) 26d494944SCameron Smithlist(REMOVE_ITEM SRC_FILES "main.cc") 3bd36043dSBen Matthews 479f1763eSKenneth E. Jansenoption(PHASTA_USE_LESLIB "Use LESLIB Solver" OFF) 579f1763eSKenneth E. Jansen 679f1763eSKenneth E. Jansenif(PHASTA_USE_SVLS) 7bd36043dSBen Matthews add_definitions(-DHAVE_SVLS) 8bd36043dSBen Matthewsendif() 979f1763eSKenneth E. Jansen 1079f1763eSKenneth E. Jansenif(PHASTA_USE_LESLIB) 1179f1763eSKenneth E. Jansen add_definitions(-DHAVE_LESLIB) 1279f1763eSKenneth E. Jansenelse() 1379f1763eSKenneth E. Jansen list(REMOVE_ITEM SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/usr.c ) 1479f1763eSKenneth E. Jansen list(REMOVE_ITEM SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/getSol.c ) 1579f1763eSKenneth E. Jansen list(REMOVE_ITEM SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/lestools.c ) 1679f1763eSKenneth E. Jansen list(REMOVE_ITEM SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/lesSparse.f ) 1779f1763eSKenneth E. Jansen list(REMOVE_ITEM SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/ftools.f ) 18bd36043dSBen Matthewsendif() 19bd36043dSBen Matthews 207d9c9aa9SCameron Smithif(NOT PHASTA_USE_SVLS AND NOT PHASTA_USE_LESLIB) 217d9c9aa9SCameron Smith message(FATAL_ERROR 227d9c9aa9SCameron Smith"At least one of the incompressible solvers must be enabled \ 237d9c9aa9SCameron Smithvia PHASTA_USE_SVLS and/or PHASTA_USE_LESLIB" 247d9c9aa9SCameron Smith ) 257d9c9aa9SCameron Smithendif() 267d9c9aa9SCameron Smith 2779f1763eSKenneth E. Jansen 2859599516SKenneth E. Jansenadd_library(incompressible ${SRC_FILES}) 299d930e92SCameron Smith 309d930e92SCameron Smithfind_package(phastaCommon REQUIRED PATHS ${CMAKE_BINARY_DIR}) 319d930e92SCameron Smithset(PHASTAIC_LIBS ${CMAKE_THREAD_LIBS_INIT} ${PHASTA_COMMON_LIBS}) 3220c2c887SCameron Smithset(PHASTAIC_INCLUDE_DIRS 339d930e92SCameron Smith ${PHASTAIC_INCLUDE_DIRS} 349d930e92SCameron Smith ${PHASTA_COMMON_INCLUDE_DIRS} 359d930e92SCameron Smith ${PHASTA_BINARY_DIR} 369d930e92SCameron Smith) 3720c2c887SCameron Smith 3820c2c887SCameron Smithadd_executable(phastaIC.exe main.cc) 3920c2c887SCameron Smithinclude_directories(${PHASTAIC_INCLUDE_DIRS}) 4059599516SKenneth E. Jansenset_target_properties(phastaIC.exe PROPERTIES HAS_CXX TRUE) 4159599516SKenneth E. Jansenset_target_properties(incompressible PROPERTIES HAS_CXX TRUE) 4259599516SKenneth E. Jansenset_target_properties(phastaIC.exe PROPERTIES LINKER_LANGUAGE Fortran) 4359599516SKenneth E. Jansenset_target_properties(incompressible PROPERTIES LINKER_LANGUAGE Fortran) 4459599516SKenneth E. Jansenif(CMAKE_Fortran_COMPILER_ID MATCHES XL) 4559599516SKenneth E. Jansen #force preprocessing of solfar.f 4659599516SKenneth E. Jansen set_source_files_properties(solfar.f PROPERTIES COMPILE_FLAGS "-qsuffix=cpp=f") 47053ea58eSKenneth E. Jansen set_source_files_properties(itrdrv.f PROPERTIES COMPILE_FLAGS "-qsuffix=cpp=f") 48*240f0cafSAndrew Bauer set_source_files_properties(filters.f PROPERTIES COMPILE_FLAGS "-qsuffix=cpp=f") 4959599516SKenneth E. Jansenendif(CMAKE_Fortran_COMPILER_ID MATCHES XL) 5059599516SKenneth E. Jansenif(CMAKE_Fortran_COMPILER_ID MATCHES PGI) 5159599516SKenneth E. Jansen #force preprocessing of solfar.f 5259599516SKenneth E. Jansen set_source_files_properties(solfar.f PROPERTIES COMPILE_FLAGS "-Mpreprocess") 5359599516SKenneth E. Jansenendif(CMAKE_Fortran_COMPILER_ID MATCHES PGI) 5459599516SKenneth E. Jansen#incompressible reuses a fortran module from common w/o telling cmake 5559599516SKenneth E. Jansen#this is why we specify a module directory in the next cmakelists up 5659599516SKenneth E. Jansen#and we need to serialize incompressible after common 5759599516SKenneth E. Jansenadd_dependencies(incompressible common) 5879f1763eSKenneth E. Jansenif( PHASTA_USE_LESLIB AND PHASTA_USE_SVLS ) 5979f1763eSKenneth E. Jansenmessage(STATUS "using SVLS and LESLIB") 609d930e92SCameron Smithset(PHASTAIC_LIBS 619d930e92SCameron Smith ${PHASTA_COMMON_LIBS} 629d930e92SCameron Smith incompressible 6379f1763eSKenneth E. Jansen ${LESLIB} 645fd60115SBen Matthews svLS 659d930e92SCameron Smith incompressible 669d930e92SCameron Smith ${PHASTA_COMMON_LIBS} 679d930e92SCameron Smith) 6879f1763eSKenneth E. Jansen 6979f1763eSKenneth E. Jansenelseif(PHASTA_USE_LESLIB) 7079f1763eSKenneth E. Jansenmessage(STATUS "using LESLIB") 7179f1763eSKenneth E. Jansen find_library(LESLIB libles) 72bd36043dSBen Matthews set(PHASTAIC_LIBS 73bd36043dSBen Matthews ${PHASTA_COMMON_LIBS} 74bd36043dSBen Matthews incompressible 7579f1763eSKenneth E. Jansen ${LESLIB} 76bd36043dSBen Matthews incompressible 77bd36043dSBen Matthews ${PHASTA_COMMON_LIBS} 78bd36043dSBen Matthews) 7979f1763eSKenneth E. Jansen 8079f1763eSKenneth E. Jansenelse(PHASTA_USE_SVLS) 8179f1763eSKenneth E. Jansenmessage(STATUS "using SVLS") 8279f1763eSKenneth E. Jansenset(PHASTAIC_LIBS 8379f1763eSKenneth E. Jansen ${PHASTA_COMMON_LIBS} 8479f1763eSKenneth E. Jansen incompressible 8579f1763eSKenneth E. Jansen svLS 8679f1763eSKenneth E. Jansen incompressible 8779f1763eSKenneth E. Jansen ${PHASTA_COMMON_LIBS} 8879f1763eSKenneth E. Jansen) 8979f1763eSKenneth E. Jansenendif() 90bd36043dSBen Matthews 919d930e92SCameron Smithset(PHASTAIC_LIBS ${PHASTAIC_LIBS} phastaIO) 9259599516SKenneth E. Jansenif(PHASTA_BUILD_SHAPEFUNCTION) 939d930e92SCameron Smith set(PHASTAIC_LIBS ${PHASTAIC_LIBS} shapeFunction) 9459599516SKenneth E. Jansenendif(PHASTA_BUILD_SHAPEFUNCTION) 9559599516SKenneth E. Jansenif(PHASTA_BUILD_PHSHAPE) 969d930e92SCameron Smith set(PHASTAIC_LIBS ${PHASTAIC_LIBS} phshape) 9759599516SKenneth E. Jansenendif(PHASTA_BUILD_PHSHAPE) 989d930e92SCameron Smithtarget_link_libraries(phastaIC.exe ${PHASTAIC_LIBS}) 990d32f9a8SKenneth E. Jansenif(PHASTA_USE_PETSC) 1000d32f9a8SKenneth E. Jansen #target_link_libraries(phastaC.exe ${PETSC_LIB}/libpetsc.a ${PETSC_PACKAGE_LIBS}) 1010d32f9a8SKenneth E. Jansen target_link_libraries(phastaIC.exe petsc ${PETSC_PACKAGE_LIBS} ${PHASTAIC_LIBS}) 1020d32f9a8SKenneth E. Jansenendif() 1039d930e92SCameron Smithconfigure_file( 1049d930e92SCameron Smith "${CMAKE_CURRENT_SOURCE_DIR}/phastaICConfig.cmake.in" 1059d930e92SCameron Smith "${CMAKE_BINARY_DIR}/phastaICConfig.cmake" 1069d930e92SCameron Smith) 107f3b67ec7SCameron Smith 1082e3b5a4aSCameron Smithif(PHASTA_TESTING) 109f3b67ec7SCameron Smith add_subdirectory(test) 1102e3b5a4aSCameron Smithendif(PHASTA_TESTING) 111