diff --git a/cmake/cable/CableCompilerSettings.cmake b/cmake/cable/CableCompilerSettings.cmake index d3ea268..fd49e78 100644 --- a/cmake/cable/CableCompilerSettings.cmake +++ b/cmake/cable/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/cmake/cable/bootstrap.cmake b/cmake/cable/bootstrap.cmake index 0e60126..554cd0b 100644 --- a/cmake/cable/bootstrap.cmake +++ b/cmake/cable/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)