From e60d8604af0b40a39db2d7b386df8177a2994e7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Bylica?= Date: Tue, 15 Jan 2019 13:56:39 +0100 Subject: [PATCH] Squashed 'cmake/cable/' changes from 3e54f97..1bcca8c 1bcca8c Cable 0.2.16 e1770c8 Add toolchains for C++14 and C++17 cd585c5 Cable 0.2.15 f1083ec Cable: Add NO_PEDANTIC option to cable_configure_compiler() git-subtree-dir: cmake/cable git-subtree-split: 1bcca8c5efcb251d2b89d1b72237b32b1b212b55 --- CableCompilerSettings.cmake | 8 ++++++-- bootstrap.cmake | 2 +- toolchains/cxx14-pic.cmake | 9 +++++++++ toolchains/cxx14.cmake | 7 +++++++ toolchains/cxx17-pic.cmake | 9 +++++++++ toolchains/cxx17.cmake | 7 +++++++ 6 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 toolchains/cxx14-pic.cmake create mode 100644 toolchains/cxx14.cmake create mode 100644 toolchains/cxx17-pic.cmake create mode 100644 toolchains/cxx17.cmake diff --git a/CableCompilerSettings.cmake b/CableCompilerSettings.cmake index d3ea268..fd49e78 100644 --- a/CableCompilerSettings.cmake +++ b/CableCompilerSettings.cmake @@ -32,7 +32,7 @@ macro(cable_configure_compiler) if(NOT PROJECT_IS_NESTED) # Do this configuration only in the top project. - cmake_parse_arguments(cable "NO_CONVERSION_WARNINGS;NO_STACK_PROTECTION" "" "" ${ARGN}) + cmake_parse_arguments(cable "NO_CONVERSION_WARNINGS;NO_STACK_PROTECTION;NO_PEDANTIC" "" "" ${ARGN}) if(cable_UNPARSED_ARGUMENTS) message(FATAL_ERROR "cable_configure_compiler: Unknown options: ${cable_UNPARSED_ARGUMENTS}") @@ -52,8 +52,12 @@ macro(cable_configure_compiler) if(CABLE_COMPILER_GNULIKE) + if(NOT cable_NO_PEDANTIC) + add_compile_options(-pedantic) + endif() + # Enable basing warnings set and treat them as errors. - add_compile_options(-pedantic -Werror -Wall -Wextra) + add_compile_options(-Werror -Wall -Wextra) if(NOT cable_NO_CONVERSION_WARNINGS) # Enable conversion warnings if not explicitly disabled. diff --git a/bootstrap.cmake b/bootstrap.cmake index 0e60126..554cd0b 100644 --- a/bootstrap.cmake +++ b/bootstrap.cmake @@ -10,7 +10,7 @@ # # This is internal variable automatically updated with external tools. # Use CABLE_VERSION variable if you need this information. -set(version 0.2.14) +set(version 0.2.16) # For convenience, add the project CMake module dir to module path. set(module_dir ${CMAKE_CURRENT_SOURCE_DIR}/cmake) diff --git a/toolchains/cxx14-pic.cmake b/toolchains/cxx14-pic.cmake new file mode 100644 index 0000000..507771f --- /dev/null +++ b/toolchains/cxx14-pic.cmake @@ -0,0 +1,9 @@ +# Cable: CMake Bootstrap Library. +# Copyright 2019 Pawel Bylica. +# Licensed under the Apache License, Version 2.0. + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) +set(CMAKE_CXX_EXTENSIONS OFF) + +set(CMAKE_POSITION_INDEPENDENT_CODE ON) diff --git a/toolchains/cxx14.cmake b/toolchains/cxx14.cmake new file mode 100644 index 0000000..646acaf --- /dev/null +++ b/toolchains/cxx14.cmake @@ -0,0 +1,7 @@ +# Cable: CMake Bootstrap Library. +# Copyright 2019 Pawel Bylica. +# Licensed under the Apache License, Version 2.0. + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) +set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/toolchains/cxx17-pic.cmake b/toolchains/cxx17-pic.cmake new file mode 100644 index 0000000..edb3559 --- /dev/null +++ b/toolchains/cxx17-pic.cmake @@ -0,0 +1,9 @@ +# Cable: CMake Bootstrap Library. +# Copyright 2019 Pawel Bylica. +# Licensed under the Apache License, Version 2.0. + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) +set(CMAKE_CXX_EXTENSIONS OFF) + +set(CMAKE_POSITION_INDEPENDENT_CODE ON) diff --git a/toolchains/cxx17.cmake b/toolchains/cxx17.cmake new file mode 100644 index 0000000..a4efcaa --- /dev/null +++ b/toolchains/cxx17.cmake @@ -0,0 +1,7 @@ +# Cable: CMake Bootstrap Library. +# Copyright 2019 Pawel Bylica. +# Licensed under the Apache License, Version 2.0. + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) +set(CMAKE_CXX_EXTENSIONS OFF)