Skip to content
Snippets Groups Projects
CMakeLists.txt 2.18 KiB
Newer Older
  • Learn to ignore specific revisions
  • Radim Vavřík's avatar
    Radim Vavřík committed
    
    #----- Check for the required RTLib library
    find_package(BbqRTLib REQUIRED)
    
    #----- Add compilation dependencies
    include_directories(${BBQUE_RTLIB_INCLUDE_DIR})
    
    #----- Add "mpiuncertainty" target application
    set(MPIUNCERTAINTY_SRC version ActualData Calibration CSVWriter CSVReader Uncertainity NormalRandom pugixml Hydrograph Channel Location Options Subbasin Logger Station MatData AbstractRandom AbstractParam PrecipitationUncertainity KernelDensity UniformRandom ManningUncertainity CnUncertainity MpiUncertainty_exc MpiUncertainty_main oplist oplist2)
    
    add_executable(mpiuncertainty ${MPIUNCERTAINTY_SRC})
    
    set (CMAKE_CXX_COMPILE_FLAGS " -g  -c -j 8 -Wall -std=gnu++11")
    #-Wno-reorder
    set (CMAKE_CXX_LINK_FLAGS "-lstdc++")
    set(CMAKE_CXX_COMPILE_FLAGS ${CMAKE_CXX_COMPILE_FLAGS} )
    set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} )
    
    set(CMAKE_CXX_COMPILER "/usr/bin/mpic++")
    
    find_package(OpenMP)
    if (OPENMP_FOUND)
        set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
        set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
    endif()
    
    #----- Linking dependencies
    target_link_libraries(
    	mpiuncertainty
    	${Boost_LIBRARIES}
    	${BBQUE_RTLIB_LIBRARY}
    )
    
    # Use link path ad RPATH
    set_property(TARGET mpiuncertainty PROPERTY
    	INSTALL_RPATH_USE_LINK_PATH TRUE)
    
    #----- Install the MpiUncertainty files
    install (TARGETS mpiuncertainty RUNTIME
    	DESTINATION ${MPIUNCERTAINTY_PATH_BINS})
    
    #----- Add opList genertion target
    add_custom_command(
    	OUTPUT  oplist.cc
    	DEPENDS ${PROJECT_SOURCE_DIR}/recipes/MpiUncertainty.recipe
    	COMMAND bbque-oplb -v OUTF=oplist.cc ${PROJECT_SOURCE_DIR}/recipes/MpiUncertainty.recipe
    	COMMENT "Generating OPList..."
    )
    
    #----- Add opList genertion target
    add_custom_command(
    	OUTPUT  oplist2.cc
    	DEPENDS ${PROJECT_SOURCE_DIR}/recipes/MpiUncertainty2.recipe
    	COMMAND bbque-oplb -v OUTF=oplist2.cc -v BBQUE_RTLIB_OPLIST=opList2 ${PROJECT_SOURCE_DIR}/recipes/MpiUncertainty2.recipe
    	COMMENT "Generating OPList2..."
    )
    
    #----- Generate and Install MpiUncertainty configuration file
    configure_file (
    	"${PROJECT_SOURCE_DIR}/MpiUncertainty.conf.in"
    	"${PROJECT_BINARY_DIR}/MpiUncertainty.conf"
    )
    install (FILES "${PROJECT_BINARY_DIR}/MpiUncertainty.conf"
    	DESTINATION ${MPIUNCERTAINTY_PATH_CONFIG})