Update upstream source from tag 'upstream/3.27.5'

Update to upstream version '3.27.5'
with Debian dir 32f859ac98
ci/unstable
Timo Röhling 1 year ago
commit 8213a25fc3

@ -21,6 +21,8 @@ support per-configuration specification. For example, the code:
selects for the target ``foo`` the program database debug information format selects for the target ``foo`` the program database debug information format
for the Debug configuration. for the Debug configuration.
This property is initialized from the value of the
:variable:`CMAKE_MSVC_DEBUG_INFORMATION_FORMAT` variable, if it is set.
If this property is not set, CMake selects a debug information format using If this property is not set, CMake selects a debug information format using
the default value ``$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>``, if the default value ``$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>``, if
supported by the compiler, and otherwise supported by the compiler, and otherwise

@ -285,8 +285,8 @@ Changes made since CMake 3.27.0 include the following.
to select the Windows 8.1 SDK. In CMake 3.27.[0-1] the ``version=`` field to select the Windows 8.1 SDK. In CMake 3.27.[0-1] the ``version=`` field
was limited to selecting Windows 10 SDKs. was limited to selecting Windows 10 SDKs.
3.27.3, 3.27.4 3.27.3, 3.27.4, 3.27.5
-------------- ----------------------
* These versions made no changes to documented features or interfaces. * These versions made no changes to documented features or interfaces.
Some implementation updates were made to support ecosystem changes Some implementation updates were made to support ecosystem changes

@ -1365,7 +1365,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_TIMER_DEPENDENCIES chrono) set(_Boost_TIMER_DEPENDENCIES chrono)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic) set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization) set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
else() elseif(Boost_VERSION_STRING VERSION_LESS 1.83.0)
set(_Boost_CONTRACT_DEPENDENCIES thread chrono) set(_Boost_CONTRACT_DEPENDENCIES thread chrono)
set(_Boost_COROUTINE_DEPENDENCIES context) set(_Boost_COROUTINE_DEPENDENCIES context)
set(_Boost_FIBER_DEPENDENCIES context) set(_Boost_FIBER_DEPENDENCIES context)
@ -1380,7 +1380,21 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_TIMER_DEPENDENCIES chrono) set(_Boost_TIMER_DEPENDENCIES chrono)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic) set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization) set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.83.0 AND NOT Boost_NO_WARN_NEW_VERSIONS) else()
set(_Boost_CONTRACT_DEPENDENCIES thread chrono)
set(_Boost_COROUTINE_DEPENDENCIES context)
set(_Boost_FIBER_DEPENDENCIES context)
set(_Boost_IOSTREAMS_DEPENDENCIES regex)
set(_Boost_JSON_DEPENDENCIES container)
set(_Boost_LOG_DEPENDENCIES log_setup filesystem thread regex chrono atomic)
set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l)
set(_Boost_MPI_DEPENDENCIES serialization)
set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
set(_Boost_THREAD_DEPENDENCIES chrono atomic)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.84.0 AND NOT Boost_NO_WARN_NEW_VERSIONS)
message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets") message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
endif() endif()
endif() endif()
@ -1655,7 +1669,7 @@ else()
# _Boost_COMPONENT_HEADERS. See the instructions at the top of # _Boost_COMPONENT_HEADERS. See the instructions at the top of
# _Boost_COMPONENT_DEPENDENCIES. # _Boost_COMPONENT_DEPENDENCIES.
set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS} set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
"1.82.0" "1.82" "1.81.0" "1.81" "1.80.0" "1.80" "1.79.0" "1.79" "1.83.0" "1.83" "1.82.0" "1.82" "1.81.0" "1.81" "1.80.0" "1.80" "1.79.0" "1.79"
"1.78.0" "1.78" "1.77.0" "1.77" "1.76.0" "1.76" "1.75.0" "1.75" "1.74.0" "1.74" "1.78.0" "1.78" "1.77.0" "1.77" "1.76.0" "1.76" "1.75.0" "1.75" "1.74.0" "1.74"
"1.73.0" "1.73" "1.72.0" "1.72" "1.71.0" "1.71" "1.70.0" "1.70" "1.69.0" "1.69" "1.73.0" "1.73" "1.72.0" "1.72" "1.71.0" "1.71" "1.70.0" "1.70" "1.69.0" "1.69"
"1.68.0" "1.68" "1.67.0" "1.67" "1.66.0" "1.66" "1.65.1" "1.65.0" "1.65" "1.68.0" "1.68" "1.67.0" "1.67" "1.66.0" "1.66" "1.65.1" "1.65.0" "1.65"

