44456 Commits

Author SHA1 Message Date
Brad King
dcdeade5ee Merge topic 'msvc-runtime-library-doc'
282d9f3168 MSVC: Document behavior when MSVC_RUNTIME_LIBRARY is not set

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3573
2019-07-19 11:57:10 -04:00
Brad King
6618cbf38a Merge topic 'vs-asmlist-dir'
c1fc6c80c7 VS: Place intermediate files in the "ASM List Location" next to objects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3569
2019-07-19 11:55:48 -04:00
Brad King
8d22999753 Merge branch 'msvc-runtime-library-doc' into release-3.15
Merge-request: !3573
2019-07-19 11:18:44 -04:00
Brad King
282d9f3168 MSVC: Document behavior when MSVC_RUNTIME_LIBRARY is not set
By default `CMAKE_MSVC_RUNTIME_LIBRARY` is not set.  Document the
default runtime library selection in that case.  We already test it.
2019-07-19 11:17:32 -04:00
Kyle Edwards
1bdb5a3b51 Merge topic 'findvulcan-doc-fix'
6cc4ca31d5 Fix repeated word in FindVulkan.cmake

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3575
2019-07-19 10:05:15 -04:00
Brad King
33494a507d cmGeneratorTarget: Order usage requirement processing logic consistently
Re-order logic in all `process*` methods so that they all evaluate
generator expressions at the beginning of their loops.
2019-07-19 09:58:12 -04:00
Brad King
c131e62f7b cmGeneratorTarget: Remove unnecessary copy to local variable 2019-07-19 09:58:12 -04:00
Brad King
fab72918c9 cmGeneratorTarget: Remove unused member of internal class 2019-07-19 09:58:12 -04:00
Brad King
95d3598e04 cmGeneratorExpressionDAGChecker: Avoid const_cast
Make a member mutable to avoid casting away const of a whole object.
2019-07-19 09:58:12 -04:00
Craig Scott
b97673f54b Help: Add note to each string() subcommand that assumes ASCII input
Fixes: #19465
2019-07-19 20:47:21 +10:00
Craig Scott
26cd64d977 Help: Fix language and formatting inconsistencies for string() command 2019-07-19 20:47:21 +10:00
Kitware Robot
ac000e29da CMake Nightly Date Stamp 2019-07-19 00:01:07 -04:00
Saleem Abdulrasool
59f2aa63e4 Swift: fix static library handling
Handle static libraries similar to shared libraries.  Do not pass along
the shared library flags raw as that will pass flags for the linker to
the driver which is incorrect.
2019-07-18 19:52:48 -07:00
NeroBurner
6cc4ca31d5 Fix repeated word in FindVulkan.cmake 2019-07-18 17:25:04 -04:00
Gabor Bencze
5dbd9c8583 Vim: Add SKIP_REGULAR_EXPRESSION test property to vim syntax file 2019-07-18 15:45:09 -04:00
Gabor Bencze
407dd1a910 Help: Add documentation for SKIP_REGULAR_EXPRESSION test property 2019-07-18 15:45:09 -04:00
Gabor Bencze
d7955d4e5d Tests: Create test for SKIP_REGULAR_EXPRESSION test property 2019-07-18 11:52:10 -04:00
Gabor Bencze
4f1dec86a5 CTest: Add SKIP_REGULAR_EXPRESSION test property 2019-07-18 11:52:05 -04:00
Brad King
d96bc3cf04 Merge branch 'vs-asmlist-dir' into release-3.15
Merge-request: !3569
2019-07-18 11:41:49 -04:00
Brad King
c1fc6c80c7 VS: Place intermediate files in the "ASM List Location" next to objects
The `AssemblerListingLocation` setting in VS project files is meant for
intermediate files created during the build much like object files.
When the VS 7 generator was first under development, commit 49aebe6c99
(new arch, 2002-09-04) placed both object files and the ASM list
location in the same directory.  Later commit f9aef0e422 (Generator now
creates a separate intermediate files directory for each target,
2005-07-27) moved the object files to a per-target directory but the
ASM list location was not moved with them.  Move it now.

