From 5e9b3fc976c5aa9e3e9dbab3ffe4ebc0f20324f8 Mon Sep 17 00:00:00 2001 From: SpaceIm <30052553+SpaceIm@users.noreply.github.com> Date: Sun, 23 Feb 2020 01:13:05 +0100 Subject: [PATCH] add fast-cpp-csv-parser/20191004 --- recipes/fast-cpp-csv-parser/all/conandata.yml | 4 ++ recipes/fast-cpp-csv-parser/all/conanfile.py | 39 +++++++++++++++++++ .../all/test_package/CMakeLists.txt | 9 +++++ .../all/test_package/conanfile.py | 18 +++++++++ .../all/test_package/test_package.cpp | 20 ++++++++++ .../all/test_package/test_package.csv | 3 ++ recipes/fast-cpp-csv-parser/config.yml | 3 ++ 7 files changed, 96 insertions(+) create mode 100644 recipes/fast-cpp-csv-parser/all/conandata.yml create mode 100644 recipes/fast-cpp-csv-parser/all/conanfile.py create mode 100644 recipes/fast-cpp-csv-parser/all/test_package/CMakeLists.txt create mode 100644 recipes/fast-cpp-csv-parser/all/test_package/conanfile.py create mode 100644 recipes/fast-cpp-csv-parser/all/test_package/test_package.cpp create mode 100644 recipes/fast-cpp-csv-parser/all/test_package/test_package.csv create mode 100644 recipes/fast-cpp-csv-parser/config.yml diff --git a/recipes/fast-cpp-csv-parser/all/conandata.yml b/recipes/fast-cpp-csv-parser/all/conandata.yml new file mode 100644 index 0000000000000..de76f5e786747 --- /dev/null +++ b/recipes/fast-cpp-csv-parser/all/conandata.yml @@ -0,0 +1,4 @@ +sources: + "20191004": + url: "https://github.com/ben-strasser/fast-cpp-csv-parser/archive/713c5fd2ba1b6d145296a21fc7f9dee576daaa4f.zip" + sha256: "cef1aa042b8d82722e02af2f09659d5b8aeba10fcf431b2fe8ce452798423a56" diff --git a/recipes/fast-cpp-csv-parser/all/conanfile.py b/recipes/fast-cpp-csv-parser/all/conanfile.py new file mode 100644 index 0000000000000..8d0ec2eb4ed58 --- /dev/null +++ b/recipes/fast-cpp-csv-parser/all/conanfile.py @@ -0,0 +1,39 @@ +import os + +from conans import ConanFile, tools + +class FastcppcsvparserConan(ConanFile): + name = "fast-cpp-csv-parser" + description = "C++11 header-only library for reading comma separated value (CSV) files." + license = "BSD-3-Clause" + topics = ("conan", "fast-cpp-csv-parser", "csv", "parser", "header-only") + homepage = "https://github.com/ben-strasser/fast-cpp-csv-parser" + url = "https://github.com/conan-io/conan-center-index" + settings = "os" + no_copy_source = True + options = {"with_thread": [True, False]} + default_options = {"with_thread": True} + + @property + def _source_subfolder(self): + return "source_subfolder" + + def source(self): + tools.get(**self.conan_data["sources"][self.version]) + url = self.conan_data["sources"][self.version]["url"] + extracted_dir = self.name + "-" + os.path.splitext(os.path.basename(url))[0] + os.rename(extracted_dir, self._source_subfolder) + + def package(self): + self.copy("LICENSE", dst="licenses", src=self._source_subfolder) + self.copy("csv.h", dst=os.path.join("include", "fast-cpp-csv-parser"), src=self._source_subfolder) + + def package_id(self): + self.info.header_only() + + def package_info(self): + self.cpp_info.includedirs = ["include", os.path.join("include", "fast-cpp-csv-parser")] + if not self.options.with_thread: + self.cpp_info.defines.append("CSV_IO_NO_THREAD") + if self.settings.os == "Linux" and self.options.with_thread: + self.cpp_info.system_libs.append("pthread") diff --git a/recipes/fast-cpp-csv-parser/all/test_package/CMakeLists.txt b/recipes/fast-cpp-csv-parser/all/test_package/CMakeLists.txt new file mode 100644 index 0000000000000..94e2f7e9e4627 --- /dev/null +++ b/recipes/fast-cpp-csv-parser/all/test_package/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 2.8.11) +project(test_package) + +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_basic_setup() + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS}) +set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 11) diff --git a/recipes/fast-cpp-csv-parser/all/test_package/conanfile.py b/recipes/fast-cpp-csv-parser/all/test_package/conanfile.py new file mode 100644 index 0000000000000..fe0992e2e1be2 --- /dev/null +++ b/recipes/fast-cpp-csv-parser/all/test_package/conanfile.py @@ -0,0 +1,18 @@ +import os + +from conans import ConanFile, CMake, tools + +class TestPackageConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "cmake" + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if not tools.cross_building(self.settings): + csv_name = os.path.join(self.source_folder, "test_package.csv") + bin_path = os.path.join("bin", "test_package") + self.run("{0} {1}".format(bin_path, csv_name), run_environment=True) diff --git a/recipes/fast-cpp-csv-parser/all/test_package/test_package.cpp b/recipes/fast-cpp-csv-parser/all/test_package/test_package.cpp new file mode 100644 index 0000000000000..ef153d5b367a6 --- /dev/null +++ b/recipes/fast-cpp-csv-parser/all/test_package/test_package.cpp @@ -0,0 +1,20 @@ +#include + +#include +#include + +int main(int argc, char **argv) { + if (argc < 2) { + std::cerr << "Need at least one argument\n"; + return 1; + } + + io::CSVReader<3> in(argv[1]); + in.read_header(io::ignore_extra_column, "First Name", "Last Name", "Age"); + std::string first_name; std::string last_name; double age; + while (in.read_row(first_name, last_name, age)) { + std::cout << first_name << " " << last_name << " " << age << '\n'; + } + + return 0; +} diff --git a/recipes/fast-cpp-csv-parser/all/test_package/test_package.csv b/recipes/fast-cpp-csv-parser/all/test_package/test_package.csv new file mode 100644 index 0000000000000..09cbcd57c8cde --- /dev/null +++ b/recipes/fast-cpp-csv-parser/all/test_package/test_package.csv @@ -0,0 +1,3 @@ +First Name,Last Name,Age +John,Doe,38 +Mary,Blake,25 diff --git a/recipes/fast-cpp-csv-parser/config.yml b/recipes/fast-cpp-csv-parser/config.yml new file mode 100644 index 0000000000000..da94daecfbac5 --- /dev/null +++ b/recipes/fast-cpp-csv-parser/config.yml @@ -0,0 +1,3 @@ +versions: + "20191004": + folder: all