cmake_minimum_required(VERSION 3.14) project( ssp VERSION 1.6.2 DESCRIPTION "csv parser" HOMEPAGE_URL "https://github.com/red0124/ssp" LANGUAGES CXX ) # ---- Warning guard ---- # Protect dependents from this project's warnings if the guard isn't disabled set(SSP_WARNING_GUARD SYSTEM) if(SSP_INCLUDE_WITHOUT_SYSTEM) set(SSP_WARNING_GUARD "") endif() # ---- Dependencies ---- include(FetchContent) fetchcontent_declare( fast_float GIT_REPOSITORY https://github.com/red0124/fast_float.git GIT_TAG origin/meson GIT_SHALLOW TRUE ) fetchcontent_makeavailable(fast_float) set(FAST_FLOAT_SOURCE_DIR "${FETCHCONTENT_BASE_DIR}/fast_float-src") # ---- Declare library ---- add_library(ssp INTERFACE) add_library(ssp::ssp ALIAS ssp) target_include_directories( ssp ${SSP_WARNING_GUARD} INTERFACE "$" "$" ) target_compile_features(ssp INTERFACE cxx_std_17) target_link_libraries( ssp INTERFACE "$<$,$,9.0>>:c++fs>" "$<$,$,9.1>>:stdc++fs>" ) # ---- Install ---- include(CMakePackageConfigHelpers) include(GNUInstallDirs) set(SSP_DIRECTORY "ssp-${PROJECT_VERSION}") set(SSP_INCLUDE_DIRECTORY "${CMAKE_INSTALL_INCLUDEDIR}") install( DIRECTORY "${PROJECT_SOURCE_DIR}/include/" "${FAST_FLOAT_SOURCE_DIR}/include/" DESTINATION "${SSP_INCLUDE_DIRECTORY}" COMPONENT ssp_Development ) install( TARGETS ssp EXPORT sspTargets INCLUDES DESTINATION "${SSP_INCLUDE_DIRECTORY}" ) write_basic_package_version_file( ssp-config-version.cmake COMPATIBILITY SameMajorVersion ARCH_INDEPENDENT ) set(SSP_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/${SSP_DIRECTORY}") install( FILES "${PROJECT_BINARY_DIR}/ssp-config-version.cmake" DESTINATION "${SSP_INSTALL_CMAKEDIR}" COMPONENT ssp_Development ) install( EXPORT sspTargets FILE ssp-config.cmake NAMESPACE ssp:: DESTINATION "${SSP_INSTALL_CMAKEDIR}" COMPONENT ssp_Development ) if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) include(CPack) endif()