Fixes: #19480
2019-07-18 11:40:58 -04:00
Daniel Pfeifer
732dd344b9 cmCommand: remove FinalPass from interface 2019-07-18 17:35:43 +02:00
Daniel Pfeifer
fbee46e262 cmVariableWatchCommand: Port away from FinalPass 2019-07-18 17:35:43 +02:00
Daniel Pfeifer
360d415592 cmLoadCommandCommand: Port away from FinalPass 2019-07-18 17:35:43 +02:00
Kyle Edwards
dd3e476786 OpenSSL: Issue an error if OpenSSL is not found
When building with the built-in Curl, CMAKE_USE_OPENSSL is only set
to ON by default if an OpenSSL installation is detected. However, this
can cause the user to mistakenly build without OpenSSL support if
OpenSSL is not installed, because CMAKE_USE_OPENSSL is set to OFF in
that case. Always set CMAKE_USE_OPENSSL to ON by default on systems
where it could be available, skipping the initial detection, resulting
in an error when we try to use OpenSSL later on. Detect this error
and advise the user to either install OpenSSL or set CMAKE_USE_OPENSSL
to OFF.

Co-Authored-by: Brad King <brad.king@kitware.com>
2019-07-18 11:10:36 -04:00
Brad King
9dfb66372e bootstrap: Verify C++14 capabilities before using them
In commit a605bf438e (Extend C++17/C++14 feature checks to cover more
standard library APIs, 2019-02-27, cpp-modules-20190312.1~52^2~1) we
added checks to the main build of CMake to verify C++14 capabilities
before using C++14 flags to build.  Add these to the bootstrap check
too.
2019-07-18 11:10:12 -04:00
Brad King
e3bd5c5b66 Merge branch 'release-3.15' 2019-07-18 07:53:06 -04:00
Brad King
d59716d907 Merge topic 'swift-improvements'
f19c189e74 Merge branch 'backport-swift-improvements' into swift-improvements
5803a8a2f7 Swift: support SONAME on ELFish targets
47e28cbe1f Swift: support multithreaded compilation
6814567e8c Swift: add rules for static linking
c8741e8ff5 Swift: Add library search paths for dependencies
be0d404208 Support per-language library link flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3568
2019-07-18 07:50:40 -04:00
Brad King
1a2d260634 Merge branch 'backport-swift-improvements' into release-3.15
Merge-request: !3568
2019-07-18 07:47:05 -04:00
Brad King
f19c189e74 Merge branch 'backport-swift-improvements' into swift-improvements 2019-07-18 07:46:42 -04:00
Brad King
0a3dd07fb6 Merge branch 'release-3.15' 2019-07-18 07:43:40 -04:00
gnaggnoyil
3bbd85d5ff FindProtobuf: Fix usage of protobuf dynamic libraries on Windows
Define `PROTOBUF_USE_DLLS` on Windows when linking against dynamic
protobuf libraries so that we import symbols from them.

