mirror of https://github.com/qt/qtdoc.git
63 lines
1.8 KiB
CMake
63 lines
1.8 KiB
CMake
|
cmake_minimum_required(VERSION 3.9)
|
||
|
project(csv)
|
||
|
|
||
|
if(CSV_CXX_STANDARD)
|
||
|
set(CMAKE_CXX_STANDARD ${CSV_CXX_STANDARD})
|
||
|
else()
|
||
|
set(CMAKE_CXX_STANDARD 17)
|
||
|
endif(CSV_CXX_STANDARD)
|
||
|
message("Building CSV library using C++${CMAKE_CXX_STANDARD}")
|
||
|
|
||
|
# Defines CSV_HAS_CXX17 in compatibility.hpp
|
||
|
if (CMAKE_VERSION VERSION_LESS "3.12.0")
|
||
|
add_definitions(-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD})
|
||
|
else()
|
||
|
add_compile_definitions(CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD})
|
||
|
endif()
|
||
|
|
||
|
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
|
||
|
find_package(Threads QUIET REQUIRED)
|
||
|
|
||
|
if(MSVC)
|
||
|
# Make Visual Studio report accurate C++ version
|
||
|
# See: https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
|
||
|
# /Wall emits warnings about the C++ standard library
|
||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /GS- /Zc:__cplusplus /W4")
|
||
|
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})
|
||
|
set(CSV_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||
|
set(CSV_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/include/)
|
||
|
set(CSV_SOURCE_DIR ${CSV_INCLUDE_DIR}/internal/)
|
||
|
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()
|
||
|
|
||
|
## Main Library
|
||
|
add_subdirectory(${CSV_SOURCE_DIR})
|
||
|
|
||
|
## Developer settings
|
||
|
if (CSV_DEVELOPER)
|
||
|
# Allow for performance profiling
|
||
|
if (MSVC)
|
||
|
target_link_options(csv PUBLIC /PROFILE)
|
||
|
endif()
|
||
|
|
||
|
# More error messages.
|
||
|
if (UNIX)
|
||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
|
||
|
-Wall -Wextra -Wsign-compare \
|
||
|
-Wwrite-strings -Wpointer-arith -Winit-self \
|
||
|
-Wconversion -Wno-sign-conversion")
|
||
|
endif()
|
||
|
endif()
|