Commit Graph

6858 Commits

Author SHA1 Message Date
Kyle Edwards
e8bd920df1 Tests: Fix reliance on undefined behavior of cm::optional
The test for cm::optional assumed that *opt would return a reference
to a non-constructed object if opt.has_value() is false. However, on
certain systems that build CMake with flags to harden the build,
this condition aborts rather than returning the invalid reference.
Fix this by getting the reference only when the cm::optional is
known to actually have a value.

Fixes: #19964
2019-11-13 13:56:22 -05:00
Brad King
eae743bf17 Merge topic 'unity-HEADER_FILE_ONLY' into release-3.16
9a5418320e Unity: Don't include sources with HEADER_FILE_ONLY property set

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4023
2019-11-12 09:51:15 -05:00
Brad King
b197d20c08 Merge topic 'objc-xcode-flags' into release-3.16
bb42e1ed43 ObjC: Add OBJC/OBJCXX flags to Xcode projects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4020
2019-11-12 09:43:11 -05:00
Brad King
ffa9965700 Merge topic 'pch-cray-classic' into release-3.16
77a8f9ecbc Tests: Fix ExportImport PCH expectation on Cray Classic compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4033
2019-11-12 09:35:38 -05:00
Craig Scott
cba091d3a9 Merge topic 'pch-no-duplicates' into release-3.16
e01935ac9d PCH: No repeated path for internal generated PCH files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4030
2019-11-12 08:28:46 -05:00
Craig Scott
00f5e02060 Merge topic 'remove-CPACK_INSTALL_CMAKE_CONFIGURATIONS' into release-3.16
1d1fa5d3e4 Tests: Add RunCMake.CPackCommandLine case for multi-config package
108207cc84 CPack: Remove CPACK_INSTALL_CMAKE_CONFIGURATIONS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4025
2019-11-12 08:16:31 -05:00
Brad King
1d1fa5d3e4 Tests: Add RunCMake.CPackCommandLine case for multi-config package
In commit da5ac4bb60 (cpack: Add `CPACK_INSTALL_CMAKE_CONFIGURATIONS`
variable, 2019-07-10, v3.16.0-rc1~165^2) we added support for running
the `cpack -C ...` command-line with multiple configurations.  Add an
explicit test for this.

Fixes: #19918
2019-11-11 14:16:48 -05:00
Alex Turbov
108207cc84 CPack: Remove CPACK_INSTALL_CMAKE_CONFIGURATIONS
In commit da5ac4bb60 (cpack: Add `CPACK_INSTALL_CMAKE_CONFIGURATIONS`
variable, 2019-07-10, v3.16.0-rc1~165^2) we added both the variable
and support for `cpack -C` with multiple configurations.  Drop the
variable because the `package` target cannot ensure that all of the
configurations are built.  Keep the command-line interface so that
it can be used manually in scripts.

Fixes: #19918
2019-11-11 14:15:09 -05:00
Cristian Adam
bb42e1ed43 ObjC: Add OBJC/OBJCXX flags to Xcode projects
Fixes: #19936
2019-11-11 17:43:17 +01:00
Brad King
77a8f9ecbc Tests: Fix ExportImport PCH expectation on Cray Classic compiler
Do not expect PCH-included definitions for this compiler.
2019-11-11 11:18:35 -05:00
Brad King
5e328c6d74 Merge topic 'objc-trycompile' into release-3.16
7447aa4b34 ObjC: Add try_compile support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4006
2019-11-11 10:25:47 -05:00
Cristian Adam
9a5418320e Unity: Don't include sources with HEADER_FILE_ONLY property set
Fixes: #19946
Fixes: #19947
Co-authored-by: Craig Scott <craig.scott@crascit.com>
2019-11-11 14:10:18 +01:00
Cristian Adam
e01935ac9d PCH: No repeated path for internal generated PCH files
Fixes: #19952
2019-11-11 13:21:12 +01:00
Cristian Adam
7447aa4b34 ObjC: Add try_compile support
Fixes: #19920
2019-11-09 11:25:32 +01:00
Kyle Edwards
87dcbe0b21 Merge topic 'ctest-resource-groups' into release-3.16
c1435d9812 Help: Fix error in resource allocation example
eb9d945f14 CTest: Rename hardware -> resources for RunCMake tests
c544cb6698 CTest: Rename hardware -> resources for source code
6ce27d3a2e cmCTestMultiProcessHandler: Rename resource locking functions
a7c1e15cc4 CTest: Rename hardware -> resources for CMake variables, command options
73a40b19ff CTest: Rename "Processes" lexer to "ResourceGroups"
af9ed543b0 CTest: Rename PROCESSES test property to RESOURCE_GROUPS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3994
2019-11-07 13:10:57 -05:00
Brad King
02ed66c04b Merge topic 'unity-include-generated' into release-3.16
7ddf462304 Unity build: Include GENERATED files into unity build

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Julien Schueller <schueller@phimeca.com>
Merge-request: !4001
2019-11-07 10:26:49 -05:00
Cristian Adam
7ddf462304 Unity build: Include GENERATED files into unity build
There is no reason to skip the generated files, in case of problems
one can use the SKIP_UNITY_BUILD_INCLUSION property.