@ -374,6 +374,7 @@ function(FortranCInterface_VERIFY)
"-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}" "-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}"
"-DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}" "-DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}"
"-DFortranCInterface_BINARY_DIR=${FortranCInterface_BINARY_DIR}" "-DFortranCInterface_BINARY_DIR=${FortranCInterface_BINARY_DIR}"
"-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}"
${_FortranCInterface_OSX_ARCH} ${_FortranCInterface_OSX_ARCH}
${_FortranCInterface_EXE_LINKER_FLAGS} ${_FortranCInterface_EXE_LINKER_FLAGS}
OUTPUT_VARIABLE _output) OUTPUT_VARIABLE _output)

@ -1,7 +1,7 @@
# CMake version number components. # CMake version number components.
set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 27) set(CMake_VERSION_MINOR 27)
set(CMake_VERSION_PATCH 4) set(CMake_VERSION_PATCH 5)
#set(CMake_VERSION_RC 0) #set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0) set(CMake_VERSION_IS_DIRTY 0)
@ -21,7 +21,7 @@ endif()
if(NOT CMake_VERSION_NO_GIT) if(NOT CMake_VERSION_NO_GIT)
# If this source was exported by 'git archive', use its commit info. # If this source was exported by 'git archive', use its commit info.
set(git_info [==[c3977582b7 CMake 3.27.4]==]) set(git_info [==[7d3b4868d0 CMake 3.27.5]==])
# Otherwise, try to identify the current development source version. # Otherwise, try to identify the current development source version.
if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* " if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* "

@ -309,6 +309,9 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
// specify target // specify target
::curl_easy_setopt(curl, CURLOPT_URL, upload_as.c_str()); ::curl_easy_setopt(curl, CURLOPT_URL, upload_as.c_str());
// follow redirects
::curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
// CURLAUTH_BASIC is default, and here we allow additional methods, // CURLAUTH_BASIC is default, and here we allow additional methods,
// including more secure ones // including more secure ones
::curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); ::curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

@ -96,7 +96,7 @@ else()
set(CMake_HAVE_CXX_FILESYSTEM FALSE) set(CMake_HAVE_CXX_FILESYSTEM FALSE)
endif() endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "armv7l|sparc") if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|aarch64)$")
cm_check_cxx_feature(atomic_builtin) cm_check_cxx_feature(atomic_builtin)
if(NOT CMake_HAVE_CXX_ATOMIC_BUILTIN) if(NOT CMake_HAVE_CXX_ATOMIC_BUILTIN)
set(cm_check_cxx_feature_LINK_LIBRARIES atomic) set(cm_check_cxx_feature_LINK_LIBRARIES atomic)

