summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* cmDepends: disable long line dependencies for nmakeKai Wang2021-01-112-7/+3
| | | | | | | | | This is a follow-up to commit b696f78073 (cmDepends: merge dependers of depend makefile, 2020-12-18). NMake of visual studio has many versions that not support long line dependencies of make rule. Signed-off-by: Wangkai <wangkai86@huawei.com> Fixes: #21681
* CMake Nightly Date StampKitware Robot2021-01-101-1/+1
|
* CMake Nightly Date StampKitware Robot2021-01-091-1/+1
|
* Merge topic 'reword_MSVC_documentation'Brad King2021-01-081-3/+2
|\ | | | | | | | | | | | | 1185438ea8 Help: Reword the MSVC variable documentation focusing on cl.exe compatibility Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5676
| * Help: Reword the MSVC variable documentation focusing on cl.exe compatibilityThomas Bernard2021-01-071-3/+2
| | | | | | | | Fixes: #21651
* | Merge topic 'Help-guide-import-export-dest'Brad King2021-01-081-3/+3
|\ \ | | | | | | | | | | | | | | | | | | e58a76de51 Help/guide: fix importing-exporting CMake install destinations Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5674
| * | Help/guide: fix importing-exporting CMake install destinationsBen Boeckel2021-01-071-3/+3
| | |
* | | Merge branch 'release-3.19'Brad King2021-01-080-0/+0
|\ \ \
| * \ \ Merge topic 'rel-macos-modern' into release-3.19Brad King2021-01-0813-29/+200
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | \ \ \ Merge topic 'rel-macos-modern'Brad King2021-01-0813-29/+211
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | | gitlab-ci: add a job to upload macOS 10.10 binariesBrad King2021-01-071-0/+11
| | | | | |
| * | | | | Merge branch 'backport-rel-macos-modern' into rel-macos-modernBrad King2021-01-0712-29/+197
| |\ \ \ \ \ | | | |/ / / | | |/| | |
| | * | | | ci: build separate macOS packages for macOS 10.13+ and macOS 10.10+Brad King2021-01-079-28/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * | | | Utilities/Release: Add script to build Qt 5.15.2 macOS universal binariesBrad King2021-01-071-0/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | | | Utilities/Release: Fix macOS Qt 5.9 build script umaskBrad King2021-01-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Produce a tarball with world-readable permissions.
| | * | | | cmake-gui: Fix macOS styling for binaries distributed with Qt 5.10+Brad King2021-01-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * | | | gitlab-ci: update upload jobs to go to cmake.orgBrad King2021-01-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Upload binaries to `cmake.org` through its own name rather than through the `public.kitware.com` alias.
| * | | | | cmake-gui: Fix macOS styling for binaries distributed with Qt 5.10+Brad King2021-01-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | Merge topic 'cmake-gui-qt6'Brad King2021-01-081-5/+14
|\ \ \ \ \ \ | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | | cmake-gui: Restore minimal plugin installation for Qt5Brad King2021-01-071-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | cmake-gui: Restore exclusion of static plugin installationBrad King2021-01-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was broken by commit f1de6f6682 (cmake-gui: Support building against Qt6, 2020-12-17).
| * | | | | cmake-gui: Restore installation of Qt plugin dependenciesBrad King2021-01-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | cmake-gui: Remove outdated FIXME comment about plugin installationBrad King2021-01-071-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | Qt plugin installation conventions are now well-established.
| * | | | | cmake-gui: Fix CMake_QT_MAJOR_VERSION string comparisonBrad King2021-01-071-1/+1
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Merge branch 'release-3.19'Brad King2021-01-080-0/+0
|\ \ \ \ \ | | |_|/ / | |/| | |
| * | | | Merge topic 'xcode-object-ids' into release-3.19Brad King2021-01-089-40/+85
| |\ \ \ \ | | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | Merge topic 'xcode-object-ids'Brad King2021-01-089-40/+85
|\ \ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | Xcode: Use deterministic object ids for script build phasesBrad King2021-01-065-10/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | cmGlobalXCodeGenerator: Add infrastructure for deterministic object idsBrad King2021-01-062-15/+28
| | | | |
| * | | | cmGlobalXCodeGenerator: Adopt pbxproj object id generationBrad King2021-01-066-28/+30
| |/ / /
* | | | CMake Nightly Date StampKitware Robot2021-01-081-1/+1
| |/ / |/| |
* | | Merge topic 'cpp-modules'Brad King2021-01-0713-75/+309
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | ninja: add experimental infrastructure to generate gcc-format modmap filesBen Boeckel2021-01-052-1/+44
| | | |
| * | | ninja: add experimental infrastructure to generate modmap files with dyndepBen Boeckel2021-01-053-15/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | ninja: Add experimental infrastructure for C++20 module dependency scanningBrad King2021-01-057-22/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | cmNinjaTargetGenerator: use $OBJ_FILE for the objectBen Boeckel2021-01-051-1/+1
| | | | | | | | | | | | | | | | This will not be $out in all cases in the future.
| * | | Treat the '.mpp' file extension as C++ codeBen Boeckel2021-01-054-7/+9
| | | | | | | | | | | | | | | | This is the extension required in build2 for C++ module support.
| * | | cmScanDepFormat: Fix name of our internal tool in parse errorsBrad King2021-01-051-13/+11
| | | | | | | | | | | | | | | | | | | | We parse the scan result `.ddi` files in `-E cmake_ninja_dyndep`, not `-E cmake_ninja_depends`.
| * | | ninja: De-duplicate version numbers required for ninja featuresBrad King2021-01-051-2/+5
| | | |
| * | | cmStandardLevelResolver: Factor out helper to capture stoi exceptionsBrad King2021-01-051-15/+16
| | | |
* | | | Merge topic 'fix-21620'Brad King2021-01-078-12/+145
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | AutoMoc: Re-run after adding Q_OBJECT macroJoerg Bornemann2021-01-061-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | Add a failing test case for #21620Joerg Bornemann2021-01-066-2/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | Extend QtAutogen/RerunMocJoerg Bornemann2021-01-062-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | Do not use try_compile in RerunMocBasic testJoerg Bornemann2021-01-061-10/+28
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a subsequent patch we want to extend RerunMocBasic to test the removal and addition of Q_OBJECT macros works when building incrementally. For that, properly generated dependencies are necessary. Currently, the MocBasic test project is configured using try_compile, and that turns off the generation of depfiles. Replace the try_compile call with execute_command calls that first configure and then build the test project.
* | | | Merge topic 'use_common_command_line_argument_parser'Brad King2021-01-073-298/+404
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | cmake: --install now uses cmCommandLineArgumentRobert Maynard2021-01-061-54/+51
| | | | | | | | | | | | | | | | | | | | | | | | | This makes `--install` use the same parsing rules as the rest of the the cmake executable
| * | | | cmake: --build now uses cmCommandLineArgumentRobert Maynard2021-01-061-83/+95
| | | | | | | | | | | | | | | | | | | | | | | | | This makes `--build` use the same parsing rules as the rest of the the cmake executable
| * | | | cmCommandLineArgument now supports OneOrMore argument typeRobert Maynard2021-01-061-0/+18
| | | | |
| * | | | cmCommandLineArgument supports ZeroOrOne argumentsRobert Maynard2021-01-061-2/+10
| | | | | | | | | | | | | | | | | | | | This allows us to parse command line arguments such as `-j` || `-j2`