diff --git a/CMakeLists.txt b/CMakeLists.txt index 7bd1223..4269b41 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}) @@ -85,9 +88,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}) @@ -106,6 +107,22 @@ endif() ## Tests option(CSV_BUILD_TESTS "Allow to disable building of tests" ON) +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 8674389..76f0f1a 100644 --- a/include/internal/CMakeLists.txt +++ b/include/internal/CMakeLists.txt @@ -27,7 +27,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) @@ -44,8 +44,6 @@ if(MSVC AND NOT CSV_NO_SIMD) target_compile_options(csv PUBLIC /arch:AVX2) 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 "") @@ -59,4 +57,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)