aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/vincentlaucsb-csv-parser
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/vincentlaucsb-csv-parser')
-rw-r--r--vcpkg/ports/vincentlaucsb-csv-parser/001-fix-cmake.patch70
-rw-r--r--vcpkg/ports/vincentlaucsb-csv-parser/002-fix-include.patch45
-rw-r--r--vcpkg/ports/vincentlaucsb-csv-parser/003-disable-coverage.patch11
-rw-r--r--vcpkg/ports/vincentlaucsb-csv-parser/portfile.cmake39
-rw-r--r--vcpkg/ports/vincentlaucsb-csv-parser/usage4
-rw-r--r--vcpkg/ports/vincentlaucsb-csv-parser/vcpkg.json21
6 files changed, 190 insertions, 0 deletions
diff --git a/vcpkg/ports/vincentlaucsb-csv-parser/001-fix-cmake.patch b/vcpkg/ports/vincentlaucsb-csv-parser/001-fix-cmake.patch
new file mode 100644
index 0000000..19c8c14
--- /dev/null
+++ b/vcpkg/ports/vincentlaucsb-csv-parser/001-fix-cmake.patch
@@ -0,0 +1,70 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1b920b1..c56a142 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,12 @@
+ cmake_minimum_required(VERSION 3.9)
+ project(csv)
+
++include(GNUInstallDirs)
++
++find_path(HEDLEY_INCLUDE_DIRS "hedley.h")
++find_package(mio CONFIG REQUIRED)
++find_package(string-view-lite CONFIG REQUIRED)
++
+ if(CSV_CXX_STANDARD)
+ set(CMAKE_CXX_STANDARD ${CSV_CXX_STANDARD})
+ else()
+@@ -40,10 +46,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})
+@@ -60,6 +63,23 @@ 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)
+ # Allow for performance profiling
+diff --git a/include/internal/CMakeLists.txt b/include/internal/CMakeLists.txt
+index 4cbf58c..e9e65f8 100644
+--- a/include/internal/CMakeLists.txt
++++ b/include/internal/CMakeLists.txt
+@@ -23,6 +23,9 @@ target_sources(csv
+ "data_type.hpp"
+ )
+
+-set_target_properties(csv PROPERTIES LINKER_LANGUAGE CXX)
+-target_link_libraries(csv PRIVATE Threads::Threads)
+-target_include_directories(csv INTERFACE ../)
++set_target_properties(csv PROPERTIES LINKER_LANGUAGE CXX OUTPUT_NAME "vincentlaucsb-csv-parser-csv")
++target_include_directories(csv
++ PUBLIC ${HEDLEY_INCLUDE_DIRS}
++ INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/vincentlaucsb-csv-parser>
++)
++target_link_libraries(csv PRIVATE Threads::Threads PUBLIC mio::mio mio::mio-headers nonstd::string-view-lite)
diff --git a/vcpkg/ports/vincentlaucsb-csv-parser/002-fix-include.patch b/vcpkg/ports/vincentlaucsb-csv-parser/002-fix-include.patch
new file mode 100644
index 0000000..35eedef
--- /dev/null
+++ b/vcpkg/ports/vincentlaucsb-csv-parser/002-fix-include.patch
@@ -0,0 +1,45 @@
+diff --git a/include/internal/basic_csv_parser.hpp b/include/internal/basic_csv_parser.hpp
+index d76b2d9..8dd0110 100644
+--- a/include/internal/basic_csv_parser.hpp
++++ b/include/internal/basic_csv_parser.hpp
+@@ -15,7 +15,7 @@
+ #include <thread>
+ #include <vector>
+
+-#include "../external/mio.hpp"
++#include "mio/mmap.hpp"
+ #include "col_names.hpp"
+ #include "common.hpp"
+ #include "csv_format.hpp"
+diff --git a/include/internal/common.hpp b/include/internal/common.hpp
+index c132bfb..dff4d03 100644
+--- a/include/internal/common.hpp
++++ b/include/internal/common.hpp
+@@ -28,12 +28,12 @@
+ #pragma once
+ #include <type_traits>
+
+-#include "../external/string_view.hpp"
++#include "nonstd/string_view.hpp"
+
+ // If there is another version of Hedley, then the newer one
+ // takes precedence.
+ // See: https://github.com/nemequ/hedley
+-#include "../external/hedley.h"
++#include "hedley.h"
+
+ namespace csv {
+ #ifdef _MSC_VER
+diff --git a/include/internal/csv_reader.hpp b/include/internal/csv_reader.hpp
+index 1cdf6e0..3077395 100644
+--- a/include/internal/csv_reader.hpp
++++ b/include/internal/csv_reader.hpp
+@@ -15,7 +15,7 @@
+ #include <string>
+ #include <vector>
+
+-#include "../external/mio.hpp"
++#include "mio/mmap.hpp"
+ #include "basic_csv_parser.hpp"
+ #include "common.hpp"
+ #include "data_type.hpp"
diff --git a/vcpkg/ports/vincentlaucsb-csv-parser/003-disable-coverage.patch b/vcpkg/ports/vincentlaucsb-csv-parser/003-disable-coverage.patch
new file mode 100644
index 0000000..890f8fa
--- /dev/null
+++ b/vcpkg/ports/vincentlaucsb-csv-parser/003-disable-coverage.patch
@@ -0,0 +1,11 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -29,7 +29,6 @@ if(MSVC)
+ else()
+ # Ignore Visual Studio pragma regions
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas")
+- set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} --coverage -Og")
+ endif(MSVC)
+
+ set(CSV_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR})
diff --git a/vcpkg/ports/vincentlaucsb-csv-parser/portfile.cmake b/vcpkg/ports/vincentlaucsb-csv-parser/portfile.cmake
new file mode 100644
index 0000000..9d32fdd
--- /dev/null
+++ b/vcpkg/ports/vincentlaucsb-csv-parser/portfile.cmake
@@ -0,0 +1,39 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO vincentlaucsb/csv-parser
+ REF "${VERSION}"
+ SHA512 ead00b640569da960f5ec70ca2f85fbe0f116643ac6d69951f15d5a2030f1538bbffa1d27dd487be7fc5b8561f374103dfa115d4918534cf9ccd1143b76713b3
+ HEAD_REF master
+ PATCHES
+ 001-fix-cmake.patch
+ 002-fix-include.patch
+ 003-disable-coverage.patch
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBUILD_PYTHON=OFF
+ -DCSV_BUILD_PROGRAMS=OFF
+ MAYBE_UNUSED_VARIABLES
+ BUILD_PYTHON
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-vincentlaucsb-csv-parser)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(READ "${CURRENT_PACKAGES_DIR}/share/unofficial-vincentlaucsb-csv-parser/unofficial-vincentlaucsb-csv-parser-config.cmake" cmake_config)
+file(WRITE "${CURRENT_PACKAGES_DIR}/share/unofficial-vincentlaucsb-csv-parser/unofficial-vincentlaucsb-csv-parser-config.cmake"
+"include(CMakeFindDependencyMacro)
+find_dependency(Threads)
+find_dependency(mio CONFIG)
+find_dependency(string-view-lite CONFIG)
+${cmake_config}
+")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
diff --git a/vcpkg/ports/vincentlaucsb-csv-parser/usage b/vcpkg/ports/vincentlaucsb-csv-parser/usage
new file mode 100644
index 0000000..d7d068f
--- /dev/null
+++ b/vcpkg/ports/vincentlaucsb-csv-parser/usage
@@ -0,0 +1,4 @@
+csv-parser provides CMake targets:
+
+ find_package(unofficial-vincentlaucsb-csv-parser CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE unofficial::vincentlaucsb-csv-parser::csv)
diff --git a/vcpkg/ports/vincentlaucsb-csv-parser/vcpkg.json b/vcpkg/ports/vincentlaucsb-csv-parser/vcpkg.json
new file mode 100644
index 0000000..439d8ca
--- /dev/null
+++ b/vcpkg/ports/vincentlaucsb-csv-parser/vcpkg.json
@@ -0,0 +1,21 @@
+{
+ "name": "vincentlaucsb-csv-parser",
+ "version": "2.3.0",
+ "description": "A modern C++ library for reading, writing, and analyzing CSV (and similar) files.",
+ "homepage": "https://github.com/vincentlaucsb/csv-parser",
+ "license": "MIT",
+ "supports": "!uwp",
+ "dependencies": [
+ "hedley",
+ "mio",
+ "string-view-lite",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}