New upstream version 3.31.2
This commit is contained in:
		
							parent
							
								
									63888ed0f6
								
							
						
					
					
						commit
						8813f25f55
					
				@ -1,5 +1,6 @@
 | 
			
		||||
#include "mysqrt.h"
 | 
			
		||||
 | 
			
		||||
// TODO 4: include cmath
 | 
			
		||||
#include <iostream>
 | 
			
		||||
 | 
			
		||||
namespace mathfunctions {
 | 
			
		||||
 | 
			
		||||
@ -16,5 +16,7 @@ the :prop_tgt:`SOVERSION` target property, if set, and otherwise from
 | 
			
		||||
the :prop_tgt:`VERSION` target property, if set.
 | 
			
		||||
 | 
			
		||||
This property defaults to :variable:`CMAKE_AIX_SHARED_LIBRARY_ARCHIVE`
 | 
			
		||||
if that variable is set when a ``SHARED`` library target is created
 | 
			
		||||
by :command:`add_library`.
 | 
			
		||||
if that variable is set when a non-imported ``SHARED`` library target
 | 
			
		||||
is created by :command:`add_library`.  Imported targets must explicitly
 | 
			
		||||
enable :prop_tgt:`!AIX_SHARED_LIBRARY_ARCHIVE` if they import an AIX
 | 
			
		||||
shared library archive.
 | 
			
		||||
 | 
			
		||||
@ -263,9 +263,9 @@ Updates
 | 
			
		||||
 | 
			
		||||
Changes made since CMake 3.31.0 include the following.
 | 
			
		||||
 | 
			
		||||
3.31.1
 | 
			
		||||
------
 | 
			
		||||
3.31.1, 3.31.2
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
* 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.
 | 
			
		||||
 | 
			
		||||
@ -6,5 +6,5 @@ CMAKE_AIX_SHARED_LIBRARY_ARCHIVE
 | 
			
		||||
On AIX, enable creation of shared library archives.
 | 
			
		||||
 | 
			
		||||
This variable initializes the :prop_tgt:`AIX_SHARED_LIBRARY_ARCHIVE`
 | 
			
		||||
target property on ``SHARED`` library targets as they are created
 | 
			
		||||
by :command:`add_library`.  See that target property for details.
 | 
			
		||||
target property on non-imported ``SHARED`` library targets as they are
 | 
			
		||||
created by :command:`add_library`.  See that target property for details.
 | 
			
		||||
 | 
			
		||||
@ -30,6 +30,9 @@ else()
 | 
			
		||||
    string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3")
 | 
			
		||||
    string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g")
 | 
			
		||||
 | 
			
		||||
    # Compiler + IPO does not recognize --dependency-file link option
 | 
			
		||||
    set(CMAKE_${lang}_LINKER_DEPFILE_SUPPORTED FALSE)
 | 
			
		||||
 | 
			
		||||
    if("${lang}" STREQUAL "CXX")
 | 
			
		||||
      set(CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "${CMAKE_${lang}_COMPILER}")
 | 
			
		||||
      if(CMAKE_${lang}_COMPILER_ARG1)
 | 
			
		||||
 | 
			
