summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/json/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/json/cmake')
-rw-r--r--src/boost/libs/json/cmake/toolchains/clang.cmake5
-rw-r--r--src/boost/libs/json/cmake/toolchains/common.cmake24
-rw-r--r--src/boost/libs/json/cmake/toolchains/gcc.cmake5
-rw-r--r--src/boost/libs/json/cmake/toolchains/msvc.cmake33
4 files changed, 67 insertions, 0 deletions
diff --git a/src/boost/libs/json/cmake/toolchains/clang.cmake b/src/boost/libs/json/cmake/toolchains/clang.cmake
new file mode 100644
index 000000000..72dfd3e9c
--- /dev/null
+++ b/src/boost/libs/json/cmake/toolchains/clang.cmake
@@ -0,0 +1,5 @@
+# Include gcc options.
+include(${CMAKE_CURRENT_LIST_DIR}/gcc.cmake)
+
+# Compiler options.
+add_compile_options(-Wrange-loop-analysis)
diff --git a/src/boost/libs/json/cmake/toolchains/common.cmake b/src/boost/libs/json/cmake/toolchains/common.cmake
new file mode 100644
index 000000000..0b7727ae6
--- /dev/null
+++ b/src/boost/libs/json/cmake/toolchains/common.cmake
@@ -0,0 +1,24 @@
+# C++ standard.
+set(CMAKE_CXX_EXTENSIONS OFF CACHE STRING "")
+
+# Static library linkage.
+set(BUILD_SHARED_LIBS OFF CACHE STRING "")
+add_definitions(-DBOOST_ALL_STATIC_LINK=1)
+
+# Interprocedural optimization.
+set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON CACHE STRING "")
+set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL ON CACHE STRING "")
+set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO ON CACHE STRING "")
+
+# Compiler definitions.
+if(WIN32)
+ add_definitions(-D_WIN32_WINNT=0x0601 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+# Project options.
+set(BOOST_JSON_BUILD_BENCHMARKS ON CACHE STRING "")
+
+# Detect Boost tree.
+if(NOT DEFINED BOOST_JSON_IN_BOOST_TREE AND EXISTS "${CMAKE_CURRENT_LIST_DIR}/../../../../Jamroot")
+ set(BOOST_JSON_IN_BOOST_TREE ON CACHE STRING "")
+endif()
diff --git a/src/boost/libs/json/cmake/toolchains/gcc.cmake b/src/boost/libs/json/cmake/toolchains/gcc.cmake
new file mode 100644
index 000000000..b6a8e1d03
--- /dev/null
+++ b/src/boost/libs/json/cmake/toolchains/gcc.cmake
@@ -0,0 +1,5 @@
+# Include common options.
+include(${CMAKE_CURRENT_LIST_DIR}/common.cmake)
+
+# Compiler options.
+add_compile_options(-Wall -Wextra -Wpedantic -Wno-unused-parameter)
diff --git a/src/boost/libs/json/cmake/toolchains/msvc.cmake b/src/boost/libs/json/cmake/toolchains/msvc.cmake
new file mode 100644
index 000000000..b619ede09
--- /dev/null
+++ b/src/boost/libs/json/cmake/toolchains/msvc.cmake
@@ -0,0 +1,33 @@
+# Include common options.
+include(${CMAKE_CURRENT_LIST_DIR}/common.cmake)
+
+# Static runtime linkage.
+set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>" CACHE STRING "")
+
+# Compiler options.
+add_compile_options(
+ /permissive- # strict C++
+ /W4 # enable all warnings
+ /MP # multi-processor compilation
+)
+if("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "Win32") # 32-bit
+ add_compile_options(
+ /arch:SSE2
+ )
+endif()
+
+# Linker options.
+add_link_options(
+)
+
+# Disable logos.
+foreach(lang C CXX ASM_MASM RC)
+ set(CMAKE_${lang}_FLAGS_INIT "/nologo")
+endforeach()
+foreach(type EXE SHARED MODULE)
+ set(CMAKE_${type}_LINKER_FLAGS_INIT "/nologo")
+endforeach()
+
+# Silence Visual Studio CMake integration warnings.
+set(SILENCE_VS_DEFINITIONS ${CMAKE_TOOLCHAIN_FILE} ${CMAKE_C_COMPILER})
+set(SILENCE_VS_DEFINITIONS)