Commit Graph

195 Commits

Author SHA1 Message Date
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