		||||
@ -3464,14 +3464,15 @@ if (("Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
 | 
			
		||||
    endif()
 | 
			
		||||
 | 
			
		||||
    # finalize library version information
 | 
			
		||||
    _python_get_version (SABI_LIBRARY PREFIX _${_PYTHON_PREFIX}_)
 | 
			
		||||
    # ABI library does not have the full version information
 | 
			
		||||
    if (${_PYTHON_PREFIX}_Interpreter_FOUND OR _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
 | 
			
		||||
      # update from interpreter or library
 | 
			
		||||
    if (${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
 | 
			
		||||
      # update from interpreter
 | 
			
		||||
      set (_${_PYTHON_PREFIX}_VERSION ${${_PYTHON_PREFIX}_VERSION})
 | 
			
		||||
      set (_${_PYTHON_PREFIX}_VERSION_MAJOR ${${_PYTHON_PREFIX}_VERSION_MAJOR})
 | 
			
		||||
      set (_${_PYTHON_PREFIX}_VERSION_MINOR ${${_PYTHON_PREFIX}_VERSION_MINOR})
 | 
			
		||||
      set (_${_PYTHON_PREFIX}_VERSION_PATCH ${${_PYTHON_PREFIX}_VERSION_PATCH})
 | 
			
		||||
    elseif(NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
 | 
			
		||||
      _python_get_version (SABI_LIBRARY PREFIX _${_PYTHON_PREFIX}_)
 | 
			
		||||
    endif()
 | 
			
		||||
 | 
			
		||||
    set (${_PYTHON_PREFIX}_SABI_LIBRARY_RELEASE "${_${_PYTHON_PREFIX}_SABI_LIBRARY_RELEASE}")
 | 
			
		||||
 | 
			
		||||
@ -5,22 +5,17 @@
 | 
			
		||||
FindRuby
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
Find Ruby
 | 
			
		||||
 | 
			
		||||
This module finds if Ruby is installed and determines where the
 | 
			
		||||
include files and libraries are.  Ruby 1.8 through 3.3 are
 | 
			
		||||
supported.
 | 
			
		||||
This module determines if Ruby is installed and finds the locations of its
 | 
			
		||||
include files and libraries. Ruby 1.8 through 3.4 are supported.
 | 
			
		||||
 | 
			
		||||
The minimum required version of Ruby can be specified using the
 | 
			
		||||
standard syntax, e.g.
 | 
			
		||||
 | 
			
		||||
.. code-block:: cmake
 | 
			
		||||
 | 
			
		||||
  find_package(Ruby 2.5.1 EXACT REQUIRED)
 | 
			
		||||
  find_package(Ruby 3.2.6 EXACT REQUIRED)
 | 
			
		||||
  # OR
 | 
			
		||||
  find_package(Ruby 2.4)
 | 
			
		||||
 | 
			
		||||
It also determines what the name of the library is.
 | 
			
		||||
  find_package(Ruby 3.2)
 | 
			
		||||
 | 
			
		||||
Virtual environments such as RVM are handled as well, by passing
 | 
			
		||||
the argument ``Ruby_FIND_VIRTUALENV``
 | 
			
		||||
@ -40,7 +35,7 @@ This module will set the following variables in your project:
 | 
			
		||||
  .. versionadded:: 3.18
 | 
			
		||||
    libraries needed to use ruby from C.
 | 
			
		||||
``Ruby_VERSION``
 | 
			
		||||
  the version of ruby which was found, e.g. "1.8.7"
 | 
			
		||||
  the version of ruby which was found, e.g. "3.2.6"
 | 
			
		||||
``Ruby_VERSION_MAJOR``
 | 
			
		||||
  Ruby major version.
 | 
			
		||||
``Ruby_VERSION_MINOR``
 | 
			
		||||
@ -136,13 +131,13 @@ set(Ruby_FIND_VERSION_SHORT_NODOT "${Ruby_FIND_VERSION_MAJOR}${Ruby_FIND_VERSION
 | 
			
		||||
 | 
			
		||||
# Set name of possible executables, ignoring the minor
 | 
			
		||||
# Eg:
 | 
			
		||||
# 2.1.1 => from ruby33 to ruby21 included
 | 
			
		||||
# 2.1   => from ruby33 to ruby21 included
 | 
			
		||||
# 2     => from ruby33 to ruby20 included
 | 
			
		||||
# empty => from ruby33 to ruby18 included
 | 
			
		||||
# 3.2.6 => from ruby34 to ruby32 included
 | 
			
		||||
# 3.2   => from ruby34 to ruby32 included
 | 
			
		||||
# 3     => from ruby34 to ruby30 included
 | 
			
		||||
# empty => from ruby34 to ruby18 included
 | 
			
		||||
if(NOT Ruby_FIND_VERSION_EXACT)
 | 
			
		||||
 | 
			
		||||
  foreach(_ruby_version RANGE 33 18 -1)
 | 
			
		||||
  foreach(_ruby_version RANGE 34 18 -1)
 | 
			
		||||
    string(SUBSTRING "${_ruby_version}" 0 1 _ruby_major_version)
 | 
			
		||||
    string(SUBSTRING "${_ruby_version}" 1 1 _ruby_minor_version)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,7 @@ cmake_policy(SET CMP0140 NEW)
 | 
			
		||||
 | 
			
		||||
function(__linker_gnu lang)
 | 
			
		||||
  # define flags for linker depfile generation
 | 
			
		||||
  set(CMAKE_${lang}_LINKER_DEPFILE_FLAGS "LINKER:--dependency-file,<DEP_FILE>")
 | 
			
		||||
  set(CMAKE_${lang}_LINKER_DEPFILE_FLAGS "LINKER:--dependency-file=<DEP_FILE>")
 | 
			
		||||
  set(CMAKE_${lang}_LINKER_DEPFILE_FORMAT gcc)
 | 
			
		||||
 | 
			
		||||
  if(NOT CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF")
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
# CMake version number components.
 | 
			
		||||
set(CMake_VERSION_MAJOR 3)
 | 
			
		||||
set(CMake_VERSION_MINOR 31)
 | 
			
		||||
set(CMake_VERSION_PATCH 1)
 | 
			
		||||
set(CMake_VERSION_PATCH 2)
 | 
			
		||||
#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 [==[eb281d3454 CMake 3.31.1]==])
 | 
			
		||||
  set(git_info [==[793c5f11f6 CMake 3.31.2]==])
 | 
			
		||||
 | 
			
		||||
  # 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]* "
 | 
			
		||||
 | 
			
		||||
@ -334,6 +334,12 @@ void cmExportCMakeConfigGenerator::GenerateImportTargetCode(
 | 
			
		||||
    os << "set_property(TARGET " << targetName << " PROPERTY BUNDLE 1)\n";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Mark the imported library if it is an AIX shared library archive.
 | 
			
		||||
  if (target->IsArchivedAIXSharedLibrary()) {
 | 
			
		||||
    os << "set_property(TARGET " << targetName
 | 
			
		||||
       << " PROPERTY AIX_SHARED_LIBRARY_ARCHIVE 1)\n";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // generate DEPRECATION
 | 
			
		||||
  if (target->IsDeprecated()) {
 | 
			
		||||
    os << "set_property(TARGET " << targetName << " PROPERTY DEPRECATION "
 | 
			
		||||
 | 
			
		||||
@ -3592,6 +3592,12 @@ struct TargetFilesystemArtifactResultCreator<ArtifactSonameTag>
 | 
			
		||||
                    "SHARED libraries.");
 | 
			
		||||
      return std::string();
 | 
			
		||||
    }
 | 
			
		||||
    if (target->IsArchivedAIXSharedLibrary()) {
 | 
			
		||||
      ::reportError(context, content->GetOriginalExpression(),
 | 
			
		||||
                    "TARGET_SONAME_FILE is not allowed for "
 | 
			
		||||
                    "AIX_SHARED_LIBRARY_ARCHIVE libraries.");
 | 
			
		||||
      return std::string();
 | 
			
		||||
    }
 | 
			
		||||
    std::string result = cmStrCat(target->GetDirectory(context->Config), '/',
 | 
			
		||||
                                  target->GetSOName(context->Config));
 | 
			
		||||
    return result;
 | 
			
		||||
@ -3618,6 +3624,12 @@ struct TargetFilesystemArtifactResultCreator<ArtifactSonameImportTag>
 | 
			
		||||
                    "SHARED libraries.");
 | 
			
		||||
      return std::string();
 | 
			
		||||
    }
 | 
			
		||||
    if (target->IsArchivedAIXSharedLibrary()) {
 | 
			
		||||
      ::reportError(context, content->GetOriginalExpression(),
 | 
			
		||||
                    "TARGET_SONAME_IMPORT_FILE is not allowed for "
 | 
			
		||||
                    "AIX_SHARED_LIBRARY_ARCHIVE libraries.");
 | 
			
		||||
      return std::string();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (target->HasImportLibrary(context->Config)) {
 | 
			
		||||
      return cmStrCat(target->GetDirectory(
 | 
			
		||||
 | 
			
		||||
@ -551,8 +551,9 @@ std::vector<BT<std::string>>& cmGeneratorTarget::ResolveLinkerWrapper(
 | 
			
		||||
  const std::string SHELL{ "SHELL:" };
 | 
			
		||||
  const std::string LINKER_SHELL = LINKER + SHELL;
 | 
			
		||||
 | 
			
		||||
  for (auto entry = result.begin(); entry != result.end(); ++entry) {
 | 
			
		||||
  for (auto entry = result.begin(); entry != result.end();) {
 | 
			
		||||
    if (entry->Value.compare(0, LINKER.length(), LINKER) != 0) {
 | 
			
		||||
      ++entry;
 | 
			
		||||
      continue;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -594,10 +595,10 @@ std::vector<BT<std::string>>& cmGeneratorTarget::ResolveLinkerWrapper(
 | 
			
		||||
    if (joinItems) {
 | 
			
		||||
      result.insert(
 | 
			
		||||
        entry, cmJoin(cmMakeRange(options.begin(), options.end()), " "_s));
 | 
			
		||||
      entry = std::next(result.begin(), index);
 | 
			
		||||
      entry = std::next(result.begin(), index + 1);
 | 
			
		||||
    } else {
 | 
			
		||||
      result.insert(entry, options.begin(), options.end());
 | 
			
		||||
      entry = std::next(result.begin(), index + options.size() - 1);
 | 
			
		||||
      entry = std::next(result.begin(), index + options.size());
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return result;
 | 
			
		||||
 | 
			
		||||
@ -107,11 +107,13 @@ void cmInstallImportedRuntimeArtifactsGenerator::GenerateScriptForConfig(
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        std::vector<std::string> files{ location };
 | 
			
		||||
        auto soName = this->Target->GetSOName(config);
 | 
			
		||||
        auto soNameFile =
 | 
			
		||||
          cmStrCat(this->Target->GetDirectory(config), '/', soName);
 | 
			
		||||
        if (!soName.empty() && soNameFile != location) {
 | 
			
		||||
          files.push_back(soNameFile);
 | 
			
		||||
        if (!this->Target->IsArchivedAIXSharedLibrary()) {
 | 
			
		||||
          auto soName = this->Target->GetSOName(config);
 | 
			
		||||
          auto soNameFile =
 | 
			
		||||
            cmStrCat(this->Target->GetDirectory(config), '/', soName);
 | 
			
		||||
          if (!soName.empty() && soNameFile != location) {
 | 
			
		||||
            files.push_back(soNameFile);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        this->AddInstallRule(os, this->GetDestination(config),
 | 
			
		||||
                             cmInstallType_SHARED_LIBRARY, files,
 | 
			
		||||
 | 
			
		||||
@ -1626,8 +1626,6 @@ void cmLocalGenerator::GetTargetFlags(
 | 
			
		||||
  this->AppendPositionIndependentLinkerFlags(extraLinkFlags, target, config,
 | 
			
		||||
                                             linkLanguage);
 | 
			
		||||
  this->AppendIPOLinkerFlags(extraLinkFlags, target, config, linkLanguage);
 | 
			
		||||
  this->AppendDependencyInfoLinkerFlags(extraLinkFlags, target, config,
 | 
			
		||||
                                        linkLanguage);
 | 
			
		||||
  this->AppendModuleDefinitionFlag(extraLinkFlags, target, linkLineComputer,
 | 
			
		||||
                                   config);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1277,6 +1277,9 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement(
 | 
			
		||||
                          vars["LINK_LIBRARIES"], vars["FLAGS"],
 | 
			
		||||
                          vars["LINK_FLAGS"], frameworkPath, linkPath, gt);
 | 
			
		||||
 | 
			
		||||
  localGen.AppendDependencyInfoLinkerFlags(vars["LINK_FLAGS"], gt, config,
 | 
			
		||||
                                           this->TargetLinkLanguage(config));
 | 
			
		||||
 | 
			
		||||
  // Add OS X version flags, if any.
 | 
			
		||||
  if (this->GeneratorTarget->GetType() == cmStateEnums::SHARED_LIBRARY ||
 | 
			
		||||
      this->GeneratorTarget->GetType() == cmStateEnums::MODULE_LIBRARY) {
 | 
			
		||||
 | 
			
		||||
@ -1340,12 +1340,9 @@ bool cmQtAutoGenInitializer::InitAutogenTarget()
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (this->Uic.Enabled) {
 | 
			
		||||
    // Make all ui_*.h files byproducts of the ${target}_autogen/timestamp
 | 
			
		||||
    // custom command if the generation of depfile is enabled.
 | 
			
		||||
    auto& byProducts = useDepfile ? timestampByproducts : autogenByproducts;
 | 
			
		||||
    for (auto const& file : this->Uic.UiHeaders) {
 | 
			
		||||
      this->AddGeneratedSource(file.first, this->Uic);
 | 
			
		||||
      byProducts.push_back(file.second);
 | 
			
		||||
      autogenByproducts.push_back(file.second);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -1483,16 +1480,6 @@ bool cmQtAutoGenInitializer::InitAutogenTarget()
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // For the Ninja, Makefile and Qt >= 5.15, add custom commands that create
 | 
			
		||||
    // XXX_autogen/timestamp files. Those custom commands have a depfile
 | 
			
		||||
    // assigned that is generated from the depfiles that were created by moc.
 | 
			
		||||
    //
 | 
			
		||||
    // The XXX_autogen targets merely wrap the XXX_autogen/timestamp custom
 | 
			
		||||
    // commands.
 | 
			
		||||
    // The dependency tree would then look like
 | 
			
		||||
    // the original dependencies of '_autogen' target <-'/timestamp' file
 | 
			
		||||
    // <- '_autogen' target
 | 
			
		||||
 | 
			
		||||
    cmTarget* timestampTarget = nullptr;
 | 
			
		||||
    std::vector<std::string> dependencies(
 | 
			
		||||
      this->AutogenTarget.DependFiles.begin(),
 | 
			
		||||
@ -1500,6 +1487,40 @@ bool cmQtAutoGenInitializer::InitAutogenTarget()
 | 
			
		||||
    if (useDepfile) {
 | 
			
		||||
      // Create a custom command that generates a timestamp file and
 | 
			
		||||
      // has a depfile assigned. The depfile is created by JobDepFilesMergeT.
 | 
			
		||||
      //
 | 
			
		||||
      // Also create an additional '_autogen_timestamp_deps' that the custom
 | 
			
		||||
      // command will depend on. It will have no sources or commands to
 | 
			
		||||
      // execute, but it will have dependencies that would originally be
 | 
			
		||||
      // assigned to the pre-Qt 5.15 'autogen' target. These dependencies will
 | 
			
		||||
      // serve as a list of order-only dependencies for the custom command,
 | 
			
		||||
      // without forcing the custom command to re-execute.
 | 
			
		||||
      //
 | 
			
		||||
      // The dependency tree would then look like
 | 
			
		||||
      // '_autogen_timestamp_deps (order-only)' <- '/timestamp' file <-
 | 
			
		||||
      // '_autogen' target.
 | 
			
		||||
      const auto timestampTargetName =
 | 
			
		||||
        cmStrCat(this->GenTarget->GetName(), "_autogen_timestamp_deps");
 | 
			
		||||
 | 
			
		||||
      auto cc = cm::make_unique<cmCustomCommand>();
 | 
			
		||||
      cc->SetWorkingDirectory(this->Dir.Work.c_str());
 | 
			
		||||
      cc->SetDepends(dependencies);
 | 
			
		||||
      cc->SetEscapeOldStyle(false);
 | 
			
		||||
      timestampTarget = this->LocalGen->AddUtilityCommand(timestampTargetName,
 | 
			
		||||
                                                          true, std::move(cc));
 | 
			
		||||
 | 
			
		||||
      this->LocalGen->AddGeneratorTarget(
 | 
			
		||||
        cm::make_unique<cmGeneratorTarget>(timestampTarget, this->LocalGen));
 | 
			
		||||
 | 
			
		||||
      // Set FOLDER property on the timestamp target, so it appears in the
 | 
			
		||||
      // appropriate folder in an IDE or in the file api.
 | 
			
		||||
      if (!this->TargetsFolder.empty()) {
 | 
			
		||||
        timestampTarget->SetProperty("FOLDER", this->TargetsFolder);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      // Make '/timestamp' file depend on '_autogen_timestamp_deps' and on the
 | 
			
		||||
      // moc and uic executables (whichever are enabled).
 | 
			
		||||
      dependencies.clear();
 | 
			
		||||
      dependencies.push_back(timestampTargetName);
 | 
			
		||||
 | 
			
		||||
      AddAutogenExecutableToDependencies(this->Moc, dependencies);
 | 
			
		||||
      AddAutogenExecutableToDependencies(this->Uic, dependencies);
 | 
			
		||||
@ -1544,7 +1565,7 @@ bool cmQtAutoGenInitializer::InitAutogenTarget()
 | 
			
		||||
          { cmSystemTools::GetCMakeCommand(), "-E", "touch", outputFile }));
 | 
			
		||||
        this->AddGeneratedSource(outputFile, this->Moc);
 | 
			
		||||
      }
 | 
			
		||||
      auto cc = cm::make_unique<cmCustomCommand>();
 | 
			
		||||
      cc = cm::make_unique<cmCustomCommand>();
 | 
			
		||||
      cc->SetOutputs(outputFile);
 | 
			
		||||
      cc->SetByproducts(timestampByproducts);
 | 
			
		||||
      cc->SetDepends(dependencies);
 | 
			
		||||
 | 
			
		||||
@ -1087,6 +1087,11 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Imported targets must set AIX_SHARED_LIBRARY_ARCHIVE explicitly.
 | 
			
		||||
    if (this->IsImported() && property == "AIX_SHARED_LIBRARY_ARCHIVE"_s) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Replace everything after "CMAKE_"
 | 
			
		||||
    defKey.replace(defKey.begin() + 6, defKey.end(), property);
 | 
			
		||||
    if (cmValue value = mf->GetDefinition(defKey)) {
 | 
			
		||||
 | 
			
		||||
@ -5,6 +5,8 @@ if(POLICY CMP0129)
 | 
			
		||||
endif()
 | 
			
		||||
project(Export C CXX)
 | 
			
		||||
 | 
			
		||||
set(CMAKE_AIX_SHARED_LIBRARY_ARCHIVE 1)
 | 
			
		||||
 | 
			
		||||
find_package(Foo REQUIRED CONFIG NO_DEFAULT_PATH)
 | 
			
		||||
 | 
			
		||||
# Pretend that RelWithDebInfo should link to debug libraries to test
 | 
			
		||||
@ -482,8 +484,8 @@ add_library(testMod1 MODULE empty.cpp)
 | 
			
		||||
add_library(testMod2 MODULE empty.cpp)
 | 
			
		||||
set_property(TARGET testMod2 PROPERTY BUNDLE 1)
 | 
			
		||||
 | 
			
		||||
add_library(testSharedLibArchiveAIX SHARED testSharedLibArchiveAIX.c)
 | 
			
		||||
set_property(TARGET testSharedLibArchiveAIX PROPERTY AIX_SHARED_LIBRARY_ARCHIVE 1)
 | 
			
		||||
add_library(testSharedObjectAIX SHARED testSharedObjectAIX.c)
 | 
			
		||||
set_property(TARGET testSharedObjectAIX PROPERTY AIX_SHARED_LIBRARY_ARCHIVE 0)
 | 
			
		||||
 | 
			
		||||
install(TARGETS testLibRequired
 | 
			
		||||
        EXPORT RequiredExp DESTINATION lib
 | 
			
		||||
@ -625,7 +627,7 @@ install(
 | 
			
		||||
  systemlib
 | 
			
		||||
  testInterfaceIncludeUser
 | 
			
		||||
  testInterfaceIncludeUser2
 | 
			
		||||
  testSharedLibArchiveAIX
 | 
			
		||||
  testSharedObjectAIX
 | 
			
		||||
  EXPORT exp
 | 
			
		||||
  RUNTIME DESTINATION $<1:bin>$<0:/wrong>
 | 
			
		||||
  LIBRARY DESTINATION $<1:lib>$<0:/wrong> NAMELINK_SKIP
 | 
			
		||||
@ -703,7 +705,7 @@ export(TARGETS testExe2 testLib4 testLib5 testLib6 testLib7 testExe3 testExe4 te
 | 
			
		||||
  testExeWithPluginHelper testExePluginHelperObj
 | 
			
		||||
  testMod1 testMod2
 | 
			
		||||
  testLibPerConfigDest
 | 
			
		||||
  testSharedLibArchiveAIX
 | 
			
		||||
  testSharedObjectAIX
 | 
			
		||||
  NAMESPACE bld_
 | 
			
		||||
  APPEND FILE ExportBuildTree.cmake
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@
 | 
			
		||||
#  define EXPORT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
EXPORT int testSharedLibArchiveAIX(void)
 | 
			
		||||
EXPORT int testSharedObjectAIX(void)
 | 
			
		||||
{
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
@ -68,7 +68,7 @@ target_link_libraries(imp_testExe1
 | 
			
		||||
  exp_testLib7
 | 
			
		||||
  exp_testLibCycleA
 | 
			
		||||
  exp_testLibPerConfigDest
 | 
			
		||||
  exp_testSharedLibArchiveAIX
 | 
			
		||||
  exp_testSharedObjectAIX
 | 
			
		||||
  exp_testStaticLibWithPlugin
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
@ -124,7 +124,7 @@ target_link_libraries(imp_testExe1b
 | 
			
		||||
  bld_testLib7
 | 
			
		||||
  bld_testLibCycleA
 | 
			
		||||
  bld_testLibPerConfigDest
 | 
			
		||||
  bld_testSharedLibArchiveAIX
 | 
			
		||||
  bld_testSharedObjectAIX
 | 
			
		||||
  bld_testStaticLibWithPlugin
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,7 @@ extern int testLib7(void);
 | 
			
		||||
extern int testLibCycleA1(void);
 | 
			
		||||
extern int testLibPerConfigDest(void);
 | 
			
		||||
extern int testStaticLibPlugin(void);
 | 
			
		||||
extern int testSharedLibArchiveAIX(void);
 | 
			
		||||
extern int testSharedObjectAIX(void);
 | 
			
		||||
 | 
			
		||||
/* Switch a symbol between debug and optimized builds to make sure the
 | 
			
		||||
   proper library is found from the testLib4 link interface.  */
 | 
			
		||||
@ -27,6 +27,6 @@ int main(void)
 | 
			
		||||
  return (testLib2() + generated_by_testExe1() + testLib3() + testLib4() +
 | 
			
		||||
          testLib5() + testLib6() + testLib7() + testLibCycleA1() +
 | 
			
		||||
          testLibPerConfigDest() + testStaticLibPlugin() +
 | 
			
		||||
          testSharedLibArchiveAIX() + generated_by_testExe3() +
 | 
			
		||||
          testSharedObjectAIX() + generated_by_testExe3() +
 | 
			
		||||
          generated_by_testExe4() + testLib4lib() + testLib4libcfg());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -16,6 +16,55 @@ else()
 | 
			
		||||
  set(USER_INCLUDE_DIR "/path/to/invalid/dir")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# check some combinations for modules search without interpreter
 | 
			
		||||
block(SCOPE_FOR VARIABLES)
 | 
			
		||||
  find_package(Python3 REQUIRED COMPONENTS Development.SABIModule)
 | 
			
		||||
  if (NOT Python3_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Failed to find Python 3")
 | 
			
		||||
  endif()
 | 
			
		||||
  if (Python3_Development_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Python 3, COMPONENT 'Development' unexpectedly found")
 | 
			
		||||
  endif()
 | 
			
		||||
  if (Python3_Interpreter_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Python 3, COMPONENT 'Interpreter' unexpectedly found")
 | 
			
		||||
  endif()
 | 
			
		||||
  if (Python3_Development.Embed_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Python 3, COMPONENT 'Development.Embed' unexpectedly found")
 | 
			
		||||
  endif()
 | 
			
		||||
  if (Python3_Development.Module_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Python 3, COMPONENT 'Development.Module' unexpectedly found")
 | 
			
		||||
  endif()
 | 
			
		||||
  if (NOT Python3_Development.SABIModule_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Python 3, COMPONENT 'Development.SABIModule' not found")
 | 
			
		||||
  endif()
 | 
			
		||||
  unset(_Python3_SABI_LIBRARY_RELEASE CACHE)
 | 
			
		||||
endblock()
 | 
			
		||||
 | 
			
		||||
block(SCOPE_FOR VARIABLES)
 | 
			
		||||
  find_package(Python3 REQUIRED COMPONENTS Development.Module Development.SABIModule)
 | 
			
		||||
  if (NOT Python3_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Failed to find Python 3")
 | 
			
		||||
  endif()
 | 
			
		||||
  if (Python3_Development_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Python 3, COMPONENT 'Development' unexpectedly found")
 | 
			
		||||
  endif()
 | 
			
		||||
  if (Python3_Interpreter_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Python 3, COMPONENT 'Interpreter' unexpectedly found")
 | 
			
		||||
  endif()
 | 
			
		||||
  if (Python3_Development.Embed_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Python 3, COMPONENT 'Development.Embed' unexpectedly found")
 | 
			
		||||
  endif()
 | 
			
		||||
  if (NOT Python3_Development.Module_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Python 3, COMPONENT 'Development.Module' not found")
 | 
			
		||||
  endif()
 | 
			
		||||
  if (NOT Python3_Development.SABIModule_FOUND)
 | 
			
		||||
    message (FATAL_ERROR "Python 3, COMPONENT 'Development.SABIModule' not found")
 | 
			
		||||
  endif()
 | 
			
		||||
  unset(_Python3_LIBRARY_RELEASE CACHE)
 | 
			
		||||
  unset(_Python3_SABI_LIBRARY_RELEASE CACHE)
 | 
			
		||||
endblock()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set(components Interpreter Development)
 | 
			
		||||
if (CMake_TEST_FindPython3_SABIModule AND WIN32)
 | 
			
		||||
  list (APPEND components Development.SABIModule)
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,4 @@
 | 
			
		||||
 | 
			
		||||
include(RunCMake)
 | 
			
		||||
include(Autogen_common/utils)
 | 
			
		||||
 | 
			
		||||
@ -10,18 +11,18 @@ if (DEFINED with_qt_version)
 | 
			
		||||
  if (QtCore_VERSION VERSION_GREATER_EQUAL 5.15.0)
 | 
			
		||||
    macro(set_test_variables_for_unwanted_builds)
 | 
			
		||||
      if (RunCMake_GENERATOR MATCHES "Ninja")
 | 
			
		||||
        set(RunCMake_TEST_NOT_EXPECT_stdout "widget2.cpp.o.d|mainwindow.cpp.o.d")
 | 
			
		||||
        set(RunCMake_TEST_EXPECT_stdout "ninja: no work to do.")
 | 
			
		||||
      elseif (RunCMake_GENERATOR MATCHES "Make")
 | 
			
		||||
        set(RunCMake_TEST_NOT_EXPECT_stdout "Building CXX object multi_ui_files/CMakeFiles/example.dir/src/widget2.cpp.o|\
 | 
			
		||||
                                             Building CXX object multi_ui_files/CMakeFiles/example.dir/src/mainwindow.cpp.o")
 | 
			
		||||
        set(RunCMake_TEST_NOT_EXPECT_stdout "Building CXX object multi_ui_files/CMakeFiles/example.dir/src/main.cpp.o|\
 | 
			
		||||
                                             Building CXX object multi_ui_files/CMakeFiles/example.dir/src/widget.cpp.o")
 | 
			
		||||
      elseif (RunCMake_GENERATOR MATCHES "Visual Studio")
 | 
			
		||||
        set(RunCMake_TEST_NOT_EXPECT_stdout "widget2.cpp|mainwindow.cpp")
 | 
			
		||||
        set(RunCMake_TEST_NOT_EXPECT_stdout "widget.cpp")
 | 
			
		||||
      elseif (RunCMake_GENERATOR MATCHES "Xcode")
 | 
			
		||||
        set(RunCMake_TEST_NOT_EXPECT_stdout "widget2.cpp|mainwindow.cpp")
 | 
			
		||||
        set(RunCMake_TEST_NOT_EXPECT_stdout "widget.cpp")
 | 
			
		||||
      endif()
 | 
			
		||||
    endmacro()
 | 
			
		||||
 | 
			
		||||
    function(uic_build_test test_name binary_dir source_dir file_to_touch test_config)
 | 
			
		||||
    function(uic_incremental_build_test test_name binary_dir source_dir test_config)
 | 
			
		||||
      set(RunCMake_TEST_BINARY_DIR ${binary_dir})
 | 
			
		||||
      set(RunCMake_TEST_SOURCE_DIR ${source_dir})
 | 
			
		||||
 | 
			
		||||
@ -38,13 +39,14 @@ if (DEFINED with_qt_version)
 | 
			
		||||
      endif()
 | 
			
		||||
      run_cmake_with_options(${test_name} ${RunCMake_TEST_OPTIONS} ${config_arg})
 | 
			
		||||
      set(RunCMake_TEST_NO_CLEAN 1)
 | 
			
		||||
      set(RunCMake_TEST_VARIANT_DESCRIPTION "${RunCMake_TEST_VARIANT_DESCRIPTION}-First build")
 | 
			
		||||
      run_cmake_command("${test_name}-build" ${CMAKE_COMMAND} --build . ${test_verbose_arg} ${multiconfig_config_arg})
 | 
			
		||||
      set(RunCMake_TEST_VARIANT_DESCRIPTION "${config_desc}-Second build")
 | 
			
		||||
      run_cmake_command("${test_name}-build" ${CMAKE_COMMAND} --build . ${test_verbose_arg} ${multiconfig_config_arg})
 | 
			
		||||
 | 
			
		||||
      file(TOUCH ${file_to_touch})
 | 
			
		||||
      set(RunCMake_TEST_VARIANT_DESCRIPTION "${config_desc}-first_build_after_touching")
 | 
			
		||||
      set(RunCMake_TEST_VARIANT_DESCRIPTION "${config_desc}-No files were built on the third build")
 | 
			
		||||
      set_test_variables_for_unwanted_builds()
 | 
			
		||||
      run_cmake_command("${test_name}-build" ${CMAKE_COMMAND} --build . ${test_verbose_arg} ${multiconfig_config_arg})
 | 
			
		||||
      message(STATUS "${test_name}-build${config_desc}-Only build files that were touched were built - PASSED")
 | 
			
		||||
    endfunction()
 | 
			
		||||
 | 
			
		||||
    if(RunCMake_GENERATOR MATCHES "Make|Ninja|Visual Studio|Xcode")
 | 
			
		||||
@ -59,11 +61,9 @@ if (DEFINED with_qt_version)
 | 
			
		||||
          set(config_desc "-${config}")
 | 
			
		||||
        endif()
 | 
			
		||||
 | 
			
		||||
        uic_build_test(multi_ui_files_touch_ui ${RunCMake_BINARY_DIR}/multi_ui_files_touch_ui${config_desc}-build
 | 
			
		||||
          ${RunCMake_SOURCE_DIR}/multi_ui_files ${RunCMake_SOURCE_DIR}/multi_ui_files/src/widget1.ui ${config})
 | 
			
		||||
        uic_incremental_build_test(incremental_build_test ${RunCMake_BINARY_DIR}/incremental_build${config_desc}-build
 | 
			
		||||
          ${RunCMake_SOURCE_DIR}/incremental_build ${config})
 | 
			
		||||
 | 
			
		||||
        uic_build_test(multi_ui_files_touch_cpp ${RunCMake_BINARY_DIR}/multi_ui_files_touch_cpp${config_desc}-build
 | 
			
		||||
          ${RunCMake_SOURCE_DIR}/multi_ui_files ${RunCMake_SOURCE_DIR}/multi_ui_files/src/widget1.cpp ${config})
 | 
			
		||||
      endforeach()
 | 
			
		||||
    endif()
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
@ -8,16 +8,10 @@ set(CMAKE_AUTOMOC ON)
 | 
			
		||||
set(CMAKE_AUTOUIC ON)
 | 
			
		||||
 | 
			
		||||
add_executable(example
 | 
			
		||||
    src/mainwindow.ui
 | 
			
		||||
    src/widget1.ui
 | 
			
		||||
    src/widget2.ui
 | 
			
		||||
    src/mainwindow.h
 | 
			
		||||
    src/widget1.h
 | 
			
		||||
    src/widget2.h
 | 
			
		||||
    src/main.cpp
 | 
			
		||||
    src/mainwindow.cpp
 | 
			
		||||
    src/widget1.cpp
 | 
			
		||||
    src/widget2.cpp
 | 
			
		||||
    main.cpp
 | 
			
		||||
    ui/widget.cpp
 | 
			
		||||
    ui/widget.h
 | 
			
		||||
    ui/widget.ui
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
target_link_libraries(example PRIVATE Qt${with_qt_version}::Widgets
 | 
			
		||||
@ -1,11 +1,11 @@
 | 
			
		||||
#include <QApplication>
 | 
			
		||||
 | 
			
		||||
#include "mainwindow.h"
 | 
			
		||||
#include "ui/widget.h"
 | 
			
		||||
 | 
			
		||||
int main(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  QApplication a(argc, argv);
 | 
			
		||||
  MainWindow w;
 | 
			
		||||
  Widget w;
 | 
			
		||||
  w.show();
 | 
			
		||||
  return a.exec();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										15
									
								
								Tests/RunCMake/Autogen_6/incremental_build/ui/widget.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								Tests/RunCMake/Autogen_6/incremental_build/ui/widget.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
#include "widget.h"
 | 
			
		||||
 | 
			
		||||
#include "./ui_widget.h"
 | 
			
		||||
 | 
			
		||||
Widget::Widget(QWidget* parent)
 | 
			
		||||
  : QWidget(parent)
 | 
			
		||||
  , ui(new Ui::Widget)
 | 
			
		||||
{
 | 
			
		||||
  ui->setupUi(this);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Widget::~Widget()
 | 
			
		||||
{
 | 
			
		||||
  delete ui;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								Tests/RunCMake/Autogen_6/incremental_build/ui/widget.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								Tests/RunCMake/Autogen_6/incremental_build/ui/widget.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
#ifndef WIDGET_H
 | 
			
		||||
#define WIDGET_H
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_NAMESPACE
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class Widget;
 | 
			
		||||
}
 | 
			
		||||
QT_END_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class Widget : public QWidget
 | 
			
		||||
{
 | 
			
		||||
  Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  Widget(QWidget* parent = nullptr);
 | 
			
		||||
  ~Widget();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
  Ui::Widget* ui;
 | 
			
		||||
};
 | 
			
		||||
#endif // WIDGET_H
 | 
			
		||||
							
								
								
									
										19
									
								
								Tests/RunCMake/Autogen_6/incremental_build/ui/widget.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								Tests/RunCMake/Autogen_6/incremental_build/ui/widget.ui
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>Widget</class>
 | 
			
		||||
 <widget class="QWidget" name="Widget">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>800</width>
 | 
			
		||||
    <height>600</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>Widget</string>
 | 
			
		||||
  </property>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
@ -1,25 +0,0 @@
 | 
			
		||||
#include "mainwindow.h"
 | 
			
		||||
 | 
			
		||||
#include <QVBoxLayout>
 | 
			
		||||
 | 
			
		||||
#include "src/ui_mainwindow.h"
 | 
			
		||||
#include "widget1.h"
 | 
			
		||||
 | 
			
		||||
MainWindow::MainWindow(QWidget* parent)
 | 
			
		||||
  : QMainWindow(parent)
 | 
			
		||||
  , ui(new Ui::MainWindow)
 | 
			
		||||
{
 | 
			
		||||
  ui->setupUi(this);
 | 
			
		||||
  auto layout = new QVBoxLayout;
 | 
			
		||||
  layout->addWidget(new Widget1);
 | 
			
		||||
 | 
			
		||||
  QWidget* w = new QWidget(this);
 | 
			
		||||
  w->setLayout(layout);
 | 
			
		||||
 | 
			
		||||
  setCentralWidget(w);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
MainWindow::~MainWindow()
 | 
			
		||||
{
 | 
			
		||||
  delete ui;
 | 
			
		||||
}
 | 
			
		||||
@ -1,22 +0,0 @@
 | 
			
		||||
#ifndef MAINWINDOW_H
 | 
			
		||||
#define MAINWINDOW_H
 | 
			
		||||
 | 
			
		||||
#include <QMainWindow>
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_NAMESPACE
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class MainWindow;
 | 
			
		||||
}
 | 
			
		||||
QT_END_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class MainWindow : public QMainWindow
 | 
			
		||||
{
 | 
			
		||||
  Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
  MainWindow(QWidget* parent = nullptr);
 | 
			
		||||
  ~MainWindow();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
  Ui::MainWindow* ui;
 | 
			
		||||
};
 | 
			
		||||
#endif // MAINWINDOW_H
 | 
			
		||||
@ -1,33 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>MainWindow</class>
 | 
			
		||||
 <widget class="QMainWindow" name="MainWindow">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>800</width>
 | 
			
		||||
    <height>600</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>MainWindow</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <widget class="QWidget" name="centralwidget">
 | 
			
		||||
   <layout class="QGridLayout" name="gridLayout"/>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QMenuBar" name="menubar">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>0</x>
 | 
			
		||||
     <y>0</y>
 | 
			
		||||
     <width>800</width>
 | 
			
		||||
     <height>22</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QStatusBar" name="statusbar"/>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
@ -1,22 +0,0 @@
 | 
			
		||||
#include "widget1.h"
 | 
			
		||||
 | 
			
		||||
#include "src/ui_widget1.h"
 | 
			
		||||
 | 
			
		||||
Widget1::Widget1(QWidget* parent)
 | 
			
		||||
  : QWidget(parent)
 | 
			
		||||
  , ui(new Ui::Widget1)
 | 
			
		||||
{
 | 
			
		||||
  ui->setupUi(this);
 | 
			
		||||
  connect(ui->lineEdit, SIGNAL(textChanged(const QString&)), this,
 | 
			
		||||
          SLOT(onTextChanged(const QString&)));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Widget1::~Widget1()
 | 
			
		||||
{
 | 
			
		||||
  delete ui;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Widget1::onTextChanged(const QString& text)
 | 
			
		||||
{
 | 
			
		||||
  ui->OnTextChanged->setText(text);
 | 
			
		||||
}
 | 
			
		||||
@ -1,23 +0,0 @@
 | 
			
		||||
#ifndef WIDGET1_H
 | 
			
		||||
#define WIDGET1_H
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class Widget1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Widget1 : public QWidget
 | 
			
		||||
{
 | 
			
		||||
  Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
  explicit Widget1(QWidget* parent = nullptr);
 | 
			
		||||
  ~Widget1();
 | 
			
		||||
public slots:
 | 
			
		||||
  void onTextChanged(const QString& text);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
  Ui::Widget1* ui;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // WIDGET1_H
 | 
			
		||||
@ -1,52 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>Widget1</class>
 | 
			
		||||
 <widget class="QWidget" name="Widget1">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>400</width>
 | 
			
		||||
    <height>300</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>Form</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <layout class="QFormLayout" name="formLayout">
 | 
			
		||||
   <item row="0" column="0">
 | 
			
		||||
    <widget class="QLabel" name="label_3">
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string>Input:</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item row="0" column="1">
 | 
			
		||||
    <widget class="QLineEdit" name="lineEdit"/>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item row="1" column="0">
 | 
			
		||||
    <widget class="QLabel" name="label">
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string>OnTextChanged:</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item row="1" column="1">
 | 
			
		||||
    <widget class="QLabel" name="OnTextChanged">
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string/>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item row="2" column="0">
 | 
			
		||||
    <widget class="QLabel" name="label_2">
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string>TextLabel</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
@ -1,22 +0,0 @@
 | 
			
		||||
#include "widget2.h"
 | 
			
		||||
 | 
			
		||||
#include "src/ui_widget2.h"
 | 
			
		||||
 | 
			
		||||
Widget2::Widget2(QWidget* parent)
 | 
			
		||||
  : QWidget(parent)
 | 
			
		||||
  , ui(new Ui::Widget2)
 | 
			
		||||
{
 | 
			
		||||
  ui->setupUi(this);
 | 
			
		||||
  connect(ui->lineEdit, SIGNAL(textChanged(const QString&)), this,
 | 
			
		||||
          SLOT(onTextChanged(const QString&)));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Widget2::~Widget2()
 | 
			
		||||
{
 | 
			
		||||
  delete ui;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Widget2::onTextChanged(const QString& text)
 | 
			
		||||
{
 | 
			
		||||
  ui->OnTextChanged->setText(text);
 | 
			
		||||
}
 | 
			
		||||
@ -1,24 +0,0 @@
 | 
			
		||||
#ifndef WIDGET2_H
 | 
			
		||||
#define WIDGET2_H
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class Widget2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Widget2 : public QWidget
 | 
			
		||||
{
 | 
			
		||||
  Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  explicit Widget2(QWidget* parent = nullptr);
 | 
			
		||||
  ~Widget2();
 | 
			
		||||
public slots:
 | 
			
		||||
  void onTextChanged(const QString& text);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
  Ui::Widget2* ui;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // WIDGET2_H
 | 
			
		||||
@ -1,45 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>Widget2</class>
 | 
			
		||||
 <widget class="QWidget" name="Widget2">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>400</width>
 | 
			
		||||
    <height>300</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>Form</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <layout class="QFormLayout" name="formLayout">
 | 
			
		||||
   <item row="0" column="0">
 | 
			
		||||
    <widget class="QLabel" name="label_3">
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string>Input:</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item row="0" column="1">
 | 
			
		||||
    <widget class="QLineEdit" name="lineEdit"/>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item row="1" column="0">
 | 
			
		||||
    <widget class="QLabel" name="label">
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string>OnTextChanged:</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item row="1" column="1">
 | 
			
		||||
    <widget class="QLabel" name="OnTextChanged">
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string/>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
@ -19,6 +19,10 @@ run_cmake_with_options(TARGET_FILE_BASE_NAME -DCMAKE_BUILD_TYPE:STRING=Debug)
 | 
			
		||||
run_cmake_with_options(TARGET_FILE_BASE_NAME-imported-target -DCMAKE_BUILD_TYPE:STRING=Debug)
 | 
			
		||||
run_cmake(TARGET_FILE_BASE_NAME-non-valid-target)
 | 
			
		||||
run_cmake(TARGET_LINKER_FILE_BASE_NAME-non-valid-target)
 | 
			
		||||
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "AIX")
 | 
			
		||||
  run_cmake(TARGET_SONAME_FILE-AIX)
 | 
			
		||||
  run_cmake(TARGET_SONAME_IMPORT_FILE-AIX)
 | 
			
		||||
endif()
 | 
			
		||||
run_cmake(NonValidTarget-TARGET_BUNDLE_DIR)
 | 
			
		||||
run_cmake(NonValidTarget-TARGET_BUNDLE_DIR_NAME)
 | 
			
		||||
run_cmake(NonValidTarget-TARGET_BUNDLE_CONTENT_DIR)
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1 @@
 | 
			
		||||
1
 | 
			
		||||
@ -0,0 +1,8 @@
 | 
			
		||||
^CMake Error at TARGET_SONAME_FILE-AIX\.cmake:[0-9]+ \(add_custom_target\):
 | 
			
		||||
  Error evaluating generator expression:
 | 
			
		||||
 | 
			
		||||
    \$<TARGET_SONAME_FILE:sla>
 | 
			
		||||
 | 
			
		||||
  TARGET_SONAME_FILE is not allowed for AIX_SHARED_LIBRARY_ARCHIVE libraries\.
 | 
			
		||||
Call Stack \(most recent call first\):
 | 
			
		||||
  CMakeLists\.txt:[0-9]+ \(include\)
 | 
			
		||||
@ -0,0 +1,4 @@
 | 
			
		||||
enable_language (C)
 | 
			
		||||
set(CMAKE_AIX_SHARED_LIBRARY_ARCHIVE 1)
 | 
			
		||||
add_library(sla SHARED empty.c)
 | 
			
		||||
add_custom_target(custom COMMAND ${CMAKE_COMMAND} -E echo "$<TARGET_SONAME_FILE:sla>")
 | 
			
		||||
@ -0,0 +1 @@
 | 
			
		||||
1
 | 
			
		||||
@ -0,0 +1,9 @@
 | 
			
		||||
^CMake Error at TARGET_SONAME_IMPORT_FILE-AIX\.cmake:[0-9]+ \(add_custom_target\):
 | 
			
		||||
  Error evaluating generator expression:
 | 
			
		||||
 | 
			
		||||
    \$<TARGET_SONAME_IMPORT_FILE:sla>
 | 
			
		||||
 | 
			
		||||
  TARGET_SONAME_IMPORT_FILE is not allowed for AIX_SHARED_LIBRARY_ARCHIVE
 | 
			
		||||
  libraries\.
 | 
			
		||||
Call Stack \(most recent call first\):
 | 
			
		||||
  CMakeLists\.txt:[0-9]+ \(include\)
 | 
			
		||||
@ -0,0 +1,4 @@
 | 
			
		||||
enable_language (C)
 | 
			
		||||
set(CMAKE_AIX_SHARED_LIBRARY_ARCHIVE 1)
 | 
			
		||||
add_library(sla SHARED empty.c)
 | 
			
		||||
add_custom_target(custom COMMAND ${CMAKE_COMMAND} -E echo "$<TARGET_SONAME_IMPORT_FILE:sla>")
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
(error while loading shared libraries: libStub\.so\.1|Library not loaded: '?@rpath/libStub\.1\.dylib'?|(Cannot|Could not) load module libStub\.so|fatal: libStub\.so\.1: open failed|Shared object "libStub\.so\.1" not found)
 | 
			
		||||
(error while loading shared libraries: libStub\.so\.1|Library not loaded: '?@rpath/libStub\.1\.dylib'?|(Cannot|Could not) load module libStub\.a\(libStub\.so\.1\)|fatal: libStub\.so\.1: open failed|Shared object "libStub\.so\.1" not found)
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,15 @@
 | 
			
		||||
enable_language(C)
 | 
			
		||||
 | 
			
		||||
set(CMAKE_AIX_SHARED_LIBRARY_ARCHIVE 1)
 | 
			
		||||
 | 
			
		||||
if(CMAKE_SYSTEM_NAME STREQUAL "AIX")
 | 
			
		||||
  set(suffix "${CMAKE_SHARED_LIBRARY_ARCHIVE_SUFFIX}")
 | 
			
		||||
  set(genex "TARGET_LINKER_FILE")
 | 
			
		||||
else()
 | 
			
		||||
  set(suffix "${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
			
		||||
  set(genex "TARGET_SONAME_FILE")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
add_library(Stub SHARED Stub.c)
 | 
			
		||||
set_target_properties(Stub PROPERTIES
 | 
			
		||||
  SOVERSION 1
 | 
			
		||||
@ -7,10 +17,10 @@ set_target_properties(Stub PROPERTIES
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
set(StubDir ${CMAKE_CURRENT_BINARY_DIR}/lib/stubs)
 | 
			
		||||
set(Stub "${StubDir}/${CMAKE_SHARED_LIBRARY_PREFIX}Stub${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
			
		||||
set(Stub "${StubDir}/${CMAKE_SHARED_LIBRARY_PREFIX}Stub${suffix}")
 | 
			
		||||
add_custom_target(StubCopy
 | 
			
		||||
  COMMAND ${CMAKE_COMMAND} -E make_directory "${StubDir}"
 | 
			
		||||
  COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_SONAME_FILE:Stub>" "${Stub}"
 | 
			
		||||
  COMMAND ${CMAKE_COMMAND} -E copy "$<${genex}:Stub>" "${Stub}"
 | 
			
		||||
  BYPRODUCTS ${Stub}
 | 
			
		||||
  )
 | 
			
		||||
add_dependencies(StubCopy Stub)
 | 
			
		||||
 | 
			
		||||
@ -26,6 +26,7 @@ endfunction()
 | 
			
		||||
# Use LINKER alone
 | 
			
		||||
add_test_library(linker)
 | 
			
		||||
target_link_options(linker PRIVATE "LINKER:-foo,bar")
 | 
			
		||||
target_link_options(linker PRIVATE "LINKER:") # empty
 | 
			
		||||
 | 
			
		||||
# Use LINKER with SHELL
 | 
			
		||||
add_test_library(linker_shell)
 | 
			
		||||
 | 
			
		||||
@ -36,3 +36,9 @@ if(aix_sla_versioned)
 | 
			
		||||
  message(FATAL_ERROR "AIX_SHARED_LIBRARY_ARCHIVE initialized on EXECUTABLE")
 | 
			
		||||
endif()
 | 
			
		||||
target_link_libraries(UseSLA_versioned PRIVATE sla_versioned)
 | 
			
		||||
 | 
			
		||||
add_library(imported SHARED IMPORTED)
 | 
			
		||||
get_property(aix_sla TARGET imported PROPERTY AIX_SHARED_LIBRARY_ARCHIVE)
 | 
			
		||||
if(aix_sla)
 | 
			
		||||
  message(FATAL_ERROR "AIX_SHARED_LIBRARY_ARCHIVE initialized on imported target")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user