Commit Graph

42506 Commits

Author SHA1 Message Date
Brian Carlson
f84d2045e9 FindBISON: Fix CMP0088 NEW behavior for non-absolute input paths
Now that the working directory is in the build tree, relative input
paths must be converted to an absolute path to remain relative to the
source directory.

Fixes: #19472
2019-07-12 16:20:08 -04:00
Brad King
f3e9a6ff62 CMake 3.14.5 2019-05-31 09:18:58 -04:00
Brad King
dd7ba6ff19 Merge branch 'vs-depends-dedup' into release-3.14
Merge-request: !3388
2019-05-30 14:11:19 -04:00
Frans van Dorsselaer
42bc67bd43 VS: De-duplicate custom command dependencies
Avoid listing the same input more than once in custom commands generated
in `.vcxproj` and `.csproj` files.  In the case of a `.vcxproj` file
additionally avoid listing the source to which the command is attached
since it is already implicitly a dependency.

This is a nice cleanup and also works around a VS 2019 16.1 regression
in MSBuild dependency checking.  Starting with that version, MSBuild now
re-builds custom commands when the list of dependencies has changed.
However, its check is confused by duplicate dependencies.
De-duplicating them avoids this problem.

Co-Author: Brad King <brad.king@kitware.com>
Fixes: #19303
2019-05-30 13:57:03 -04:00
Frans van Dorsselaer
d03a6fc857 VS: Clarify name of custom commands AdditionalInputs variable 2019-05-30 13:57:03 -04:00
Brad King
fcedf8e552 VS: Isolate custom command input/output generation scopes 2019-05-30 13:57:03 -04:00
Brad King
540a175d20 Merge branch 'implicit-includes-CPATH' into release-3.14
Merge-request: !3395
2019-05-30 09:27:17 -04:00
Brad King
2d0b0e2b9d Do not exclude include directories made implicit by CPATH
Entries of the `CPATH` environment variable are implicitly searched as
include directories by some C/C++ compilers.  Since commit 5990ecb741
(Compute implicit include directories from compiler output, 2018-12-07,
v3.14.0-rc1~108^2) these entries are detected by CMake and included in
the `CMAKE_{C,CXX}_IMPLICIT_INCLUDE_DIRECTORIES` variables.

However, we should not exclude them from explicit specification via `-I`
or particularly `-isystem` because they are meant as user-specified
include directories that can be re-ordered without breaking compiler
builtin headers.  In particular, we need explicit requests via
`include_directories` with the `SYSTEM` option to result in `-isystem`
so that third-party headers do not produce warnings.

Co-Author: Ben Boeckel <ben.boeckel@kitware.com>
Fixes: #19291
2019-05-30 09:24:59 -04:00
Brad King
f07d42632b Merge branch 'FindThreads-doc-c++' into release-3.14
Merge-request: !3391
2019-05-28 11:39:39 -04:00
Brad King
a38b63c1bb FindThreads: Drop incorrect docs about usage with C++
Drop the sentence added by commit 5a5a1d90f0 (Help: FindThreads not
needed with modern C++., 2019-01-09, v3.14.0-rc1~186^2) about not
needing the module with modern C++.  The module is often still needed.

Fixes: #19297
2019-05-28 11:36:27 -04:00
Brad King
2b6f832bf5 Merge branch 'FindBoost-contract-requires-compile-features' into release-3.14
Merge-request: !3368
2019-05-24 07:15:31 -04:00
Alex Turbov
b915a42585 FindBoost: Add compiler features for Boost Contract library 2019-05-24 07:13:56 -04:00
Brad King
fffb5f1a75 Merge branch 'libarchive-solaris-11.4' into release-3.14
Merge-request: !3351
2019-05-21 09:34:39 -04:00
Brad King
6c81c6538b libarchive: avoid b64_encode name conflict with Solaris built-in function
Solaris 11.4 has a built-in function named `b64_encode`.  Add a
`la_` prefix to our internal function to avoid conflict.

