cmExperimental: remove the flag for C++ modules

All the major compilers now have scheduled releases with support for
scanning, so remove the experimental gate.

Fixes: #18355
This commit is contained in:
Ben Boeckel 2023-09-21 16:03:08 -04:00
parent 68caec9137
commit 0c07f39006
108 changed files with 157 additions and 691 deletions

View File

@ -3137,7 +3137,6 @@ syn keyword cmakeKWexecute_process contained
syn keyword cmakeKWexport contained
\ ANDROID_MK
\ APPEND
\ CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API
\ CONFIG
\ CXX_MODULES_DIRECTORY
\ EXPORT
@ -3707,7 +3706,6 @@ syn keyword cmakeKWinstall contained
\ BUILD_TYPE
\ BUNDLE
\ BUNDLE_EXECUTABLE
\ CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API
\ CMAKE_INSTALL_BINDIR
\ CMAKE_INSTALL_DATADIR
\ CMAKE_INSTALL_DATAROOTDIR
@ -4258,7 +4256,6 @@ syn keyword cmakeKWtarget_sources contained
\ ALIAS
\ BASE_DIRS
\ BUILD_INTERFACE
\ CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API
\ CONFIG
\ CORRECT
\ CXX_MODULES

View File

@ -54,10 +54,7 @@ The options are:
to support consumers using CMake versions older than 2.8.12.
``CXX_MODULES_DIRECTORY <directory>``
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
.. versionadded:: 3.28
Export C++ module properties to files under the given directory. Each file
will be named according to the target's export name (without any namespace).

View File

@ -232,10 +232,7 @@ Signatures
would be installed to ``myproj/here.h`` below the destination.
``CXX_MODULES_BMI``
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
.. versionadded:: 3.28
Any module files from C++ modules from ``PUBLIC`` sources in a file set of
type ``CXX_MODULES`` will be installed to the given ``DESTINATION``. All
@ -843,10 +840,7 @@ Signatures
and defines required to use the libraries.
``CXX_MODULES_DIRECTORY``
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
.. versionadded:: 3.28
Specify a subdirectory to store C++ module information for targets in the
export set. This directory will be populated with files which add the

View File

@ -84,10 +84,7 @@ files within those directories. The acceptable types include:
Sources intended to be used via a language's ``#include`` mechanism.
``CXX_MODULES``
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
.. versionadded:: 3.28
Sources which contain C++ interface module or partition units (i.e., those
using the ``export`` keyword). This file set type may not have an

View File

@ -261,14 +261,11 @@ The options for the above signatures are:
Sources are not added to any ``FILE_SET`` in the generated project.
``CXX_MODULE``
.. versionadded:: 3.28
Sources are added to a ``FILE_SET`` of type ``CXX_MODULES`` in the
generated project.
.. note ::
Experimental. Sources of type ``CXX_MODULE`` are gated by
``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
The default type of sources is ``NORMAL``.
``<LANG>_STANDARD <std>``

View File

