New upstream version 3.21.4

ci/unstable
Timo Röhling 3 years ago
parent 62d1c84f2b
commit f600a2c0ee

@ -5,11 +5,6 @@ Visual Studio 17 2022
Generates Visual Studio 17 (VS 2022) project files. Generates Visual Studio 17 (VS 2022) project files.
.. warning::
This is experimental and based on "Visual Studio 2022 Preview 4".
As of this version of CMake, VS 2022 has not been released.
Project Types Project Types
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
@ -51,8 +46,8 @@ name (architecture). For example:
Toolset Selection Toolset Selection
^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
The ``v143`` toolset that comes with VS 17 2022 Preview 4 is selected by The ``v143`` toolset that comes with VS 17 2022 is selected by default.
default. The :variable:`CMAKE_GENERATOR_TOOLSET` option may be set, perhaps The :variable:`CMAKE_GENERATOR_TOOLSET` option may be set, perhaps
via the :manual:`cmake(1)` ``-T`` option, to specify another toolset. via the :manual:`cmake(1)` ``-T`` option, to specify another toolset.
.. |VS_TOOLSET_HOST_ARCH_DEFAULT| replace:: .. |VS_TOOLSET_HOST_ARCH_DEFAULT| replace::

@ -26,9 +26,7 @@ Presets
Generators Generators
---------- ----------
* The :generator:`Visual Studio 17 2022` generator was added. This is * The :generator:`Visual Studio 17 2022` generator was added.
experimental and based on "Visual Studio 2022 Preview 4" because this
version of VS has not been released.
* The :ref:`Makefile Generators` and the :generator:`Ninja` generator * The :ref:`Makefile Generators` and the :generator:`Ninja` generator
learned to add linker launcher tools along with the linker for ``C``, learned to add linker launcher tools along with the linker for ``C``,
@ -329,3 +327,10 @@ Changes made since CMake 3.21.0 include the following.
* ``hipcc`` may once again be used as a ``CXX`` compiler, and is treated as * ``hipcc`` may once again be used as a ``CXX`` compiler, and is treated as
whatever compiler it selects underneath, as CMake 3.20 and below did. whatever compiler it selects underneath, as CMake 3.20 and below did.
3.21.4
------
* The :generator:`Visual Studio 17 2022` generator is now based on the
"Visual Studio 2022" release candidates. Previously it was based on
preview versions.

@ -174,7 +174,10 @@ else()
endif() endif()
list(PREPEND _CMAKE_AR_NAMES "llvm-ar") list(PREPEND _CMAKE_AR_NAMES "llvm-ar")
list(PREPEND _CMAKE_RANLIB_NAMES "llvm-ranlib") list(PREPEND _CMAKE_RANLIB_NAMES "llvm-ranlib")
if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}" VERSION_GREATER_EQUAL 11)
# llvm-strip versions prior to 11 require additional flags we do not yet add.
list(PREPEND _CMAKE_STRIP_NAMES "llvm-strip") list(PREPEND _CMAKE_STRIP_NAMES "llvm-strip")
endif()
list(PREPEND _CMAKE_NM_NAMES "llvm-nm") list(PREPEND _CMAKE_NM_NAMES "llvm-nm")
if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}" VERSION_GREATER_EQUAL 9) if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}" VERSION_GREATER_EQUAL 9)
# llvm-objdump versions prior to 9 did not support everything we need. # llvm-objdump versions prior to 9 did not support everything we need.

@ -439,6 +439,7 @@ set(_CPACK_IFW_PREFIXES
"QtIFW-") "QtIFW-")
set(_CPACK_IFW_VERSIONS set(_CPACK_IFW_VERSIONS
"4.1"
"4.0" "4.0"
"3.2" "3.2"
"3.2.0" "3.2.0"

@ -70,6 +70,7 @@ elseif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)
cxx_std_14 cxx_std_14
cxx_std_17 cxx_std_17
cxx_std_20 cxx_std_20
cxx_std_23
) )
_record_compiler_features(CXX "" CMAKE_CXX_COMPILE_FEATURES) _record_compiler_features(CXX "" CMAKE_CXX_COMPILE_FEATURES)
endmacro() endmacro()