Fixes: #19268
2019-05-21 09:32:21 -04:00
Brad King
f872033d75 CMake 3.14.4 2019-05-14 11:33:06 -04:00
Brad King
319b47c9c7 Merge branch 'doc-relnotes-3.14' into release-3.14
Merge-request: !3319
2019-05-14 11:29:07 -04:00
Brad King
f2aeba927c Help: Add 3.14.4 release notes
Add a note about the fix in commit 3d3713121b (target_link_libraries:
Fix static library private deps in other dirs, 2019-04-30).  Also
reference the equivalent note already added to the 3.13.5 notes.
2019-05-14 11:21:00 -04:00
Brad King
1d645e9891 Merge branch 'doc-relnotes-3.13' into doc-relnotes-3.14 2019-05-14 11:19:32 -04:00
Brad King
d6b8822919 Help: Add 3.13.5 release notes
Add a note about the fix in commit 3d3713121b (target_link_libraries:
Fix static library private deps in other dirs, 2019-04-30).
2019-05-14 11:18:42 -04:00
Brad King
016a8bc659 Merge branch 'swig4' into release-3.14
Merge-request: !3314
2019-05-13 11:30:27 -04:00
Daniele E. Domenichelli
65c5c1b567 FindSWIG: Support swig4.0 2019-05-13 11:29:53 -04:00
Brad King
620e7b1c39 Merge branch 'ios-xctest-lookup' into release-3.14
Merge-request: !3309
2019-05-13 10:37:21 -04:00
Gregor Jasny
e9d128b789 Apple: Properly lookup XCTest for iOS and tvOS
Closes: #19172
2019-05-11 12:12:32 +02:00
Brad King
6ced0b97d5 Merge branch 'touch-after-ranlib' into release-3.14
Merge-request: !3283
2019-05-06 09:45:21 -04:00
Brad King
6399e2246f Merge branch 'FindPython-fix-Python_RUNTIME_LIBRARY_DIRS-variable' into release-3.14
Merge-request: !3287
2019-05-06 09:26:05 -04:00
Brad King
2951d71111 Merge branch 'fix_ios_try_compile' into release-3.14
Merge-request: !3272
2019-05-06 09:25:53 -04:00
Alexandru Croitor
275b6b3194 iOS: Fix try_compile FILE_COPY not to fail
When building for iOS, the compiled target is placed into a bundle.
If a single-configuration generator is used, like Makefiles or Ninja,
the try_compile FILE_COPY behavior fails to find the bundle, because
it only looks for the bundle inside a Debug subfolder (presumably
to support a multi-configuration generator like Xcode).

Consider looking for the bundle in the root try_compile folder, as
well as in the location specified by CMAKE_TRY_COMPILE_CONFIGURATION.

Closes: #19211
2019-05-06 09:23:27 -04:00
Gregor Jasny
f83e4359f2 Apple: Preserve high resolution mtime for static libraries
On macOS ranlib truncates the fractional part of the static achive
file modification time.  If the archive and at least one contained
object file were created within the same second this will make look
the archive older than the object file.  On subsequent ninja runs
this leads to re-achiving and updating dependent targets.

As a work-around we touch the archive after ranlib.

Closes: #19222
2019-05-05 16:14:28 +02:00
Marc Chevrier
34c0293532 FindPython: ensure variable Python_RUNTIME_LIBRARY_DIRS is set correctly 2019-05-05 12:55:39 +02:00
Brad King
463e20c5c6 Merge branch 'FindPython-NumPy-fix-dependencies-management' into release-3.14
Merge-request: !3274
2019-04-30 14:58:22 -04:00
Brad King
d4a79a6ab3 Merge branch 'FindBoost-fix-fiber-compiler-features' into release-3.14
Merge-request: !3266
2019-04-30 14:26:42 -04:00
Alex Turbov
f06bf0fa57 FindBoost: Fix compiler features for fiber and context 2019-04-30 14:26:07 -04:00
Alex Turbov
684338aff6 FindBoost: Record compiler features for Boost 1.67 and above
Remove the 1.67 upper-bound on compiler feature computation so that with
newer versions we at least get it mostly right.  Leave a comment with
notes about updating features for future versions.
2019-04-30 14:25:51 -04:00
Brad King
b947113b42 Merge branch 'out-of-dir-linking-private-deps' into release-3.14
Merge-request: !3276
2019-04-30 13:56:08 -04:00
Brad King
c9469c78a5 Merge branch 'out-of-dir-linking-private-deps' into release-3.13
Merge-request: !3276
2019-04-30 13:55:48 -04:00
Brad King
3d3713121b target_link_libraries: Fix static library private deps in other dirs
In commit a1ad0a699b (target_link_libraries: Allow use with targets in
other directories, 2018-09-07, v3.13.0-rc1~94^2) we accidentally broke
the logic that adds `$<LINK_ONLY:...>` to private dependencies of static
libraries in their `INTERFACE_LINK_LIBRARIES` in the case that the
dependency is added from outside the directory creating the library.
The check for a valid target name should apply to the original name
specified by the caller and not the encoded cross-directory reference.