@ -13,133 +13,3 @@ specific values will change over time to reinforce their experimental nature.
When used, a warning will be generated to indicate that an experimental
feature is in use and that the affected behavior in the project is not part of
CMake's stability guarantees.
C++20 Module APIs
=================
Variable: ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
Value: ``ac01f462-0f5f-432a-86aa-acef252918a6``
In order to support C++20 modules, there are a number of behaviors that have
CMake APIs to provide the required features to build and export them from a
project.
Limitations
-----------
There are a number of known limitations of the current C++20 module support in
CMake. This does not document known limitations or bugs in compilers as these
can change over time.
For all generators:
- Only in-project modules may be used. While there is some support for
exporting module information, there is no mechanism for using it at the
moment.
For the Ninja Generators:
- ``ninja`` 1.10 or newer is required.
For the Visual Studio Generators:
- Only Visual Studio 2022 and toolchains newer than 19.34 (Visual Studio
17.4).
- No support for exporting or installing BMI or module information.
- No diagnosis of using modules provided by ``PRIVATE`` sources from
``PUBLIC`` module sources.
C++20 Module Dependencies
=========================
The Ninja generator has experimental infrastructure supporting C++20 module
dependency scanning. This is similar to the Fortran modules support, but
relies on external tools to scan C++20 translation units for module
dependencies. The approach is described by Kitware's `D1483r1`_ paper.
In order to activate CMake's experimental support for C++20 module
dependencies, set the following variables:
``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
Set this to the UUID documented above.
Some compilers already have support for module dependency scanning:
* MSVC 19.34 and newer (provided with Visual Studio 17.4 and newer)
* LLVM/Clang 16.0 and newer
For those, only the above variables need to be set by project code.
For compilers with in-development support, additional variables must
be set as follows.
``CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE``
Set this to tell CMake how to invoke the C++20 module dependency
scanning tool.
``CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FORMAT``
Set this for compilers that generate module maps. See below.
``CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FLAG``
Set this for compilers that generate module maps. See below.
For example, add code like the following to a test project:
.. code-block:: cmake
string(CONCAT CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE
"<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> <SOURCE>"
" -MT <DYNDEP_FILE> -MD -MF <DEP_FILE>"
" ${flags_to_scan_deps} -fdep-file=<DYNDEP_FILE> -fdep-output=<OBJECT>"
)
The tool specified by ``CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE`` is
expected to process the translation unit, write preprocessor dependencies
to the file specified by the ``<DEP_FILE>`` placeholder, and write module
dependencies to the file specified by the ``<DYNDEP_FILE>`` placeholder. The
``CMAKE_EXPERIMENTAL_CXX_SCANDEP_DEPFILE_FORMAT`` file may be set to ``msvc``
for scandep rules which use ``msvc``-style dependency reporting.
In order to support ``IMPORTED`` targets with associated C++20 module sources,
the ``CMAKE_EXPERIMENTAL_CXX_MODULE_BMI_ONLY_FLAG`` variable must be provided
to have the compiler only output a BMI instead of a BMI and an object file.
The module dependencies should be written in the format described
by the `P1689r5`_ paper.
Compiler writers may try out their scanning functionality using
the `cxx-modules-sandbox`_ test project, modified to set variables
as above for their compiler.
For compilers that generate module maps, tell CMake as follows:
.. code-block:: cmake
set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FORMAT "gcc")
set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FLAG
"${compiler_flags_for_module_map} -fmodule-mapper=<MODULE_MAP_FILE>")
set(CMAKE_EXPERIMENTAL_CXX_MODULE_BMI_ONLY_FLAG
"-fmodule-only")
Currently, the only supported formats are, ``clang``, ``gcc``, and ``msvc``.
The ``gcc`` format is described in the GCC documentation, but the relevant
section for the purposes of CMake is:
A mapping file consisting of space-separated module-name, filename
pairs, one per line. Only the mappings for the direct imports and any
module export name need be provided. If other mappings are provided,
they override those stored in any imported CMI files. A repository
root may be specified in the mapping file by using ``$root`` as the
module name in the first active line.
-- GCC module mapper documentation
The ``msvc`` format is a response file containing flags required to compile
any module interfaces properly as well as find any required files to satisfy
``import`` statements as required for Microsoft's Visual Studio toolchains.
Similarly, the ``clang`` format is a response file containing flags using
Clang's module flags.
.. _`D1483r1`: https://mathstuf.fedorapeople.org/fortran-modules/fortran-modules.html
.. _`P1689r5`: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1689r5.html
.. _`cxx-modules-sandbox`: https://github.com/mathstuf/cxx-modules-sandbox

View File

@ -1,7 +1,7 @@
CXX_SCAN_FOR_MODULES
--------------------
.. versionadded:: 3.26
.. versionadded:: 3.28
``CXX_SCAN_FOR_MODULES`` is a boolean specifying whether CMake will scan the
source for C++ module dependencies. See also the
@ -16,8 +16,3 @@ consulted.
Note that scanning is only performed if C++20 or higher is enabled for the
target and the source uses the ``CXX`` language. Scanning for modules in
sources belonging to file sets of type ``CXX_MODULES`` is always performed.
.. note ::
This setting is meaningful only when experimental support for C++ modules
has been enabled by the ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API`` gate.

View File

@ -1,11 +1,7 @@
CXX_MODULE_DIRS
---------------
.. versionadded:: 3.25
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
.. versionadded:: 3.28
Semicolon-separated list of base directories of the target's default
C++ module set (i.e. the file set with name and type ``CXX_MODULES``). The

View File

@ -1,11 +1,7 @@
CXX_MODULE_DIRS_<NAME>
----------------------
.. versionadded:: 3.25
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
.. versionadded:: 3.28
Semicolon-separated list of base directories of the target's ``<NAME>`` C++
module set, which has the set type ``CXX_MODULES``. The property supports

View File

@ -1,11 +1,7 @@
CXX_MODULE_SET
--------------
.. versionadded:: 3.25
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
.. versionadded:: 3.28
Semicolon-separated list of files in the target's default C++ module set,
(i.e. the file set with name and type ``CXX_MODULES``). If any of the paths

View File

