diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ea14d3..22aedc5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,8 @@ cmake_minimum_required(VERSION 3.10) project(csv) +include(GNUInstallDirs) + +find_package(mio CONFIG REQUIRED) if(CSV_CXX_STANDARD) set(CMAKE_CXX_STANDARD ${CSV_CXX_STANDARD}) @@ -83,10 +86,7 @@ set(CSV_TEST_DIR ${CMAKE_CURRENT_LIST_DIR}/tests) include_directories(${CSV_INCLUDE_DIR}) -## Load developer specific CMake settings -if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) - SET(CSV_DEVELOPER TRUE) -endif() +SET(CSV_DEVELOPER OFF) ## Main Library add_subdirectory(${CSV_SOURCE_DIR}) @@ -102,6 +102,22 @@ option(CSV_BUILD_PROGRAMS "Allow to disable building of programs" ON) if (CSV_BUILD_PROGRAMS) add_subdirectory("programs") endif() +install(TARGETS csv EXPORT unofficial-vincentlaucsb-csv-parser) + +install( + EXPORT unofficial-vincentlaucsb-csv-parser + FILE unofficial-vincentlaucsb-csv-parser-config.cmake + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-vincentlaucsb-csv-parser" + NAMESPACE unofficial::vincentlaucsb-csv-parser:: +) + +install( + DIRECTORY "${CMAKE_SOURCE_DIR}/include/" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/vincentlaucsb-csv-parser" + PATTERN "*.cpp" EXCLUDE + PATTERN "CMakeLists.txt" EXCLUDE + PATTERN "external" EXCLUDE +) ## Developer settings if (CSV_DEVELOPER) diff --git a/include/internal/CMakeLists.txt b/include/internal/CMakeLists.txt index e96cfd0..2f95f90 100644 --- a/include/internal/CMakeLists.txt +++ b/include/internal/CMakeLists.txt @@ -28,7 +28,7 @@ target_sources(csv thread_safe_deque.hpp ) -set_target_properties(csv PROPERTIES LINKER_LANGUAGE CXX) +set_target_properties(csv PROPERTIES LINKER_LANGUAGE CXX OUTPUT_NAME "vincentlaucsb-csv-parser-csv") if(CSV_NO_SIMD) target_compile_definitions(csv PUBLIC CSV_NO_SIMD=1) @@ -41,8 +41,6 @@ else() target_compile_definitions(csv PUBLIC CSV_ENABLE_THREADS=0) endif() -target_include_directories(csv INTERFACE ../) - # Scalar-only variant of the library: same sources, CSV_NO_SIMD defined. # Used by csv_bench_no_simd to provide a fair apples-to-apples benchmark. add_library(csv_no_simd STATIC "") @@ -56,4 +54,11 @@ if(CSV_ENABLE_THREADS) else() target_compile_definitions(csv_no_simd PUBLIC CSV_ENABLE_THREADS=0) endif() -target_include_directories(csv_no_simd INTERFACE ../) +target_include_directories(csv + INTERFACE $ +) +target_link_libraries(csv PRIVATE Threads::Threads PUBLIC mio::mio mio::mio-headers) +target_include_directories(csv_no_simd + INTERFACE $ +) +target_link_libraries(csv_no_simd PRIVATE Threads::Threads PUBLIC mio::mio mio::mio-headers)