Commit Graph

49222 Commits

Author SHA1 Message Date
Fred Baksik
db486da265 Toolchain: Update documentation for initial compiler flags 2020-08-03 12:34:46 -04:00
Fred Baksik
deec2f587c Toolchain: Take CMAKE_<lang>_FLAGS_INIT into account during compiler detection
Fixes: #20040
2020-07-29 11:51:27 -04:00
Fred Baksik
ca899af3e2 Toolchain: Handle repeated invocations of CMake with -DCMAKE_C_COMPILER
Repeated invocations of `cmake ... -DCMAKE_C_COMPILER=gcc` should not
trigger a "You have changed variables" message even though the cache
value of CMAKE_C_COMPILER changes from '/path/to/gcc' to 'gcc'.

Make repeated invocations of `cmake ... -DCMAKE_C_COMPILER=gcc;-pipe`
not trigger the warning by comparing the compiler name portion of the list to
the compiler being used.
2020-07-29 11:51:27 -04:00
Fred Baksik
12ba89e142 Toolchain: Make `/path/comp;-argn' behave the same as 'comp;-argn'
When using `cmake ... -DCMAKE_C_COMPILER=gcc;-pipe` first invocation of
CMake worked correctly.

When using `cmake ... -DCMAKE_C_COMPILER=/path/to/gcc;-pipe` first
invocation  of CMake detected a change to CMAKE_C_COMPILER, printed "You
have changed variables" message, and re-ran the initial compiler tests
after configuration was complete and before generation of the project
files.

The difference was due to the cache being forced updated with the new
value of CMAKE_C_COMPILER so that the comparison check passes.
2020-07-29 11:51:18 -04:00
Fred Baksik
6f1af899db Toolchain: Capture all arguments from CMAKE_<LANG>_COMPILER
Capture CMAKE_<LANG>_COMPILER_ARG1 from CMAKE_<LANG>_COMPILER in the
same fashion that it is from $ENV{<LANG>}.

Since get_filename_component() returns a single string of all the
arguments from $ENV{<LANG>}, a single string of arguments will be
constructed from the items contained in CMAKE_<LANG>_COMPILER.

Fixes #20089
2020-07-23 14:52:48 -04:00
Fred Baksik
ec1d3bc0b6 cmake: avoid exception when printing "changed variables" message
If the changed cache variable was a list then this processing may
attempt to access beyond the last item in the list. Instead skip
printing the non-existing value and backup one to finish the loop.
2020-07-23 14:52:48 -04:00
Brad King
4daff2b40f Merge branch 'release-3.18' 2020-07-23 14:11:53 -04:00
Brad King
2cb664fd77 Merge topic 'file-GET_RUNTIME_DEPENDENCIES-terms'
2b60088d14 Help: Update file(GET_RUNTIME_DEPENDENCIES) prose to match option names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5053
2020-07-23 14:11:53 -04:00
Brad King
16327086f0 Merge topic 'file-GET_RUNTIME_DEPENDENCIES-terms' into release-3.18
2b60088d14 Help: Update file(GET_RUNTIME_DEPENDENCIES) prose to match option names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5053
2020-07-23 14:11:52 -04:00
Brad King
2b60088d14 Help: Update file(GET_RUNTIME_DEPENDENCIES) prose to match option names 2020-07-23 13:47:24 -04:00
Brad King
9d9a6a8532 Merge topic 'tutorial-update'
63af35019a Tutorial: Add missing `language` option to literalinclude

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5046
2020-07-23 11:08:38 -04:00
Brad King
04b25ed8fc Merge topic 'bootstrap-libuv-macos'
e771330dd4 bootstrap: Fix libuv target platform conditions on macOS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5044
2020-07-23 08:29:19 -04:00
Brad King
64e5c239d3 Merge topic 'pgi-no-A'
52eee19389 PGI: Remove -A from the C++ flags we use when CXX_EXTENSIONS is OFF

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Chuck Atkins <chuck.atkins@kitware.com>
Merge-request: !5025
2020-07-23 08:29:02 -04:00
Brad King
e3b5abd068 Merge topic 'fix-typos-identified-using-codespell'
207373802e Fix typos identified using codespell

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5040
2020-07-23 08:28:21 -04:00
Brad King
369ba2f4e2 Merge topic 'simplify-sources-check'
634c461b22 cmGlobalGenerator: Simplify CheckTargetsForMissingSources

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5043
2020-07-23 08:27:17 -04:00
Brad King
733edddf5c Merge topic 'test-RunCMake.InterfaceLibrary'
4ac9ee10ad Tests: Rename test RunCMake.{interface_library => InterfaceLibrary}

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5042
2020-07-23 08:26:02 -04:00
Brad King
b890937fdd Merge topic 'CheckTypeSize-std-types'
7f786c6a40 Tests: Cover CheckTypeSize with uint8_t and std::uint8_t
371072e9e1 CheckTypeSize: Use C++-style headers to check for std:: types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5008
2020-07-23 08:25:10 -04:00
Brad King
4b1c6f908f Merge topic 'cmake-gui-qt-5.14' into release-3.18
af6cf586f6 cmake-gui: Fix crash when built with Qt 5.14 or later

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5045
2020-07-23 08:20:48 -04:00
Brad King
f29d9e7132 Merge branch 'release-3.18' 2020-07-23 08:20:48 -04:00
Brad King
f3d93edb36 Merge topic 'cmake-gui-qt-5.14'
af6cf586f6 cmake-gui: Fix crash when built with Qt 5.14 or later

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5045
2020-07-23 08:20:48 -04:00
Kitware Robot
2f53f8684f CMake Nightly Date Stamp 2020-07-23 00:01:12 -04:00
Betsy McPhail
63af35019a Tutorial: Add missing language option to literalinclude 2020-07-22 16:17:41 -04:00
Brad King
af6cf586f6 cmake-gui: Fix crash when built with Qt 5.14 or later
In commit d7679f6427 (QCMakeCacheView: use non-deprecated List and Set
constructions, 2020-06-10, v3.18.0-rc2~13^2) the conversion of the
`this->properties()` value to QSet is incorrect for Qt 5.14+.  The
problem is that `this->properties()` returns by value, so the range
`this->properties().begin(), this->properties().end()` provides
iterators to two different instances.  Use an intermediate temporary
copy of the value to get a consistent iterator range.

Fixes: #20981
2020-07-22 15:19:51 -04:00
Brad King
e771330dd4 bootstrap: Fix libuv target platform conditions on macOS
In commit 714ce72882 (bootstrap: Make libuv available during bootstrap,
2017-09-13, v3.10.0-rc1~106^2) we modified libuv to use POSIX interfaces
during bootstrap.  However, some code still expects `TARGET_OS_IPHONE`
to be defined on Apple platforms to either `0` or `1`.  In order to
offer this, include `<TargetConditionals.h>` on Apple platforms even
when bootstrapping.
2020-07-22 14:42:04 -04:00
Brad King
634c461b22 cmGlobalGenerator: Simplify CheckTargetsForMissingSources
Use `GetAllConfigSources` instead of collecting all configurations
ourselves.
2020-07-22 13:48:11 -04:00
Brad King
4ac9ee10ad Tests: Rename test RunCMake.{interface_library => InterfaceLibrary}
Our RunCMake.<lower-case> namespace is meant for testing individual
CMake language commands.
2020-07-22 13:42:58 -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
d45f0d719e Merge topic 'EXCLUDE_FROM_ALL-genex'
2cdaf43d96 Allow generator expressions in the EXCLUDE_FROM_ALL target property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5021
2020-07-22 11:23:34 -04:00
Brad King
1f8bbfec0f Merge topic 'TARGET_PROPERTY-strip-empty-list-elements'
af1a4f52be Genex: $<TARGET_PROPERTY> strip emtpy list elements for predefined properties

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5030
2020-07-22 08:47:58 -04:00
Brad King
8bbbc49cc1 Merge branch 'release-3.18' 2020-07-22 08:46:01 -04:00
Brad King
f9e679d9f2 Merge topic 'aux-install-dest'
83bc79e232 Auxiliary: Add options to control Vim and Emacs file installation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5035
2020-07-22 08:46:01 -04:00
Brad King
24571e8eca Merge topic 'aux-install-dest' into release-3.18
83bc79e232 Auxiliary: Add options to control Vim and Emacs file installation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5035
2020-07-22 08:46:00 -04:00
Brad King
21acf596cb Merge branch 'release-3.17' 2020-07-22 08:43:05 -04:00
Brad King
b323470348 Merge branch 'release-3.18' 2020-07-22 08:42:37 -04:00
Brad King
3e14b15f44 Merge topic 'graphviz-restore-per-target'
8efdd905f2 Merge branch 'backport-3.18-graphviz-restore-per-target'
a78e991420 Tests: Cover Graphviz support for per-target dependency graph options
370a94c487 Merge branch 'backport-3.17-graphviz-restore-per-target'
1829220310 Merge branch 'backport-3.17-graphviz-restore-per-target'
f3a6b4a209 Tests: Cover Graphviz support for per-target dependency graph options
93549b9224 Graphviz: Restore support for per-target dependency graph options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5039
2020-07-22 08:42:37 -04:00
Brad King
c8a6da06d2 Merge topic 'graphviz-restore-per-target' into release-3.18
1829220310 Merge branch 'backport-3.17-graphviz-restore-per-target'
f3a6b4a209 Tests: Cover Graphviz support for per-target dependency graph options
93549b9224 Graphviz: Restore support for per-target dependency graph options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5039
2020-07-22 08:42:36 -04:00
Brad King
7f786c6a40 Tests: Cover CheckTypeSize with uint8_t and std::uint8_t 2020-07-22 08:25:09 -04:00
Tin Huynh
52eee19389 PGI: Remove -A from the C++ flags we use when CXX_EXTENSIONS is OFF
Since commit 9b97cb5562 (PGI: Add language standards for PGI,
2017-05-01, v3.9.0-rc1~174^2), we have passed the `-A` flag to
the PGI C++ compiler when specifying a C++ standard flag with
compiler extensions turned off.  The flag is not meant for that.
The PGI C++ standard flags do not turn extensions on by default
and have a separate `--gnu_extensions` flag for that which we
already use when CXX_EXTENSIONS is ON.  Simply drop the `-A` flag.

Fixes: #20997
2020-07-22 07:26:01 -04:00
Kitware Robot
5ac007f41c CMake Nightly Date Stamp 2020-07-22 00:01:19 -04:00
Brad King
8efdd905f2 Merge branch 'backport-3.18-graphviz-restore-per-target' 2020-07-21 16:44:23 -04:00
Brad King
e817818926 Merge branch 'backport-3.17-graphviz-restore-per-target' into release-3.17
Merge-request: !5039
2020-07-21 16:35:53 -04:00
Stephan Rohmen
a78e991420 Tests: Cover Graphviz support for per-target dependency graph options
Issue: #20928
2020-07-21 15:02:21 -04:00
Brad King
370a94c487 Merge branch 'backport-3.17-graphviz-restore-per-target' 2020-07-21 15:02:09 -04:00
Brad King
1829220310 Merge branch 'backport-3.17-graphviz-restore-per-target' 2020-07-21 15:00:52 -04:00
Stephan Rohmen
f3a6b4a209 Tests: Cover Graphviz support for per-target dependency graph options
Issue: #20928
2020-07-21 14:55:44 -04:00
Stephan Rohmen
93549b9224 Graphviz: Restore support for per-target dependency graph options
The behaviors controlled by options `GRAPHVIZ_GENERATE_PER_TARGET` and
`GRAPHVIZ_GENERATE_DEPENDERS` were broken by commit 553658393c (Graphviz:
added test suite, fixes, enhancements, 2019-10-08, v3.17.0-rc1~615^2).
It had not been covered in the test suite previously, and those changes
left out checks for these features from the `default_options` case.

Implement the previously-existing behavior in the new graphviz
generation engine added by the above-mentioned commit.

Fixes: #20928
2020-07-21 14:55:44 -04:00
Brad King
c8706cf165 Merge topic 'debug_posfix_doc'
d103e34030 Documentation: Add missing links to `DEBUG_POSTFIX` target property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5037
2020-07-21 13:37:22 -04:00
Betsy McPhail
d103e34030 Documentation: Add missing links to DEBUG_POSTFIX target property
Add links to the `<CONFIG>_POSTFIX` target property when it is
referenced in the `DEBUG_POSTFIX` documentation.
2020-07-21 12:53:53 -04:00
Joerg Bornemann
2cdaf43d96 Allow generator expressions in the EXCLUDE_FROM_ALL target property
This allows for setting EXCLUDE_FROM_ALL, conditional on the build
configuration. However, only the Ninja Multi-Config generator supports
different property values per config. All other multi-config
generators will yield an error in that situation.

Fixes: #20923
2020-07-21 17:16:26 +02:00
Marc Chevrier
af1a4f52be Genex: $<TARGET_PROPERTY> strip emtpy list elements for predefined properties
Fixes: #20951
2020-07-21 15:08:28 +02:00