@ -1,11 +1,7 @@
CXX_MODULE_SETS
---------------
.. versionadded:: 3.25
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
.. versionadded:: 3.28
Read-only list of the target's ``PRIVATE`` and ``PUBLIC`` C++ module sets (i.e.
all file sets with the type ``CXX_MODULES``). Files listed in these file sets

View File

@ -1,11 +1,7 @@
CXX_MODULE_SET_<NAME>
---------------------
.. versionadded:: 3.25
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
.. versionadded:: 3.28
Semicolon-separated list of files in the target's ``<NAME>`` C++ module set,
which has the set type ``CXX_MODULES``. If any of the paths are relative, they

View File

@ -1,7 +1,7 @@
CXX_SCAN_FOR_MODULES
--------------------
.. versionadded:: 3.26
.. versionadded:: 3.28
``CXX_SCAN_FOR_MODULES`` is a boolean specifying whether CMake will scan C++
sources in the target for module dependencies. See also the
@ -20,8 +20,3 @@ scan the target's ``CXX`` sources at build time.
Note that scanning is only performed if C++20 or higher is enabled for the
target. Scanning for modules in the target's sources belonging to file sets
of type ``CXX_MODULES`` is always performed.
.. note ::
This setting is meaningful only when experimental support for C++ modules
has been enabled by the ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API`` gate.

View File

@ -3,10 +3,6 @@ IMPORTED_CXX_MODULES_COMPILE_DEFINITIONS
.. versionadded:: 3.28
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
Preprocessor definitions for compiling an ``IMPORTED`` target's C++ module
sources.

View File

@ -3,10 +3,6 @@ IMPORTED_CXX_MODULES_COMPILE_FEATURES
.. versionadded:: 3.28
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
Compiler features enabled for this ``IMPORTED`` target's C++ modules.
The value of this property is used by the generators to set the include

View File

@ -3,10 +3,6 @@ IMPORTED_CXX_MODULES_COMPILE_OPTIONS
.. versionadded:: 3.28
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
List of options to pass to the compiler for this ``IMPORTED`` target's C++
modules.

View File

@ -3,10 +3,6 @@ IMPORTED_CXX_MODULES_INCLUDE_DIRECTORIES
.. versionadded:: 3.28
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
List of preprocessor include file search directories when compiling C++
modules for ``IMPORTED`` targets.

View File

@ -3,9 +3,5 @@ IMPORTED_CXX_MODULES_LINK_LIBRARIES
.. versionadded:: 3.28
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
List of direct dependencies to use for usage requirements for C++ modules in
the target's C++ modules.

View File

@ -1,11 +1,7 @@
INTERFACE_CXX_MODULE_SETS
-------------------------
.. versionadded:: 3.25
.. note ::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API``
.. versionadded:: 3.28
Read-only list of the target's ``PUBLIC`` C++ module sets (i.e. all file sets
with the type ``CXX_MODULES``). Files listed in these C++ module sets can be

View File

@ -0,0 +1,8 @@
cxxmodules-no-longer-experimental
---------------------------------
* C++ 20 named modules are now supported by :ref:`Ninja Generators`
and :ref:`Visual Studio Generators` for VS 2022 and newer, in combination
with the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and newer.
See :manual:`cmake-cxxmodules(7)` for details.

View File

@ -1,15 +1,10 @@
CMAKE_CXX_SCAN_FOR_MODULES
--------------------------
.. versionadded:: 3.26
.. versionadded:: 3.28
Whether to scan C++ source files for module dependencies.
This variable is used to initialize the :prop_tgt:`CXX_SCAN_FOR_MODULES`
property on all the targets. See that target property for additional
information.
.. note ::
This setting is meaningful only when experimental support for C++ modules
has been enabled by the ``CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API`` gate.

View File

@ -235,25 +235,16 @@ ArgumentParser::Continue cmCoreTryCompile::Arguments::SetSourceType(
this->SourceTypeContext = SourceType::Normal;
matched = true;
} else if (sourceType == "CXX_MODULE"_s) {
bool const supportCxxModuleSources = cmExperimental::HasSupportEnabled(
*this->Makefile, cmExperimental::Feature::CxxModuleCMakeApi);
if (supportCxxModuleSources) {
this->SourceTypeContext = SourceType::CxxModule;
matched = true;
}
this->SourceTypeContext = SourceType::CxxModule;
matched = true;
}
if (!matched && this->SourceTypeError.empty()) {
bool const supportCxxModuleSources = cmExperimental::HasSupportEnabled(
*this->Makefile, cmExperimental::Feature::CxxModuleCMakeApi);
auto const* message = "'SOURCE'";
if (supportCxxModuleSources) {
message = "one of 'SOURCE' or 'CXX_MODULE'";
}
// Only remember one error at a time; all other errors related to argument
// parsing are "indicate one error and return" anyways.
this->SourceTypeError =
cmStrCat("Invalid 'SOURCE_TYPE' '", sourceType, "'; must be ", message);
cmStrCat("Invalid 'SOURCE_TYPE' '", sourceType,
"'; must be one of 'SOURCE' or 'CXX_MODULE'");
}
return ArgumentParser::Continue::Yes;
}