@ -533,11 +533,14 @@ cmComputeLinkInformation::GetObjectLibrariesLinked() const
bool cmComputeLinkInformation::Compute() bool cmComputeLinkInformation::Compute()
{ {
// Skip targets that do not link. // Skip targets that do not link or have link-like information consumers may
// need (namely modules).
if (!(this->Target->GetType() == cmStateEnums::EXECUTABLE || if (!(this->Target->GetType() == cmStateEnums::EXECUTABLE ||
this->Target->GetType() == cmStateEnums::SHARED_LIBRARY || this->Target->GetType() == cmStateEnums::SHARED_LIBRARY ||
this->Target->GetType() == cmStateEnums::MODULE_LIBRARY || this->Target->GetType() == cmStateEnums::MODULE_LIBRARY ||
this->Target->GetType() == cmStateEnums::STATIC_LIBRARY)) { this->Target->GetType() == cmStateEnums::STATIC_LIBRARY ||
this->Target->HaveCxx20ModuleSources() ||
this->Target->HaveFortranSources())) {
return false; return false;
} }

@ -106,10 +106,11 @@ Json::Value CollationInformationCxxModules(
auto lookup = sf_map.find(file); auto lookup = sf_map.find(file);
if (lookup == sf_map.end()) { if (lookup == sf_map.end()) {
gt->Makefile->IssueMessage( gt->Makefile->IssueMessage(
MessageType::INTERNAL_ERROR, MessageType::FATAL_ERROR,
cmStrCat("Target \"", tgt->GetName(), "\" has source file \"", cmStrCat("Target \"", tgt->GetName(), "\" has source file\n ",
file, file,
R"(" which is not in any of its "FILE_SET BASE_DIRS".)")); "\nin a \"FILE_SET TYPE CXX_MODULES\" but it is not "
"scheduled for compilation."));
continue; continue;
} }

@ -23,6 +23,7 @@ class cmGeneratorTarget;
SELECT(F, EvaluatingSystemIncludeDirectories, SYSTEM_INCLUDE_DIRECTORIES) \ SELECT(F, EvaluatingSystemIncludeDirectories, SYSTEM_INCLUDE_DIRECTORIES) \
SELECT(F, EvaluatingCompileDefinitions, COMPILE_DEFINITIONS) \ SELECT(F, EvaluatingCompileDefinitions, COMPILE_DEFINITIONS) \
SELECT(F, EvaluatingCompileOptions, COMPILE_OPTIONS) \ SELECT(F, EvaluatingCompileOptions, COMPILE_OPTIONS) \
SELECT(F, EvaluatingAutoMocMacroNames, AUTOMOC_MACRO_NAMES) \
SELECT(F, EvaluatingAutoUicOptions, AUTOUIC_OPTIONS) \ SELECT(F, EvaluatingAutoUicOptions, AUTOUIC_OPTIONS) \
SELECT(F, EvaluatingSources, SOURCES) \ SELECT(F, EvaluatingSources, SOURCES) \
SELECT(F, EvaluatingCompileFeatures, COMPILE_FEATURES) \ SELECT(F, EvaluatingCompileFeatures, COMPILE_FEATURES) \

@ -8873,6 +8873,15 @@ bool cmGeneratorTarget::HaveFortranSources(std::string const& config) const
}); });
} }
bool cmGeneratorTarget::HaveFortranSources() const
{
auto sources = cmGeneratorTarget::GetAllConfigSources();
return std::any_of(sources.begin(), sources.end(),
[](AllConfigSource const& sf) -> bool {
return sf.Source->GetLanguage() == "Fortran"_s;
});
}
bool cmGeneratorTarget::HaveCxx20ModuleSources() const bool cmGeneratorTarget::HaveCxx20ModuleSources() const
{ {
auto const& fs_names = this->Target->GetAllFileSetNames(); auto const& fs_names = this->Target->GetAllFileSetNames();

@ -1247,6 +1247,7 @@ public:
cmGeneratorTarget const* t2) const; cmGeneratorTarget const* t2) const;
}; };
bool HaveFortranSources() const;
bool HaveFortranSources(std::string const& config) const; bool HaveFortranSources(std::string const& config) const;
// C++20 module support queries. // C++20 module support queries.

