cmake_minimum_required(VERSION 3.15) project( EvalHyd LANGUAGES CXX VERSION 0.0.1 DESCRIPTION "Utility to evaluate streamflow predictions" ) # ------------------------------------------------------------------------------ # dependencies # ------------------------------------------------------------------------------ find_package(xtensor REQUIRED) message(STATUS "Found xtensor: ${xtensor_INCLUDE_DIRS}/xtensor") # ------------------------------------------------------------------------------ # build # ------------------------------------------------------------------------------ # define evalhyd library add_library( evalhyd INTERFACE ) add_library(EvalHyd::evalhyd ALIAS evalhyd) set_target_properties( evalhyd PROPERTIES VISIBILITY_INLINES_HIDDEN ON ) target_include_directories( evalhyd INTERFACE $<INSTALL_INTERFACE:include> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> ) target_link_libraries( evalhyd INTERFACE xtensor ) target_compile_features( evalhyd INTERFACE cxx_std_14 ) # test suite OPTION(EVALHYD_BUILD_TEST "configure and compile tests" ON) if(EVALHYD_BUILD_TEST) add_subdirectory(tests) endif() # ------------------------------------------------------------------------------ # installation # ------------------------------------------------------------------------------ include(GNUInstallDirs) include(CMakePackageConfigHelpers) # install library file (.a/.so) install( TARGETS evalhyd EXPORT evalhyd-targets ) # install headers install( DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/evalhyd" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" FILES_MATCHING PATTERN "*.hpp" ) # generate target file export( EXPORT evalhyd-targets FILE "${CMAKE_CURRENT_BINARY_DIR}/EvalHydTargets.cmake" ) # install target file install( EXPORT evalhyd-targets FILE "EvalHydTargets.cmake" NAMESPACE EvalHyd:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/EvalHyd ) # generate config file configure_package_config_file( EvalHydConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/EvalHydConfig.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/EvalHyd ) # install files install( FILES "${CMAKE_CURRENT_BINARY_DIR}/EvalHydConfig.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/EvalHyd" )