We use the condition `MSVC` to enable this because that is what
the upstream buildsystem uses.
2019-07-18 07:40:40 -04:00
Brad King
ae84427e32 Merge topic 'FindPython-interpreter-crosscompiling'
696d0f9caf FindPython: ensure interpreter is founded when cross-compiling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3564
2019-07-18 07:15:48 -04:00
Brad King
c79032438c Merge branch 'FindPython-interpreter-crosscompiling' into release-3.15
Merge-request: !3564
2019-07-18 07:14:55 -04:00
Marc Chevrier
696d0f9caf FindPython: ensure interpreter is founded when cross-compiling
Fixes: #19473
2019-07-18 07:13:20 -04:00
Brad King
52fa25e28f Merge topic 'aix-no-rtl'
3fb3157dae AIX: Do not enable runtime linking by default anymore

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3566
2019-07-18 07:08:08 -04:00
Daniel Pfeifer
316e40baec cmInstallProgramsCommand: Port away from FinalPass 2019-07-18 11:53:46 +02:00
Daniel Pfeifer
7bc88b9165 cmInstallFilesCommand: Port away from FinalPass 2019-07-18 11:53:46 +02:00
Daniel Pfeifer
6a1a3763ee cmFLTKWrapUICommand: Port away from FinalPass 2019-07-18 11:53:46 +02:00
Daniel Pfeifer
20169f0b8d cmExportLibraryDependenciesCommand: Port away from FinalPass 2019-07-18 11:53:46 +02:00
Daniel Pfeifer
a74dad3bd3 cmMakefile: decouple FinalAction from cmCommand 2019-07-18 11:53:46 +02:00
Regina Pfeifer
d26e6cb1c2 cmLoadCommandCommand: Code cleanup 2019-07-18 11:49:28 +02:00
Kitware Robot
94b883d9d3 CMake Nightly Date Stamp 2019-07-18 00:01:08 -04:00
Saleem Abdulrasool
5803a8a2f7 Swift: support SONAME on ELFish targets
We should enable the soname to be setup for ELF shared libraries.
Failure to do so generates binaries with incorrect names which prevents
loading.
2019-07-17 20:46:25 -07:00
Saleem Abdulrasool
47e28cbe1f Swift: support multithreaded compilation
Query the number of logical CPUs available to enable parallel
compilation for Swift.
2019-07-17 20:46:08 -07:00
Saleem Abdulrasool
6814567e8c Swift: add rules for static linking
The Swift driver recently learnt how to generate static libraries using
the `-static` flag.  This enables us to generate proper static libraries
with dependency tracking with Swift as well.
2019-07-17 20:45:54 -07:00
Saleem Abdulrasool
c8741e8ff5 Swift: Add library search paths for dependencies
When building Swift executables and libraries which import a module, an
implicit link will be added by the driver.  Because this links by name
rather than path, the library search path needs to be provided to
indicate where to find the library.  For all local dependencies, add the
library paths for the targets when linking.  This ensures that you can
link against local libraries without explicitly setting a library path.

Fixes: #19304
2019-07-17 20:45:19 -07:00
Saleem Abdulrasool
be0d404208 Support per-language library link flags
This changes the behaviour of the generators to use a per-language
library search path flag.  This is needed for multi-language projects
with different compilers (e.g. cl + gfortran).  Since the adjusted
variable has been part of the user settings, we control this based on a
policy.

Fixes: #19307
2019-07-17 20:44:58 -07:00
Brad King
3fb3157dae AIX: Do not enable runtime linking by default anymore
We've long created shared objects on AIX using the linker's `-G` option
(also offered by the XL front-end).  The `-G` option implies `-brtl` and
enables runtime linking.  This has been largely unnecessary because we
provide all dependencies on the link line and both XL and GNU compilers
offer builtin behavior to export symbols.  Since commit 0f150b69d3 (AIX:
Explicitly compute shared object exports for both XL and GNU,
2019-07-11) we compute exports explicitly and consistently.
Therefore runtime linking is no longer necessary for shared objects.

We've also long created executables on AIX using the linker's `-brtl`
option to enable runtime linking in case they load plugins at runtime.
Since commit 9f5c2040bf (AIX: Explicitly compute executable exports for
both XL and GNU, 2019-07-12) and commit 2fa920c0cd (AIX: Create import
library for executables with exports, 2019-07-16) we now provide the
linker enough information to fully resolve symbols in plugins up front.
Therefore runtime linking is no longer necessary for executables.

Drop use of `-G` for creating shared objects and use the XL `-qmkshrobj`
and GCC `-shared` options instead.  Both invoke the linker with the
`-bM:SRE -bnoentry` options to create a shared object without runtime
linking enabled.  Also drop use of `-brtl` for creating executables.

Issue: #19163
2019-07-17 14:21:37 -04:00
Saleem Abdulrasool
151ef7cef4 Swift: refactor rule construction to reduce duplication
Use the placeholder expansion to avoid constructing the `-target` option
by hand if specified.  This reduces duplication and simplifies the
rules.
2019-07-17 10:26:46 -07:00
Brad King
744dd2cccb Merge branch 'release-3.15' 2019-07-17 10:06:59 -04:00