Example: Using csv‐parser with CMake and FetchContent (original) (raw)
This is a basic example of using CMake's FetchContent module to add csv-parser as a dependency.
This provides a simple way to integrate csv-parser into your project without having to copy and paste the single header version or using git submodules.
CMakeLists.txt
CMakeList.txt : CMake project for my-project, include source and define
project specific logic here.
cmake_minimum_required (VERSION 3.8) include(FetchContent)
project ("my-project")
Add source to this project's executable.
add_executable (my-executable "main.cpp")
if (CMAKE_VERSION VERSION_GREATER 3.12) set_property(TARGET my-executable PROPERTY CXX_STANDARD 20) endif()
Fetch csv-parser and make it available to my-executable
FetchContent_Declare(
csv
GIT_REPOSITORY https://github.com/vincentlaucsb/csv-parser.git
GIT_SHALLOW TRUE
GIT_TAG 2.2.1
)
FetchContent_MakeAvailable(csv)
target_include_directories(my-executable PRIVATE csv) target_link_libraries(my-executable csv)
main.cpp
// main.cpp : Defines the entry point for the application. //
#include "csv.hpp"
using csv::operator ""_csv;
int main() { auto rows = "Actor,Character\r\n" "Will Ferrell,Ricky Bobby\r\n" "John C. Reilly,Cal Naughton Jr.\r\n" "Sacha Baron Cohen,Jean Giard\r\n"_csv;
for (auto& row : rows) {
std::cout << row[1].get_sv() << " played by " << row[0].get_sv() << std::endl;
}
return 0;}
Example Output
