1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00
Commit Graph

404 Commits

Author SHA1 Message Date
Brad King
ec1b6157cb Update CMake code using KWSys to account for Status return values
KWSys as of 2021-04-14 changed the return type of `SystemTools`
operations from `bool` to `Status`.  Update our call sites.
This may improve error reporting accuracy in a few places.
2021-04-14 13:14:09 -04:00
Henryk Paluch
5302073010 Help: Add option to generate docs with latexpdf 2021-03-01 15:28:10 -05:00
Issam E. Maghni
11260f6c20 bootstrap: add cmake_ld_flags to include check 2021-02-03 13:36:45 -05:00
Issam E. Maghni
147ba659c1 bootstrap: add cmake_ld_flags to compilers check 2021-01-16 23:48:35 -05:00
Issam E. Maghni
d9a788b356 bootstrap: test -a|o is not POSIX 2020-12-23 13:27:33 -05:00
Brad King
c257c25419 add_custom_{command,target}: Add genex support to OUTPUT and BYPRODUCTS
Move rejection of `#`, `<`, and `>` characters in outputs and byproducts
to a generate-time check.  This removes the front-end check that
disallowed generator expressions.  The generators have already been
updated to handle them.

Fixes: #12877
2020-12-11 08:24:21 -05:00
Marc Chevrier
2c71d051fa Makefiles Generators: use compiler for dependencies generation
Each source compilation generates a dependencies file. These dependencies
files are consolidated in one file per target. This consolidation is done
as part of command 'cmake -E cmake_depends` launched before evaluation of
makefile dependency graph.

The consolidation uses the same approach as `CMake` dependencies management.

Fixes: #21321
2020-11-29 15:25:42 +01:00
Brad King
9493532f80 Merge topic 'cmake-E-cat-binary'
f7a5f28318 cmake: Fix '-E cat' command for binary files on Windows
90b39a5209 cmConsoleBuf: Factor out cout/cerr console buffer management
f1fdd15863 clang-format: Fix include block order in ctest.cxx and cpack.cxx

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5364
2020-10-15 08:10:51 -04:00
Brad King
e98b636e17 Merge topic 'bootstrap-make-smake'
8e7ece1416 bootstrap: add smake as known make processors

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5372
2020-10-14 15:45:10 -04:00
Brad King
9da8009f20 Merge topic 'bootstrap-ninja-samu'
f0ac977d3c bootstrap: add samu as known ninja processors

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5371
2020-10-14 15:44:21 -04:00
Issam E. Maghni
8e7ece1416 bootstrap: add smake as known make processors
As found in “Modules/CMakeUnixFindMake.cmake”
2020-10-14 15:29:25 -04:00
Issam E. Maghni
f0ac977d3c bootstrap: add samu as known ninja processors
As found in “Modules/CMakeNinjaFindMake.cmake”
2020-10-14 15:28:50 -04:00
Brad King
90b39a5209 cmConsoleBuf: Factor out cout/cerr console buffer management 2020-10-14 12:08:06 -04:00
Kyle Edwards
596439b1bb cmCustomCommandGenerator: Add option to transform depfile 2020-10-13 10:18:02 -04:00
Kyle Edwards
b2c14bc774 cmake -E: Add cmake_transform_depfile internal command 2020-10-13 10:18:02 -04:00
Elad Lahav
f9e950d4c5 libuv: Add support for building for QNX within CMake 2020-09-25 11:53:44 -04:00
Marc Chevrier
eb583b0a66 cmake_path command: path management
Fixes: #19568, #20922
2020-09-06 10:52:25 +02:00
Marc Chevrier
212e953d35 cmCMakePath: Class for path handling 2020-09-06 10:34:17 +02:00
Kyle Edwards
407afc0f91 Bootstrap: Use #pragma once in cmThirdParty.h 2020-09-03 09:30:27 -04:00
Kyle Edwards
491dddfbde Bootstrap: Add support for Ninja 2020-08-10 14:40:17 -04:00
Brad King
b76fa1b62a Merge topic 'bootstrap-intel'
796466284b bootstrap: Fix support for Intel compiler with modern GNU system compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5057
2020-07-27 10:47:58 -04:00
Brad King
16f77ce412 Merge topic 'bootstrap-intel' into release-3.18
796466284b bootstrap: Fix support for Intel compiler with modern GNU system compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5057
2020-07-27 10:47:57 -04:00
Brad King
796466284b bootstrap: Fix support for Intel compiler with modern GNU system compiler
On systems with older GNU system compilers, the Intel C++ compiler does
not define `__cplusplus` to any version newer than C++11.  This
prevented `bootstrap` from detecting that a given C++ standard flag has
enabled C++17 mode in the compiler.  In commit 033a4b12a5 (bootstrap:
Extend C++17 check for our cast functions, 2019-12-14,
v3.17.0-rc1~291^2) we added a preprocessor condition to attempt to
detect C++17 mode in the Intel compiler on such systems by looking
for `__cpp_if_constexpr`.  However, on systems with a modern GNU
system compiler, that definition is available even in C++11 mode.

