Commit Graph

30117 Commits

Author SHA1 Message Date
Kitware Robot
1fb0670f4b CMake Nightly Date Stamp 2021-01-11 00:01:15 -05:00
Kitware Robot
aaebbd200b CMake Nightly Date Stamp 2021-01-10 00:03:09 -05:00
Kitware Robot
ce874fbcd6 CMake Nightly Date Stamp 2021-01-09 00:01:11 -05:00
Brad King
0289224560 Merge topic 'rel-macos-modern'
dbac5b6934 gitlab-ci: add a job to upload macOS 10.10 binaries
2d4d9cd37a Merge branch 'backport-rel-macos-modern' into rel-macos-modern
6410425e5b ci: build separate macOS packages for macOS 10.13+ and macOS 10.10+
bbec5a03c8 Utilities/Release: Add script to build Qt 5.15.2 macOS universal binaries
97e238f61b Utilities/Release: Fix macOS Qt 5.9 build script umask
2c5f30b472 cmake-gui: Fix macOS styling for binaries distributed with Qt 5.10+
3679b74a69 gitlab-ci: update upload jobs to go to cmake.org
63079b97f0 cmake-gui: Fix macOS styling for binaries distributed with Qt 5.10+

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5672
2021-01-08 09:10:24 -05:00
Brad King
b7718ab6ca Merge topic 'cmake-gui-qt6'
a6abe70e72 cmake-gui: Restore minimal plugin installation for Qt5
8dd88a5224 cmake-gui: Restore exclusion of static plugin installation
a65db7ef6a cmake-gui: Restore installation of Qt plugin dependencies
321cb5978f cmake-gui: Remove outdated FIXME comment about plugin installation
d391d05e3a cmake-gui: Fix CMake_QT_MAJOR_VERSION string comparison

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5675
2021-01-08 09:09:28 -05:00
Brad King
38335f275f Merge topic 'xcode-object-ids'
b8b6573db8 Xcode: Use deterministic object ids for script build phases
2892228dc9 cmGlobalXCodeGenerator: Add infrastructure for deterministic object ids
d250b67722 cmGlobalXCodeGenerator: Adopt pbxproj object id generation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5671
2021-01-08 09:07:18 -05:00
Kitware Robot
3aca3f8144 CMake Nightly Date Stamp 2021-01-08 00:01:13 -05:00
Brad King
63079b97f0 cmake-gui: Fix macOS styling for binaries distributed with Qt 5.10+
According to https://bugreports.qt.io/browse/QTBUG-59428, Qt 5.10 and
above moved macOS style handling into a separate `qmacstyle` plugin.
Install the plugin in our `CMake.app` package on macOS.

