Commit Graph

1856 Commits

Author SHA1 Message Date
Brad King
ea67dbc4cd Merge topic 'file_generate_target'
27a912193b file(GENERATE): Add TARGET argument

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5131
2020-08-25 10:31:02 -04:00
Raul Tambre
359c500a24 cmTarget: Raise error if imported target location is not set
Previously we would synthesize <TARGET_NAME>-NOTFOUND as the location. This
would then end up on the link line and cause build failures.
Policy CMP0110 is added to control this behaviour.

Fixes #19080, #19943.
2020-08-21 08:38:39 -04:00
Raul Tambre
27a912193b file(GENERATE): Add TARGET argument
Adds TARGET argument to file(GENERATE) to make resolving generator expressions
requiring a target possible.

Implements #21101, fixes #21074.
2020-08-20 17:41:52 +03:00
Brad King
cb5c8e6f25 Merge topic 'cpack-wix-custom-xmlns'
267de3ba30 CPack/WiX: Add support for custom XML namespaces

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5132
2020-08-19 11:48:24 -04:00
Fritz Elfert
267de3ba30 CPack/WiX: Add support for custom XML namespaces
Add a `CPACK_WIX_CUSTOM_XMLNS` option to specify these.

Fixes: #21098
2020-08-18 07:50:49 -04:00
Brad King
fe3a404a73 Merge topic 'add_test-special-chars-in-name'
a20987732b add_test: Allow special characters in test name (w/ policy CMP0110)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5076
2020-08-17 14:58:49 -04:00
Kyle Edwards
2e42651dff Add option to optimize link dependencies for static libraries
Add an `OPTIMIZE_DEPENDENCIES` target property and supporting
`CMAKE_OPTIMIZE_DEPENDENCIES` variable to optionally enable pruning and
flattening of outgoing dependencies from static libraries.  Since they
do not actually link, they only depend on side effects of their
dependencies.  Therefore we can drop dependencies that contribute no
side effects.
2020-08-12 11:31:07 -04:00
Deniz Bahadir
a20987732b add_test: Allow special characters in test name (w/ policy CMP0110)
Restore the change from commit f84af8e270 (add_test: Allow special
characters in test name, 2020-05-16, v3.18.0-rc1~142^2) that had to be
reverted by commit f84af8e270 (add_test: Allow special characters in
test name, 2020-05-16, v3.18.0-rc1~142^2) for compatibility.

Add policy CMP0110 to make the change in a compatible way.
Also, support even more characters than before by generating the
test scripts using bracket arguments around the test names.

Fixes: #19391
Signed-off-by: Deniz Bahadir <dbahadir@benocs.com>
2020-08-12 10:44:07 -04:00
Brad King
d6ee9b4a43 Merge topic 'build-interface-targets'
bafa9fe887 fileapi: Add INTERFACE libraries with SOURCES to codemodel-v2
4391913133 Add INTERFACE libraries to generated buildsystem if they have SOURCES
afb998704e Remove filtering of allowed INTERFACE library properties
e7edba2baf Makefiles: Use IsInBuildSystem in global generator target type checks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5078
2020-08-10 11:38:59 -04:00
Brad King
0953c0051e Merge topic 'clang-cl-vfs'
20ebaed972 Clang: Add support for passing VFS arguments
d993ebd4ca clang-cl: Add '--' before source file
a94672b919 cmake: Change cmake_llvm_rc separator from -- to ++ to avoid conflict

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5087
2020-08-10 11:33:19 -04:00
Thomas Bernard
20ebaed972 Clang: Add support for passing VFS arguments 2020-08-07 11:52:45 -04:00
Brad King
304f159af4 Merge topic 'CUDAToolkit-no-nvcc'
7cc815a2a6 CUDAToolkit: Detect CUDA SDK that don't have nvcc

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: Raul Tambre <raul@tambre.ee>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5061
2020-08-07 11:04:54 -04:00
Brad King
4391913133 Add INTERFACE libraries to generated buildsystem if they have SOURCES
INTERFACE libraries were created with the intention of collecting usage
requirements for use by other targets via `target_link_libraries`.
Therefore they were not allowed to have SOURCES and were not included in
the generated buildsystem.  In practice, this has become limiting:

* Header-only libraries do have sources, they just do not compile.
  Developers should be able to edit those sources (the header files)
  in their IDE.

* Header-only libraries may need to generate some of their header
  files via custom commands.

Some projects work around these limitations by pairing each interface
library with an `add_custom_target` that makes the header files and
custom commands appear in the generated buildsystem and in IDEs.

Lift such limitations by allowing INTERFACE libraries to have SOURCES.
For those with sources, add a corresponding build target to the
generated buildsystem.