Fixes: #19925
2019-11-06 11:47:15 -05:00
Brad King
bae7a82ffa Merge topic 'xcode-restore-CMakeLists' into release-3.16
0ce8a5c08d Xcode: Fix generated references to CMakeLists.txt files
9457c95aa0 cmGlobalXCodeGenerator: Mark known source locations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3999
2019-11-06 09:23:56 -05:00
Brad King
0ce8a5c08d Xcode: Fix generated references to CMakeLists.txt files
Refactoring in commit 2d888e3390 (cmSourceFile: Rename mutating
GetFullPath() overload, 2019-08-29, v3.16.0-rc1~160^2) accidentally left
the paths to `CMakeLists.txt` files empty in generated Xcode project
files.

Fixes: #19927
2019-11-05 14:29:41 -05:00
Craig Scott
eb9d945f14 CTest: Rename hardware -> resources for RunCMake tests
Also includes variants like hw -> res
2019-11-05 12:08:35 -05:00
Craig Scott
c544cb6698 CTest: Rename hardware -> resources for source code 2019-11-05 12:08:35 -05:00
Craig Scott
a7c1e15cc4 CTest: Rename hardware -> resources for CMake variables, command options
Only changes the user-visible effects of renaming hardware
allocation to resource allocation. Code changes are the minimum
needed to achieve that.
2019-11-05 12:08:35 -05:00
Brad King
af9ed543b0 CTest: Rename PROCESSES test property to RESOURCE_GROUPS
The `PROCESSES` test property name added for CMake 3.16 is too close to
the existing `PROCESSORS` test property.  Furthermore, the property in
principle specifies groups of resources organized in a way that is
meaningful to a particular test.  The groups may often correspond to
processes but they could have other meanings.  Since the property name
`PROCESSES` has not been in a final 3.16 release yet, simply rename it
to `RESOURCE_GROUPS`.

Fixes: #19914
2019-11-05 12:08:01 -05:00
Brad King
3c0a317a1d Merge branch 'findpostgres-10-and-older' into release-3.16
Merge-request: !3993
2019-11-05 11:31:24 -05:00
Brad King
0ec60a4002 Merge branch 'source_group-tree' into release-3.16
Merge-request: !3979
2019-11-05 11:31:16 -05:00
Ben Boeckel
e992d62b7e FindPostgreSQL: support version encoding used in pre-10 releases
With the 10.x release, PostgreSQL upstream started encoding the version
as `MMmmmm` where `M` is major and `m` is minor. Prior to that, `MMmmPP`
was used where `P` was the patch number. Detect this difference and
decode it based on the used encoding.

Fixes: #19912
2019-11-04 16:38:52 -05:00
Mateusz Janek
3c0ca5a9d9 source_group: ensure that passed file is not a directory
Fixes: #19769
2019-11-04 13:37:41 -05:00
Craig Scott
0692eaf0fe ForceToRelativePath: Fix spurious assertion when local path is root dir
Fixes: #19909
2019-11-02 17:54:13 +11:00
Brad King
62267715fe Merge branch 'framework-tests-multiarch-old-macos' into release-3.16
Merge-request: !3954
2019-10-28 10:09:29 -04:00
Craig Scott
c79e9d8c21 Merge branch 'project-version-buffer-overflow' into release-3.16
Merge-request: !3948
2019-10-28 21:55:20 +11:00
Craig Scott
3e30c4cc1f Tests: Match file command output for older macOS (Framework test) 2019-10-27 23:48:41 +11:00
Craig Scott
89ad3b3959 Tests: Prevent CMP0012 policy warnings in Framework test output 2019-10-27 23:28:17 +11:00
Craig Scott
82cdb26c93 project: Fix potential buffer write-past-end for version components
This fixes two errors: not accounting for the trailing null and a
misunderstanding of what std::numeric_limits::digits10 means.
2019-10-26 17:50:24 +11:00
Brad King
eaebd4fc47 Merge branch 'FindOpenMP-include-dir' into release-3.16
Merge-request: !3916
2019-10-21 11:09:56 -04:00
Brad King
6dedb97420 Merge branch 'pch-makefile-depends' into release-3.16
Merge-request: !3928
2019-10-17 10:41:43 -04:00
Brad King
797689ab35 PCH: Fix Makefile dependencies to rebuild PCH on header changes
Teach the Makefile generator to scan the implicit dependencies of PCH
creation.  When a header named by `target_precompile_headers` changes
the corresponding PCH must be rebuilt and all consumers recompiled.