@ -2540,6 +2540,12 @@ void cmVisualStudio10TargetGenerator::WriteAllSources(Elem& e0)
break; break;
} }
std::string config;
if (!this->Configurations.empty()) {
config = this->Configurations[si.Configs[0]];
}
auto const* fs =
this->GeneratorTarget->GetFileSetForSource(config, si.Source);
if (tool) { if (tool) {
// Compute set of configurations to exclude, if any. // Compute set of configurations to exclude, if any.
std::vector<size_t> const& include_configs = si.Configs; std::vector<size_t> const& include_configs = si.Configs;
@ -2604,6 +2610,13 @@ void cmVisualStudio10TargetGenerator::WriteAllSources(Elem& e0)
if (si.Kind == cmGeneratorTarget::SourceKindObjectSource || if (si.Kind == cmGeneratorTarget::SourceKindObjectSource ||
si.Kind == cmGeneratorTarget::SourceKindUnityBatched) { si.Kind == cmGeneratorTarget::SourceKindUnityBatched) {
this->OutputSourceSpecificFlags(e2, si.Source); this->OutputSourceSpecificFlags(e2, si.Source);
} else if (fs && fs->GetType() == "CXX_MODULES"_s) {
this->GeneratorTarget->Makefile->IssueMessage(
MessageType::FATAL_ERROR,
cmStrCat("Target \"", this->GeneratorTarget->GetName(),
"\" has source file\n ", si.Source->GetFullPath(),
"\nin a \"FILE_SET TYPE CXX_MODULES\" but it is not "
"scheduled for compilation."));
} }
if (si.Source->GetPropertyAsBool("SKIP_PRECOMPILE_HEADERS")) { if (si.Source->GetPropertyAsBool("SKIP_PRECOMPILE_HEADERS")) {
e2.Element("PrecompiledHeader", "NotUsing"); e2.Element("PrecompiledHeader", "NotUsing");
@ -2613,6 +2626,13 @@ void cmVisualStudio10TargetGenerator::WriteAllSources(Elem& e0)
} }
this->FinishWritingSource(e2, toolSettings); this->FinishWritingSource(e2, toolSettings);
} else if (fs && fs->GetType() == "CXX_MODULES"_s) {
this->GeneratorTarget->Makefile->IssueMessage(
MessageType::FATAL_ERROR,
cmStrCat("Target \"", this->GeneratorTarget->GetName(),
"\" has source file\n ", si.Source->GetFullPath(),
"\nin a \"FILE_SET TYPE CXX_MODULES\" but it is not "
"scheduled for compilation."));
} }
} }
@ -3855,7 +3875,10 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaLinkOptions(
void cmVisualStudio10TargetGenerator::WriteCudaLinkOptions( void cmVisualStudio10TargetGenerator::WriteCudaLinkOptions(
Elem& e1, std::string const& configName) Elem& e1, std::string const& configName)
{ {
if (this->GeneratorTarget->GetType() > cmStateEnums::MODULE_LIBRARY) { // We need to write link options for OBJECT libraries so that
// we override the default device link behavior ( enabled ) when
// building object libraries with ptx/optix-ir/etc
if (this->GeneratorTarget->GetType() > cmStateEnums::OBJECT_LIBRARY) {
return; return;
} }

@ -10,6 +10,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/../CUBIN/kernelB.cu
${CMAKE_CURRENT_SOURCE_DIR}/../CUBIN/kernelC.cu) ${CMAKE_CURRENT_SOURCE_DIR}/../CUBIN/kernelC.cu)
set_property(TARGET CudaFATBIN PROPERTY CUDA_FATBIN_COMPILATION ON) set_property(TARGET CudaFATBIN PROPERTY CUDA_FATBIN_COMPILATION ON)
set_property(TARGET CudaFATBIN PROPERTY CUDA_SEPARABLE_COMPILATION ON)
# Will use `cuModuleLoadFatBinary` to load the fatbinaries # Will use `cuModuleLoadFatBinary` to load the fatbinaries
add_executable(CudaOnlyFatbin main.cu) add_executable(CudaOnlyFatbin main.cu)

@ -13,6 +13,7 @@ if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "11.7.0")
set_property(TARGET CudaOptix PROPERTY CUDA_OPTIX_COMPILATION ON) set_property(TARGET CudaOptix PROPERTY CUDA_OPTIX_COMPILATION ON)
endif() endif()
set_property(TARGET CudaOptix PROPERTY CUDA_SEPARABLE_COMPILATION ON)
set_property(TARGET CudaOptix PROPERTY CUDA_ARCHITECTURES native) set_property(TARGET CudaOptix PROPERTY CUDA_ARCHITECTURES native)
add_executable(CudaOnlyOptixIR main.cu) add_executable(CudaOnlyOptixIR main.cu)

@ -15,6 +15,11 @@ CMake Error in CMakeLists.txt:
been enabled been enabled
| The "nocxx" target contains C\+\+ module sources which are not supported by | The "nocxx" target contains C\+\+ module sources which are not supported by
the generator the generator
| Target "nocxx" has source file
.*/Tests/RunCMake/CXXModules/sources/module.cxx
in a "FILE_SET TYPE CXX_MODULES" but it is not scheduled for compilation.
) )
)* )*
CMake Generate step failed. Build files cannot be regenerated correctly. CMake Generate step failed. Build files cannot be regenerated correctly.

@ -0,0 +1,16 @@
CMake Warning \(dev\) at NotCompiledSourceModules.cmake:5 \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:6 \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
(CMake Error in CMakeLists.txt:
Target "not-cxx-source" has source file
.*/Tests/RunCMake/CXXModules/sources/not-compiled.txt
in a "FILE_SET TYPE CXX_MODULES" but it is not scheduled for compilation.
)+
CMake Generate step failed. Build files cannot be regenerated correctly.

@ -0,0 +1,13 @@
enable_language(CXX)
set(CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE "")
add_library(not-cxx-source)
target_sources(not-cxx-source
PRIVATE
sources/cxx-anchor.cxx
PUBLIC
FILE_SET fs TYPE CXX_MODULES FILES
sources/not-compiled.txt)
target_compile_features(not-cxx-source
PRIVATE
cxx_std_20)

@ -71,8 +71,9 @@ foreach (fileset_type IN LISTS fileset_types)
endforeach () endforeach ()
run_cmake("FileSet${fileset_type}InterfaceImported") run_cmake("FileSet${fileset_type}InterfaceImported")
# Test the error message when a non-C++ source file is found in the source # Test the error messages when a non-C++ source file is found in the source
# list. # list.
run_cmake("NotCompiledSource${fileset_type}")
run_cmake("NotCXXSource${fileset_type}") run_cmake("NotCXXSource${fileset_type}")
endforeach () endforeach ()

Loading…
Cancel
Save