@ -9,4 +9,15 @@ if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 20.11)
set(CMAKE_C17_EXTENSION_COMPILE_OPTION -std=gnu17) set(CMAKE_C17_EXTENSION_COMPILE_OPTION -std=gnu17)
endif() endif()
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 21.07)
set(CMAKE_DEPFILE_FLAGS_C "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
set(CMAKE_C_DEPFILE_FORMAT gcc)
set(CMAKE_C_DEPENDS_USE_COMPILER TRUE)
else()
# Before NVHPC 21.07 the `-MD` flag implicitly
# implies `-E` and therefore compilation and dependency generation
# can't occur in the same invocation
set(CMAKE_C_DEPENDS_EXTRA_COMMANDS "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x c -M <SOURCE> -MT <OBJECT> -MD<DEP_FILE>")
endif()
__compiler_nvhpc(C) __compiler_nvhpc(C)

@ -9,4 +9,14 @@ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 20.11)
set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION -std=gnu++20) set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION -std=gnu++20)
endif() endif()
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 21.07)
set(CMAKE_DEPFILE_FLAGS_CXX "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
set(CMAKE_CXX_DEPFILE_FORMAT gcc)
set(CMAKE_CXX_DEPENDS_USE_COMPILER TRUE)
else()
# Before NVHPC 21.07 the `-MD` flag implicitly
# implies `-E` and therefore compilation and dependency generation
# can't occur in the same invocation
set(CMAKE_CXX_DEPENDS_EXTRA_COMMANDS "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x c++ -M <SOURCE> -MT <OBJECT> -MD<DEP_FILE>")
endif()
__compiler_nvhpc(CXX) __compiler_nvhpc(CXX)

@ -12,16 +12,4 @@ include(Compiler/PGI)
macro(__compiler_nvhpc lang) macro(__compiler_nvhpc lang)
# Logic specific to NVHPC. # Logic specific to NVHPC.
if(CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 21.07)
set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
set(CMAKE_${lang}_DEPFILE_FORMAT gcc)
set(CMAKE_${lang}_DEPENDS_USE_COMPILER TRUE)
else()
# Before NVHPC 21.07 the `-MD` flag implicitly
# implies `-E` and therefore compilation and dependency generation
# can't occur in the same invocation
set(CMAKE_${lang}_DEPENDS_EXTRA_COMMANDS "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> ${CMAKE_${lang}_COMPILE_OPTIONS_EXPLICIT_LANGUAGE} -M <SOURCE> -MT <OBJECT> -MD<DEP_FILE>")
endif()
endmacro() endmacro()

@ -261,6 +261,7 @@ if(NOT MATLAB_ADDITIONAL_VERSIONS)
endif() endif()
set(MATLAB_VERSIONS_MAPPING set(MATLAB_VERSIONS_MAPPING
"R2021b=9.11"
"R2021a=9.10" "R2021a=9.10"
"R2020b=9.9" "R2020b=9.9"
"R2020a=9.8" "R2020a=9.8"

@ -8,11 +8,10 @@ configure_file(${FortranCInterface_SOURCE_DIR}/Input.cmake.in
# configuration changes. # configuration changes.
if(NOT EXISTS ${FortranCInterface_BINARY_DIR}/Output.cmake if(NOT EXISTS ${FortranCInterface_BINARY_DIR}/Output.cmake
OR NOT EXISTS ${FortranCInterface_BINARY_DIR}/Input.cmake OR NOT EXISTS ${FortranCInterface_BINARY_DIR}/Input.cmake
OR NOT EXISTS ${FortranCInterface_BINARY_DIR}/Output.cmake.in
OR NOT ${FortranCInterface_BINARY_DIR}/Output.cmake OR NOT ${FortranCInterface_BINARY_DIR}/Output.cmake
IS_NEWER_THAN ${FortranCInterface_BINARY_DIR}/Input.cmake IS_NEWER_THAN ${FortranCInterface_BINARY_DIR}/Input.cmake
OR NOT ${FortranCInterface_SOURCE_DIR}/Output.cmake OR NOT ${FortranCInterface_SOURCE_DIR}/Output.cmake
IS_NEWER_THAN ${FortranCInterface_BINARY_DIR}/Output.cmake.in IS_NEWER_THAN ${FortranCInterface_SOURCE_DIR}/Output.cmake.in
OR NOT ${FortranCInterface_BINARY_DIR}/Output.cmake OR NOT ${FortranCInterface_BINARY_DIR}/Output.cmake
IS_NEWER_THAN ${FortranCInterface_SOURCE_DIR}/CMakeLists.txt IS_NEWER_THAN ${FortranCInterface_SOURCE_DIR}/CMakeLists.txt
OR NOT ${FortranCInterface_BINARY_DIR}/Output.cmake OR NOT ${FortranCInterface_BINARY_DIR}/Output.cmake

@ -180,6 +180,8 @@ _GNUInstallDirs_cache_path(CMAKE_INSTALL_BINDIR "bin"
"User executables (bin)") "User executables (bin)")
_GNUInstallDirs_cache_path(CMAKE_INSTALL_SBINDIR "sbin" _GNUInstallDirs_cache_path(CMAKE_INSTALL_SBINDIR "sbin"
"System admin executables (sbin)") "System admin executables (sbin)")
_GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "libexec"
"Program executables (libexec)")
_GNUInstallDirs_cache_path(CMAKE_INSTALL_SYSCONFDIR "etc" _GNUInstallDirs_cache_path(CMAKE_INSTALL_SYSCONFDIR "etc"
"Read-only single-machine data (etc)") "Read-only single-machine data (etc)")
_GNUInstallDirs_cache_path(CMAKE_INSTALL_SHAREDSTATEDIR "com" _GNUInstallDirs_cache_path(CMAKE_INSTALL_SHAREDSTATEDIR "com"
@ -274,19 +276,6 @@ set(_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE IN
unset(_libdir_set) unset(_libdir_set)
unset(__LAST_LIBDIR_DEFAULT) unset(__LAST_LIBDIR_DEFAULT)
if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$"
AND NOT CMAKE_CROSSCOMPILING
AND NOT EXISTS "/etc/arch-release"
AND EXISTS "/etc/debian_version" # is this a debian system ?
AND "${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$")
# see https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#usrlibexec
# and https://www.debian.org/doc/debian-policy/ch-opersys#file-system-structure (section 9.1.1 bullet point 4)
_GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "${CMAKE_INSTALL_LIBDIR}"
"Program executables (${CMAKE_INSTALL_LIBDIR})")
else()
_GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "libexec"
"Program executables (libexec)")
endif()
_GNUInstallDirs_cache_path(CMAKE_INSTALL_INCLUDEDIR "include" _GNUInstallDirs_cache_path(CMAKE_INSTALL_INCLUDEDIR "include"
"C header files (include)") "C header files (include)")
_GNUInstallDirs_cache_path(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" _GNUInstallDirs_cache_path(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include"

@ -225,7 +225,7 @@ if(MSVC)
elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 144) elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 144)
message(WARNING "MSVC toolset v${MSVC_TOOLSET_VERSION} not yet supported.") message(WARNING "MSVC toolset v${MSVC_TOOLSET_VERSION} not yet supported.")
elseif(MSVC_TOOLSET_VERSION EQUAL 143) elseif(MSVC_TOOLSET_VERSION EQUAL 143)
set(MSVC_REDIST_NAME VC142) set(MSVC_REDIST_NAME VC143)
set(_MSVC_DLL_VERSION 140) set(_MSVC_DLL_VERSION 140)
set(_MSVC_IDE_VERSION 17) set(_MSVC_IDE_VERSION 17)
elseif(MSVC_TOOLSET_VERSION EQUAL 142) elseif(MSVC_TOOLSET_VERSION EQUAL 142)

@ -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 21) set(CMake_VERSION_MINOR 21)
set(CMake_VERSION_PATCH 3) set(CMake_VERSION_PATCH 4)
#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 [==[7612abd52f CMake 3.21.3]==]) set(git_info [==[f65cebf51a CMake 3.21.4]==])
# 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]* "

@ -226,7 +226,7 @@ bool DebGenerator::generateDataTar() const
cmCPackLogger(cmCPackLog::LOG_DEBUG, cmCPackLogger(cmCPackLog::LOG_DEBUG,
"RELATIVEDIR: \"" << relativeDir << "\"" << std::endl); "RELATIVEDIR: \"" << relativeDir << "\"" << std::endl);
#ifdef WIN32 #ifdef _WIN32
std::string mode_t_adt_filename = file + ":cmake_mode_t"; std::string mode_t_adt_filename = file + ":cmake_mode_t";
cmsys::ifstream permissionStream(mode_t_adt_filename.c_str()); cmsys::ifstream permissionStream(mode_t_adt_filename.c_str());

@ -16,6 +16,7 @@
#include "cmAddTestCommand.h" #include "cmAddTestCommand.h"
#include "cmBreakCommand.h" #include "cmBreakCommand.h"
#include "cmBuildCommand.h" #include "cmBuildCommand.h"
#include "cmCMakeLanguageCommand.h"
#include "cmCMakeMinimumRequired.h" #include "cmCMakeMinimumRequired.h"
#include "cmCMakePathCommand.h" #include "cmCMakePathCommand.h"
#include "cmCMakePolicyCommand.h" #include "cmCMakePolicyCommand.h"
@ -93,7 +94,6 @@
# include "cmAuxSourceDirectoryCommand.h" # include "cmAuxSourceDirectoryCommand.h"
# include "cmBuildNameCommand.h" # include "cmBuildNameCommand.h"
# include "cmCMakeHostSystemInformationCommand.h" # include "cmCMakeHostSystemInformationCommand.h"
# include "cmCMakeLanguageCommand.h"
# include "cmExportCommand.h" # include "cmExportCommand.h"
# include "cmExportLibraryDependenciesCommand.h" # include "cmExportLibraryDependenciesCommand.h"
# include "cmFLTKWrapUICommand.h" # include "cmFLTKWrapUICommand.h"
@ -128,6 +128,7 @@ void GetScriptingCommands(cmState* state)
state->AddFlowControlCommand("return", cmReturnCommand); state->AddFlowControlCommand("return", cmReturnCommand);
state->AddFlowControlCommand("while", cmWhileCommand); state->AddFlowControlCommand("while", cmWhileCommand);
state->AddBuiltinCommand("cmake_language", cmCMakeLanguageCommand);
state->AddBuiltinCommand("cmake_minimum_required", cmCMakeMinimumRequired); state->AddBuiltinCommand("cmake_minimum_required", cmCMakeMinimumRequired);
state->AddBuiltinCommand("cmake_path", cmCMakePathCommand); state->AddBuiltinCommand("cmake_path", cmCMakePathCommand);
state->AddBuiltinCommand("cmake_policy", cmCMakePolicyCommand); state->AddBuiltinCommand("cmake_policy", cmCMakePolicyCommand);
@ -202,7 +203,6 @@ void GetScriptingCommands(cmState* state)
#if !defined(CMAKE_BOOTSTRAP) #if !defined(CMAKE_BOOTSTRAP)
state->AddBuiltinCommand("cmake_host_system_information", state->AddBuiltinCommand("cmake_host_system_information",
cmCMakeHostSystemInformationCommand); cmCMakeHostSystemInformationCommand);
state->AddBuiltinCommand("cmake_language", cmCMakeLanguageCommand);
state->AddBuiltinCommand("load_cache", cmLoadCacheCommand); state->AddBuiltinCommand("load_cache", cmLoadCacheCommand);
state->AddBuiltinCommand("remove", cmRemoveCommand); state->AddBuiltinCommand("remove", cmRemoveCommand);
state->AddBuiltinCommand("variable_watch", cmVariableWatchCommand); state->AddBuiltinCommand("variable_watch", cmVariableWatchCommand);

@ -72,7 +72,7 @@ bool cmFileCopier::SetPermissions(const std::string& toFile,
mode_t permissions) mode_t permissions)
{ {
if (permissions) { if (permissions) {
#ifdef WIN32 #ifdef _WIN32
if (Makefile->IsOn("CMAKE_CROSSCOMPILING")) { if (Makefile->IsOn("CMAKE_CROSSCOMPILING")) {
// Store the mode in an NTFS alternate stream. // Store the mode in an NTFS alternate stream.
std::string mode_t_adt_filename = toFile + ":cmake_mode_t"; std::string mode_t_adt_filename = toFile + ":cmake_mode_t";

@ -88,7 +88,7 @@ void cmLocalNinjaGenerator::Generate()
cmGlobalNinjaGenerator::WriteComment(this->GetRulesFileStream(), cmGlobalNinjaGenerator::WriteComment(this->GetRulesFileStream(),
"localized /showIncludes string"); "localized /showIncludes string");
this->GetRulesFileStream() << "msvc_deps_prefix = "; this->GetRulesFileStream() << "msvc_deps_prefix = ";
#ifdef WIN32 #ifdef _WIN32
// Ninja uses the ANSI Windows APIs, so strings in the rules file // Ninja uses the ANSI Windows APIs, so strings in the rules file
// typically need to be ANSI encoded. However, in this case the compiler // typically need to be ANSI encoded. However, in this case the compiler
// is being invoked using the UTF-8 codepage so the /showIncludes prefix // is being invoked using the UTF-8 codepage so the /showIncludes prefix

@ -1306,7 +1306,16 @@ bool cmQtAutoGenInitializer::InitAutogenTarget()
// Add additional autogen target dependencies to // Add additional autogen target dependencies to
// '_autogen_timestamp_deps'. // '_autogen_timestamp_deps'.
for (const cmTarget* t : this->AutogenTarget.DependTargets) { for (const cmTarget* t : this->AutogenTarget.DependTargets) {
dependencies.push_back(t->GetName()); std::string depname = t->GetName();
if (t->IsImported()) {
auto ttype = t->GetType();
if (ttype == cmStateEnums::TargetType::STATIC_LIBRARY ||
ttype == cmStateEnums::TargetType::SHARED_LIBRARY ||
ttype == cmStateEnums::TargetType::UNKNOWN_LIBRARY) {
depname = cmStrCat("$<TARGET_LINKER_FILE:", t->GetName(), ">");
}
}
dependencies.push_back(depname);
} }
cmTarget* timestampTarget = this->LocalGen->AddUtilityCommand( cmTarget* timestampTarget = this->LocalGen->AddUtilityCommand(

@ -1461,7 +1461,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string> const& args,
cmSystemTools::Error("Problem extracting tar: " + outFile); cmSystemTools::Error("Problem extracting tar: " + outFile);
return 1; return 1;
} }
#ifdef WIN32 #ifdef _WIN32
// OK, on windows 7 after we untar some files, // OK, on windows 7 after we untar some files,
// sometimes we can not rename the directory after // sometimes we can not rename the directory after
// the untar is done. This breaks the external project // the untar is done. This breaks the external project

@ -138,7 +138,7 @@ int main(int ac, char* av[])
t = clock() - t; t = clock() - t;
status_message = (status == -1) ? "not ok" : "ok"; status_message = (status == -1) ? "not ok" : "ok";
{ {
double time_taken = ((double)t) / CLOCKS_PER_SEC; double time_taken = CM_CAST(double, t) / CLOCKS_PER_SEC;
printf("%s %d %s # %f\n", status_message, i + 1, name, time_taken); printf("%s %d %s # %f\n", status_message, i + 1, name, time_taken);
} }
} }

@ -0,0 +1,12 @@
include("${CMAKE_CURRENT_LIST_DIR}/CMP0111-imported-target-prelude.cmake")
set_location(executable LOCATION "${CMAKE_CURRENT_BINARY_DIR}/executable${CMAKE_EXECUTABLE_SUFFIX}")
set_location(shared LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}shared${CMAKE_SHARED_LIBRARY_SUFFIX}")
if (CMAKE_IMPORT_LIBRARY_SUFFIX)
set_location(shared IMPLIB "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}shared${CMAKE_IMPORT_LIBRARY_SUFFIX}")
endif ()
set_location(static LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}static${CMAKE_STATIC_LIBRARY_SUFFIX}")
set_location(unknown LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}unknown${CMAKE_IMPORT_LIBRARY_SUFFIX}")
set_location(module LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_MODULE_PREFIX}module${CMAKE_SHARED_MODULE_SUFFIX}")

@ -0,0 +1,13 @@
include("${CMAKE_CURRENT_LIST_DIR}/CMP0111-imported-target-prelude.cmake")
set_location(executable LOCATION "${CMAKE_CURRENT_BINARY_DIR}/executable${CMAKE_EXECUTABLE_SUFFIX}")
if (CMAKE_IMPORT_LIBRARY_SUFFIX)
set_location(shared IMPLIB "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}shared${CMAKE_IMPORT_LIBRARY_SUFFIX}")
else ()
set_location(shared LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}shared${CMAKE_SHARED_LIBRARY_SUFFIX}")
endif ()
set_location(static LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}static${CMAKE_STATIC_LIBRARY_SUFFIX}")
set_location(unknown LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unknown${CMAKE_STATIC_LIBRARY_SUFFIX}")
set_location(module LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_MODULE_PREFIX}module${CMAKE_SHARED_MODULE_SUFFIX}")

@ -0,0 +1,14 @@
include("${CMAKE_CURRENT_LIST_DIR}/CMP0111-imported-target-prelude.cmake")
set_location(executable LOCATION "${CMAKE_CURRENT_BINARY_DIR}/executable${CMAKE_EXECUTABLE_SUFFIX}")
set_location(shared LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}shared${CMAKE_SHARED_LIBRARY_SUFFIX}")
if (CMAKE_IMPORT_LIBRARY_SUFFIX)
set_location(shared IMPLIB "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}shared${CMAKE_IMPORT_LIBRARY_SUFFIX}")
endif ()
set_location(static LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}static${CMAKE_IMPORT_LIBRARY_SUFFIX}")
set_location(unknown LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}unknown${CMAKE_IMPORT_LIBRARY_SUFFIX}")
set_location(module LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_MODULE_PREFIX}module${CMAKE_SHARED_MODULE_SUFFIX}")
set_location(interface LIBNAME "interface")

@ -0,0 +1,32 @@
enable_language(CXX)
find_package(Qt5 REQUIRED COMPONENTS Core)
# Detect `-NOTFOUND` libraries at generate time.
cmake_policy(SET CMP0111 NEW)
add_executable(imported::executable IMPORTED)
add_library(imported::shared SHARED IMPORTED)
add_library(imported::static STATIC IMPORTED)
add_library(imported::unknown UNKNOWN IMPORTED)
add_library(imported::interface INTERFACE IMPORTED)
add_library(imported::module MODULE IMPORTED)
function (set_location target name loc)
set_property(TARGET "imported::${target}" PROPERTY
"IMPORTED_${name}" "${loc}")
endfunction ()
set(CMAKE_AUTOMOC 1)
add_library(automoc
empty.cpp)
target_link_libraries(automoc
PRIVATE
imported::shared
imported::static
imported::unknown
imported::interface)
add_dependencies(automoc
imported::executable
imported::module)

@ -5,4 +5,8 @@ if (with_qt5)
run_cmake(QtInFunction) run_cmake(QtInFunction)
run_cmake(QtInFunctionNested) run_cmake(QtInFunctionNested)
run_cmake(QtInFunctionProperty) run_cmake(QtInFunctionProperty)
run_cmake(CMP0111-imported-target-full)
run_cmake(CMP0111-imported-target-libname)
run_cmake(CMP0111-imported-target-implib-only)
endif () endif ()

@ -5,7 +5,7 @@ CMAKE_INSTALL_DOCDIR='share/doc/Usr'
CMAKE_INSTALL_INCLUDEDIR='include' CMAKE_INSTALL_INCLUDEDIR='include'
CMAKE_INSTALL_INFODIR='share/info' CMAKE_INSTALL_INFODIR='share/info'
CMAKE_INSTALL_LIBDIR='lib/arch' CMAKE_INSTALL_LIBDIR='lib/arch'
CMAKE_INSTALL_LIBEXECDIR='lib/arch' CMAKE_INSTALL_LIBEXECDIR='libexec'
CMAKE_INSTALL_LOCALEDIR='share/locale' CMAKE_INSTALL_LOCALEDIR='share/locale'
CMAKE_INSTALL_LOCALSTATEDIR='var' CMAKE_INSTALL_LOCALSTATEDIR='var'
CMAKE_INSTALL_RUNSTATEDIR='var/run' CMAKE_INSTALL_RUNSTATEDIR='var/run'
@ -20,7 +20,7 @@ CMAKE_INSTALL_FULL_DOCDIR='/usr/share/doc/Usr'
CMAKE_INSTALL_FULL_INCLUDEDIR='/usr/include' CMAKE_INSTALL_FULL_INCLUDEDIR='/usr/include'
CMAKE_INSTALL_FULL_INFODIR='/usr/share/info' CMAKE_INSTALL_FULL_INFODIR='/usr/share/info'
CMAKE_INSTALL_FULL_LIBDIR='/usr/lib/arch' CMAKE_INSTALL_FULL_LIBDIR='/usr/lib/arch'
CMAKE_INSTALL_FULL_LIBEXECDIR='/usr/lib/arch' CMAKE_INSTALL_FULL_LIBEXECDIR='/usr/libexec'
CMAKE_INSTALL_FULL_LOCALEDIR='/usr/share/locale' CMAKE_INSTALL_FULL_LOCALEDIR='/usr/share/locale'
CMAKE_INSTALL_FULL_LOCALSTATEDIR='/var' CMAKE_INSTALL_FULL_LOCALSTATEDIR='/var'
CMAKE_INSTALL_FULL_RUNSTATEDIR='/var/run' CMAKE_INSTALL_FULL_RUNSTATEDIR='/var/run'

@ -91,7 +91,12 @@ function(XcodeSchemaGeneration)
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
run_cmake(XcodeSchemaGeneration) run_cmake(XcodeSchemaGeneration)
run_cmake_command(XcodeSchemaGeneration-build xcodebuild -scheme foo build) if (XCODE_VERSION VERSION_GREATER_EQUAL 13)
set(maybe_destination -destination platform=macOS)
else()
set(maybe_destination "")
endif()
run_cmake_command(XcodeSchemaGeneration-build xcodebuild -scheme foo ${maybe_destination} build)
endfunction() endfunction()
if(NOT XCODE_VERSION VERSION_LESS 7) if(NOT XCODE_VERSION VERSION_LESS 7)

@ -9,8 +9,8 @@ function(verify_architectures file)
return() return()
endif() endif()
string(REGEX MATCHALL "architecture [^ \n\t]+" architectures ${otool_out}) string(REGEX MATCHALL "\narchitecture [^ \n\t()]+" architectures ${otool_out})
string(REPLACE "architecture " "" actual "${architectures}") string(REPLACE "\narchitecture " "" actual "${architectures}")
list(SORT actual) list(SORT actual)
set(expected arm64 armv7 i386 x86_64) set(expected arm64 armv7 i386 x86_64)

@ -9,8 +9,8 @@ function(verify_architectures file)
return() return()
endif() endif()
string(REGEX MATCHALL "architecture [^ \n\t]+" architectures ${otool_out}) string(REGEX MATCHALL "\narchitecture [^ \n\t()]+" architectures ${otool_out})
string(REPLACE "architecture " "" actual "${architectures}") string(REPLACE "\narchitecture " "" actual "${architectures}")
list(SORT actual) list(SORT actual)
set(expected armv7 x86_64) set(expected armv7 x86_64)

@ -173,9 +173,7 @@ void __asan_unpoison_memory_region(void const volatile *addr, size_t size);
* Prefer these methods in priority order (0 > 1 > 2) * Prefer these methods in priority order (0 > 1 > 2)
*/ */
#ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */
# if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) # if defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__)
# define MEM_FORCE_MEMORY_ACCESS 2
# elif defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__)
# define MEM_FORCE_MEMORY_ACCESS 1 # define MEM_FORCE_MEMORY_ACCESS 1
# endif # endif
#endif #endif

@ -30,9 +30,7 @@
* Prefer these methods in priority order (0 > 1 > 2) * Prefer these methods in priority order (0 > 1 > 2)
*/ */
#ifndef XXH_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ #ifndef XXH_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */
# if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) # if (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
# define XXH_FORCE_MEMORY_ACCESS 2
# elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
(defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) || \ (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) || \
defined(__ICCARM__) defined(__ICCARM__)
# define XXH_FORCE_MEMORY_ACCESS 1 # define XXH_FORCE_MEMORY_ACCESS 1

@ -297,6 +297,7 @@ CMAKE_CXX_SOURCES="\
cmBinUtilsWindowsPEObjdumpGetRuntimeDependenciesTool \ cmBinUtilsWindowsPEObjdumpGetRuntimeDependenciesTool \
cmBreakCommand \ cmBreakCommand \
cmBuildCommand \ cmBuildCommand \
cmCMakeLanguageCommand \
cmCMakeMinimumRequired \ cmCMakeMinimumRequired \
cmCMakePath \ cmCMakePath \
cmCMakePathCommand \ cmCMakePathCommand \

Loading…
Cancel
Save