diff options
-rw-r--r-- | .gitlab-ci.yml | 10 | ||||
-rw-r--r-- | .gitlab/ci/configure_debian10_makefiles_clang.cmake | 1 | ||||
-rw-r--r-- | .gitlab/ci/env_debian10_makefiles_clang.sh | 2 | ||||
-rw-r--r-- | .gitlab/os-linux.yml | 9 | ||||
-rw-r--r-- | Help/prop_tgt/IMPORTED_OBJECTS.rst | 22 | ||||
-rw-r--r-- | Help/variable/CMAKE_CONFIGURATION_TYPES.rst | 6 | ||||
-rw-r--r-- | Modules/FindBoost.cmake | 1 | ||||
-rw-r--r-- | Source/CMakeVersion.cmake | 2 | ||||
-rw-r--r-- | Templates/MSBuild/FlagTables/v141_CL.json | 53 | ||||
-rw-r--r-- | Templates/MSBuild/FlagTables/v142_CL.json | 238 |
10 files changed, 301 insertions, 43 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bf00222..236eac9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -176,6 +176,16 @@ test:debian10-aarch64-ninja: variables: CMAKE_CI_NO_MR: "true" +test:debian10-makefiles-clang: + extends: + - .debian10_makefiles_clang + - .cmake_test_linux_release + - .linux_builder_tags_qt + - .run_manually + - .needs_centos6_x86_64 + variables: + CMAKE_CI_JOB_NIGHTLY: "true" + test:fedora34-makefiles: extends: - .fedora34_makefiles diff --git a/.gitlab/ci/configure_debian10_makefiles_clang.cmake b/.gitlab/ci/configure_debian10_makefiles_clang.cmake new file mode 100644 index 0000000..20863a2 --- /dev/null +++ b/.gitlab/ci/configure_debian10_makefiles_clang.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/env_debian10_makefiles_clang.sh b/.gitlab/ci/env_debian10_makefiles_clang.sh new file mode 100644 index 0000000..e0d5d61 --- /dev/null +++ b/.gitlab/ci/env_debian10_makefiles_clang.sh @@ -0,0 +1,2 @@ +export CC=/usr/bin/clang-7 +export CXX=/usr/bin/clang++-7 diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index a8c07d8..015df4f 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -149,6 +149,15 @@ CTEST_NO_WARNINGS_ALLOWED: 1 CMAKE_GENERATOR: "Unix Makefiles" +### Clang Compiler + +.debian10_makefiles_clang: + extends: .debian10 + + variables: + CMAKE_CONFIGURATION: debian10_makefiles_clang + CMAKE_GENERATOR: "Unix Makefiles" + ### Intel Compiler .intelcompiler: diff --git a/Help/prop_tgt/IMPORTED_OBJECTS.rst b/Help/prop_tgt/IMPORTED_OBJECTS.rst index f3577eb..d71c219 100644 --- a/Help/prop_tgt/IMPORTED_OBJECTS.rst +++ b/Help/prop_tgt/IMPORTED_OBJECTS.rst @@ -68,26 +68,24 @@ architecture: # /path/to/somewhere/objects-iphonesimulator/x86_64/func.o In some cases, you may want to have configuration-specific object files -as well. The :variable:`CMAKE_CFG_INTDIR` variable can be a convenient -way of capturing this in combination with the SDK: +as well. The ``$(CONFIGURATION)`` Xcode variable is often used for this and +can be used in conjunction with the others mentioned above: .. code-block:: cmake add_library(someObjs OBJECT IMPORTED) set_property(TARGET someObjs PROPERTY IMPORTED_OBJECTS - "/path/to/somewhere/${CMAKE_CFG_INTDIR}/$(CURRENT_ARCH)/func.o" + "/path/to/somewhere/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/$(CURRENT_ARCH)/func.o" ) # Example paths: # /path/to/somewhere/Release-iphoneos/arm64/func.o # /path/to/somewhere/Debug-iphonesimulator/x86_64/func.o -When any Xcode variable or :variable:`CMAKE_CFG_INTDIR` is used, CMake is -not able to fully evaluate the path(s) at configure time. One consequence -of this is that the configuration-specific -:prop_tgt:`IMPORTED_OBJECTS_<CONFIG>` properties cannot be used, since -CMake cannot determine whether an object file exists at a particular -``<CONFIG>`` location. The ``IMPORTED_OBJECTS`` property must be used for -these situations and the configuration-specific aspects of the path must be -handled by using :variable:`CMAKE_CFG_INTDIR` or with another Xcode variable -``$(CONFIGURATION)``. +When any Xcode variable is used, CMake is not able to fully evaluate the +path(s) at configure time. One consequence of this is that the +configuration-specific :prop_tgt:`IMPORTED_OBJECTS_<CONFIG>` properties cannot +be used, since CMake cannot determine whether an object file exists at a +particular ``<CONFIG>`` location. The ``IMPORTED_OBJECTS`` property must be +used for these situations and the configuration-specific aspects of the path +should be handled by the ``$(CONFIGURATION)`` Xcode variable. diff --git a/Help/variable/CMAKE_CONFIGURATION_TYPES.rst b/Help/variable/CMAKE_CONFIGURATION_TYPES.rst index 34e99eb..8fcc798 100644 --- a/Help/variable/CMAKE_CONFIGURATION_TYPES.rst +++ b/Help/variable/CMAKE_CONFIGURATION_TYPES.rst @@ -6,5 +6,7 @@ Specifies the available build types on multi-config generators. This specifies what build types (configurations) will be available such as ``Debug``, ``Release``, ``RelWithDebInfo`` etc. This has reasonable defaults on most platforms, but can be extended to provide other build -types. See also :variable:`CMAKE_BUILD_TYPE` for details of managing -configuration data, and :variable:`CMAKE_CFG_INTDIR`. +types. + +See :variable:`CMAKE_BUILD_TYPE` for specifying the configuration with +single-config generators. diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index 324ae27..f7605c4 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -1405,6 +1405,7 @@ function(_Boost_COMPONENT_HEADERS component _hdrs) set(_Boost_LOCALE_HEADERS "boost/locale.hpp") set(_Boost_LOG_HEADERS "boost/log/core.hpp") set(_Boost_LOG_SETUP_HEADERS "boost/log/detail/setup_config.hpp") + set(_Boost_JSON_HEADERS "boost/json.hpp") set(_Boost_MATH_HEADERS "boost/math_fwd.hpp") set(_Boost_MATH_C99_HEADERS "boost/math/tr1.hpp") set(_Boost_MATH_C99F_HEADERS "boost/math/tr1.hpp") diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 90bc5b5..7915a9c 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,7 +1,7 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 20) -set(CMake_VERSION_PATCH 20210604) +set(CMake_VERSION_PATCH 20210608) #set(CMake_VERSION_RC 0) set(CMake_VERSION_IS_DIRTY 0) diff --git a/Templates/MSBuild/FlagTables/v141_CL.json b/Templates/MSBuild/FlagTables/v141_CL.json index 01fafe4..5b18e32 100644 --- a/Templates/MSBuild/FlagTables/v141_CL.json +++ b/Templates/MSBuild/FlagTables/v141_CL.json @@ -421,8 +421,29 @@ }, { "name": "SpectreMitigation", + "switch": "Qspectre-load-cf", + "comment": "All Control Flow Loads", + "value": "SpectreLoadCF", + "flags": [] + }, + { + "name": "SpectreMitigation", + "switch": "Qspectre-load", + "comment": "All Loads", + "value": "SpectreLoad", + "flags": [] + }, + { + "name": "SpectreMitigation", + "switch": "Qspectre-", + "comment": "Disabled", + "value": "false", + "flags": [] + }, + { + "name": "SpectreMitigation", "switch": "Qspectre", - "comment": "Spectre mitigations", + "comment": "Enabled", "value": "Spectre", "flags": [] }, @@ -589,6 +610,20 @@ "flags": [] }, { + "name": "SupportJustMyCode", + "switch": "JMC-", + "comment": "", + "value": "false", + "flags": [] + }, + { + "name": "SupportJustMyCode", + "switch": "JMC", + "comment": "", + "value": "true", + "flags": [] + }, + { "name": "CompileAsWinRT", "switch": "ZW", "comment": "Consume Windows Runtime Extension", @@ -812,7 +847,7 @@ { "name": "ConformanceMode", "switch": "permissive-", - "comment": "Conformance mode enabled", + "comment": "Conformance mode", "value": "true", "flags": [] }, @@ -1250,19 +1285,5 @@ "comment": "C++14 (GNU Dialect)", "value": "gnu++1y", "flags": [] - }, - { - "name": "SupportJustMyCode", - "switch": "JMC-", - "comment": "", - "value": "false", - "flags": [] - }, - { - "name": "SupportJustMyCode", - "switch": "JMC", - "comment": "", - "value": "true", - "flags": [] } ] diff --git a/Templates/MSBuild/FlagTables/v142_CL.json b/Templates/MSBuild/FlagTables/v142_CL.json index 3305e56..650ff6c 100644 --- a/Templates/MSBuild/FlagTables/v142_CL.json +++ b/Templates/MSBuild/FlagTables/v142_CL.json @@ -386,6 +386,13 @@ }, { "name": "EnableEnhancedInstructionSet", + "switch": "arch:AVX512", + "comment": "Advanced Vector Extensions 512", + "value": "AdvancedVectorExtensions512", + "flags": [] + }, + { + "name": "EnableEnhancedInstructionSet", "switch": "arch:IA32", "comment": "No Enhanced Instructions", "value": "NoExtensions", @@ -421,19 +428,47 @@ }, { "name": "SpectreMitigation", + "switch": "Qspectre-load-cf", + "comment": "All Control Flow Loads", + "value": "SpectreLoadCF", + "flags": [] + }, + { + "name": "SpectreMitigation", + "switch": "Qspectre-load", + "comment": "All Loads", + "value": "SpectreLoad", + "flags": [] + }, + { + "name": "SpectreMitigation", "switch": "Qspectre-", - "comment": "Spectre mitigations disabled", + "comment": "Disabled", "value": "false", "flags": [] }, { "name": "SpectreMitigation", "switch": "Qspectre", - "comment": "Spectre mitigations enabled", + "comment": "Enabled", "value": "Spectre", "flags": [] }, { + "name": "ConformanceMode", + "switch": "permissive-", + "comment": "Yes", + "value": "true", + "flags": [] + }, + { + "name": "ConformanceMode", + "switch": "permissive", + "comment": "No", + "value": "false", + "flags": [] + }, + { "name": "LanguageStandard", "switch": "std:c++14", "comment": "ISO C++14 Standard", @@ -617,6 +652,27 @@ "flags": [] }, { + "name": "CompileAs", + "switch": "interface", + "comment": "Compile as C++ Module Code", + "value": "CompileAsCppModule", + "flags": [] + }, + { + "name": "CompileAs", + "switch": "internalPartition", + "comment": "Compile as C++ Module Internal Partition", + "value": "CompileAsCppModuleInternalPartition", + "flags": [] + }, + { + "name": "CompileAs", + "switch": "exportHeader", + "comment": "Compile as C++ Header Unit", + "value": "CompileAsHeaderUnit", + "flags": [] + }, + { "name": "ErrorReporting", "switch": "errorReport:none", "comment": "Do Not Send Report", @@ -719,6 +775,13 @@ ] }, { + "name": "ForceSynchronousPDBWrites", + "switch": "FS", + "comment": "Force Synchronous PDB Writes", + "value": "true", + "flags": [] + }, + { "name": "IntrinsicFunctions", "switch": "Oi", "comment": "Enable Intrinsic Functions", @@ -789,6 +852,20 @@ "flags": [] }, { + "name": "UseStandardPreprocessor", + "switch": "Zc:preprocessor-", + "comment": "Use Standard Conforming Preprocessor", + "value": "false", + "flags": [] + }, + { + "name": "UseStandardPreprocessor", + "switch": "Zc:preprocessor", + "comment": "Use Standard Conforming Preprocessor", + "value": "true", + "flags": [] + }, + { "name": "StringPooling", "switch": "GF-", "comment": "Enable String Pooling", @@ -873,27 +950,48 @@ "flags": [] }, { - "name": "DisableLanguageExtensions", - "switch": "Za", - "comment": "Disable Language Extensions", + "name": "IntelJCCErratum", + "switch": "QIntel-jcc-erratum", + "comment": "Enable Intel JCC Erratum Mitigation", "value": "true", "flags": [] }, { - "name": "ConformanceMode", - "switch": "permissive-", - "comment": "Conformance mode enabled", + "name": "GuardEHContMetadata", + "switch": "guard:ehcont-", + "comment": "Enable EH Continuation Metadata", + "value": "false", + "flags": [] + }, + { + "name": "GuardEHContMetadata", + "switch": "guard:ehcont", + "comment": "Enable EH Continuation Metadata", "value": "true", "flags": [] }, { - "name": "ConformanceMode", - "switch": "permissive", - "comment": "Conformance mode disabled", + "name": "GuardSignedReturns", + "switch": "guard:signret-", + "comment": "Enable Signed Returns", "value": "false", "flags": [] }, { + "name": "GuardSignedReturns", + "switch": "guard:signret", + "comment": "Enable Signed Returns", + "value": "true", + "flags": [] + }, + { + "name": "DisableLanguageExtensions", + "switch": "Za", + "comment": "Disable Language Extensions", + "value": "true", + "flags": [] + }, + { "name": "TreatWChar_tAsBuiltInType", "switch": "Zc:wchar_t-", "comment": "Treat WChar_t As Built in Type", @@ -980,7 +1078,7 @@ { "name": "EnableModules", "switch": "experimental:module", - "comment": "Enable C++ Modules (experimental)", + "comment": "Enable Experimental C++ Standard Library Modules", "value": "true", "flags": [] }, @@ -999,6 +1097,15 @@ "flags": [] }, { + "name": "GenerateModuleDependencies", + "switch": "sourceDependencies:directives", + "comment": "Generate Module Dependenices File", + "value": "true", + "flags": [ + "Continue" + ] + }, + { "name": "GenerateXMLDocumentationFiles", "switch": "doc", "comment": "Generate XML Documentation Files", @@ -1010,6 +1117,15 @@ ] }, { + "name": "GenerateSourceDependencies", + "switch": "sourceDependencies", + "comment": "Generate Source Dependencies File", + "value": "true", + "flags": [ + "Continue" + ] + }, + { "name": "BrowseInformation", "switch": "FR", "comment": "Enable Browse Information", @@ -1021,6 +1137,27 @@ ] }, { + "name": "TreatAngleIncludeAsExternal", + "switch": "external:anglebrackets", + "comment": "Treat Files Included with Angle Brackets as External", + "value": "true", + "flags": [] + }, + { + "name": "ExternalTemplatesDiagnostics", + "switch": "external:templates-", + "comment": "Template Diagnostics in External Headers", + "value": "true", + "flags": [] + }, + { + "name": "DisableAnalyzeExternal", + "switch": "analyze:external-", + "comment": "Disable Code Analysis for External Headers", + "value": "true", + "flags": [] + }, + { "name": "ShowIncludes", "switch": "showIncludes", "comment": "Show Includes", @@ -1076,6 +1213,36 @@ ] }, { + "name": "AdditionalBMIDirectories", + "switch": "ifcSearchDir", + "comment": "Additional BMI Directories", + "value": "", + "flags": [ + "UserValue", + "SemicolonAppendable" + ] + }, + { + "name": "AdditionalModuleDependencies", + "switch": "reference", + "comment": "Additional Module Dependencies", + "value": "", + "flags": [ + "UserValue", + "SemicolonAppendable" + ] + }, + { + "name": "AdditionalHeaderUnitDependencies", + "switch": "headerUnit", + "comment": "Additional Header Unit Dependencies", + "value": "", + "flags": [ + "UserValue", + "SemicolonAppendable" + ] + }, + { "name": "PreprocessorDefinitions", "switch": "D", "comment": "Preprocessor Definitions", @@ -1096,6 +1263,26 @@ ] }, { + "name": "StdIfcDirectory", + "switch": "stdIfcDir", + "comment": "", + "value": "", + "flags": [ + "UserValue", + "SemicolonAppendable" + ] + }, + { + "name": "ExternalDirectoriesEnv", + "switch": "external:env:", + "comment": "External Directories Environment Variables", + "value": "", + "flags": [ + "UserValue", + "SemicolonAppendable" + ] + }, + { "name": "DisableSpecificWarnings", "switch": "wd", "comment": "Disable Specific Warnings", @@ -1211,6 +1398,24 @@ ] }, { + "name": "ModuleOutputFile", + "switch": "ifcOutput", + "comment": "Module Output File Name", + "value": "", + "flags": [ + "UserValue" + ] + }, + { + "name": "ModuleDependenciesFile", + "switch": "sourceDependencies:directives", + "comment": "Module Dependencies File Name", + "value": "", + "flags": [ + "UserFollowing" + ] + }, + { "name": "ObjectFileName", "switch": "Fo", "comment": "Object File Name", @@ -1239,6 +1444,15 @@ ] }, { + "name": "SourceDependenciesFile", + "switch": "sourceDependencies", + "comment": "Source Dependencies File Name", + "value": "", + "flags": [ + "UserFollowing" + ] + }, + { "name": "BrowseInformationFile", "switch": "FR", "comment": "Browse Information File", |