Fixes: #19145
2020-08-07 08:46:32 -04:00
Brad King
4daf76e10a Merge topic 'compiler_flags'
f76c20da63 Toolchain: Test compiler initial settings
db486da265 Toolchain: Update documentation for initial compiler flags
deec2f587c Toolchain: Take CMAKE_<lang>_FLAGS_INIT into account during compiler detection
ca899af3e2 Toolchain: Handle repeated invocations of CMake with -DCMAKE_C_COMPILER
12ba89e142 Toolchain: Make `/path/comp;-argn' behave the same as 'comp;-argn'
6f1af899db Toolchain: Capture all arguments from CMAKE_<LANG>_COMPILER
ec1d3bc0b6 cmake: avoid exception when printing "changed variables" message

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4136
2020-08-06 11:00:12 -04:00
Fred Baksik
db486da265 Toolchain: Update documentation for initial compiler flags 2020-08-03 12:34:46 -04:00
Robert Maynard
7cc815a2a6 CUDAToolkit: Detect CUDA SDK that don't have nvcc
When a CUDA sdk doesn't have nvcc, defer to the existence of
a version.txt file. When we do this fall back we also reconstruct
the CUDA version via version.txt

Fixes #20643
2020-07-30 15:56:52 -04:00
Craig Scott
22bfe014d0 Merge topic 'file-download-no-save'
fed7d8f76d file(DOWNLOAD): Make file argument optional

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5060
2020-07-28 10:23:35 -04:00
Kyle Edwards
fed7d8f76d file(DOWNLOAD): Make file argument optional 2020-07-27 11:26:50 -04:00
Brad King
22bd267388 Help: Add release note for EXCLUDE_FROM_ALL genex support 2020-07-23 07:14:48 -04:00
Brad King
c7b7547d8d Merge topic 'cmake-E-create_hardlink'
2fad00940d cmake: Add -E create_hardlink

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5015
2020-07-16 10:19:12 -04:00
Sibi Siddharthan
2fad00940d cmake: Add -E create_hardlink
Fixes: #20950
Signed-off-by: Sibi Siddharthan <sibisiddharthan.github@gmail.com>
2020-07-15 20:22:04 +05:30
Tor Arne Vestbø
17e13fb6d0 macOS: Always pick latest SDK if user has not set one explicitly
Apple tech note QA1806 recommends always building against the latest
SDK.

Fixes: #20949
2020-07-14 15:43:45 +02:00
Brad King
8d268f57b4 Merge topic 'cuda-memcheck'
cee92a9fb0 Help: add release notes for CTest cuda-memcheck support
f38e4a1871 Tests: Add cases for CTest cuda-memcheck parser
fe062800f0 CTest: add cuda-memcheck support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: tcojean <terry.cojean@kit.edu>
Merge-request: !4952
2020-07-13 07:58:38 -04:00
Tobias Ribizel
cee92a9fb0 Help: add release notes for CTest cuda-memcheck support 2020-07-09 19:08:36 +02:00
Craig Scott
8975c2a55b Merge topic 'remove-warn-unused-vars'
df6b077625 cmake: Remove broken '--warn-unused-vars' option

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !4953
2020-07-01 07:03:54 -04:00
Brad King
b7af2811ae Merge topic 'configure_file-permission-control'
27b03281e2 configure_file: Add option to control file permissions transfer to copy

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4941
2020-07-01 07:03:03 -04:00
Brad King
57ea001247 Merge topic 'FindTIFF-tiffxx'
a468cc431c FindTIFF: add component CXX to include the C++ wrapper libtiffxx

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4934
2020-07-01 07:02:09 -04:00
Kyle Edwards
b67eb65688 Help: Update FileAPI codemodel version to 2.2, add release notes
This fixes the documentation which should have been fixed in 7d6861f3.
2020-06-30 14:05:23 -04:00
Rahul Gottipati
27b03281e2 configure_file: Add option to control file permissions transfer to copy
Issue: #20866
2020-06-30 11:20:41 -04:00
Brad King
f67a787a38 Merge topic 'find_vulkan_glslc'
467509d767 FindVulkan: Support for finding glslc

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4944
2020-06-30 07:27:27 -04:00
Brad King
df6b077625 cmake: Remove broken '--warn-unused-vars' option
This option has been broken since commit b9f9915516 (cmMakefile: Remove
VarUsageStack., 2015-05-17, v3.3.0-rc1~52^2).  That commit removed the
check that an initialized variable has actually been used and caused the
option to warn on every variable ever set.  This was not caught by the
test suite because the test for the feature only checked that warnings
appear when needed and not that they do not appear when not needed.

The option was never very practical to use.  Remove it to avoid the
runtime cost of usage tracking and checks for every variable (which we
were doing even when the option was not used).
2020-06-29 17:23:27 -04:00
Joachim Wuttke (h)
a468cc431c FindTIFF: add component CXX to include the C++ wrapper libtiffxx
Fixes: #20860
2020-06-29 11:55:22 -04:00
Ryan Kawicki
467509d767 FindVulkan: Support for finding glslc
The GLSL SPIR-V compiler is part of the Vulkan SDK and may be used
by projects for compiling shaders as part of the build process.
This is not strictly required to build a Vulkan application, which
is why the variable is not part of the REQUIRED_VARs for the module.
2020-06-26 20:57:06 -05:00
Kyle Edwards
5fc7c14528 Merge topic 'install-default-directory-permissions'
d4812a955b cmake-install: implement default directory permissions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4927
2020-06-26 10:26:57 -04:00
Brad King
ab83a21933 Merge topic 'visual-studio-android'
6051a49c78 Visual Studio: Add Android support
bbcaf9689e Refactor: Add IsAndroidGuiExecutable() method to cmTarget
14456923bd cmGlobalVisualStudio10Generator: Move variable initialization to header
d5b5c19278 cmGlobalGenerator: FindMakeProgram() before CMakeDetermineSystem

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4898
2020-06-26 09:35:31 -04:00
Asit Dhal
d4812a955b cmake-install: implement default directory permissions
provide an argument for default directory permissions in cmake --install

Fixes: #20700
2020-06-25 14:43:30 -04:00
Kyle Edwards
6051a49c78 Visual Studio: Add Android support 2020-06-24 08:41:09 -04:00
Craig Scott
4f90fef85f Merge topic 'deprecate-pre-2.8.12'
5845c218d7 Deprecate compatibility with CMake versions older than 2.8.12
7b07ccdd2b Tests/*Only: Update cmake_minimum_required versions
9b99b4bfc8 Tests/RunCMake: Update cmake_minimum_required versions
fcea4a3b45 cmStateSnapshot: Invert CanPopPolicyScope return value to match name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !4897
2020-06-23 09:36:03 -04:00
Frédéric Simonis
9ffd2c70bf FindSDL: Add SDL_INCLUDE_DIRS, SDL_LIBRARIES, and SDL::SDL
Also provide `SDL_VERSION[_{MAJOR,MINOR,PATCH}]`.

Fixes: #12911
2020-06-18 16:33:17 -04:00
Brad King
5845c218d7 Deprecate compatibility with CMake versions older than 2.8.12
Issue a deprecation warning on calls to `cmake_minimum_required` or
`cmake_policy` that set policies based on versions older than 2.8.12.
Note that the effective policy version includes `...<max>` treatment.
This is important in combination with commit ca24b70d31 (Export: Specify
a policy range in exported files, 2020-05-16, v3.18.0-rc1~133^2).
2020-06-18 09:52:05 -04:00
Brad King
f2c1debe40 Merge topic 'cpack-pre-and-post-scripts'
915409af49 CPack: Introduce pre- and post- build actions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4846
2020-06-16 09:08:01 -04:00
Brad King
9d45a8be08 find_program: Find programs that are executable but not readable
This fix was first made by commit 86e6349ef7 (find_program: Find
programs that are executable but not readable, 2020-04-04,
v3.18.0-rc1~372^2) but was reverted for compatibility.  Re-introduce it
with a policy for compatibility.

Fixes: #10468
2020-06-15 11:58:47 -04:00
Alex Turbov
915409af49 CPack: Introduce pre- and post- build actions
CPack learned the `CPACK_PRE_BUILD_SCRIPTS`, `CPACK_POST_BUILD_SCRIPTS`,
and `CPACK_PACKAGE_FILES` variables.

The first two are lists of scripts to perform
- after pre-install files into a staging directory and before
  producing the resulting packages
- after produsing the packages

The post-build script(s) also get the list of actually produced
packages in the `CPACK_PACKAGE_FILES`.

Issue: #19077
2020-06-15 11:06:41 -04:00
Brad King
6f6651f728 Add deprecation warnings for policies CMP0072 and below
The OLD behaviors of all policies are deprecated, but only by
documentation.  Add an explicit deprecation diagnostic for policies
introduced in CMake 3.11 and below to encourage projects to port away
from setting policies to OLD.
2020-06-12 11:04:56 -04:00
Brad King
068551cfb2 Merge topic 'cmake-gui-qt5-only'
4037beb747 QtDialog: remove Qt4 definition
ce9dbceb42 QtDialog: remove Qt4-only code
8ea50749da QtDialog: use Qt5's imported targets
4ccc9921be QtDialog: use qt5 functions for special Qt sources
e4d6015460 QtDialog: remove Qt4 support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4836
2020-06-12 10:11:54 -04:00
Alex Turbov
a6e1b20bab CPack External: Introduce CPACK_EXTERNAL_BUILT_PACKAGES
The `CPACK_EXTERNAL_PACKAGE_SCRIPT` script may set this list variable to the
full paths of generated package files. CPack copy these files from the stage
directory back to the top build directory and possibly produce checksum files
if the `CPACK_PACKAGE_CHECKSUM` is set.
2020-06-05 08:56:32 -04:00
Ben Boeckel
e4d6015460 QtDialog: remove Qt4 support 2020-06-05 08:46:40 -04:00
Brad King
21218f5c12 Begin post-3.18 development 2020-06-05 08:34:10 -04:00
Brad King
47a47f5ce0 Help: Drop development topic notes to prepare release
Release versions do not have the development topic section of
the CMake Release Notes index page.
2020-06-05 08:33:59 -04:00
Brad King
ab6b5c01ea Help: Consolidate 3.18 release notes
Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/3.18.rst`.
2020-06-03 06:17:54 -04:00