View File

@ -19,17 +19,6 @@ namespace {
* up-to-date.
*/
cmExperimental::FeatureData LookupTable[] = {
// CxxModuleCMakeApi
{ "CxxModuleCMakeApi",
"ac01f462-0f5f-432a-86aa-acef252918a6",
"CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API",
"CMake's C++ module support is experimental. It is meant only for "
"experimentation and feedback to CMake developers.",
{ "CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE",
"CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FORMAT",
"CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FLAG" },
cmExperimental::TryCompileCondition::SkipCompilerChecks,
false },
// WindowsKernelModeDriver
{ "WindowsKernelModeDriver",
"5c2d848d-4efa-4529-a768-efd57171bf68",

View File

@ -15,7 +15,6 @@ class cmExperimental
public:
enum class Feature
{
CxxModuleCMakeApi,
WindowsKernelModeDriver,
Sentinel,

View File

@ -16,7 +16,6 @@
#include "cmArgumentParserTypes.h"
#include "cmCryptoHash.h"
#include "cmExecutionStatus.h"
#include "cmExperimental.h"
#include "cmExportBuildAndroidMKGenerator.h"
#include "cmExportBuildFileGenerator.h"
#include "cmExportSet.h"
@ -69,15 +68,11 @@ bool cmExportCommand(std::vector<std::string> const& args,
bool ExportOld = false;
};
auto parser = cmArgumentParser<Arguments>{}
.Bind("NAMESPACE"_s, &Arguments::Namespace)
.Bind("FILE"_s, &Arguments::Filename);
bool const supportCxx20FileSetTypes = cmExperimental::HasSupportEnabled(
status.GetMakefile(), cmExperimental::Feature::CxxModuleCMakeApi);
if (supportCxx20FileSetTypes) {
parser.Bind("CXX_MODULES_DIRECTORY"_s, &Arguments::CxxModulesDirectory);
}
auto parser =
cmArgumentParser<Arguments>{}
.Bind("NAMESPACE"_s, &Arguments::Namespace)
.Bind("FILE"_s, &Arguments::Filename)
.Bind("CXX_MODULES_DIRECTORY"_s, &Arguments::CxxModulesDirectory);
if (args[0] == "EXPORT") {
parser.Bind("EXPORT"_s, &Arguments::ExportSetName);

View File

@ -31,7 +31,6 @@
#include "cmCustomCommandGenerator.h"
#include "cmCxxModuleUsageEffects.h"
#include "cmEvaluatedTargetProperty.h"
#include "cmExperimental.h"
#include "cmFileSet.h"
#include "cmFileTimes.h"
#include "cmGeneratedFileStream.h"
@ -9106,9 +9105,10 @@ cmGeneratorTarget::Cxx20SupportLevel cmGeneratorTarget::HaveCxxModuleSupport(
// Else, an empty CMAKE_CXX_STANDARD_DEFAULT means CMake does not detect and
// set a default standard level for this compiler, so assume all standards
// are available.
if (!cmExperimental::HasSupportEnabled(
*this->Makefile, cmExperimental::Feature::CxxModuleCMakeApi)) {
return Cxx20SupportLevel::MissingExperimentalFlag;
cmValue scandepRule =
this->Target->GetMakefile()->GetDefinition("CMAKE_CXX_SCANDEP_SOURCE");
if (!scandepRule) {
return Cxx20SupportLevel::MissingRule;
}
return Cxx20SupportLevel::Supported;
}
@ -9125,13 +9125,6 @@ void cmGeneratorTarget::CheckCxxModuleStatus(std::string const& config) const
"\" has C++ sources that export modules but the \"CXX\" "
"language has not been enabled"));
break;
case cmGeneratorTarget::Cxx20SupportLevel::MissingExperimentalFlag:
this->Makefile->IssueMessage(
MessageType::FATAL_ERROR,
cmStrCat("The target named \"", this->GetName(),
"\" has C++ sources that export modules but its "
"experimental support has not been requested"));
break;
case cmGeneratorTarget::Cxx20SupportLevel::NoCxx20: {
cmStandardLevelResolver standardResolver(this->Makefile);
auto effStandard =
@ -9149,6 +9142,7 @@ void cmGeneratorTarget::CheckCxxModuleStatus(std::string const& config) const
"\"cxx_std_20\" (or newer) among its `target_compile_features`",
effStandard));
} break;
case cmGeneratorTarget::Cxx20SupportLevel::MissingRule:
case cmGeneratorTarget::Cxx20SupportLevel::Supported:
// All is well.
break;

View File

@ -1288,10 +1288,10 @@ public:
{
// C++ is not available.
MissingCxx,
// The experimental feature is not available.
MissingExperimentalFlag,
// The target does not require at least C++20.
NoCxx20,
// C++20 module scanning rules are not present.
MissingRule,
// C++20 modules are available and working.
Supported,
};

View File

@ -21,7 +21,6 @@
#include "cmArgumentParser.h"
#include "cmArgumentParserTypes.h"
#include "cmExecutionStatus.h"
#include "cmExperimental.h"
#include "cmExportSet.h"
#include "cmFileSet.h"
#include "cmGeneratorExpression.h"
@ -491,6 +490,7 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
publicHeaderArgs.Parse(argVectors.PublicHeader, &unknownArgs);
resourceArgs.Parse(argVectors.Resource, &unknownArgs);
includesArgs.Parse(&argVectors.Includes, &unknownArgs);
cxxModuleBmiArgs.Parse(argVectors.CxxModulesBmi, &unknownArgs);
for (std::size_t i = 0; i < argVectors.FileSets.size(); i++) {
// We have to create a separate object for the parsing because
// cmArgumentParser<void>::Bind() binds to a specific address, but the
@ -501,15 +501,6 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
fileSetArgs[i] = std::move(fileSetArg);
}
bool const supportCxx20FileSetTypes = cmExperimental::HasSupportEnabled(
*helper.Makefile, cmExperimental::Feature::CxxModuleCMakeApi);
if (!supportCxx20FileSetTypes) {
std::copy(argVectors.CxxModulesBmi.begin(), argVectors.CxxModulesBmi.end(),
std::back_inserter(unknownArgs));
} else {
cxxModuleBmiArgs.Parse(argVectors.CxxModulesBmi, &unknownArgs);
}
if (!unknownArgs.empty()) {
// Unknown argument.
status.SetError(
@ -541,12 +532,10 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
success = success && privateHeaderArgs.Finalize();
success = success && publicHeaderArgs.Finalize();
success = success && resourceArgs.Finalize();
success = success && cxxModuleBmiArgs.Finalize();
for (auto& fileSetArg : fileSetArgs) {
success = success && fileSetArg.Finalize();
}
if (supportCxx20FileSetTypes) {
success = success && cxxModuleBmiArgs.Finalize();
}
if (!success) {
return false;
@ -1173,8 +1162,7 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
}
}
if (supportCxx20FileSetTypes &&
!cxxModuleBmiArgs.GetDestination().empty()) {
if (!cxxModuleBmiArgs.GetDestination().empty()) {
cxxModuleBmiGenerator = cm::make_unique<cmInstallCxxModuleBmiGenerator>(
target.GetName(),
helper.GetCxxModulesBmiDestination(&cxxModuleBmiArgs),
@ -2071,12 +2059,7 @@ bool HandleExportMode(std::vector<std::string> const& args,
ica.Bind("NAMESPACE"_s, name_space);
ica.Bind("EXPORT_LINK_INTERFACE_LIBRARIES"_s, exportOld);
ica.Bind("FILE"_s, filename);
bool const supportCxx20FileSetTypes = cmExperimental::HasSupportEnabled(
*helper.Makefile, cmExperimental::Feature::CxxModuleCMakeApi);
if (supportCxx20FileSetTypes) {
ica.Bind("CXX_MODULES_DIRECTORY"_s, cxx_modules_directory);
}
ica.Bind("CXX_MODULES_DIRECTORY"_s, cxx_modules_directory);
std::vector<std::string> unknownArgs;
ica.Parse(args, &unknownArgs);

View File

@ -10,7 +10,6 @@
#include "cmArgumentParser.h"
#include "cmArgumentParserTypes.h"
#include "cmExperimental.h"
#include "cmFileSet.h"
#include "cmGeneratorExpression.h"
#include "cmList.h"
@ -260,28 +259,18 @@ bool TargetSourcesImpl::HandleOneFileSet(
this->SetError("Must specify a TYPE when creating file set");
return false;
}
bool const supportCxx20FileSetTypes = cmExperimental::HasSupportEnabled(
*this->Makefile, cmExperimental::Feature::CxxModuleCMakeApi);
if (type != "HEADERS"_s && type != "CXX_MODULES"_s) {
this->SetError(
R"(File set TYPE may only be "HEADERS" or "CXX_MODULES")");
return false;
}
if (supportCxx20FileSetTypes) {
if (type != "HEADERS"_s && type != "CXX_MODULES"_s) {
if (cmFileSetVisibilityIsForInterface(visibility) &&
!cmFileSetVisibilityIsForSelf(visibility) &&
!this->Target->IsImported()) {
if (type == "CXX_MODULES"_s) {
this->SetError(
R"(File set TYPE may only be "HEADERS" or "CXX_MODULES")");
return false;
}
if (cmFileSetVisibilityIsForInterface(visibility) &&
!cmFileSetVisibilityIsForSelf(visibility) &&
!this->Target->IsImported()) {
if (type == "CXX_MODULES"_s) {
this->SetError(
R"(File set TYPE "CXX_MODULES" may not have "INTERFACE" visibility)");
return false;
}
}
} else {
if (type != "HEADERS"_s) {
this->SetError("File set TYPE may only be \"HEADERS\"");
R"(File set TYPE "CXX_MODULES" may not have "INTERFACE" visibility)");
return false;
}
}

View File

@ -1,6 +1,4 @@
cmake_minimum_required(VERSION 3.23)
project(${RunCMake_TEST} NONE)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "ac01f462-0f5f-432a-86aa-acef252918a6")
include(${RunCMake_TEST}.cmake)

View File

@ -1,6 +0,0 @@
CMake Warning \(dev\) at ExportBuildCxxModules.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,6 +0,0 @@
CMake Warning \(dev\) at ExportInstallCxxModules.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,10 +1,3 @@
CMake Warning \(dev\) at FileSetModulesInterface.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Error at FileSetModulesInterface.cmake:[0-9]+ \(target_sources\):
target_sources File set TYPE "CXX_MODULES" may not have "INTERFACE"
visibility

View File

@ -1,6 +0,0 @@
CMake Warning \(dev\) at FileSetModulesInterfaceImported.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,6 +0,0 @@
CMake Warning \(dev\) at FileSetModulesPrivate.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,6 +0,0 @@
CMake Warning \(dev\) at FileSetModulesPublic.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,6 +0,0 @@
CMake Warning \(dev\) at InstallBMI.cmake:[0-9]+ \(install\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,6 +0,0 @@
CMake Warning \(dev\) at InstallBMIGenericArgs.cmake:[0-9]+ \(install\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,6 +0,0 @@
CMake Warning \(dev\) at InstallBMIIgnore.cmake:[0-9]+ \(install\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,6 +0,0 @@
CMake Warning \(dev\) at NinjaDependInfoBMIInstall.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,6 +0,0 @@
CMake Warning \(dev\) at NinjaDependInfoExport.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,6 +0,0 @@
CMake Warning \(dev\) at NinjaDependInfoFileSet.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,10 +1,3 @@
CMake Warning \(dev\) at NoCXX.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Error in CMakeLists.txt:
The target named "nocxx" has C\+\+ sources that export modules but the "CXX"
language has not been enabled

View File

@ -1,10 +1,3 @@
CMake Warning \(dev\) at NoCXX20.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Error in CMakeLists.txt:
The target named "nocxx20" has C\+\+ sources that export modules but does not
include "cxx_std_20" \(or newer\) among its `target_compile_features`; found

View File

@ -1,20 +0,0 @@
CMake Warning \(dev\) at NoCXX20ModuleFlag.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Error in CMakeLists.txt:
The target named "noexperimentalflag" has C\+\+ sources that export modules
but its experimental support has not been requested
(
CMake Error in CMakeLists.txt:
( The target named "noexperimentalflag" has C\+\+ sources that export modules
but its experimental support has not been requested
| The target named "noexperimentalflag" contains C\+\+ sources that export
modules which is not supported by the generator
)
)*
CMake Generate step failed. Build files cannot be regenerated correctly.

View File

@ -1,14 +0,0 @@
enable_language(CXX)
set(CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE "echo")
add_library(noexperimentalflag)
target_sources(noexperimentalflag
PUBLIC
FILE_SET fs TYPE CXX_MODULES FILES
sources/module.cxx)
target_compile_features(noexperimentalflag
PRIVATE
cxx_std_20)
unset(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API)

View File

@ -1,10 +1,3 @@
CMake Warning \(dev\) at NoDyndepSupport.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
(CMake Error:
The Ninja generator does not support C\+\+20 modules using Ninja version

View File

@ -1,10 +1,3 @@
CMake Warning \(dev\) at NotCXXSourceModules.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Error in CMakeLists.txt:
Target "not-cxx-source" contains the source

View File

@ -1,10 +1,3 @@
CMake Warning \(dev\) at NotCompiledSourceModules.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
(CMake Error in CMakeLists.txt:
Target "not-cxx-source" has source file

View File

@ -14,10 +14,6 @@ if ("cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES)
if (NOT forced_cxx_standard)
run_cmake(NoCXX20)
endif ()
# This test uses C++20, but another prerequisite is missing, so forced
# standards don't matter.
run_cmake(NoCXX20ModuleFlag)
endif ()
if (RunCMake_GENERATOR MATCHES "Ninja")

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,5 +1,3 @@
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "ac01f462-0f5f-432a-86aa-acef252918a6")
if (NOT EXISTS "${CMake_TEST_MODULE_COMPILATION_RULES}")
message(FATAL_ERROR
"The `CMake_TEST_MODULE_COMPILATION_RULES` file must be specified "

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.24)
project(cxx_modules_library NONE)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "ac01f462-0f5f-432a-86aa-acef252918a6")
find_package(export_bmi_and_interfaces REQUIRED)
if (NOT TARGET CXXModules::export_bmi_and_interfaces)

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.24)
project(cxx_modules_library NONE)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "ac01f462-0f5f-432a-86aa-acef252918a6")
find_package(export_bmi_and_interfaces REQUIRED)
if (NOT TARGET CXXModules::export_bmi_and_interfaces)

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9] \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9] \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.24)
project(cxx_modules_library NONE)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "ac01f462-0f5f-432a-86aa-acef252918a6")
find_package(export_interfaces REQUIRED)
if (NOT TARGET CXXModules::export_interfaces)

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.24)
project(cxx_modules_library NONE)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "ac01f462-0f5f-432a-86aa-acef252918a6")
find_package(export_interfaces REQUIRED)
if (NOT TARGET CXXModules::export_interfaces)

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.24)
project(cxx_modules_library NONE)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "ac01f462-0f5f-432a-86aa-acef252918a6")
find_package(export_interfaces_no_properties REQUIRED)
if (NOT TARGET CXXModules::export_interfaces_no_properties)

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.24)
project(cxx_modules_library NONE)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "ac01f462-0f5f-432a-86aa-acef252918a6")
find_package(export_interfaces_no_properties REQUIRED)
if (NOT TARGET CXXModules::export_interfaces_no_properties)

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.24)
project(cxx_modules_library NONE)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "ac01f462-0f5f-432a-86aa-acef252918a6")
find_package(export_usage REQUIRED)
if (NOT TARGET CXXModules::export_usage)

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.24)
project(cxx_modules_library NONE)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "ac01f462-0f5f-432a-86aa-acef252918a6")
find_package(export_usage REQUIRED)
if (NOT TARGET CXXModules::export_usage)

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,7 +0,0 @@
CMake Warning \(dev\) at .*/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build-build/export_bmi_and_interfaces-targets.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
.*/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build-build/export_bmi_and_interfaces-config.cmake:[0-9]+ \(include\)
CMakeLists.txt:[0-9]+ \(find_package\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,7 +0,0 @@
CMake Warning \(dev\) at .*/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install-install/lib/cmake/export_bmi_and_interfaces/export_bmi_and_interfaces-targets.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
.*/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install-install/lib/cmake/export_bmi_and_interfaces/export_bmi_and_interfaces-config.cmake:[0-9]+ \(include\)
CMakeLists.txt:[0-9]+ \(find_package\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,7 +0,0 @@
CMake Warning \(dev\) at .*/Tests/RunCMake/CXXModules/examples/export-include-directories-build-build/export_include_directories-targets.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
.*/Tests/RunCMake/CXXModules/examples/export-include-directories-build-build/export_include_directories-config.cmake:[0-9]+ \(include\)
CMakeLists.txt:[0-9]+ \(find_package\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,7 +0,0 @@
CMake Warning \(dev\) at .*/Tests/RunCMake/CXXModules/examples/export-include-directories-install-install/lib/cmake/export_include_directories/export_include_directories-targets.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
.*/Tests/RunCMake/CXXModules/examples/export-include-directories-install-install/lib/cmake/export_include_directories/export_include_directories-config.cmake:[0-9]+ \(include\)
CMakeLists.txt:[0-9]+ \(find_package\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,7 +0,0 @@
CMake Warning \(dev\) at .*/Tests/RunCMake/CXXModules/examples/export-interface-build-build/export_interfaces-targets.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
.*/Tests/RunCMake/CXXModules/examples/export-interface-build-build/export_interfaces-config.cmake:[0-9]+ \(include\)
CMakeLists.txt:[0-9]+ \(find_package\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,7 +0,0 @@
CMake Warning \(dev\) at .*/Tests/RunCMake/CXXModules/examples/export-interface-install-install/lib/cmake/export_interfaces/export_interfaces-targets.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
.*/Tests/RunCMake/CXXModules/examples/export-interface-install-install/lib/cmake/export_interfaces/export_interfaces-config.cmake:[0-9]+ \(include\)
CMakeLists.txt:[0-9]+ \(find_package\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,7 +0,0 @@
CMake Warning \(dev\) at .*/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build-build/export_interfaces_no_properties-targets.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
.*/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build-build/export_interfaces_no_properties-config.cmake:[0-9]+ \(include\)
CMakeLists.txt:[0-9]+ \(find_package\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,7 +0,0 @@
CMake Warning \(dev\) at .*/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install-install/lib/cmake/export_interfaces_no_properties/export_interfaces_no_properties-targets.cmake:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
Call Stack \(most recent call first\):
.*/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install-install/lib/cmake/export_interfaces_no_properties/export_interfaces_no_properties-config.cmake:[0-9]+ \(include\)
CMakeLists.txt:[0-9]+ \(find_package\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(try_compile\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,4 +0,0 @@
CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(try_run\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -51,6 +51,40 @@
}
]
},
{
"component": "Unspecified",
"type": "cxxModuleBmi",
"destination": "lib",
"paths": null,
"isExcludeFromAll": null,
"isForAllComponents": null,
"isOptional": null,
"targetId": null,
"targetIndex": null,
"cxxModuleBmiTarget": {
"id": "^cxx_exe::@a56b12a3f5c0529fb296",
"index": "cxx_exe"
},
"targetIsImportLibrary": null,
"targetInstallNamelink": null,
"exportName": null,
"exportTargets": null,
"scriptFile": null,
"backtrace": [
{
"file": "^cxx/CMakeLists\\.txt$",
"line": 38,
"command": "install",
"hasParent": true
},
{
"file": "^cxx/CMakeLists\\.txt$",
"line": null,
"command": null,
"hasParent": false
}
]
},
{
"component": "Unspecified",
"type": "runtimeDependencySet",

View File

@ -47,6 +47,40 @@
}
]
},
{
"component": "Unspecified",
"type": "cxxModuleBmi",
"destination": "bin",
"paths": null,
"isExcludeFromAll": null,
"isForAllComponents": null,
"isOptional": null,
"targetId": null,
"targetIndex": null,
"cxxModuleBmiTarget": {
"id": "^c_object_exe::@5ed5358f70faf8d8af7a$",
"index": "c_object_exe"
},
"targetIsImportLibrary": null,
"targetInstallNamelink": null,
"exportName": null,
"exportTargets": null,
"scriptFile": null,
"backtrace": [
{
"file": "^object/CMakeLists\\.txt$",
"line": 13,
"command": "install",
"hasParent": true
},
{
"file": "^object/CMakeLists\\.txt$",
"line": null,
"command": null,
"hasParent": false
}
]
},
{
"component": "Unspecified",
"type": "target",
@ -78,6 +112,40 @@
"hasParent": false
}
]
},
{
"component": "Unspecified",
"type": "cxxModuleBmi",
"destination": "bin",
"paths": null,
"isExcludeFromAll": null,
"isForAllComponents": null,
"isOptional": null,
"targetId": null,
"targetIndex": null,
"cxxModuleBmiTarget": {
"id": "^cxx_object_exe::@5ed5358f70faf8d8af7a$",
"index": "cxx_object_exe"
},
"targetIsImportLibrary": null,
"targetInstallNamelink": null,
"exportName": null,
"exportTargets": null,
"scriptFile": null,
"backtrace": [
{
"file": "^object/CMakeLists\\.txt$",
"line": 13,
"command": "install",
"hasParent": true
},
{
"file": "^object/CMakeLists\\.txt$",
"line": null,
"command": null,
"hasParent": false
}
]
}
]
}

View File

@ -1,4 +1,4 @@
^CMake Error at FileSetDefaultWrongType\.cmake:[0-9]+ \(target_sources\):
target_sources File set TYPE may only be "HEADERS"
target_sources File set TYPE may only be "HEADERS" or "CXX_MODULES"
Call Stack \(most recent call first\):
CMakeLists\.txt:[0-9]+ \(include\)$

Some files were not shown because too many files have changed in this diff Show More