Commit Graph

2804 Commits

Author SHA1 Message Date
Brad King
8c6cce27ca Merge topic 'macos-11-file-GET_RUNTIME_DEPENDENCIES' into release-3.18
d9af90504f Tests: Update file(G_R_D) test to make system library optional
c51400033c file: Update GET_RUNTIME_DEPENDENCIES for macOS 11 dylib cache

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !4998
2020-07-14 07:15:11 -04:00
Brad King
2ef6ad0136 Merge topic 'profiling-case-insensitive-command-names' into release-3.18
7cf2f7d2af cmake: Store lowercase command names in profiling output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5007
2020-07-14 07:14:08 -04:00
Kyle Edwards
d9af90504f Tests: Update file(G_R_D) test to make system library optional
Since the system library may not exist on the filesystem on macOS
11, skip it if it doesn't exist.
2020-07-13 08:32:02 -04:00
Craig Scott
7cf2f7d2af cmake: Store lowercase command names in profiling output
This ensures commands can be properly aggregated by tools
processing the profiling output.

Fixes: #20946
2020-07-13 11:03:05 +10:00
Marc Chevrier
7b0f6508a0 ALIAS targets: Non-global aliases must be propagated to sub-directories
Fixes: #20942
2020-07-11 16:59:50 +02:00
Alexandru Croitor
177052d6b8 set_property: Fix name of TARGET_DIRECTORY option in error messages 2020-07-09 06:33:03 -04:00
Kyle Edwards
c57695a2f4 Help: Clarify search order for resource spec file
Clarify the order in which --resource-spec-file, RESOURCE_SPEC_FILE,
and CTEST_RESOURCE_SPEC_FILE are searched, and add tests to
enforce this.

Fixes: #20914
2020-07-07 12:21:58 -04:00
Brad King
85a945a607 Restore handling of build directory inside a symlinked path
In commit dd8365b3f1 (Merge branch 'upstream-KWSys' into update-kwsys,
2020-04-06, v3.18.0-rc1~397^2) we imported KWSys commit `019afb6ea`
(SystemTools: Drop GetCurrentWorkingDirectory 'collapse' argument,
2020-04-03).  That caused `GetCurrentWorkingDirectory` to no longer send
paths through the KWSys translation map and broke CMake's detection of
the absolute path to a build directory containing a symbolic link.
Add our own `cmSystemTools::GetCurrentWorkingDirectory` wrapper around
the KWSys method in order to restore that mapping.

Test-case-by: Ben Boeckel <ben.boeckel@kitware.com>
Issue: #16228
Fixes: #20900
2020-07-02 07:33:16 -04:00
Brad King
0ca6bb8575 Merge topic 'file-ARCHIVE-files-dirs' into release-3.18
bbcff21f71 file(ARCHIVE*): Collapse FILES and DIRECTORY options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4955
2020-07-01 07:00:42 -04:00
Brad King
221fd89251 Merge topic 'file-CONFIGURE-subdir' into release-3.18
e5f5eeca2f file: Fix CONFIGURE output relative path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4951
2020-06-30 08:04:07 -04:00
Craig Scott
bbcff21f71 file(ARCHIVE*): Collapse FILES and DIRECTORY options
The two options were concatenated internally for both ARCHIVE_CREATE
and ARCHIVE_EXTRACT. The distinction between files and dirs was not
meaningful. Therefore, replace them with PATHS or PATTERNS 
to more accurately describe the way the options are used.

Fixes: #20884
2020-06-30 22:01:35 +10:00
Brad King
e9f667c3b0 Merge topic 'find_library-file-readable' into release-3.18
f2c903fb9a find_library: Check that library files are readable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4945
2020-06-30 07:25:53 -04:00
Brad King
e5f5eeca2f file: Fix CONFIGURE output relative path
In commit a6fee09484 (file: Add CONFIGURE subcommand, 2020-03-06,
v3.18.0-rc1~584^2) we accidentally treated relative path outputs
with respect to the current working directory.  Treat them with
respect to the current binary directory instead.