Switch to using `__cpp_deduction_guides` to detect C++17 mode for the
Intel C++ compiler.  That seems to be defined exclusively in C++17 mode
regardless of the version of the system compiler.

Fixes: #21013
2020-07-24 08:53:13 -04:00
Jean-Christophe Fillion-Robin
207373802e Fix typos identified using codespell
See https://github.com/codespell-project/codespell#readme

The following command was used:

```
codespell -q6 --skip="\
.git,\
*.json,\
./Copyright.txt,\
./Help/command/foreach.rst,\
./Help/prop_test/REQUIRED_FILES.rst,\
./Help/variable/CTEST_COVERAGE_COMMAND.rst,\
./Modules/CMakeCheckCompilerFlagCommonPatterns.cmake,\
./Modules/CMakeRCInformation.cmake,\
./Modules/Internal/CPack/NSIS.template.in,\
./Modules/FindMatlab.cmake,\
./Modules/MatlabTestsRedirect.cmake,\
./Modules/Platform/Windows-Clang.cmake,\
./Modules/Platform/Windows-Intel-Fortran.cmake,\
./Modules/Platform/Windows-MSVC.cmake,\
./Source/CMakeVersion.cmake,\
./Source/cmConvertMSBuildXMLToJSON.py,\
./Source/cmCreateTestSourceList.cxx,\
./Source/cmGlobalVisualStudio10Generator.cxx,\
./Source/cmExportBuildFileGenerator.cxx,\
./Source/cmExportInstallAndroidMKGenerator.cxx,\
./Source/cmExportInstallFileGenerator.cxx,\
./Source/cmExportSet.cxx,\
./Source/cmExportTryCompileFileGenerator.cxx,\
./Source/cmFindPackageCommand.cxx,\
./Source/cmInstallCommand.cxx,\
./Source/cmGeneratorExpressionLexer.cxx,\
./Source/cmLocalVisualStudio7Generator.cxx,\
./Source/cmOrderDirectories.cxx,\
./Source/cmTarget.cxx,\
./Source/kwsys/*,\
./Source/QtDialog/CMakeSetupDialog.ui,\
./Source/CPack/WiX/cmWIXRichTextFormatWriter.cxx,\
./Source/CTest/cmParseCoberturaCoverage.h,\
./Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in,\
./Tests/RunCMake/CPack/tests/DMG_SLA/English.license.rtf,\
./Tests/RunCMake/CPack/tests/DMG_SLA/German.license.txt,\
./Tests/RunCMake/CPack/tests/DMG_SLA/German.menu.txt,\
./Tests/RunCMake/GoogleTest/xml_output.cpp,\
./Tests/RunCMake/Make/TargetMessages*,\
./Utilities/*,\
" \
-L "\
dependees,\
endwhile,\
fo,\
filetest,\
helpfull,\
nd,\
objext,\
stoll,\
supercedes,\
superceded,\
vas,\
varn,\
"
```
2020-07-22 12:44:47 -04:00
Brad King
2768698ba0 Merge topic 'bootstrap-system-http2'
64bc82bb4d bootstrap: Add options to control use of system nghttp2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Christoph Grüninger <foss@grueninger.de>
Merge-request: !5031
2020-07-21 07:25:54 -04:00
Brad King
64bc82bb4d bootstrap: Add options to control use of system nghttp2
Add `bootstrap` options needed since commit 0b872fd4be (nghttp2: Build
the library within CMake for use by our curl, 2020-04-01,
v3.18.0-rc1~408^2~2).

