From 87a1f4ca0b7268b6dea499b4873010c1c79b7791 Mon Sep 17 00:00:00 2001 From: Alejandro de Haro Date: Wed, 5 Feb 2020 11:54:09 +0100 Subject: [PATCH 1/2] Adds support for CMake --- CMakeLists.txt | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..38b50e4 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,47 @@ +cmake_minimum_required(VERSION 3.1.0) +project(fast_cpp_csv_parser) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +#------------------- COMPILATION FLAGS ---------------------------------------- + +if (NOT "${CMAKE_BUILD_TYPE}" STREQUAL "") + string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE) +endif() + +if ("${CMAKE_BUILD_TYPE}" STREQUAL "RELEASE") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O3") +else() + set(CMAKE_BUILD_TYPE DEBUG) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -O0") +endif() +message(STATUS "Building ${CMAKE_PROJECT_NAME} in ${CMAKE_BUILD_TYPE} mode") + +#------------------- FILE IDENTIFICATION -------------------------------------- + +set(FAST_CPP_CSV_PARSER_LIB ${CMAKE_PROJECT_NAME}) +set(FAST_CPP_CSV_PARSER_SRC + csv.h +) + +#------------------- LIBRARY DECLARATION -------------------------------------- + +add_library(${FAST_CPP_CSV_PARSER_LIB} ${FAST_CPP_CSV_PARSER_SRC}) +set_target_properties(${FAST_CPP_CSV_PARSER_LIB} PROPERTIES + LINKER_LANGUAGE CXX +) +#------------------- LIBRARY DEPENDENCY LINKING ------------------------------- + +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) + +target_link_libraries(${FAST_CPP_CSV_PARSER_LIB} + Threads::Threads +) + +#------------------- INCLUDE DIRECTORIES TO SEARCH PATH ----------------------- + +target_include_directories(${FAST_CPP_CSV_PARSER_LIB} PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} +) From c44b72355a2f3f0ddc187bcc02a93898175f2d6f Mon Sep 17 00:00:00 2001 From: Alejandro de Haro Date: Mon, 8 Jun 2020 23:08:59 +0200 Subject: [PATCH 2/2] Wraps pthreads for compatibility with CSV_IO_NO_THREAD parameter --- CMakeLists.txt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 38b50e4..2ae87a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,14 +31,21 @@ add_library(${FAST_CPP_CSV_PARSER_LIB} ${FAST_CPP_CSV_PARSER_SRC}) set_target_properties(${FAST_CPP_CSV_PARSER_LIB} PROPERTIES LINKER_LANGUAGE CXX ) + #------------------- LIBRARY DEPENDENCY LINKING ------------------------------- -set(THREADS_PREFER_PTHREAD_FLAG ON) -find_package(Threads REQUIRED) +option(USE_THREADS "Enable the use of threads within fast-cpp-parser" ON) -target_link_libraries(${FAST_CPP_CSV_PARSER_LIB} - Threads::Threads -) +if (USE_THREADS) + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_package(Threads REQUIRED) + + target_link_libraries(${FAST_CPP_CSV_PARSER_LIB} + Threads::Threads + ) +else() + add_definitions(-DCSV_IO_NO_THREAD) +endif() #------------------- INCLUDE DIRECTORIES TO SEARCH PATH -----------------------