Fixes: #19197
2019-04-30 13:53:10 -04:00
Marc Chevrier
68c8201711 FindPython: NumPy: fix erroneous dependencies management 2019-04-30 16:02:18 +02:00
Brad King
7700df9b1e CMake 3.14.3 2019-04-22 07:42:52 -04:00
Brad King
bc6f442b56 Merge branch 'findqt3-hints-fix' into release-3.14
Merge-request: !3254
2019-04-22 07:35:22 -04:00
Christian Pfeiffer
c298c4553b FindQt3: Restore missing lib and bin path suffixes
Restore path suffixes incorrectly removed by commit a62d50ec56 (Modules:
Replace coded PATHS with PATH_SUFFIXES, 2017-11-20, v3.11.0-rc1~293^2).
Hints do not participate in the usual bin/lib subdirectory search that
`<PackangeName>_ROOT` or `CMAKE_PREFIX_PATH` exhibit.

Fixes: #19185
2019-04-22 07:34:32 -04:00
Brad King
cb733eb4a6 Merge branch 'vs-default-platform' into release-3.14
Merge-request: !3246
2019-04-19 07:59:28 -04:00
Brad King
db02be85a0 VS: Provide the default platform name to project code
The value of `CMAKE_VS_PLATFORM_NAME` is computed by Visual Studio
generators based on `CMAKE_GENERATOR_PLATFORM` or some default.
Prior to the VS 2019 generator, the default was always `Win32`.
However, for the `Visual Studio 16 2019` generator, the default is
based on the host platform.

Store the default in a new `CMAKE_VS_PLATFORM_NAME_DEFAULT` variable for
use by project code.  This is particularly useful in toolchain files
because they are allowed to set `CMAKE_GENERATOR_PLATFORM` and so
`CMAKE_VS_PLATFORM_NAME` is not yet known.  Of course the toolchain file
author knows whether it will set `CMAKE_GENERATOR_PLATFORM`, and if not
then `CMAKE_VS_PLATFORM_NAME_DEFAULT` provides the platform name that
will be used.

Fixes: #19177
2019-04-19 07:46:13 -04:00
Brad King
c648551bea Merge branch 'FindOpenGL-libglvnd-subdir' into release-3.14
Merge-request: !3236
2019-04-17 10:17:15 -04:00
Ben Boeckel
844050adaf FindOpenGL: look for GLVND libraries with a libglvnd suffix
On CentOS 6.10, the libglvnd package from EPEL installs its libraries
under a libglvnd subdirectory.
2019-04-17 10:16:46 -04:00
Brad King
09fba6146f Merge branch 'Boost-Gentoo' into release-3.14
Merge-request: !3237
2019-04-16 13:34:03 -04:00
Rolf Eike Beer
0b54f72e94 FindBoost: Fix detection with version suffixes on Gentoo
The Gentoo case added by commit 1673923c30 (FindBoost: Add support for
Boost 1.67 with Python version suffixes, 2018-03-18, v3.11.0~3^2) left
out the `.` version component separator and instead duplicated the RPM
case.  Add the missing `.` now.

Fixes: #18743
2019-04-16 13:31:27 -04:00
Brad King
cce342a5b9 Merge branch 'vs2019-redist' into release-3.14
Merge-request: !3233
2019-04-15 11:02:17 -04:00
Brad King
a0b6448c85 IRSL: Update redist directory for VS 2019 update 1
VS 2019 Update 1 will fix its redist directories to be named `VC142`
instead of `VC141`.  It will also use cl `19.21` instead of `19.20`
so we can use that to distinguish the versions.

Fixes: #19131
2019-04-15 10:59:02 -04:00
Brad King
a6bf68141f Merge branch 'backport-FindBoost-msvc-toolset-14.2' into release-3.14
Merge-request: !3221
2019-04-12 13:57:01 -04:00
Brad King
9010f5c18a FindBoost: Add support for MSVC toolset version 14.2
Generalize the logic to express compatibility among 14.x versions.
2019-04-12 11:33:52 -04:00