Fixes: #20987
2020-07-20 10:16:07 -04:00
Marc Chevrier
d654bf3449 STL Support: Add cm::filesystem::path in <cm/filesystem> 2020-07-09 17:02:42 +02:00
Marc Chevrier
e5798126fc STL Support: introduce dedicated configuration file 2020-07-09 15:24:43 +02:00
Julien Schueller
a32b5be56c bootstrap: Add option to use system libuv during bootstrap
Support bootstrapping on older systems where our bundled
version libuv does not compile (.e.g Centos5, see #19086 and #19311).
Add a `--bootstrap-system-libuv` option to use the system-provided
libuv even for the bootstrap binary itself.
2020-07-06 13:00:57 -04:00
Robert Maynard
dc94b0249e cmStandardLevelResolver: Added to handle standard level queries
Refactored out of cmMakefile
2020-07-01 07:58:58 -04:00
Brad King
eb705b9531 Update links to gitlab.kitware.com repos to add -/
GitLab now uses a `/-/` component between the `group/project` part of
the URL and the `{issues,merge_requests,tree}` part so that it can
support `group/subgroup/project` with arbitrary depth.
2020-05-26 11:38:01 -04:00
Tushar Maheshwari
6728f0fa85 cmPropertyDefinitionMap: simplify and shorten 2020-05-15 18:58:02 +05:30
Marc Chevrier
75e87e3db4 bootstrap: update list of problematic files 2020-05-07 11:56:55 +02:00
Issam Maghni
3e874e8834 bootstrap: Prefer “test … && test …” over “test … -a …”
From https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html
2020-05-05 12:42:40 -04:00
Issam Maghni
1c06060288 bootstrap: Prefer “test …” over “[ … ]”
The former is more portable.
2020-05-05 12:42:28 -04:00
Brad King
54d9ffc6da Merge topic 'bootstrap-solaris-tr'
9febdd8205 bootstrap: Use 'tr' more portably

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4703
2020-05-05 09:02:49 -04:00
Brad King
9febdd8205 bootstrap: Use 'tr' more portably
Since commit 380bd70cc2 (bootstrap: implement cmake_toupper() using tr,
2017-06-07, v3.10.0-rc1~548^2~2) we use `tr` to convert from lower to
upper case.  However, the character classes `[:lower:]` and `[:upper:]`
result in a "Bad string" error message on Solaris.  Use `[a-z]` and
`[A-Z]` instead.
2020-05-04 09:41:52 -04:00
Raul Tambre
25439c7d62 Clang: Refactor CXX standard flags into __compiler_clang_cxx_standards()
These standard flags are the same for CXX, OBJCXX and CUDA.
Refactor them into a single macro to reduce duplication and so we can easily reuse them.

Updated bootstrap script to search in the general Clang module instead of the language-specific.
2020-04-07 09:33:09 -04:00
jjYBdx4IL
2ec6fbcb9b bootstrap: Tolerate trailing content in CMakeVersion.cmake components
On CYGWIN, tolerate DOS linefeeds in `Source/CMakeVersion.cmake`.
2020-03-17 07:20:09 -04:00
Marc Chevrier
2834f3355d Bootstrap: take care of C++ features configuration 2020-02-01 16:21:41 +01:00
Brad King
9969efa1ae bootstrap: Build with Release config by default to get optimizations
Fixes: #20197
2020-01-09 14:49:47 -05:00
Brad King
033a4b12a5 bootstrap: Extend C++17 check for our cast functions
In commit fc3b4caa2e (Memory management: cast functions for managed pointers,
2019-11-18) we added a check to `Source/Checks/cm_cxx17_check.cpp` to avoid
using C++17 mode on a compiler that does not support all our C++17 usage.
Add the check to our bootstrap script too.
2019-12-14 13:30:54 -05:00
Brad King
d806263578 Merge branch 'backport-3.16-toc_on_ppc' into toc_on_ppc 2019-12-09 11:41:15 -05:00
Alexander Grund
8c7b7df788 bootstrap: Add target_link_options command 2019-12-09 11:37:37 -05:00
Daniel Eiband
4e37508c85 cmLocalGenerator: Refactor to use cmMakeSingleCommandLine 2019-11-24 20:13:23 +01:00
Brad King
28a8561885 Merge topic 'bootstrap-break'
1dbf485934 bootstrap: Avoid redundant compiler selection checks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3959
2019-10-30 09:25:48 -04:00
Brad King
1dbf485934 bootstrap: Avoid redundant compiler selection checks
In commit 6e613ff399 (bootstrap: Add infrastructure to detect threading
flags, 2017-11-28, v3.11.0-rc1~281^2~1) an extra level of nesting was
added to the selection loop, but the inner-most `break` command used to
exit the loop on success was not updated.  This caused the outer-most
loop to iterate unnecessarily and repeatedly try the same compilers
again.  In the case of compilers requiring a `-std=` flag, this may have
caused the oldest standard to be used instead of the newest.
2019-10-29 12:03:54 -04:00
Corentin Plouet
553658393c Graphviz: added test suite, fixes, enhancements
* Added a fairly comprehensive test suite
* Separated the graph traversal logic from the Graphviz generation
  code by introducing a new class, cmLinkItemsGraphVisitor{.h,cxx}
* Made the graph traversal logic less ad-hoc by using existing
  methods in the GlobalGenerator; this fixed a few bugs
* Added support for new target types: custom targets, object
  and unknown libraries
* Improved support for ALIAS libraries by showing the alias(es)
  in the graph
* Introduced new flags to control those new libraries (consistent
  with existing flags)
* Updated the documentation
* Removed useless setting to set graph type in dot file
* Improved the node/edge shapes (nicer, more consistent)
* Added a legend to the graph
* Some refactoring and cleanup of the Graphviz generation code
* Added test and fix for issue 19746
2019-10-08 13:45:56 +11:00
Brad King
df982c4e18 Merge topic 'add-custom-target-byproduct-checks'
fd3a394614 add_custom_command: Format files in error message in a single line
a1cc6b4447 add_custom_target: Add output checks for custom target byproducts
cbb861ade8 add_custom_command: Add tests for custom command output checks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3850
2019-09-26 09:47:51 -04:00
Daniel Eiband
a1cc6b4447 add_custom_target: Add output checks for custom target byproducts
Use the output checks for byproducts of add_custom_command also for byproducts
of add_custom_target.
2019-09-23 22:18:36 +02:00