Issue: #21606
2021-01-07 13:22:31 -05:00
Brad King
a6abe70e72 cmake-gui: Restore minimal plugin installation for Qt5
Since commit f1de6f6682 (cmake-gui: Support building against Qt6,
2020-12-17) all available plugins for each Qt component are installed.
This installs more than we need for CMake, so restore Qt5-specific logic
to install only the plugins did before.
2021-01-07 13:19:48 -05:00
Brad King
8dd88a5224 cmake-gui: Restore exclusion of static plugin installation
This was broken by commit f1de6f6682 (cmake-gui: Support building
against Qt6, 2020-12-17).
2021-01-07 13:19:48 -05:00
Brad King
a65db7ef6a cmake-gui: Restore installation of Qt plugin dependencies
Fix logic from commit f1de6f6682 (cmake-gui: Support building against
Qt6, 2020-12-17) to restore population of the `QT_PLUGINS` variable used
in our `fixup_bundle` call.
2021-01-07 13:19:48 -05:00
Brad King
321cb5978f cmake-gui: Remove outdated FIXME comment about plugin installation
Qt plugin installation conventions are now well-established.
2021-01-07 13:19:48 -05:00
Brad King
d391d05e3a cmake-gui: Fix CMake_QT_MAJOR_VERSION string comparison
Fix the string comparison added by commit 2e4cbaa521 (cmake-gui: Add a
Qt version control variable, 2020-12-28).  The version-based comparison
is not meant for arbitrary strings.
2021-01-07 13:19:48 -05:00
Brad King
05f4248e3d Merge topic 'cpp-modules'
39cbbb59a5 ninja: add experimental infrastructure to generate gcc-format modmap files
791b4d26d6 ninja: add experimental infrastructure to generate modmap files with dyndep
4b23359117 ninja: Add experimental infrastructure for C++20 module dependency scanning
f814d3b3c6 cmNinjaTargetGenerator: use $OBJ_FILE for the object
b0fc2993e1 Treat the '.mpp' file extension as C++ code
988f997100 cmScanDepFormat: Fix name of our internal tool in parse errors
dacd93a2db ninja: De-duplicate version numbers required for ninja features
533386ca29 cmStandardLevelResolver: Factor out helper to capture stoi exceptions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Acked-by: Shannon Booth <shannon.ml.booth@gmail.com>
Merge-request: !5562
2021-01-07 08:26:28 -05:00
Brad King
520df2880b Merge topic 'fix-21620'
8cb8dd6da5 AutoMoc: Re-run after adding Q_OBJECT macro
fefba42e37 Add a failing test case for #21620
2999c40dd9 Extend QtAutogen/RerunMoc
f623664e87 Do not use try_compile in RerunMocBasic test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5642
2021-01-07 08:25:29 -05:00
Brad King
abee7c60af Merge topic 'use_common_command_line_argument_parser'
8c22c1964c cmake: --install now uses cmCommandLineArgument
75ac6dfbce cmake: --build now uses cmCommandLineArgument
5ab0b54482 cmCommandLineArgument now supports OneOrMore argument type
b34db1db69 cmCommandLineArgument supports ZeroOrOne arguments
0fb78576b0 cmake: Use shared parsing code for all cmake argv parsing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5659
2021-01-07 08:23:13 -05:00
Brad King
1cbbfbc78f Merge topic 'export-compile-commands-per-target'
a742b5d137 CMAKE_EXPORT_COMPILE_COMMANDS: allow configuration per target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5651
2021-01-07 08:22:27 -05:00
Brad King
455d016863 Merge topic 'vs_shader_flags-generator-expressions'
67775aaf5b VS: Add genex support to VS_SHADER_FLAGS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5664
2021-01-07 08:21:25 -05:00
Brad King
4a2122c070 Merge topic 'cmake-gui-qt6'
2e4cbaa521 cmake-gui: Add a Qt version control variable
b3ee09290b cmake-gui: Conditionally switch between QDirModel and QFileSystemModel
020b2766f3 cmake-gui: Replace obsolete QDirModel with QFileSystemModel
684dcdbc5b cmake-gui: Prefer local variable for Qt major version
50fcc94bc5 cmake-gui: Support installation for both Qt5 and Qt6 plugins
2a2942a42e cmake-gui: Use a consistent Qt major version variable name
035078d847 cmake-gui: Remove explicit locale setup
f1de6f6682 cmake-gui: Support building against Qt6

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5621
2021-01-07 08:17:59 -05:00
Brad King
628f3a51f8 Merge topic 'export-target-name-subst'
06f921d9f6 export: Fix replacement of multiple TARGET_NAME expressions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5666
2021-01-07 08:17:01 -05:00
Brad King
18b1ccfa51 Merge topic 'ctest-progress-output-fixes'
39cdc8afb9 ctest: Make verbose mode override progress behavior
1bcd9b06b9 ctest: Don't treat skipped test as failed tests in progess report

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5663
2021-01-07 08:14:48 -05:00
Kitware Robot
4c4e3c81eb CMake Nightly Date Stamp 2021-01-07 00:01:13 -05:00
Brad King
b8b6573db8 Xcode: Use deterministic object ids for script build phases
The Xcode "new build system" only considers a script build phase up to
date if it has run before, even if outputs are newer than inputs.  Use a
deterministic object id for script build phases associated with custom
commands so that they do not need to re-run after CMake re-generates the
project.

Fixes: #21669
2021-01-06 18:46:30 -05:00
Brad King
2892228dc9 cmGlobalXCodeGenerator: Add infrastructure for deterministic object ids 2021-01-06 16:24:12 -05:00
Brad King
d250b67722 cmGlobalXCodeGenerator: Adopt pbxproj object id generation 2021-01-06 16:21:53 -05:00
Joerg Bornemann
8cb8dd6da5 AutoMoc: Re-run after adding Q_OBJECT macro
Consider a Qt project with a header file that does not contain the
Q_OBJECT macro. Adding the Q_OBJECT macro is supposed to trigger a run
of moc.

When using Qt >= 5.15 and the Ninja generator, re-running AutoMoc is
controlled by the contents of a Ninja depfile.  In the situation above,
AutoMoc would not re-run, because the header/source files without
Q_OBJECT macro are not contained in the depfile.

Add the relevant source files of the project to the merged depfile to
re-run AutoMoc whenever a source file changes.

