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