Skip to content

Commit

Permalink
Merge branch 'release-3.27.5' into zh_CN
Browse files Browse the repository at this point in the history
  • Loading branch information
gwankyun committed Sep 15, 2023
2 parents d1d1ff6 + 7d3b486 commit a6d4ae7
Show file tree
Hide file tree
Showing 21 changed files with 110 additions and 14 deletions.
2 changes: 2 additions & 0 deletions Help/prop_tgt/MSVC_DEBUG_INFORMATION_FORMAT.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ support per-configuration specification. For example, the code:
selects for the target ``foo`` the program database debug information format
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
the default value ``$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>``, if
supported by the compiler, and otherwise
Expand Down
4 changes: 2 additions & 2 deletions Help/release/3.27.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
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.
Some implementation updates were made to support ecosystem changes
Expand Down
20 changes: 17 additions & 3 deletions Modules/FindBoost.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -1365,7 +1365,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_TIMER_DEPENDENCIES chrono)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
else()
elseif(Boost_VERSION_STRING VERSION_LESS 1.83.0)
set(_Boost_CONTRACT_DEPENDENCIES thread chrono)
set(_Boost_COROUTINE_DEPENDENCIES context)
set(_Boost_FIBER_DEPENDENCIES context)
Expand All @@ -1380,7 +1380,21 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_TIMER_DEPENDENCIES chrono)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
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")
endif()
endif()
Expand Down Expand Up @@ -1655,7 +1669,7 @@ else()
# _Boost_COMPONENT_HEADERS. See the instructions at the top of
# _Boost_COMPONENT_DEPENDENCIES.
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.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"
Expand Down
1 change: 1 addition & 0 deletions Modules/FortranCInterface.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,7 @@ function(FortranCInterface_VERIFY)
"-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}"
"-DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}"
"-DFortranCInterface_BINARY_DIR=${FortranCInterface_BINARY_DIR}"
"-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}"
${_FortranCInterface_OSX_ARCH}
${_FortranCInterface_EXE_LINKER_FLAGS}
OUTPUT_VARIABLE _output)
Expand Down
2 changes: 1 addition & 1 deletion Source/CMakeVersion.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 27)
set(CMake_VERSION_PATCH 4)
set(CMake_VERSION_PATCH 5)
#set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0)

Expand Down
3 changes: 3 additions & 0 deletions Source/CTest/cmCTestSubmitHandler.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,9 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
// specify target
::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,
// including more secure ones
::curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
Expand Down
2 changes: 1 addition & 1 deletion Source/Checks/cm_cxx_features.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ else()
set(CMake_HAVE_CXX_FILESYSTEM FALSE)
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)
if(NOT CMake_HAVE_CXX_ATOMIC_BUILTIN)
set(cm_check_cxx_feature_LINK_LIBRARIES atomic)
Expand Down
7 changes: 5 additions & 2 deletions Source/cmComputeLinkInformation.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -533,11 +533,14 @@ cmComputeLinkInformation::GetObjectLibrariesLinked() const

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 ||
this->Target->GetType() == cmStateEnums::SHARED_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;
}

