New upstream version 3.30.1

ci/unstable
Timo Röhling 5 months ago
parent a5c7606b73
commit a584c35a6a

@ -112,7 +112,6 @@ They are normally called through the :command:`find_package` command.
/module/FindBacktrace
/module/FindBISON
/module/FindBLAS
/module/FindBoost
/module/FindBullet
/module/FindBZip2
/module/FindCABLE
@ -291,6 +290,7 @@ Deprecated Find Modules
.. toctree::
:maxdepth: 1
/module/FindBoost
/module/FindCUDA
/module/FindDart
/module/FindITK

@ -677,7 +677,6 @@ Variables for CTest
/variable/CTEST_CONFIGURE_COMMAND
/variable/CTEST_COVERAGE_COMMAND
/variable/CTEST_COVERAGE_EXTRA_FLAGS
/variable/CTEST_CURL_OPTIONS
/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE
/variable/CTEST_CUSTOM_ERROR_EXCEPTION
/variable/CTEST_CUSTOM_ERROR_MATCH
@ -849,6 +848,7 @@ Deprecated Variables for CTest
.. toctree::
:maxdepth: 1
/variable/CTEST_CURL_OPTIONS
/variable/CTEST_CVS_CHECKOUT
/variable/CTEST_SCP_COMMAND
/variable/CTEST_TRIGGER_SITE

@ -231,9 +231,9 @@ Changes made since CMake 3.29.0 include the following.
to ``perMachine`` on their own schedule by setting
``CPACK_WIX_INSTALL_SCOPE``.
3.29.6
------
3.29.6, 3.29.7
--------------
* This version 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
and/or fix regressions.

@ -242,3 +242,15 @@ Other Changes
directory has already been populated. CMake 3.29 and earlier did not
check this requirement, but it is now enforced, subject to policy
:policy:`CMP0170`.
Updates
=======
Changes made since CMake 3.30.0 include the following.
3.30.1
------
* This version made no changes to documented features or interfaces.
Some implementation updates were made to support ecosystem changes
and/or fix regressions.

@ -19,8 +19,11 @@ get_filename_component(__intel_llvm_hint_1 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE
get_filename_component(__intel_llvm_hint_1 "${__intel_llvm_hint_1}/../bin-llvm" REALPATH)
get_filename_component(__intel_llvm_hint_2 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY)
get_filename_component(__intel_llvm_hint_2 "${__intel_llvm_hint_2}/compiler" REALPATH)
set(__intel_llvm_hints ${__intel_llvm_hint_1} ${__intel_llvm_hint_2})
get_filename_component(__intel_llvm_hint_3 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY)
set(__intel_llvm_hints ${__intel_llvm_hint_1} ${__intel_llvm_hint_2} ${__intel_llvm_hint_3})
# http://manpages.ubuntu.com/manpages/precise/en/man1/llvm-ar.1.html
find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR NAMES

@ -16,7 +16,7 @@ endif()
# enabling them to be shown for DEBUG may be useful to help diagnose problems.
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
if(active_log_level MATCHES "DEBUG|TRACE")
set(maybe_show_command "COMMAND_ECHO STDOUT")
set(maybe_show_command COMMAND_ECHO STDOUT)
else()
set(maybe_show_command "")
endif()

@ -7,7 +7,7 @@ cmake_minimum_required(VERSION 3.5)
# enabling them to be shown for DEBUG may be useful to help diagnose problems.
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
if(active_log_level MATCHES "DEBUG|TRACE")
set(maybe_show_command "COMMAND_ECHO STDOUT")
set(maybe_show_command COMMAND_ECHO STDOUT)
else()
set(maybe_show_command "")
endif()

@ -16,7 +16,7 @@ endif()
# enabling them to be shown for DEBUG may be useful to help diagnose problems.
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
if(active_log_level MATCHES "DEBUG|TRACE")
set(maybe_show_command "COMMAND_ECHO STDOUT")
set(maybe_show_command COMMAND_ECHO STDOUT)
else()
set(maybe_show_command "")
endif()

@ -297,7 +297,8 @@ set(_FindMatlab_SELF_DIR "${CMAKE_CURRENT_LIST_DIR}")
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
if(NOT WIN32 AND NOT APPLE AND NOT Threads_FOUND)
if(NOT WIN32 AND NOT APPLE AND NOT Threads_FOUND
AND (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED))
# MEX files use pthread if available
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads)
@ -1776,10 +1777,10 @@ endif()
set(MATLAB_INCLUDE_DIR_TO_LOOK ${Matlab_ROOT_DIR}/extern/include)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_matlab_current_suffix ${_matlab_bin_suffix_64bits})
else()
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(_matlab_current_suffix ${_matlab_bin_suffix_32bits})
else()
set(_matlab_current_suffix ${_matlab_bin_suffix_64bits})
endif()
set(Matlab_BINARIES_DIR

@ -1,7 +1,7 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 30)
set(CMake_VERSION_PATCH 0)
set(CMake_VERSION_PATCH 1)
#set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0)
@ -21,7 +21,7 @@ endif()
if(NOT CMake_VERSION_NO_GIT)
# If this source was exported by 'git archive', use its commit info.
set(git_info [==[0f88f57389 CMake 3.30.0]==])
set(git_info [==[cd386f6425 CMake 3.30.1]==])
# 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]* "

