summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* cmArgumentParser: Model maybe-missing string with wrapper typeBrad King2022-07-074-24/+27
| | | | | | Bindings to `std::string` require one value. Some clients have been filtering `keywordsMissingValue` to support keywords that tolerate a missing value. Offer them a type-safe way to achieve this instead.
* cmArgumentParser: Model maybe-empty and non-empty lists with wrapper typesBrad King2022-07-0714-89/+116
| | | | | | | | Previously bindings to `std::vector<std::string>` required at least one value. Some clients have been filtering `keywordsMissingValue` to support keywords followed by empty lists. Instead, require clients to specify whether a keyword's list can be empty as part of the binding type.
* Merge topic 'cpp-named-module-export-infra'Brad King2022-07-0722-19/+1112
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f62c3c3c72 RunCMake/CXXModules: test public modules requiring private modules c5d4dd713f RunCMake/CXXModules: add tests which export BMIs 4d55f1422e RunCMake/CXXModules: test installation of BMIs and interfaces eff45f790d RunCMake/CXXModules: fix example follow-on case names a87c39dad1 RunCMake/CXXModules: output example test output upon failure 727e3db07a RunCMake/CXXModules: append to the test options f899563ae4 cmGlobalNinjaGenerator: verify that private sources stay private 9ecd3e771b cmGlobalNinjaGenerator: generate install rules for BMI files ... Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !7224
| * cmGlobalNinjaGenerator: verify that private sources stay privateBen Boeckel2022-07-061-0/+27
| | | | | | | | | | Private source files are not installed or made available, so they must not be required by public module interface units at all.
| * cmGlobalNinjaGenerator: generate install rules for BMI filesBen Boeckel2022-07-061-2/+98
| |
| * cmGlobalNinjaGenerator: generate module property files for each target exportBen Boeckel2022-07-061-0/+111
| |
| * cmGlobalNinjaGenerator: verify generated objects against filesetsBen Boeckel2022-07-062-4/+140
| |
| * cmNinjaTargetGenerator: write out BMI install information for the collatorBen Boeckel2022-07-061-0/+38
| |
| * cmNinjaTargetGenerator: write out export information for the collatorBen Boeckel2022-07-061-0/+79
| | | | | | | | | | The collator will use this to know where the target's export information needs to go so that module properties may be provided.
| * cmNinjaTargetGenerator: write out fileset information for the collatorBen Boeckel2022-07-061-0/+99
| | | | | | | | | | The collator will use this to generate property settings for the imported targets in the build and install export sets.
| * cmExperimental: update `CXX_MODULE_CMAKE_API` UUIDBen Boeckel2022-07-061-1/+1
| | | | | | | | The set of features available has been expanded, so update the UUID.
| * cmExport*FileGenerator: support exporting C++ module propertiesBen Boeckel2022-07-068-1/+270
| | | | | | | | | | C++ module properties will be generated at build time, so generate code that includes the files actually responsible for the information.
| * exports: support `CXX_MODULES_DIRECTORY`Ben Boeckel2022-07-065-5/+41
| | | | | | | | | | | | | | | | | | | | | | | | This directory will be used to store build-discovered information about targets such as the modules provided by the files in the relevant `FILE_SET` types. A directory is used because basing the name on a `<FILE_NAME>-*.cmake` pattern makes it end up being globbed in the configuration-dependent information mechanism. Since old modules and targets may be around, unconditionally including them may refer to targets that do not actually exist.
| * install: support `CXX_MODULES_BMI` installation bitsBen Boeckel2022-07-066-5/+207
| |
| * cmTargetSourcesCommand: allow `INTERFACE` C++ modules when importedBen Boeckel2022-07-061-1/+2
| | | | | | | | | | `PUBLIC` filesets become `INTERFACE` upon installation. Allow `INTERFACE` scopes for C++ modules when the target is imported.
| * cmExportInstallAndroidMKGenerator: combine string literalsBen Boeckel2022-07-061-2/+1
| |
* | Merge topic 'file-TIMESTAMP-relative-path'Brad King2022-07-071-1/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | 733801b57f file(TIMESTAMP): Interpret relative paths w.r.t. the source tree Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7440
| * | file(TIMESTAMP): Interpret relative paths w.r.t. the source treeTheBrokenRail2022-07-061-1/+5
| | | | | | | | | | | | Fixes: #23610
* | | Merge topic 'generator-makefiles-deps-messages-VERBOSE'Brad King2022-07-071-14/+23
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 9480ced81a Makefiles generator: dependencies messages in verbose mode Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7456
| * | | Makefiles generator: dependencies messages in verbose modeMarc Chevrier2022-07-061-14/+23
| | |/ | |/| | | | | | | Fixes: #23689
* | | Merge topic 'ccmake-fix-pdcurses-windows'Brad King2022-07-071-2/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | a78d10220c ccmake: Fix mangled configuration log with PDCurses on Windows Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7458
| * | | ccmake: Fix mangled configuration log with PDCurses on WindowsDuncan Ogilvie2022-07-061-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | This fix seems to work on both Windows and Ubuntu (WSL). Issue: #18053
* | | | Merge topic 'genex-LINK_LIBRARY-check-supported-properties'Brad King2022-07-073-10/+31
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 913ea78d7a Genex LINK_LIBRARY and LINK_GROUP: check supported properties Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7454
| * | | | Genex LINK_LIBRARY and LINK_GROUP: check supported propertiesMarc Chevrier2022-07-063-10/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refines check for properties supporting these genex. Enhance error message. Fixes: #23699
* | | | | CMake Nightly Date StampKitware Robot2022-07-071-1/+1
| |_|/ / |/| | |
* | | | Merge topic 'command-arg-parser-optional'Brad King2022-07-0618-236/+206
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bff468c988 cmFileCommand: Use cm::optional for keyword argument presence 2586afa31b cmCTest*Command:: Use cm::optional for keyword argument presence 5446b15c5c cmInstallCommand: Use cm::optional for keyword argument presence 298f226cb4 cmExportCommand: Use cm::optional for keyword argument presence 0a4c5164c9 cmArgumentParser: Offer cm::optional bindings to capture keyword presence f3dbf4b89d cmArgumentParser: Remove unnecessary local names for common types 2873f41bd9 cmArgumentParser: Require callers to consider unparsed arguments 1ee5a4a548 cmArgumentParser: Avoid allocating copies of keyword strings ... Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7450
| * | | | cmFileCommand: Use cm::optional for keyword argument presenceBrad King2022-07-051-83/+61
| | | | |
| * | | | cmCTest*Command:: Use cm::optional for keyword argument presenceBrad King2022-07-058-67/+45
| | | | |
| * | | | cmInstallCommand: Use cm::optional for keyword argument presenceBrad King2022-07-051-10/+9
| | | | |
| * | | | cmExportCommand: Use cm::optional for keyword argument presenceBrad King2022-07-051-9/+5
| | | | |
| * | | | cmArgumentParser: Offer cm::optional bindings to capture keyword presenceBrad King2022-07-051-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several clients have been using `keywordsMissingValue` or `parsedKeywords` to check for the presence of keywords. Offer them a type-encoded way to explicitly check whether a keyword is present.
| * | | | cmArgumentParser: Remove unnecessary local names for common typesBrad King2022-07-052-8/+5
| | | | |
| * | | | cmArgumentParser: Require callers to consider unparsed argumentsBrad King2022-07-053-8/+8
| | | | |
| * | | | cmArgumentParser: Avoid allocating copies of keyword stringsBrad King2022-07-0517-79/+90
| | | | |
* | | | | Merge topic 'freebsd-cpack-update'Brad King2022-07-061-27/+27
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2655605261 FreeBSD: follow CPACK_PACKAGE_FILE_NAME, if set 50580af645 FreeBSD (docs): repair errors in documentation of FreeBSD-cpack 1b61cd1597 FreeBSD: explain the pkg_create() call 57e8cd1a81 FreeBSD: drop support for libpkg before 1.17 Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7447
| * | | | | FreeBSD: follow CPACK_PACKAGE_FILE_NAME, if setAdriaan de Groot2022-07-051-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The underlying pkg library always produces a <name>-<version>.pkg file, so to follow CPACK_PACKAGE_FILE_NAME we need to detect that and rename appropriately. FIXES #23034
| * | | | | FreeBSD: explain the pkg_create() callAdriaan de Groot2022-07-051-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - the upstream API is undocumented, so dig in the C sources to get parameter names.
| * | | | | FreeBSD: drop support for libpkg before 1.17Adriaan de Groot2022-07-051-28/+1
| | | | | | | | | | | | | | | | | | | | | | | | All supported FreeBSD versions are now using 1.17 or later
* | | | | | Merge topic 'enable_language-deduplicate'Brad King2022-07-061-12/+36
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e3c8012ccd Help: Document enable_language accepting multiple languages b4fd385c9b cmMakefile: Dedupe languages when enabling them 66bfe14309 cmMakefile: Refactor parameter and variable names for EnableLanguage Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7426
| * | | | | | cmMakefile: Dedupe languages when enabling themfriendlyanon2022-06-301-2/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cmMakefile::EnableLanguage() now deduplicates the languages argument and emits an author warning listing the languages that were defined multiple times in a single call. Fixes: #23596
| * | | | | | cmMakefile: Refactor parameter and variable names for EnableLanguagefriendlyanon2022-06-301-12/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 731369ef9c (ENH: try to initialize all languages at the same time, 2004-08-27, v2.4.0~2899) the languages parameter name for cmMakefile::EnableLanguage() was changed to "std::vector languages" in the declaration, however the definition had "std::vector lang". Furthermore, the variable names in the definition had confusing names, such as the "i" variable in the loop which referred to an iterator at one point, but no longer does.
* | | | | | | Merge topic 'genex-LINK_LIBRARY-fix-generation'Brad King2022-07-061-0/+11
|\ \ \ \ \ \ \ | | |_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e8792da04b genex-LINK_LIBRARY: ensure correct generation inside LINK_GROUP genex Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7443
| * | | | | | genex-LINK_LIBRARY: ensure correct generation inside LINK_GROUP genexMarc Chevrier2022-07-051-0/+11
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fix ensures the following pattern is correctly handled: $<LINK_GROUP:group_feat,$<LINK_LIBRARY:lib_feat,mylib>> With: CMAKE_LINK_GROUP_USING_group_feat = "—START_GROUP" "—END_GROUP" CMAKE_LINK_LIBRARY_USING_lib_feat = "—PREFIX" "—LINK <LIBRARY>" "—SUFFIX" Before the fix, we get the following generation: —START_GROUP —PREFIX —LINK /path/to/mylib —END_GROUP —SUFFIX —END_GROUP and —SUFFIX are in the wrong order After the fix, we get the correct order: —START_GROUP —PREFIX —LINK /path/to/mylib —SUFFIX —END_GROUP
* | | | | | CMake Nightly Date StampKitware Robot2022-07-061-1/+1
| |_|_|/ / |/| | | |
* | | | | CMake Nightly Date StampKitware Robot2022-07-051-1/+1
| |_|/ / |/| | |
* | | | CMake Nightly Date StampKitware Robot2022-07-041-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2022-07-031-1/+1
| |_|/ |/| |
* | | CMake Nightly Date StampKitware Robot2022-07-021-1/+1
| | |
* | | Merge topic 'file-archive-args'Brad King2022-07-011-3/+9
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7c83265e59 file(ARCHIVE*): Simplify acceptance of empty list arguments dfff470d15 file(ARCHIVE*): Add test for keyword arguments with missing values Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7427
| * | | file(ARCHIVE*): Simplify acceptance of empty list argumentsBrad King2022-06-291-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In `cmArgumentParser`, a keyword bound to a `std::vector<std::string>` value is reported in the list of keywords with missing values if the keyword appears followed by an empty list. For cases where we want to tolerate empty lists, clients need to filter out such keywords themselves before producing an error message. This may be improved in the future, but that is out of scope here. In commit c7e1198a23 (file: Add ARCHIVE_{CREATE|EXTRACT} subcommands, 2020-03-13, v3.18.0-rc1~530^2), a pattern for filtering out keywords that accept empty lists was copied from commit c998c8d560 (file(GET_RUNTIME_DEPENDENCIES): Tolerate empty list arguments, 2020-01-22, v3.17.0-rc1~111^2~1) incorrectly in two ways: * Keywords were included in the filter that do not accept empty lists. * Keywords were not in sorted order, breaking the filter operation. Those two bugs mostly canceled each other out, and the resulting behavior was to correctly report keywords with missing values. However, the `MTIME` keyword was accidentally accepted with no value by pretending the keyword was not given at all. Simplify the logic by removing keywords from the filters that should not be there. Leave `MTIME` in the filter for compatibility.