1file(GLOB SRC_FILES *.cc *.f *.f90 *.c) 2list(REMOVE_ITEM SRC_FILES "main.cc") 3 4if(PHASTA_BUILD_SVLS) 5 add_definitions(-DHAVE_SVLS) 6endif() 7if(ACUSOLVE_LIB) 8 add_definitions(-DHAVE_ACUSOLVE) 9endif() 10 11add_library(incompressible ${SRC_FILES}) 12 13find_package(phastaCommon REQUIRED PATHS ${CMAKE_BINARY_DIR}) 14set(PHASTAIC_LIBS ${CMAKE_THREAD_LIBS_INIT} ${PHASTA_COMMON_LIBS}) 15set(PHASTAIC_INCLUDE_DIRS 16 ${PHASTAIC_INCLUDE_DIRS} 17 ${PHASTA_COMMON_INCLUDE_DIRS} 18 ${PHASTA_BINARY_DIR} 19) 20 21add_executable(phastaIC.exe main.cc) 22include_directories(${PHASTAIC_INCLUDE_DIRS}) 23set_target_properties(phastaIC.exe PROPERTIES HAS_CXX TRUE) 24set_target_properties(incompressible PROPERTIES HAS_CXX TRUE) 25set_target_properties(phastaIC.exe PROPERTIES LINKER_LANGUAGE Fortran) 26set_target_properties(incompressible PROPERTIES LINKER_LANGUAGE Fortran) 27if(CMAKE_Fortran_COMPILER_ID MATCHES XL) 28 #force preprocessing of solfar.f 29 set_source_files_properties(solfar.f PROPERTIES COMPILE_FLAGS "-qsuffix=cpp=f") 30 set_source_files_properties(itrdrv.f PROPERTIES COMPILE_FLAGS "-qsuffix=cpp=f") 31endif(CMAKE_Fortran_COMPILER_ID MATCHES XL) 32if(CMAKE_Fortran_COMPILER_ID MATCHES PGI) 33 #force preprocessing of solfar.f 34 set_source_files_properties(solfar.f PROPERTIES COMPILE_FLAGS "-Mpreprocess") 35endif(CMAKE_Fortran_COMPILER_ID MATCHES PGI) 36#incompressible reuses a fortran module from common w/o telling cmake 37#this is why we specify a module directory in the next cmakelists up 38#and we need to serialize incompressible after common 39add_dependencies(incompressible common) 40find_library(ACUSOLVE_LIB libles) 41if(PHASTA_BUILD_SVLS) 42set(PHASTAIC_LIBS 43 ${PHASTA_COMMON_LIBS} 44 incompressible 45 ${ACUSOLVE_LIB} 46 svLS 47 incompressible 48 ${PHASTA_COMMON_LIBS} 49) 50else() 51set(PHASTAIC_LIBS 52 ${PHASTA_COMMON_LIBS} 53 incompressible 54 ${ACUSOLVE_LIB} 55 incompressible 56 ${PHASTA_COMMON_LIBS} 57) 58endif(PHASTA_BUILD_SVLS) 59 60set(PHASTAIC_LIBS ${PHASTAIC_LIBS} phastaIO) 61if(PHASTA_BUILD_SHAPEFUNCTION) 62 set(PHASTAIC_LIBS ${PHASTAIC_LIBS} shapeFunction) 63endif(PHASTA_BUILD_SHAPEFUNCTION) 64if(PHASTA_BUILD_PHSHAPE) 65 set(PHASTAIC_LIBS ${PHASTAIC_LIBS} phshape) 66endif(PHASTA_BUILD_PHSHAPE) 67target_link_libraries(phastaIC.exe ${PHASTAIC_LIBS}) 68if(PHASTA_USE_PETSC) 69 #target_link_libraries(phastaC.exe ${PETSC_LIB}/libpetsc.a ${PETSC_PACKAGE_LIBS}) 70 target_link_libraries(phastaIC.exe petsc ${PETSC_PACKAGE_LIBS} ${PHASTAIC_LIBS}) 71endif() 72configure_file( 73 "${CMAKE_CURRENT_SOURCE_DIR}/phastaICConfig.cmake.in" 74 "${CMAKE_BINARY_DIR}/phastaICConfig.cmake" 75) 76 77if(PHASTA_TESTING) 78 add_subdirectory(test) 79endif(PHASTA_TESTING) 80