Commit Graph

51397 Commits

Author SHA1 Message Date
Kris Thielemans a5fe1712b2 FindHDF5: Remove unnecessary de-duplication of HDF5_LIBRARIES and friends
* When both debug and optimized libraries are found, the corresponding
  keywords were getting de-duplicated and breaking.
* CMake's link line generation de-duplicates in many cases anyway.
* Other find modules do not explicitly de-duplicate in general.

Fixes: #21670
2021-01-12 16:26:59 -05:00
Brad King dadb13f546 FindHDF5: Simplify preprocessor setting de-duplication
Use `list(REMOVE_DUPLICATES)` directly.  For definitions the order
doesn't matter.  For include directories it is better to remove late
duplicates than early duplicates.
2021-01-12 16:24:25 -05:00
Brad King 06dfa5a7b6 Merge topic 'makefiles-compiler-deps'
bb64ea5741 Makefiles: ensure transparent switch between dependencies strategies
8ec7408d74 Makefile dependencies: ensure long paths are used on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5655
2021-01-11 11:28:58 -05:00
Brad King 0b32dfb292 Merge topic 'FindPostgreSQL-server-not-required'
f254e67bf6 FindPostgreSQL: Do not require pg_type.h

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5656
2021-01-11 11:27:04 -05:00
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
Marc Chevrier bb64ea5741 Makefiles: ensure transparent switch between dependencies strategies 2021-01-09 11:35:17 +01:00
Marc Chevrier 8ec7408d74 Makefile dependencies: ensure long paths are used on Windows 2021-01-09 11:35:00 +01:00
Kitware Robot ce874fbcd6 CMake Nightly Date Stamp 2021-01-09 00:01:11 -05:00
Brad King 4f5a12be29 Merge topic 'reword_MSVC_documentation'
1185438ea8 Help: Reword the MSVC variable documentation focusing on cl.exe compatibility

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5676
2021-01-08 09:12:47 -05:00
Brad King 90cd5df20c Merge topic 'Help-guide-import-export-dest'
e58a76de51 Help/guide: fix importing-exporting CMake install destinations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5674
2021-01-08 09:12:08 -05:00
Brad King 8ced3b10ad Merge branch 'release-3.19' 2021-01-08 09:10:25 -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 fb79784136 Merge topic 'rel-macos-modern' into release-3.19
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

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 48f5b36aee Merge topic 'xcode-object-ids' into release-3.19
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
Brad King 6632583848 Merge branch 'release-3.19' 2021-01-08 09:07:18 -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 dbac5b6934 gitlab-ci: add a job to upload macOS 10.10 binaries 2021-01-07 16:57:07 -05:00
Brad King 2d4d9cd37a Merge branch 'backport-rel-macos-modern' into rel-macos-modern 2021-01-07 16:56:48 -05:00
Brad King 6410425e5b ci: build separate macOS packages for macOS 10.13+ and macOS 10.10+
In order to support modern macOS features like Dark Mode, we need to use
Qt 5.15, which requires macOS 10.13.  However, we still want to support
macOS 10.10 as well, for which we need to use Qt 5.9.  Build separate
macOS packages for these use cases.

Fixes: #21606
Issue: #20825
2021-01-07 16:56:05 -05:00
Thomas Bernard 1185438ea8 Help: Reword the MSVC variable documentation focusing on cl.exe compatibility
Fixes: #21651
2021-01-07 16:32:48 -05:00
Brad King bbec5a03c8 Utilities/Release: Add script to build Qt 5.15.2 macOS universal binaries
These may be used to build a CMake universal binary for macOS that supports
both architectures on Apple Silicon and is compatible with OS X 10.13.
2021-01-07 16:10:07 -05:00
Brad King 97e238f61b Utilities/Release: Fix macOS Qt 5.9 build script umask
Produce a tarball with world-readable permissions.
2021-01-07 16:10:07 -05:00
Brad King 2c5f30b472 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 16:10:07 -05:00
Brad King 3679b74a69 gitlab-ci: update upload jobs to go to cmake.org
Upload binaries to `cmake.org` through its own name rather than
through the `public.kitware.com` alias.
2021-01-07 16:09:28 -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
Ben Boeckel e58a76de51 Help/guide: fix importing-exporting CMake install destinations 2021-01-07 12:19:57 -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 8a705577ff Merge topic 'test-intel-ConfigSources'
0dcc03cd16 Tests: Fix ConfigSources test with Intel compiler on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5669
2021-01-07 08:20:40 -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
Joerg Bornemann fefba42e37 Add a failing test case for #21620
Extend Qt(4|5)Autogen.RerunMocBasic to check the following situation:

Class MyObject3 is a QObject-derived class without Q_OBJECT macro.
It's declared in myobject3.h that is not included by any file that is
input of AutoMoc (this is why we had to add PlainObject).

If myobject3.h were included by main.cpp, then AutoMoc would already
track this dependency, because main.cpp has a Q_OBJECT macro.

After the initial build(s), the Q_OBJECT macro is added to myobject3.h,
and an incremental build is run. With Qt >= 5.15 and Ninja, the build
fails, because AutoMoc is not run due to the missing dependency to
myobject3.h.
2021-01-06 20:16:36 +01:00
Joerg Bornemann 2999c40dd9 Extend QtAutogen/RerunMoc
Test that removing / adding a Q_OBJECT macro doesn't break incremental
builds.

This was initially done to test the fix for #21620, but the test passes
without the fix. The reason is that test1.h is included by main.cpp, which
contains a Q_OBJECT macro, meaning that test1.h is in AutoMoc's
dependencies transitively.
2021-01-06 20:16:36 +01:00