Fixes: #20885
2020-06-29 09:20:42 -04:00
Brad King
f2c903fb9a find_library: Check that library files are readable
Refactoring in commit 6b85166920 (ENH: Refactor find_library search
logic, 2008-09-22, v2.8.0~1665) dropped a call to `FileExists` on the
path under the assumption that the presence of a file in a directory
listing means it exists.  However, dropping that also dropped a check
that verifies the file is readable.  Restore the `FileExists` call to
ensure that we only find readable libraries.
2020-06-29 07:50:47 -04:00
Craig Scott
95159b7dea file(ARCHIVE_CREATE): Rename TYPE option to COMPRESSION
Fixes: #20883
2020-06-27 18:38:28 +10:00
Craig Scott
09c38e8de6 Tests: Don't ask for things not required for GoogleTest
The test cases only need C or C++, but not both. The CTest module
is also not needed because we are not running a dashboard script.
2020-06-24 21:56:26 +10:00
Brad King
5f97e44912 Tests: Shorten case names in RunCMake.target_link_libraries-* tests
Drop the portion of the case names that repeats the name of the
containing test.
2020-06-17 08:13:57 -04:00
Marc Chevrier
0951b1fe07 Tests: Split RunCMake.target_link_libraries test
Fixes: #20836
2020-06-17 08:02:33 -04:00
Brad King
9ae3382855 Tests: Shorten case names in RunCMake.file-GET_RUNTIME_DEPENDENCIES test
Now that these cases are in a dedicated test we can drop the
`file-GET_RUNTIME_DEPENDENCIES-` prefix from their name.
2020-06-16 11:17:55 -04:00
Brad King
248d0570c9 Tests: Factor out RunCMake.file-GET_RUNTIME_DEPENDENCIES test
Move the `file(GET_RUNTIME_DEPENDENCIES)` cases out of `RunCMake.install`.
2020-06-16 11:17:55 -04:00
Brad King
6308bfb737 Tests: Factor out RunCMake.GenEx-GENEX_EVAL test
Move the `GENEX_EVAL` cases and friends out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:36 -04:00
Brad King
abe1c27499 Tests: Factor out RunCMake.GenEx-TARGET_FILE test
Move the `TARGET_FILE` cases and friends out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
fbead761fe Tests: Factor out RunCMake.GenEx-DEVICE_LINK test
Move the `DEVICE_LINK` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
64a8587332 Tests: Factor out RunCMake.GenEx-HOST_LINK test
Move the `HOST_LINK` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
6f224a065c Tests: Factor out RunCMake.GenEx-LINK_LANG_AND_ID test
Move the `LINK_LANG_AND_ID` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
f3f6317ca3 Tests: Factor out RunCMake.GenEx-LINK_LANGUAGE test
Move the `LINK_LANGUAGE` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
983adb8bed Tests: Factor out RunCMake.GenEx-COMPILE_LANG_AND_ID test
Move the `COMPILE_LANG_AND_ID` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
931a6702f6 Tests: Factor out RunCMake.GenEx-COMPILE_LANGUAGE test
Move the `COMPILE_LANGUAGE` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:34 -04:00
Brad King
a3881d6313 Merge topic 'cuda_architectures_disable' into release-3.18
877a92e968 CUDA: Add support for disabling CUDA_ARCHITECTURES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4886
2020-06-15 09:24:37 -04:00
Raul Tambre
877a92e968 CUDA: Add support for disabling CUDA_ARCHITECTURES
The ability to disable adding architectures completely for packaging purposes
and cases requiring passing the architectures flags explicitly has been
requested.
Support a false value for CUDA_ARCHITECTURES and CMAKE_CUDA_ARCHITECTURES
for this purpose.

Implements #20821.
2020-06-15 09:13:32 -04:00
Brad King
05546d695e Merge topic 'revert-find_program-exe-no-read' into release-3.18
cc02ced530 find_program: Revert "Find programs that are executable but not readable"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4871
2020-06-15 08:58:06 -04:00
Brad King
cc02ced530 find_program: Revert "Find programs that are executable but not readable"
The fix in commit 86e6349ef7 (find_program: Find programs that are
executable but not readable, 2020-04-04, v3.18.0-rc1~372^2) can break
existing projects that were (likely accidentally) relying on the
old behavior to find files that are readable but not executable.
Revert the fix for now.  We can re-introduce it with a policy later.

Instead of reverting the test case, update it to cover the old behavior.
That can serve as a reference for testing the policy when introduced.

Fixes: #20814
Issue: #10468
2020-06-12 05:04:56 -04:00
Ben Boeckel
1a2961b895 Tests: add CUDA labels to tests which are affected by CUDA 2020-06-11 13:04:33 -04:00
Kinan Mahdi
3fd07d30bf VS: Enable DOTNET_TARGET_FRAMEWORK properties all target types
This makes them compatible with `VS_PACKAGE_REFERENCES` and, in
particular, fixes nuget package references in combination with install
targets.

Fixes: #20764
2020-06-05 08:01:59 -04:00
Brad King
efac04465c Merge topic 'cuda_clang_separable_error'
b1243201e7 CUDA: Don't RunCMake generate separable compilation tests on Clang
1b4c690543 CUDA: Throw error if CUDA_SEPARABLE_COMPILATION is ON when using Clang

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4827
2020-06-05 07:56:19 -04:00
Raul Tambre
b1243201e7 CUDA: Don't RunCMake generate separable compilation tests on Clang
Building these targets was already previously disabled in RunCMakeTest.cmake.
Now with us throwing an error for separable compilation during generation on
Clang we also need to stop them from being generated.
2020-06-03 08:10:57 +03:00
Marc Chevrier
056489d567 add_library/add_executable: allow local alias to imported targets
Fixes: #20641
2020-06-02 17:11:47 +02:00
Brad King
855a7158ed Merge topic 'target_link_libraries-self-link-is-an-error'
9436ad35df target_link_libraries: self-link through ALIAS is an error

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4826
2020-06-02 07:53:40 -04:00
Brad King
6950706ca0 Merge topic 'asm-preprocessor-flag'
97fa63c09b ASM: Fix preprocessor definition flags for GNU 'as' tool

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4838
2020-06-02 06:39:44 -04:00
Kyle Edwards
97fa63c09b ASM: Fix preprocessor definition flags for GNU 'as' tool
Fixes: #20780
2020-06-01 14:43:37 -04:00
Brad King
37bf7eb7a6 Tests: Skip RunCMake.try_compile RerunCMake-nowork case on 1s filesystems
On low-resolution filesystems, `Makefile` can end up with the same
time stamp as `CMakeCache.txt`.  CMake must re-run in this case to
be conservative, but that invalidates the `-nowork` cases.