Fixes: #19830
2019-10-17 10:29:31 -04:00
Brad King
7aab792716 Merge branch 'export-target-lang-name' into release-3.16
Merge-request: !3927
2019-10-17 10:23:36 -04:00
Craig Scott
409891baf7 FindOpenMP: Allow try_compile() to find omp.h for AppleClang
Fixes: #18098 #18470 #18520
2019-10-17 18:50:05 +11:00
Brad King
0e436c573c install,export: Do not treat language names as target names
When generating `IMPORTED_LINK_INTERFACE_LANGUAGES`, do not treat the
entries as target names.

Fixes: #19846
2019-10-16 12:48:20 -04:00
Brad King
84e14a52ff Merge branch 'doc-pch-compile-language' into release-3.16
Merge-request: !3925
2019-10-16 10:54:11 -04:00
Brad King
ac75886525 PCH: Document and test COMPILE_LANGUAGE genex for per-language header
Fixes: #19839
2019-10-16 10:32:56 -04:00
Brad King
7716be4561 Merge branch 'cmake-initial-cache-relative' into release-3.16
Merge-request: !3912
2019-10-14 16:18:16 -04:00
Peter Waller
c9d73b26b0 cmake: Fix relative path regression in -C
Since commit 4ca0526f8a (cmake: Pass -S and -B into PreLoad.cmake and -C
scripts, 2019-08-20, v3.16.0-rc1~195^2) the value of `CMAKE_SOURCE_DIR`
is the source directory rather than the current working directory.
This was correct on its own, but the place storing that value is also
used as the base for relative paths specified on the command line.
The latter should of course be relative to the current working
directory.

The fix is to switch to use a full path internally, unless a full path
is already specified.  Add tests for the behaviour of `-C` under these
four circumstances:

    {with -S, without -S} x {full path, relative path}

Fixes: #19827
2019-10-14 16:17:00 -04:00
Brad King
3709389520 Merge branch 'objc-c++flags' into release-3.16
Merge-request: !3904
2019-10-11 09:24:24 -04:00
Cristian Adam
806e01d638 Objective-C: Do not treat Objective-C files as C++ files
When both C and C++ langauges are enabled, the Objective-C files
should be treated as C files and not as C++ files.
2019-10-11 14:01:48 +02:00
Brad King
3fb146cb11 Tests: Update CompileFeatures test for Intel 19 with VS 2015
Blacklist `cxx_relaxed_constexpr` for this case because the compiler
does not advertise the support in this mode but compiles our example.
2019-10-10 13:14:42 -04:00
Brad King
847e8bc98c Intel: Fix default C++ dialect detection on Windows
For the Intel Compiler for Windows we have some subtle preprocessor
checks in compiler feature detection to detect C++11 and C++14 modes.
Use these when detecting the default C++ dialect too.
2019-10-10 13:14:42 -04:00
Craig Scott
7bbddeb78d CLI: Rename --loglevel to --log-level for naming consistency
Other multi-word command line options use hyphens to separate
the words, so the --loglevel option introduced in CMake 3.15 was
inconsistent in this regard. Rename it to --log-level but still support
the original --loglevel name to preserve backward compatibility.
2019-10-10 09:20:50 -04:00
Brad King
947b02e2e0 Merge topic 'export-genex-under-prefix'
3ded5b6da8 install,export: Fix export of a genex following $<INSTALL_PREFIX>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3886
2019-10-07 10:34:50 -04:00
Brad King
9c9e66289a Tests: Enable ConfigSources test on every configuration
Revise the test itself to work in all configurations and verify that
certain sources are only built by whatever configuration is tested.
2019-10-04 10:39:00 -04:00