Expand Down
7 changes: 4 additions & 3 deletions Source/cmDyndepCollation.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,11 @@ Json::Value CollationInformationCxxModules(
auto lookup = sf_map.find(file);
if (lookup == sf_map.end()) {
gt->Makefile->IssueMessage(
MessageType::INTERNAL_ERROR,
cmStrCat("Target \"", tgt->GetName(), "\" has source file \"",
MessageType::FATAL_ERROR,
cmStrCat("Target \"", tgt->GetName(), "\" has source file\n ",
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;
}

Expand Down
1 change: 1 addition & 0 deletions Source/cmGeneratorExpressionDAGChecker.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class cmGeneratorTarget;
SELECT(F, EvaluatingSystemIncludeDirectories, SYSTEM_INCLUDE_DIRECTORIES) \
SELECT(F, EvaluatingCompileDefinitions, COMPILE_DEFINITIONS) \
SELECT(F, EvaluatingCompileOptions, COMPILE_OPTIONS) \
SELECT(F, EvaluatingAutoMocMacroNames, AUTOMOC_MACRO_NAMES) \
SELECT(F, EvaluatingAutoUicOptions, AUTOUIC_OPTIONS) \
SELECT(F, EvaluatingSources, SOURCES) \
SELECT(F, EvaluatingCompileFeatures, COMPILE_FEATURES) \
Expand Down
9 changes: 9 additions & 0 deletions Source/cmGeneratorTarget.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
auto const& fs_names = this->Target->GetAllFileSetNames();
Expand Down
1 change: 1 addition & 0 deletions Source/cmGeneratorTarget.h
Original file line number Diff line number Diff line change
Expand Up @@ -1247,6 +1247,7 @@ class cmGeneratorTarget
cmGeneratorTarget const* t2) const;
};

bool HaveFortranSources() const;
bool HaveFortranSources(std::string const& config) const;

// C++20 module support queries.
Expand Down
25 changes: 24 additions & 1 deletion Source/cmVisualStudio10TargetGenerator.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -2540,6 +2540,12 @@ void cmVisualStudio10TargetGenerator::WriteAllSources(Elem& e0)
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) {
// Compute set of configurations to exclude, if any.
std::vector<size_t> const& include_configs = si.Configs;
Expand Down Expand Up @@ -2604,6 +2610,13 @@ void cmVisualStudio10TargetGenerator::WriteAllSources(Elem& e0)
if (si.Kind == cmGeneratorTarget::SourceKindObjectSource ||
si.Kind == cmGeneratorTarget::SourceKindUnityBatched) {
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")) {
e2.Element("PrecompiledHeader", "NotUsing");
Expand All @@ -2613,6 +2626,13 @@ void cmVisualStudio10TargetGenerator::WriteAllSources(Elem& e0)
}

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."));
}
}

Expand Down Expand Up @@ -3855,7 +3875,10 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaLinkOptions(
void cmVisualStudio10TargetGenerator::WriteCudaLinkOptions(
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;
}

Expand Down
1 change: 1 addition & 0 deletions Tests/CudaOnly/Fatbin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/../CUBIN/kernelB.cu
${CMAKE_CURRENT_SOURCE_DIR}/../CUBIN/kernelC.cu)

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
add_executable(CudaOnlyFatbin main.cu)
Expand Down
1 change: 1 addition & 0 deletions Tests/CudaOnly/OptixIR/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "11.7.0")
set_property(TARGET CudaOptix PROPERTY CUDA_OPTIX_COMPILATION ON)
endif()

set_property(TARGET CudaOptix PROPERTY CUDA_SEPARABLE_COMPILATION ON)
set_property(TARGET CudaOptix PROPERTY CUDA_ARCHITECTURES native)

add_executable(CudaOnlyOptixIR main.cu)
Expand Down
5 changes: 5 additions & 0 deletions Tests/RunCMake/CXXModules/NoCXX-stderr.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ CMake Error in CMakeLists.txt:
been enabled
| The "nocxx" target contains C\+\+ module sources which are not supported by
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.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1
16 changes: 16 additions & 0 deletions Tests/RunCMake/CXXModules/NotCompiledSourceModules-stderr.txt
Original file line number Diff line number Diff line change
@@ -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.
13 changes: 13 additions & 0 deletions Tests/RunCMake/CXXModules/NotCompiledSourceModules.cmake
Original file line number Diff line number Diff line change
@@ -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)
3 changes: 2 additions & 1 deletion Tests/RunCMake/CXXModules/RunCMakeTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,9 @@ foreach (fileset_type IN LISTS fileset_types)
endforeach ()
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.
run_cmake("NotCompiledSource${fileset_type}")
run_cmake("NotCXXSource${fileset_type}")
endforeach ()

Expand Down
Empty file.

0 comments on commit a6d4ae7

Please sign in to comment.