Brad King
bc69ff7c6d
Tests/RunCMake/CXXModules: Improve failure message formatting
2024-10-21 19:53:46 -04:00
Ben Boeckel
e77655555c
cmExperimental: gate build database support behind a flag
...
Given that the feature currently only supports C++ sources and is not
formally accepted by ISO yet, gate it behind a flag.
2024-09-03 10:05:40 -04:00
Ben Boeckel
6863c1d823
Tests/CXXModules: add tests for module commands
2024-09-03 10:05:40 -04:00
Ben Boeckel
123107c1a4
Tests/CXXModules: add support for running targets under a given config
2024-08-27 12:37:36 -04:00
Ben Boeckel
438038b5e1
Tests/CXXModules: support building specific targets of example trees
...
This will be used to ensure that module command targets work as
intended.
2024-08-27 12:37:36 -04:00
Ben Boeckel
670f753f24
cmDyndepCollation: write build database metadata
...
Generators will hook this up into the build graph as needed.
2024-08-27 12:37:36 -04:00
Ben Boeckel
9c0491a3e4
cmDyndepCollation: write out scanned source information too
...
This is required to fill in the `requires` field for sources using
modules that do not provide them.
2024-08-27 12:37:35 -04:00
Ben Boeckel
cf1e36e8c5
Tests/CXXModules: factor out running an import test
2024-08-27 11:30:23 -04:00
Ben Boeckel
a46395df06
importstd: clarify when the experimental UUID must be available
...
Fixes : #25980
2024-05-15 07:15:05 -04:00
Brad King
1027c0e213
Merge topic 'cxxmodules-no-import-std-reason'
...
e89e819398 Tests/CXXModules: add tests for C++26 `import std` support
6dad18f060 cxxmodules: give a reason for unavailability of `import std`
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !9486
2024-05-03 09:26:39 -04:00
Brad King
de08bce94d
Merge topic 'cxxmodules-build-export-different-directory'
...
1fba6d3233 Merge branch 'cxxmodules-build-export-different-directory-3.28' into cxxmodules-build-export-different-directory
ec35251510 cmDyndepCollation: look at all `export(TARGETS)` calls
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !9485
2024-05-03 09:23:36 -04:00
Ben Boeckel
e89e819398
Tests/CXXModules: add tests for C++26 import std support
2024-05-02 14:46:51 -04:00
Ben Boeckel
6dad18f060
cxxmodules: give a reason for unavailability of import std
...
If the `CMAKE_CXX<STANDARD>_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE`
variable is set, include its value in the error message.
2024-05-02 14:46:51 -04:00
Ben Boeckel
1fba6d3233
Merge branch 'cxxmodules-build-export-different-directory-3.28' into cxxmodules-build-export-different-directory
...
* cxxmodules-build-export-different-directory-3.28:
cmDyndepCollation: look at all `export(TARGETS)` calls
2024-05-01 22:09:43 -04:00
Ben Boeckel
ec35251510
cmDyndepCollation: look at all export(TARGETS) calls
...
Previously, only `export()` calls in the same directory were noticed.
Also add a test that exports in a different directory than the target
itself resides in.
Fixes : #25813
2024-05-01 22:08:35 -04:00
Brad King
be111897b3
Merge topic 'export-name-safe-name'
...
142a85f9c1 cxxmodules: use filesystem-safe export names in filenames
4452d41488 cmGeneratorTarget: add method to get a filesystem-safe export name
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !9474
2024-05-01 09:29:57 -04:00
Brad King
4bf49bc437
Merge topic 'export-name-safe-name' into release-3.29
...
142a85f9c1 cxxmodules: use filesystem-safe export names in filenames
4452d41488 cmGeneratorTarget: add method to get a filesystem-safe export name
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !9474
2024-05-01 09:29:55 -04:00
Brad King
2549f5a66e
Merge topic 'exported-modules-with-headers'
...
2041f7c9bf cmGeneratorTarget: add the original target as a COMPILE_ONLY link
051c2110c8 Tests/CXXModules: test exporting modules which include headers
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !9469
2024-04-30 10:10:36 -04:00
Brad King
c5d8fa3f2c
Merge topic 'exported-modules-with-headers' into release-3.29
...
2041f7c9bf cmGeneratorTarget: add the original target as a COMPILE_ONLY link
051c2110c8 Tests/CXXModules: test exporting modules which include headers
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !9469
2024-04-30 10:10:34 -04:00
Ben Boeckel
142a85f9c1
cxxmodules: use filesystem-safe export names in filenames
...
Also add tests.
Fixes : #25828
2024-04-30 09:05:16 -04:00
Ben Boeckel
051c2110c8
Tests/CXXModules: test exporting modules which include headers
...
Test that headers that are part of the same target are available to
modules in the target itself.
2024-04-26 20:15:05 -04:00
Ben Boeckel
678717f3e4
cxxmodules: provide a detection variable for import std
2024-04-18 09:53:21 -04:00
Ben Boeckel
15bbd1d9b8
Experimental: add an experimental feature gate for import std
2024-04-12 11:46:39 -04:00
Ben Boeckel
d7e65b6178
Tests/CXXModules: mask C++23 std module targets
...
These tests mess with the availability of C++ module support. Hide
generation of the utility targets from any compiler detection.
2024-04-11 10:19:44 -04:00
Ben Boeckel
64548fef16
Tests/CXXModules: test using targets that import std
2024-04-11 10:19:44 -04:00
Ben Boeckel
85e1281e00
Tests/CXXModules: add tests for exporting CXX_MODULE_STD
2024-04-11 10:19:44 -04:00
Ben Boeckel
b8cc38f3a2
Tests/CXXModules: add tests that the C++ std targets don't get exported
...
These targets are purely internal and should never be exported.
2024-04-11 10:19:44 -04:00
Ben Boeckel
16bf12d1e8
Tests/CXXModules; add tests for CXX_MODULE_STD behavior
2024-04-11 10:19:44 -04:00
Ben Boeckel
b17e6a52f9
Tests/CXXModules: add tests for genex usage in CXX_MODULE_STD
2024-04-11 10:19:44 -04:00
Ben Boeckel
a9ad29403e
Tests/CXXModules/vs-without-flags: use C++20
...
C++23 has complications with `import std` expectations.
2024-04-11 10:19:44 -04:00
Ben Boeckel
b8af090c78
Tests/CXXModules: add a test for the CXX_MODULE_STD property
2024-04-11 10:19:43 -04:00
Ben Boeckel
bf0b457461
Tests/CXXModules: add test case for import std support
2024-04-11 10:19:43 -04:00
Brad King
e6d015fa77
Merge topic 'cxxmodules-target-objects'
...
4ddf0453d5 Tests/CXXModules: add a test using `TARGET_OBJECTS` from modules
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !9316
2024-03-08 09:32:37 -05:00
Brad King
74d3765c2d
Merge topic 'cxxmodules-target-objects' into release-3.29
...
4ddf0453d5 Tests/CXXModules: add a test using `TARGET_OBJECTS` from modules
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !9316
2024-03-08 09:32:36 -05:00
Ben Boeckel
4ddf0453d5
Tests/CXXModules: add a test using TARGET_OBJECTS from modules
...
See: #25732
2024-03-06 12:34:46 -05:00
Brad King
9c69bd8d42
Merge topic 'cxxmodules-no-export-basedirs-as-include-paths'
...
65bd837786 Merge branch 'backport-3.28-cxxmodules-no-export-basedirs-as-include-paths'
028f3134e5 cmExportFileGenerator: only export include paths for HEADERS file sets
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !9295
2024-02-29 08:02:29 -05:00
Brad King
cb2dc012c0
Merge topic 'cxxmodules-no-export-basedirs-as-include-paths' into release-3.29
...
65bd837786 Merge branch 'backport-3.28-cxxmodules-no-export-basedirs-as-include-paths'
028f3134e5 cmExportFileGenerator: only export include paths for HEADERS file sets
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !9295
2024-02-29 08:02:28 -05:00
Brad King
81a8cf2410
Merge topic 'cxxmodules-no-export-basedirs-as-include-paths' into release-3.28
...
028f3134e5 cmExportFileGenerator: only export include paths for HEADERS file sets
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !9295
2024-02-29 08:01:22 -05:00
Brad King
2c05cf13e4
Merge topic 'test-cxxmodules-vs'
...
6925978f3e Tests/RunCMake/CXXModules: Update VS circular error message
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !9299
2024-02-28 15:01:37 -05:00
Brad King
7f2275c65d
Merge topic 'test-cxxmodules-vs' into release-3.29
...
6925978f3e Tests/RunCMake/CXXModules: Update VS circular error message
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !9299
2024-02-28 15:01:36 -05:00
Brad King
6925978f3e
Tests/RunCMake/CXXModules: Update VS circular error message
...
Match the message expected from MSBuild as of VS 17.9.
2024-02-28 14:16:20 -05:00
Brad King
65bd837786
Merge branch 'backport-3.28-cxxmodules-no-export-basedirs-as-include-paths'
2024-02-28 09:20:15 -05:00
Ben Boeckel
028f3134e5
cmExportFileGenerator: only export include paths for HEADERS file sets
2024-02-28 05:26:10 -05:00
Brad King
1aae873997
Merge topic 'cxxmodules-transitive-std'
...
f0df692d21 Tests/CXXModules: test `cxx_std_20` coming from a dependency
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !9276
2024-02-21 13:37:44 -05:00
Brad King
74957cacf8
Merge topic 'cxxmodules-transitive-std' into release-3.29
...
f0df692d21 Tests/CXXModules: test `cxx_std_20` coming from a dependency
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !9276
2024-02-21 13:37:43 -05:00
Brad King
07c219da13
Merge topic 'cxxmodules-transitive-modules-usage'
...
ec348ee4b9 cmGeneratorTarget: discover synthetic targets recursively
67466ddf65 cmExportFileGenerator: export link libraries as-is
a2e3e61a31 Tests/CXXModules: test transitive modules usage
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !9273
2024-02-21 13:34:36 -05:00
Brad King
c66396699b
Merge topic 'cxxmodules-transitive-modules-usage' into release-3.29
...
ec348ee4b9 cmGeneratorTarget: discover synthetic targets recursively
67466ddf65 cmExportFileGenerator: export link libraries as-is
a2e3e61a31 Tests/CXXModules: test transitive modules usage
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !9273
2024-02-21 13:34:34 -05:00
Brad King
0d3f35f495
Merge topic 'cxxmodules-transitive-std' into release-3.28
...
f0df692d21 Tests/CXXModules: test `cxx_std_20` coming from a dependency
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !9276
2024-02-21 13:29:36 -05:00
Ben Boeckel
f0df692d21
Tests/CXXModules: test cxx_std_20 coming from a dependency
...
Closes : #25569
2024-02-20 12:32:48 -05:00
Ben Boeckel
67466ddf65
cmExportFileGenerator: export link libraries as-is
...
This allows for transitive modules to work because
`$<COMPILE_ONLY>`-wrapped dependencies do not end up in the
`linked-target-dirs` collator property. Test suite exported property
tests updated to account for the change.
2024-02-20 10:53:31 -05:00