Rather than trying to detect 1s filesystems, just add an option
called `CMake_TEST_FILESYSTEM_1S` that external scripts can use
to tell CMake's test suite about this.
2020-06-01 13:42:16 -04:00
Brad King
3020decbff Merge topic 'pch-fix-bad-ClearSourcesCache'
902858367f Merge branch 'backport-3.16-pch-fix-bad-ClearSourcesCache'
fa7b041eca PCH: Fix logic error that incorrectly clears sources during VS generation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4815
2020-06-01 07:44:35 -04:00
Brad King
8cf2e1de22 Merge topic 'ninja-multi-export-all-symbols'
6fc4bfa11c Ninja Multi-Config: Fix bug in CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Reinking <alex_reinking@berkeley.edu>
Merge-request: !4825
2020-06-01 07:36:50 -04:00
Marc Chevrier
9436ad35df target_link_libraries: self-link through ALIAS is an error
Fixes: #19617
2020-05-30 11:47:39 +02:00
Kyle Edwards
6fc4bfa11c Ninja Multi-Config: Fix bug in CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
Fixes: #20775
2020-05-29 15:28:43 -04:00
Brad King
902858367f Merge branch 'backport-3.16-pch-fix-bad-ClearSourcesCache' 2020-05-29 06:14:59 -04:00
Brad King
fa7b041eca PCH: Fix logic error that incorrectly clears sources during VS generation
Since commit 729d997f10 (Precompile Headers: Add REUSE_FROM signature,
2019-08-30, v3.16.0-rc1~101^2), `GetPchFileObject` handles the case that
it is called first for another target's `REUSE_FROM` by calling
`AddSource` to make sure `GetObjectName` can produce the correct object
name.  However, `AddSource` causes `ClearSourcesCache` to be called,
which since commit a9f4f58f0c (cmGeneratorTarget: Clear AllConfigSources
in ClearSourcesCache, 2020-05-15, v3.16.7~2^2) now correctly erases the
`AllConfigSources` structure.  This is okay during `AddPchDependencies`,
but there is another code path in which it is problematic.

When the Visual Studio generator's `WriteAllSources` method is looping
over the sources, the `cmake_pch.cxx` source is encountered first.  This
causes `OutputSourceSpecificFlags` to call `GetPchCreateCompileOptions`,
which calls `GetPchFile`, which under MSVC with `CMAKE_LINK_PCH` calls
`GetPchFileObject`.  That leads to `ClearSourcesCache` erasing the
structure over which `WriteAllSources` is iterating!

This bug is caught by our `RunCMake.PrecompileHeaders` test when run
with the VS generator as of the commit that exposed it by fixing
`ClearSourcesCache`.  However, that change was backported to the CMake
3.16 series after testing only with later versions versions that contain
commit a55df20499 (Multi-Ninja: Add precompile headers support,
2020-01-10, v3.17.0-rc1~136^2).  By adding proper multi-config support
for PCH, that commit taught `cmLocalGenerator::AddPchDependencies` to
call `GetPchFile` with the real set of configurations instead of just
the empty string.  This allows the `GetPchFile` cache of PCH sources to
be populated up front so that the later calls to it in the
`WriteAllSources` loop as described above do not actually call
`GetPchFileObject` or `ClearSourcesCache`.  That hid the problem.

Fix this by re-ordering calls to `AddPchDependencies` to handle
`REUSE_FROM` targets only after the targets whose PCH they re-use.
Remove the now-unnecessary call to `AddSource` from `GetPchFileObject`
so that `ClearSourcesCache` is never called during `WriteAllSources`.
Update the PchReuseFrom test case to cover an ordering of targets that
causes generators to encounter a `REUSE_FROM` target before the target
whose PCH it re-uses.

Fixes: #20770
2020-05-29 05:52:03 -04:00
Marc Chevrier
1eca5993e2 ALIAS target: cannot overwrite an existing target
Fixes: #19616
2020-05-28 12:56:59 -04:00
Brad King
a1af643291 Merge topic 'fix-cpack-deb-generating-empty-paragraph'
6ba842163c CPack-deb: don't add a line with a dot to pkg desc

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4806
2020-05-28 06:50:40 -04:00
Jonathan Verner
6ba842163c CPack-deb: don't add a line with a dot to pkg desc
Currently, if the package description ends with a newline
(typically if it is read from a file) cpack -deb adds a single line
with a dot at the end which leads to a violation of the
`extended-description-contains-empty-paragraph` debian policy.

This commit fixes the above behaviour.

Fixes: #20763
2020-05-27 14:44:28 -04:00