@ -19,6 +19,7 @@ cmCTestCurl::cmCTestCurl(cmCTest* ctest)
, CurlOpts(ctest)
{
this->SetProxyType();
cmCurlInitOnce();
// In windows, this will init the winsock stuff
::curl_global_init(CURL_GLOBAL_ALL);
this->Curl = curl_easy_init();

@ -171,6 +171,7 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
headers = ::curl_slist_append(headers, h.c_str());
}
cmCurlInitOnce();
/* In windows, this will init the winsock stuff */
::curl_global_init(CURL_GLOBAL_ALL);
cmCTestCurlOpts curlOpts(this->CTest);

@ -39,6 +39,11 @@
# define CURL_SSLVERSION_TLSv1_3 CURL_SSLVERSION_LAST
#endif
// curl versions before 7.64.1 referred to Secure Transport as DarwinSSL
#if defined(LIBCURL_VERSION_NUM) && LIBCURL_VERSION_NUM < 0x074001
# define CURLSSLBACKEND_SECURETRANSPORT CURLSSLBACKEND_DARWINSSL
#endif
// Make sure we keep up with new TLS versions supported by curl.
// Do this only for our vendored curl to avoid breaking builds
// against external future versions of curl.
@ -47,6 +52,30 @@ static_assert(CURL_SSLVERSION_LAST == 8,
"A new CURL_SSLVERSION_ may be available!");
#endif
void cmCurlInitOnce()
{
// curl 7.56.0 introduced curl_global_sslset.
#if defined(__APPLE__) && defined(CMAKE_USE_SYSTEM_CURL) && \
defined(LIBCURL_VERSION_NUM) && LIBCURL_VERSION_NUM >= 0x073800
static bool initialized = false;
if (initialized) {
return;
}
initialized = true;
cm::optional<std::string> curl_ssl_backend =
cmSystemTools::GetEnvVar("CURL_SSL_BACKEND");
if (!curl_ssl_backend || curl_ssl_backend->empty()) {
curl_version_info_data* cv = curl_version_info(CURLVERSION_FIRST);
// curl 8.3.0 through 8.5.x did not re-initialize LibreSSL correctly,
// so prefer the Secure Transport backend by default in those versions.
if (cv->version_num >= 0x080300 && cv->version_num < 0x080600) {
curl_global_sslset(CURLSSLBACKEND_SECURETRANSPORT, NULL, NULL);
}
}
#endif
}
cm::optional<int> cmCurlParseTLSVersion(cm::string_view tls_version)
{
cm::optional<int> v;

@ -11,6 +11,7 @@
#include <cm3p/curl/curl.h>
void cmCurlInitOnce();
cm::optional<int> cmCurlParseTLSVersion(cm::string_view tls_version);
cm::optional<std::string> cmCurlPrintTLSVersion(int curl_tls_version);
std::string cmCurlSetCAInfo(::CURL* curl, const std::string& cafile = {});

@ -613,6 +613,7 @@ void cmExportFileGenerator::PopulateCustomTransitiveInterfaceProperties(
properties);
this->PopulateInterfaceProperty("TRANSITIVE_LINK_PROPERTIES", target,
properties);
cmGeneratorTarget::CheckLinkLibrariesSuppressionRAII cllSuppressRAII;
std::set<std::string> ifaceProperties;
for (std::string const& config : this->Configurations) {
for (auto const& i : target->GetCustomTransitiveProperties(

@ -2115,6 +2115,7 @@ bool HandleDownloadCommand(std::vector<std::string> const& args,
url = cmCurlFixFileURL(url);
::CURL* curl;
cmCurlInitOnce();
::curl_global_init(CURL_GLOBAL_DEFAULT);
curl = ::curl_easy_init();
if (!curl) {
@ -2488,6 +2489,7 @@ bool HandleUploadCommand(std::vector<std::string> const& args,
url = cmCurlFixFileURL(url);
::CURL* curl;
cmCurlInitOnce();
::curl_global_init(CURL_GLOBAL_DEFAULT);
curl = ::curl_easy_init();
if (!curl) {

@ -99,6 +99,13 @@ public:
// Call this after generation is complete.
void CheckLinkLibraries() const;
class CheckLinkLibrariesSuppressionRAII
{
public:
CheckLinkLibrariesSuppressionRAII();
~CheckLinkLibrariesSuppressionRAII();
};
cmStateEnums::TargetType GetType() const;
const std::string& GetName() const;
std::string GetExportName() const;

@ -54,6 +54,20 @@ const std::string kINTERFACE_LINK_LIBRARIES_DIRECT =
"INTERFACE_LINK_LIBRARIES_DIRECT";
const std::string kINTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE =
"INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE";
unsigned int CheckLinkLibrariesSuppressionRAIICount;
void MaybeEnableCheckLinkLibraries(cmOptionalLinkImplementation& impl)
{
if (CheckLinkLibrariesSuppressionRAIICount == 0) {
impl.CheckLinkLibraries = true;
}
}
void MaybeEnableCheckLinkLibraries(cmOptionalLinkInterface& iface)
{
if (CheckLinkLibrariesSuppressionRAIICount == 0) {
iface.CheckLinkLibraries = true;
}
}
}
class cmTargetCollectLinkLanguages
@ -372,7 +386,8 @@ void cmGeneratorTarget::CheckLinkLibraries() const
// There could be several entries used when computing the pre-CMP0022
// default link interface. Check only the entry for our own link impl.
auto const hmi = hm.find(this);
if (hmi == hm.end() || !hmi->second.LibrariesDone) {
if (hmi == hm.end() || !hmi->second.LibrariesDone ||
!hmi->second.CheckLinkLibraries) {
continue;
}
for (cmLinkImplItem const& item : hmi->second.Libraries) {
@ -392,7 +407,7 @@ void cmGeneratorTarget::CheckLinkLibraries() const
// should be a subset of LinkInterfaceMap (with LINK_ONLY left out).
for (auto const& hmp : this->LinkInterfaceMap) {
for (auto const& hmi : hmp.second) {
if (!hmi.second.LibrariesDone) {
if (!hmi.second.LibrariesDone || !hmi.second.CheckLinkLibraries) {
continue;
}
for (cmLinkItem const& item : hmi.second.Libraries) {
@ -408,6 +423,18 @@ void cmGeneratorTarget::CheckLinkLibraries() const
}
}
cmGeneratorTarget::CheckLinkLibrariesSuppressionRAII::
CheckLinkLibrariesSuppressionRAII()
{
++CheckLinkLibrariesSuppressionRAIICount;
}
cmGeneratorTarget::CheckLinkLibrariesSuppressionRAII::
~CheckLinkLibrariesSuppressionRAII()
{
--CheckLinkLibrariesSuppressionRAIICount;
}
namespace {
cm::string_view missingTargetPossibleReasons =
"Possible reasons include:\n"
@ -642,6 +669,7 @@ cmLinkInterface const* cmGeneratorTarget::GetLinkInterface(
if (secondPass) {
iface = cmOptionalLinkInterface();
}
MaybeEnableCheckLinkLibraries(iface);
if (!iface.LibrariesDone) {
iface.LibrariesDone = true;
this->ComputeLinkInterfaceLibraries(config, iface, head, UseTo::Link);
@ -765,6 +793,7 @@ const cmLinkInterfaceLibraries* cmGeneratorTarget::GetLinkInterfaceLibraries(
}
cmOptionalLinkInterface& iface = hm[head];
MaybeEnableCheckLinkLibraries(iface);
if (!iface.LibrariesDone) {
iface.LibrariesDone = true;
this->ComputeLinkInterfaceLibraries(config, iface, head, usage);
@ -1034,6 +1063,7 @@ const cmLinkInterface* cmGeneratorTarget::GetImportLinkInterface(
if (secondPass) {
iface = cmOptionalLinkInterface();
}
MaybeEnableCheckLinkLibraries(iface);
if (!iface.AllDone) {
iface.AllDone = true;
iface.LibrariesDone = true;
@ -1106,6 +1136,7 @@ const cmLinkImplementation* cmGeneratorTarget::GetLinkImplementation(
if (secondPass) {
impl = cmOptionalLinkImplementation();
}
MaybeEnableCheckLinkLibraries(impl);
if (!impl.LibrariesDone) {
impl.LibrariesDone = true;
this->ComputeLinkImplementationLibraries(config, impl, this, usage);
@ -1162,6 +1193,7 @@ cmGeneratorTarget::GetLinkImplementationLibrariesInternal(
}
cmOptionalLinkImplementation& impl = hm[head];
MaybeEnableCheckLinkLibraries(impl);
if (!impl.LibrariesDone) {
impl.LibrariesDone = true;
this->ComputeLinkImplementationLibraries(config, impl, head, usage);

@ -124,6 +124,7 @@ struct cmOptionalLinkInterface : public cmLinkInterface
bool AllDone = false;
bool Exists = false;
bool Explicit = false;
bool CheckLinkLibraries = false;
};
struct cmHeadToLinkInterfaceMap
@ -148,6 +149,7 @@ struct cmOptionalLinkImplementation : public cmLinkImplementation
bool LibrariesDone = false;
bool LanguagesDone = false;
bool HadHeadSensitiveCondition = false;
bool CheckLinkLibraries = false;
};
/** Compute the link type to use for the given configuration. */

@ -3880,6 +3880,14 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions(
cudaOptions.AddFlag("CudaRuntime", "None");
}
if (this->ProjectType == VsProjectType::vcxproj && this->MSTools) {
// Suppress inheritance of host compiler optimization flags
// when the project does not specify any optimization flags for CUDA.
if (!cudaOptions.HasFlag("Optimization")) {
cudaOptions.AddFlag("Optimization", "");
}
}
this->CudaOptions[configName] = std::move(pOptions);
return true;
}

@ -29,6 +29,9 @@ add_library(compileOnly INTERFACE)
target_compile_definitions(compileOnly INTERFACE FROM_compileOnly)
target_link_options(compileOnly INTERFACE -fthis-flag-does-not-exist)
add_library(noUses INTERFACE)
target_link_libraries(noUses INTERFACE this::target_does_not_exist)
add_library(testLib1 STATIC testLib1.c)
add_library(testLib2 STATIC testLib2.c)
target_link_libraries(testLib2 testLib1)
@ -601,6 +604,7 @@ install(FILES
install(
TARGETS
compileOnly
noUses
testExe1 testLib1 testLib2 testExe2 testLib3 testLib4 testExe3 testExe4
testExe2lib testLib4lib testLib4libdbg testLib4libopt
testLib6 testLib7 testLib8
@ -676,7 +680,7 @@ export(TARGETS testExe1 testLib1 testLib2 testLib3
testSharedLibDepends renamed_on_export
cmp0022NEW cmp0022OLD
TopDirLib SubDirLinkA
systemlib
systemlib noUses
testInterfaceIncludeUser
testInterfaceIncludeUser2
NAMESPACE bld_

@ -15,9 +15,6 @@ endif()
run_cmake(BadIndependentStep1)
run_cmake(BadIndependentStep2)
run_cmake(TLSVersionBadArg)
run_cmake(TLSVersionBadVar)
run_cmake(TLSVersionBadEnv)
run_cmake(NoOptions)
run_cmake(SourceEmpty)
run_cmake(SourceMissing)
@ -256,5 +253,9 @@ if(GIT_EXECUTABLE)
# on some platforms. It may go to stdout or stderr, so force it to be merged.
set(RunCMake_TEST_OUTPUT_MERGE TRUE)
run_cmake(FetchGitRefs)
set(RunCMake_TEST_OUTPUT_MERGE FALSE)
unset(RunCMake_TEST_OUTPUT_MERGE)
run_cmake(TLSVersionBadArg)
run_cmake(TLSVersionBadVar)
run_cmake(TLSVersionBadEnv)
endif()

@ -0,0 +1,4 @@
add_library(foo INTERFACE)
target_link_libraries(foo INTERFACE nonexistent::bar)
install(TARGETS foo DESTINATION lib EXPORT foo-targets)
install(EXPORT foo-targets FILE foo-targets.cmake DESTINATION lib)

@ -85,6 +85,7 @@ run_cmake(EXPORT-UnknownExport)
run_cmake(EXPORT-NamelinkOnly)
run_cmake(EXPORT-SeparateNamelink)
run_cmake(EXPORT-TargetTwice)
run_cmake(EXPORT-InterfaceLinkNoexist)
run_cmake(CMP0062-OLD)
run_cmake(CMP0062-NEW)
run_cmake(CMP0062-WARN)

@ -274,6 +274,9 @@ long uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
char* ds;
int rc;
if (s == se)
return UV_EINVAL;
ds = d;
si = s;
@ -308,8 +311,9 @@ long uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
return rc;
}
if (d < de)
*d++ = '\0';
if (d >= de)
return UV_EINVAL;
*d++ = '\0';
return d - ds; /* Number of bytes written. */
}

Loading…
Cancel
Save