New upstream version 3.30.1
This commit is contained in:
parent
a5c7606b73
commit
a584c35a6a
@ -112,7 +112,6 @@ They are normally called through the :command:`find_package` command.
|
|||||||
/module/FindBacktrace
|
/module/FindBacktrace
|
||||||
/module/FindBISON
|
/module/FindBISON
|
||||||
/module/FindBLAS
|
/module/FindBLAS
|
||||||
/module/FindBoost
|
|
||||||
/module/FindBullet
|
/module/FindBullet
|
||||||
/module/FindBZip2
|
/module/FindBZip2
|
||||||
/module/FindCABLE
|
/module/FindCABLE
|
||||||
@ -291,6 +290,7 @@ Deprecated Find Modules
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
|
/module/FindBoost
|
||||||
/module/FindCUDA
|
/module/FindCUDA
|
||||||
/module/FindDart
|
/module/FindDart
|
||||||
/module/FindITK
|
/module/FindITK
|
||||||
|
@ -677,7 +677,6 @@ Variables for CTest
|
|||||||
/variable/CTEST_CONFIGURE_COMMAND
|
/variable/CTEST_CONFIGURE_COMMAND
|
||||||
/variable/CTEST_COVERAGE_COMMAND
|
/variable/CTEST_COVERAGE_COMMAND
|
||||||
/variable/CTEST_COVERAGE_EXTRA_FLAGS
|
/variable/CTEST_COVERAGE_EXTRA_FLAGS
|
||||||
/variable/CTEST_CURL_OPTIONS
|
|
||||||
/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE
|
/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE
|
||||||
/variable/CTEST_CUSTOM_ERROR_EXCEPTION
|
/variable/CTEST_CUSTOM_ERROR_EXCEPTION
|
||||||
/variable/CTEST_CUSTOM_ERROR_MATCH
|
/variable/CTEST_CUSTOM_ERROR_MATCH
|
||||||
@ -849,6 +848,7 @@ Deprecated Variables for CTest
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
|
/variable/CTEST_CURL_OPTIONS
|
||||||
/variable/CTEST_CVS_CHECKOUT
|
/variable/CTEST_CVS_CHECKOUT
|
||||||
/variable/CTEST_SCP_COMMAND
|
/variable/CTEST_SCP_COMMAND
|
||||||
/variable/CTEST_TRIGGER_SITE
|
/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
|
to ``perMachine`` on their own schedule by setting
|
||||||
``CPACK_WIX_INSTALL_SCOPE``.
|
``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
|
Some implementation updates were made to support ecosystem changes
|
||||||
and/or fix regressions.
|
and/or fix regressions.
|
||||||
|
@ -242,3 +242,15 @@ Other Changes
|
|||||||
directory has already been populated. CMake 3.29 and earlier did not
|
directory has already been populated. CMake 3.29 and earlier did not
|
||||||
check this requirement, but it is now enforced, subject to policy
|
check this requirement, but it is now enforced, subject to policy
|
||||||
:policy:`CMP0170`.
|
: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_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 "${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
|
# http://manpages.ubuntu.com/manpages/precise/en/man1/llvm-ar.1.html
|
||||||
find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR NAMES
|
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.
|
# enabling them to be shown for DEBUG may be useful to help diagnose problems.
|
||||||
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
|
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
|
||||||
if(active_log_level MATCHES "DEBUG|TRACE")
|
if(active_log_level MATCHES "DEBUG|TRACE")
|
||||||
set(maybe_show_command "COMMAND_ECHO STDOUT")
|
set(maybe_show_command COMMAND_ECHO STDOUT)
|
||||||
else()
|
else()
|
||||||
set(maybe_show_command "")
|
set(maybe_show_command "")
|
||||||
endif()
|
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.
|
# enabling them to be shown for DEBUG may be useful to help diagnose problems.
|
||||||
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
|
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
|
||||||
if(active_log_level MATCHES "DEBUG|TRACE")
|
if(active_log_level MATCHES "DEBUG|TRACE")
|
||||||
set(maybe_show_command "COMMAND_ECHO STDOUT")
|
set(maybe_show_command COMMAND_ECHO STDOUT)
|
||||||
else()
|
else()
|
||||||
set(maybe_show_command "")
|
set(maybe_show_command "")
|
||||||
endif()
|
endif()
|
||||||
|
@ -16,7 +16,7 @@ endif()
|
|||||||
# enabling them to be shown for DEBUG may be useful to help diagnose problems.
|
# enabling them to be shown for DEBUG may be useful to help diagnose problems.
|
||||||
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
|
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
|
||||||
if(active_log_level MATCHES "DEBUG|TRACE")
|
if(active_log_level MATCHES "DEBUG|TRACE")
|
||||||
set(maybe_show_command "COMMAND_ECHO STDOUT")
|
set(maybe_show_command COMMAND_ECHO STDOUT)
|
||||||
else()
|
else()
|
||||||
set(maybe_show_command "")
|
set(maybe_show_command "")
|
||||||
endif()
|
endif()
|
||||||
|
@ -297,7 +297,8 @@ set(_FindMatlab_SELF_DIR "${CMAKE_CURRENT_LIST_DIR}")
|
|||||||
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
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
|
# MEX files use pthread if available
|
||||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||||
find_package(Threads)
|
find_package(Threads)
|
||||||
@ -1776,10 +1777,10 @@ endif()
|
|||||||
|
|
||||||
|
|
||||||
set(MATLAB_INCLUDE_DIR_TO_LOOK ${Matlab_ROOT_DIR}/extern/include)
|
set(MATLAB_INCLUDE_DIR_TO_LOOK ${Matlab_ROOT_DIR}/extern/include)
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
set(_matlab_current_suffix ${_matlab_bin_suffix_64bits})
|
|
||||||
else()
|
|
||||||
set(_matlab_current_suffix ${_matlab_bin_suffix_32bits})
|
set(_matlab_current_suffix ${_matlab_bin_suffix_32bits})
|
||||||
|
else()
|
||||||
|
set(_matlab_current_suffix ${_matlab_bin_suffix_64bits})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(Matlab_BINARIES_DIR
|
set(Matlab_BINARIES_DIR
|
||||||
|
@ -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 30)
|
set(CMake_VERSION_MINOR 30)
|
||||||
set(CMake_VERSION_PATCH 0)
|
set(CMake_VERSION_PATCH 1)
|
||||||
#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 [==[0f88f57389 CMake 3.30.0]==])
|
set(git_info [==[cd386f6425 CMake 3.30.1]==])
|
||||||
|
|
||||||
# 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]* "
|
||||||
|
@ -19,6 +19,7 @@ cmCTestCurl::cmCTestCurl(cmCTest* ctest)
|
|||||||
, CurlOpts(ctest)
|
, CurlOpts(ctest)
|
||||||
{
|
{
|
||||||
this->SetProxyType();
|
this->SetProxyType();
|
||||||
|
cmCurlInitOnce();
|
||||||
// In windows, this will init the winsock stuff
|
// In windows, this will init the winsock stuff
|
||||||
::curl_global_init(CURL_GLOBAL_ALL);
|
::curl_global_init(CURL_GLOBAL_ALL);
|
||||||
this->Curl = curl_easy_init();
|
this->Curl = curl_easy_init();
|
||||||
|
@ -171,6 +171,7 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
|
|||||||
headers = ::curl_slist_append(headers, h.c_str());
|
headers = ::curl_slist_append(headers, h.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cmCurlInitOnce();
|
||||||
/* In windows, this will init the winsock stuff */
|
/* In windows, this will init the winsock stuff */
|
||||||
::curl_global_init(CURL_GLOBAL_ALL);
|
::curl_global_init(CURL_GLOBAL_ALL);
|
||||||
cmCTestCurlOpts curlOpts(this->CTest);
|
cmCTestCurlOpts curlOpts(this->CTest);
|
||||||
|
@ -39,6 +39,11 @@
|
|||||||
# define CURL_SSLVERSION_TLSv1_3 CURL_SSLVERSION_LAST
|
# define CURL_SSLVERSION_TLSv1_3 CURL_SSLVERSION_LAST
|
||||||
#endif
|
#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.
|
// Make sure we keep up with new TLS versions supported by curl.
|
||||||
// Do this only for our vendored curl to avoid breaking builds
|
// Do this only for our vendored curl to avoid breaking builds
|
||||||
// against external future versions of curl.
|
// against external future versions of curl.
|
||||||
@ -47,6 +52,30 @@ static_assert(CURL_SSLVERSION_LAST == 8,
|
|||||||
"A new CURL_SSLVERSION_ may be available!");
|
"A new CURL_SSLVERSION_ may be available!");
|
||||||
#endif
|
#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> cmCurlParseTLSVersion(cm::string_view tls_version)
|
||||||
{
|
{
|
||||||
cm::optional<int> v;
|
cm::optional<int> v;
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
#include <cm3p/curl/curl.h>
|
#include <cm3p/curl/curl.h>
|
||||||
|
|
||||||
|
void cmCurlInitOnce();
|
||||||
cm::optional<int> cmCurlParseTLSVersion(cm::string_view tls_version);
|
cm::optional<int> cmCurlParseTLSVersion(cm::string_view tls_version);
|
||||||
cm::optional<std::string> cmCurlPrintTLSVersion(int curl_tls_version);
|
cm::optional<std::string> cmCurlPrintTLSVersion(int curl_tls_version);
|
||||||
std::string cmCurlSetCAInfo(::CURL* curl, const std::string& cafile = {});
|
std::string cmCurlSetCAInfo(::CURL* curl, const std::string& cafile = {});
|
||||||
|
@ -613,6 +613,7 @@ void cmExportFileGenerator::PopulateCustomTransitiveInterfaceProperties(
|
|||||||
properties);
|
properties);
|
||||||
this->PopulateInterfaceProperty("TRANSITIVE_LINK_PROPERTIES", target,
|
this->PopulateInterfaceProperty("TRANSITIVE_LINK_PROPERTIES", target,
|
||||||
properties);
|
properties);
|
||||||
|
cmGeneratorTarget::CheckLinkLibrariesSuppressionRAII cllSuppressRAII;
|
||||||
std::set<std::string> ifaceProperties;
|
std::set<std::string> ifaceProperties;
|
||||||
for (std::string const& config : this->Configurations) {
|
for (std::string const& config : this->Configurations) {
|
||||||
for (auto const& i : target->GetCustomTransitiveProperties(
|
for (auto const& i : target->GetCustomTransitiveProperties(
|
||||||
|
@ -2115,6 +2115,7 @@ bool HandleDownloadCommand(std::vector<std::string> const& args,
|
|||||||
url = cmCurlFixFileURL(url);
|
url = cmCurlFixFileURL(url);
|
||||||
|
|
||||||
::CURL* curl;
|
::CURL* curl;
|
||||||
|
cmCurlInitOnce();
|
||||||
::curl_global_init(CURL_GLOBAL_DEFAULT);
|
::curl_global_init(CURL_GLOBAL_DEFAULT);
|
||||||
curl = ::curl_easy_init();
|
curl = ::curl_easy_init();
|
||||||
if (!curl) {
|
if (!curl) {
|
||||||
@ -2488,6 +2489,7 @@ bool HandleUploadCommand(std::vector<std::string> const& args,
|
|||||||
url = cmCurlFixFileURL(url);
|
url = cmCurlFixFileURL(url);
|
||||||
|
|
||||||
::CURL* curl;
|
::CURL* curl;
|
||||||
|
cmCurlInitOnce();
|
||||||
::curl_global_init(CURL_GLOBAL_DEFAULT);
|
::curl_global_init(CURL_GLOBAL_DEFAULT);
|
||||||
curl = ::curl_easy_init();
|
curl = ::curl_easy_init();
|
||||||
if (!curl) {
|
if (!curl) {
|
||||||
|
@ -99,6 +99,13 @@ public:
|
|||||||
// Call this after generation is complete.
|
// Call this after generation is complete.
|
||||||
void CheckLinkLibraries() const;
|
void CheckLinkLibraries() const;
|
||||||
|
|
||||||
|
class CheckLinkLibrariesSuppressionRAII
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CheckLinkLibrariesSuppressionRAII();
|
||||||
|
~CheckLinkLibrariesSuppressionRAII();
|
||||||
|
};
|
||||||
|
|
||||||
cmStateEnums::TargetType GetType() const;
|
cmStateEnums::TargetType GetType() const;
|
||||||
const std::string& GetName() const;
|
const std::string& GetName() const;
|
||||||
std::string GetExportName() const;
|
std::string GetExportName() const;
|
||||||
|
@ -54,6 +54,20 @@ const std::string kINTERFACE_LINK_LIBRARIES_DIRECT =
|
|||||||
"INTERFACE_LINK_LIBRARIES_DIRECT";
|
"INTERFACE_LINK_LIBRARIES_DIRECT";
|
||||||
const std::string kINTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE =
|
const std::string kINTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE =
|
||||||
"INTERFACE_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
|
class cmTargetCollectLinkLanguages
|
||||||
@ -372,7 +386,8 @@ void cmGeneratorTarget::CheckLinkLibraries() const
|
|||||||
// There could be several entries used when computing the pre-CMP0022
|
// There could be several entries used when computing the pre-CMP0022
|
||||||
// default link interface. Check only the entry for our own link impl.
|
// default link interface. Check only the entry for our own link impl.
|
||||||
auto const hmi = hm.find(this);
|
auto const hmi = hm.find(this);
|
||||||
if (hmi == hm.end() || !hmi->second.LibrariesDone) {
|
if (hmi == hm.end() || !hmi->second.LibrariesDone ||
|
||||||
|
!hmi->second.CheckLinkLibraries) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for (cmLinkImplItem const& item : hmi->second.Libraries) {
|
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).
|
// should be a subset of LinkInterfaceMap (with LINK_ONLY left out).
|
||||||
for (auto const& hmp : this->LinkInterfaceMap) {
|
for (auto const& hmp : this->LinkInterfaceMap) {
|
||||||
for (auto const& hmi : hmp.second) {
|
for (auto const& hmi : hmp.second) {
|
||||||
if (!hmi.second.LibrariesDone) {
|
if (!hmi.second.LibrariesDone || !hmi.second.CheckLinkLibraries) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for (cmLinkItem const& item : hmi.second.Libraries) {
|
for (cmLinkItem const& item : hmi.second.Libraries) {
|
||||||
@ -408,6 +423,18 @@ void cmGeneratorTarget::CheckLinkLibraries() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cmGeneratorTarget::CheckLinkLibrariesSuppressionRAII::
|
||||||
|
CheckLinkLibrariesSuppressionRAII()
|
||||||
|
{
|
||||||
|
++CheckLinkLibrariesSuppressionRAIICount;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmGeneratorTarget::CheckLinkLibrariesSuppressionRAII::
|
||||||
|
~CheckLinkLibrariesSuppressionRAII()
|
||||||
|
{
|
||||||
|
--CheckLinkLibrariesSuppressionRAIICount;
|
||||||
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
cm::string_view missingTargetPossibleReasons =
|
cm::string_view missingTargetPossibleReasons =
|
||||||
"Possible reasons include:\n"
|
"Possible reasons include:\n"
|
||||||
@ -642,6 +669,7 @@ cmLinkInterface const* cmGeneratorTarget::GetLinkInterface(
|
|||||||
if (secondPass) {
|
if (secondPass) {
|
||||||
iface = cmOptionalLinkInterface();
|
iface = cmOptionalLinkInterface();
|
||||||
}
|
}
|
||||||
|
MaybeEnableCheckLinkLibraries(iface);
|
||||||
if (!iface.LibrariesDone) {
|
if (!iface.LibrariesDone) {
|
||||||
iface.LibrariesDone = true;
|
iface.LibrariesDone = true;
|
||||||
this->ComputeLinkInterfaceLibraries(config, iface, head, UseTo::Link);
|
this->ComputeLinkInterfaceLibraries(config, iface, head, UseTo::Link);
|
||||||
@ -765,6 +793,7 @@ const cmLinkInterfaceLibraries* cmGeneratorTarget::GetLinkInterfaceLibraries(
|
|||||||
}
|
}
|
||||||
|
|
||||||
cmOptionalLinkInterface& iface = hm[head];
|
cmOptionalLinkInterface& iface = hm[head];
|
||||||
|
MaybeEnableCheckLinkLibraries(iface);
|
||||||
if (!iface.LibrariesDone) {
|
if (!iface.LibrariesDone) {
|
||||||
iface.LibrariesDone = true;
|
iface.LibrariesDone = true;
|
||||||
this->ComputeLinkInterfaceLibraries(config, iface, head, usage);
|
this->ComputeLinkInterfaceLibraries(config, iface, head, usage);
|
||||||
@ -1034,6 +1063,7 @@ const cmLinkInterface* cmGeneratorTarget::GetImportLinkInterface(
|
|||||||
if (secondPass) {
|
if (secondPass) {
|
||||||
iface = cmOptionalLinkInterface();
|
iface = cmOptionalLinkInterface();
|
||||||
}
|
}
|
||||||
|
MaybeEnableCheckLinkLibraries(iface);
|
||||||
if (!iface.AllDone) {
|
if (!iface.AllDone) {
|
||||||
iface.AllDone = true;
|
iface.AllDone = true;
|
||||||
iface.LibrariesDone = true;
|
iface.LibrariesDone = true;
|
||||||
@ -1106,6 +1136,7 @@ const cmLinkImplementation* cmGeneratorTarget::GetLinkImplementation(
|
|||||||
if (secondPass) {
|
if (secondPass) {
|
||||||
impl = cmOptionalLinkImplementation();
|
impl = cmOptionalLinkImplementation();
|
||||||
}
|
}
|
||||||
|
MaybeEnableCheckLinkLibraries(impl);
|
||||||
if (!impl.LibrariesDone) {
|
if (!impl.LibrariesDone) {
|
||||||
impl.LibrariesDone = true;
|
impl.LibrariesDone = true;
|
||||||
this->ComputeLinkImplementationLibraries(config, impl, this, usage);
|
this->ComputeLinkImplementationLibraries(config, impl, this, usage);
|
||||||
@ -1162,6 +1193,7 @@ cmGeneratorTarget::GetLinkImplementationLibrariesInternal(
|
|||||||
}
|
}
|
||||||
|
|
||||||
cmOptionalLinkImplementation& impl = hm[head];
|
cmOptionalLinkImplementation& impl = hm[head];
|
||||||
|
MaybeEnableCheckLinkLibraries(impl);
|
||||||
if (!impl.LibrariesDone) {
|
if (!impl.LibrariesDone) {
|
||||||
impl.LibrariesDone = true;
|
impl.LibrariesDone = true;
|
||||||
this->ComputeLinkImplementationLibraries(config, impl, head, usage);
|
this->ComputeLinkImplementationLibraries(config, impl, head, usage);
|
||||||
|
@ -124,6 +124,7 @@ struct cmOptionalLinkInterface : public cmLinkInterface
|
|||||||
bool AllDone = false;
|
bool AllDone = false;
|
||||||
bool Exists = false;
|
bool Exists = false;
|
||||||
bool Explicit = false;
|
bool Explicit = false;
|
||||||
|
bool CheckLinkLibraries = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cmHeadToLinkInterfaceMap
|
struct cmHeadToLinkInterfaceMap
|
||||||
@ -148,6 +149,7 @@ struct cmOptionalLinkImplementation : public cmLinkImplementation
|
|||||||
bool LibrariesDone = false;
|
bool LibrariesDone = false;
|
||||||
bool LanguagesDone = false;
|
bool LanguagesDone = false;
|
||||||
bool HadHeadSensitiveCondition = false;
|
bool HadHeadSensitiveCondition = false;
|
||||||
|
bool CheckLinkLibraries = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Compute the link type to use for the given configuration. */
|
/** Compute the link type to use for the given configuration. */
|
||||||
|
@ -3880,6 +3880,14 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions(
|
|||||||
cudaOptions.AddFlag("CudaRuntime", "None");
|
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);
|
this->CudaOptions[configName] = std::move(pOptions);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,9 @@ add_library(compileOnly INTERFACE)
|
|||||||
target_compile_definitions(compileOnly INTERFACE FROM_compileOnly)
|
target_compile_definitions(compileOnly INTERFACE FROM_compileOnly)
|
||||||
target_link_options(compileOnly INTERFACE -fthis-flag-does-not-exist)
|
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(testLib1 STATIC testLib1.c)
|
||||||
add_library(testLib2 STATIC testLib2.c)
|
add_library(testLib2 STATIC testLib2.c)
|
||||||
target_link_libraries(testLib2 testLib1)
|
target_link_libraries(testLib2 testLib1)
|
||||||
@ -601,6 +604,7 @@ install(FILES
|
|||||||
install(
|
install(
|
||||||
TARGETS
|
TARGETS
|
||||||
compileOnly
|
compileOnly
|
||||||
|
noUses
|
||||||
testExe1 testLib1 testLib2 testExe2 testLib3 testLib4 testExe3 testExe4
|
testExe1 testLib1 testLib2 testExe2 testLib3 testLib4 testExe3 testExe4
|
||||||
testExe2lib testLib4lib testLib4libdbg testLib4libopt
|
testExe2lib testLib4lib testLib4libdbg testLib4libopt
|
||||||
testLib6 testLib7 testLib8
|
testLib6 testLib7 testLib8
|
||||||
@ -676,7 +680,7 @@ export(TARGETS testExe1 testLib1 testLib2 testLib3
|
|||||||
testSharedLibDepends renamed_on_export
|
testSharedLibDepends renamed_on_export
|
||||||
cmp0022NEW cmp0022OLD
|
cmp0022NEW cmp0022OLD
|
||||||
TopDirLib SubDirLinkA
|
TopDirLib SubDirLinkA
|
||||||
systemlib
|
systemlib noUses
|
||||||
testInterfaceIncludeUser
|
testInterfaceIncludeUser
|
||||||
testInterfaceIncludeUser2
|
testInterfaceIncludeUser2
|
||||||
NAMESPACE bld_
|
NAMESPACE bld_
|
||||||
|
@ -15,9 +15,6 @@ endif()
|
|||||||
|
|
||||||
run_cmake(BadIndependentStep1)
|
run_cmake(BadIndependentStep1)
|
||||||
run_cmake(BadIndependentStep2)
|
run_cmake(BadIndependentStep2)
|
||||||
run_cmake(TLSVersionBadArg)
|
|
||||||
run_cmake(TLSVersionBadVar)
|
|
||||||
run_cmake(TLSVersionBadEnv)
|
|
||||||
run_cmake(NoOptions)
|
run_cmake(NoOptions)
|
||||||
run_cmake(SourceEmpty)
|
run_cmake(SourceEmpty)
|
||||||
run_cmake(SourceMissing)
|
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.
|
# on some platforms. It may go to stdout or stderr, so force it to be merged.
|
||||||
set(RunCMake_TEST_OUTPUT_MERGE TRUE)
|
set(RunCMake_TEST_OUTPUT_MERGE TRUE)
|
||||||
run_cmake(FetchGitRefs)
|
run_cmake(FetchGitRefs)
|
||||||
set(RunCMake_TEST_OUTPUT_MERGE FALSE)
|
unset(RunCMake_TEST_OUTPUT_MERGE)
|
||||||
|
|
||||||
|
run_cmake(TLSVersionBadArg)
|
||||||
|
run_cmake(TLSVersionBadVar)
|
||||||
|
run_cmake(TLSVersionBadEnv)
|
||||||
endif()
|
endif()
|
||||||
|
4
Tests/RunCMake/install/EXPORT-InterfaceLinkNoexist.cmake
Normal file
4
Tests/RunCMake/install/EXPORT-InterfaceLinkNoexist.cmake
Normal file
@ -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-NamelinkOnly)
|
||||||
run_cmake(EXPORT-SeparateNamelink)
|
run_cmake(EXPORT-SeparateNamelink)
|
||||||
run_cmake(EXPORT-TargetTwice)
|
run_cmake(EXPORT-TargetTwice)
|
||||||
|
run_cmake(EXPORT-InterfaceLinkNoexist)
|
||||||
run_cmake(CMP0062-OLD)
|
run_cmake(CMP0062-OLD)
|
||||||
run_cmake(CMP0062-NEW)
|
run_cmake(CMP0062-NEW)
|
||||||
run_cmake(CMP0062-WARN)
|
run_cmake(CMP0062-WARN)
|
||||||
|
@ -274,6 +274,9 @@ long uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
|
|||||||
char* ds;
|
char* ds;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
if (s == se)
|
||||||
|
return UV_EINVAL;
|
||||||
|
|
||||||
ds = d;
|
ds = d;
|
||||||
|
|
||||||
si = s;
|
si = s;
|
||||||
@ -308,8 +311,9 @@ long uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d < de)
|
if (d >= de)
|
||||||
*d++ = '\0';
|
return UV_EINVAL;
|
||||||
|
|
||||||
|
*d++ = '\0';
|
||||||
return d - ds; /* Number of bytes written. */
|
return d - ds; /* Number of bytes written. */
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user