Fixes: #21620
2021-01-06 20:17:20 +01:00
Brad King
91f0f4aa73 Merge topic 'explicit-this-fix'
209daa20b2 Code style: add missed explicit 'this->'

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5400
2021-01-06 10:20:57 -05:00
Brad King
c1a7de72e1 Merge topic 'depend_make_refine'
b696f78073 cmDepends: merge dependers of depend makefile

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5631
2021-01-06 10:20:04 -05:00
Brad King
6493d37091 Merge topic 'update-kwsys'
b6ae9ddc41 Merge branch 'upstream-KWSys' into update-kwsys
3887390a37 KWSys 2021-01-05 (a72d59e1)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5665
2021-01-06 10:19:10 -05:00
Robert Maynard
8c22c1964c cmake: --install now uses cmCommandLineArgument
This makes `--install` use the same parsing rules as the rest of the
the cmake executable
2021-01-06 09:11:18 -05:00
Robert Maynard
75ac6dfbce cmake: --build now uses cmCommandLineArgument
This makes `--build` use the same parsing rules as the rest of the
the cmake executable
2021-01-06 09:11:18 -05:00
Robert Maynard
5ab0b54482 cmCommandLineArgument now supports OneOrMore argument type 2021-01-06 09:11:18 -05:00
Robert Maynard
b34db1db69 cmCommandLineArgument supports ZeroOrOne arguments
This allows us to parse command line arguments such as `-j` || `-j2`
2021-01-06 09:11:18 -05:00
Robert Maynard
0fb78576b0 cmake: Use shared parsing code for all cmake argv parsing 2021-01-06 09:11:14 -05:00
Kitware Robot
3b36d12ac2 CMake Nightly Date Stamp 2021-01-06 00:01:12 -05:00
Shannon Booth
a742b5d137 CMAKE_EXPORT_COMPILE_COMMANDS: allow configuration per target
The new target property `EXPORT_COMPILE_COMMANDS` associated with the
existing global variable can be used to optionally configure targets for
their compile commands to be exported.

Fixes: #19462
2021-01-06 11:51:39 +13:00
Jeremiah van Oosten
67775aaf5b VS: Add genex support to VS_SHADER_FLAGS 2021-01-05 17:07:01 +01:00
Sankhesh Jhaveri
2e4cbaa521 cmake-gui: Add a Qt version control variable 2021-01-05 11:03:31 -05:00
Sankhesh Jhaveri
b3ee09290b cmake-gui: Conditionally switch between QDirModel and QFileSystemModel
Uses QT_VERSION_CHECK to determine Qt version. The code switches to
QFileSystemModel for Qt versions >= 6
2021-01-05 11:03:31 -05:00
Sankhesh Jhaveri
020b2766f3 cmake-gui: Replace obsolete QDirModel with QFileSystemModel 2021-01-05 11:03:30 -05:00
Sankhesh Jhaveri
684dcdbc5b cmake-gui: Prefer local variable for Qt major version
QT_DEFAULT_MAJOR_VERSION was added in Qt 5.15 and CMake supports Qt versions >= 5.9
2021-01-05 11:03:30 -05:00
Sankhesh Jhaveri
50fcc94bc5 cmake-gui: Support installation for both Qt5 and Qt6 plugins 2021-01-05 11:03:30 -05:00
Sankhesh Jhaveri
2a2942a42e cmake-gui: Use a consistent Qt major version variable name 2021-01-05 11:03:30 -05:00
Sankhesh Jhaveri
035078d847 cmake-gui: Remove explicit locale setup
Qt uses utf-8 encoding by default for versions >= Qt5.
2021-01-05 11:03:30 -05:00
Sankhesh Jhaveri
f1de6f6682 cmake-gui: Support building against Qt6 2021-01-05 11:03:30 -05:00
Ben Boeckel
39cbbb59a5 ninja: add experimental infrastructure to generate gcc-format modmap files 2021-01-05 09:35:10 -05:00
Ben Boeckel
791b4d26d6 ninja: add experimental infrastructure to generate modmap files with dyndep
The scan step may need to output additional information for the
compiler, not just the build tool. The modmap is assumed to be beside
the object output. Additional refactoring may open up a channel to
inform per-source paths to the dyndep rule in the future, but is not
done here.
2021-01-05 09:35:10 -05:00
Brad King
4b23359117 ninja: Add experimental infrastructure for C++20 module dependency scanning
Optionally enable this infrastructure through an undocumented
`CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP` variable.  Currently this is
experimental and intended for use by compiler writers to implement their
scanning tools.  Warn as such when the feature is activated.  Later when
compilers provide the needed scanning tools we can enable this variable
from our corresponding compiler information modules.  It is never meant
to be set by project code.

When enabled, generate a build graph similar to what we use for Fortran
module dependencies.  There are some differences needed because we can
scan dependencies without explicit preprocessing, and can directly
compile the original source afterward.

Co-Author: Ben Boeckel <ben.boeckel@kitware.com>
2021-01-05 09:34:55 -05:00
Ben Boeckel
f814d3b3c6 cmNinjaTargetGenerator: use $OBJ_FILE for the object
This will not be $out in all cases in the future.
2021-01-05 09:29:18 -05:00
Ben Boeckel
b0fc2993e1 Treat the '.mpp' file extension as C++ code
This is the extension required in build2 for C++ module support.
2021-01-05 09:29:18 -05:00