Commit Graph

5440 Commits

Author SHA1 Message Date
Brad King 90cdd06f4c Merge branch 'implicit-lib-gcceh-file' into release-3.11
Merge-request: !1967
2018-04-16 11:58:30 -04:00
Brad King eb0498357f Exclude "libgcc_eh" library files from implicit link libraries
Extend the fix in commit v3.9.6~1^2 (Restore exclusion of "gcc_eh" from
implicit link libraries, 2017-11-07) to also exclude `gcc_eh` libraries
referenced by absolute path to the library file.

Issue: #17436
2018-04-16 11:56:23 -04:00
Brad King d00306636b Merge branch 'backport-fix-explicit-CMakeLists.txt' into release-3.11
Merge-request: !1959
2018-04-13 09:49:51 -04:00
Brad King 8480c2afc0 Restore support for explicitly referenced CMakeLists.txt sources
Since commit v3.11.0-rc1~467^2 (VS,Xcode: Add CMakeLists.txt sources
without mutating targets, 2017-10-18) we do not add `CMakeLists.txt` to
target sources but instead generate references to them directly.  This
broke projects that explicitly specify their `CMakeLists.txt` file as a
source file because the explicit entry is no longer consolidated with
the generated one.

Teach the relevant generators to avoid duplicating `CMakeLists.txt`
source references and add test cases.

Fixes: #17828
2018-04-13 09:41:06 -04:00
Brad King 3c0fed488f Merge branch 'cpack-trace-nullptr' into release-3.11
Merge-request: !1950
2018-04-10 15:01:43 -04:00
Brad King 6f2701abf6 CPack: Fix crash on invalid generator name
In commit v3.11.0-rc1~68^2 (CPack: accept --trace and --trace-expand,
2017-12-09) a nullptr dereference was added that occurs when
`cpack -G NotAGenerator` is invoked.  Add the needed condition.

Fixes: #17900
2018-04-10 15:00:37 -04:00
R2RT aad360eb3d Fix crash with --trace-expand --warn-uninitialized together
Some code paths in `ExpandVariablesInString{New,Old}` were not checking
the `filename` parameter for a null pointer, but this can happen when
using the above flags together.  Add the checks and a test case.

Fixes: #17896
2018-04-09 11:59:07 -04:00
Brad King 70c50aa23c Revert "Remove CTestTestfile.cmake when BUILD_TESTING is OFF"
Revert commit v3.8.0-rc1~305^2 (Remove CTestTestfile.cmake when BUILD_TESTING
is OFF, 2016-11-14) again.  We reverted it once in commit v3.8.0-rc3~22^2
(Revert "Remove CTestTestfile.cmake when BUILD_TESTING is OFF", 2017-03-06) but
it was accidentally restored by commit v3.11.0-rc1~387^2 (server: add
"ctestInfo" request to get test info, 2017-10-25), perhaps due to conflict
resolution during rebase.

We cannot remove `CTestTestfile.cmake` when testing is off because it breaks
projects that never enable testing but create their own `CTestTestfile.cmake`
manually instead.  Revert the change again and add a test case.
2018-03-26 07:44:22 -04:00
Brad King 4e9aa80158 Merge branch 'intel-initializer-list' into release-3.11
Merge-request: !1855
2018-03-16 07:53:36 -04:00
Brad King df27bd3f83 Merge branch 'gtest_discover_tests_timeout' into release-3.11
Merge-request: !1851
2018-03-16 07:52:23 -04:00
Brad King fc96d99c3e Features: Record initializer list support for Intel 14 and above
Features recorded by commit v3.6.0-rc1~120^2~5 (Features: Record
standards and features for Intel C++ on UNIX, 2016-04-28) for the Intel
compiler left out initializer list support because our test case in
`Tests/CompileFeatures/cxx_generalized_initializers.cpp` caused an
internal compiler error.  It turns out this is because the Intel
compiler asserts the `initializer_list` constructor signatures to verify
that they match its own `<initializer_list>` header.  It was our dummy
implementation used to test the language feature without any headers
that caused the ICE.  Revise it to use a constructor signature accepted
by the Intel compiler.

Fixes: #17829
2018-03-16 07:47:42 -04:00
Craig Scott 96fdde26bb GoogleTest: Rename TIMEOUT parameter to avoid clash
In gtest_discover_tests(), the TIMEOUT keyword was making it
impossible to set the TIMEOUT test property via the PROPERTIES
keyword. This would be a frequent case, but it doesn't complain
and instead silently does something different to what would
normally be expected. The TIMEOUT keyword has been renamed
to DISCOVERY_TIMEOUT, thereby removing the clash.

This is a breaking change. 3.10.1 and 3.10.2 were the only versions
that supported the TIMEOUT keyword and uses of it were likely
not working as intended.

Fixes: #17801
2018-03-15 07:36:42 -04:00
Brad King a039029e7c Merge branch 'genex-COMPILE_LANGUAGE-system-include' into release-3.11
Merge-request: !1844
2018-03-13 13:40:25 -04:00
Jean-Christophe Fillion-Robin 7ad981c8f7 ExternalProject: Fix cache generation when last args ends with "-NOTFOUND" 2018-03-12 13:45:50 -04:00
Brad King 1b5e52fd65 Genex: Fix COMPILE_LANGUAGE propagation through try_compile
When evaluating include directories during export to a `try_compile`
test project, thread the compile language through to the generator
expression evaluator so it can support `$<COMPILE_LANGUAGE:...>`.

Issue: #17811
2018-03-12 13:30:14 -04:00
Brad King 2deb9b7f34 Genex: Fix COMPILE_LANGUAGE in SYSTEM include directories
When evaluating `INTERFACE_SYSTEM_INCLUDE_DIRECTORIES`, or evaluating
`INTERFACE_INCLUDE_DIRECTORIES` on an imported target, thread the
compile language through to the generator expression evaluator so
that it can support `$<COMPILE_LANGUAGE:...>`.

Fixes: #17811
2018-03-12 11:45:01 -04:00
Brad King be9731965e Merge branch 'unixtimefix' into release-3.11
Merge-request: !1800
2018-02-26 10:36:26 -05:00
Bernhard M. Wiedemann e1cd936c62 Tests: Fix TIMESTAMP-UnixTime test under SOURCE_DATE_EPOCH=1
The test was expecting timestamps on day 1 in 1970 to start at 86400 but
they actually started at 0.  This worked without `SOURCE_DATE_EPOCH=1`
because after 1972, leap days compensated the offset.

Fixes: #17762
2018-02-26 10:35:30 -05:00
Gregor Jasny 481420ee89 Xcode: Generate ZERO_CHECK generator target only once
In case CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY has been enabled
generate only the root-level ZERO_CHECK target so targets in
subdirectories pick up the root generator target of ZERO_CHECK.

For the case that CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY is not
enabled more investigation and a proper and final fix is still needed.

Issue: 14297
2018-02-22 21:15:48 +01:00
Brad King 13c5a91197 Merge branch 'test-CompileFeatures-c11-range' into release-3.11
Merge-request: !1785
2018-02-21 14:41:56 -05:00
Brad King 972f7caad3 Tests: Make CompileFeatures C dialect check consistent with impl
`Modules/CMakeCCompilerId.c.in` will report the C dialect as 11 whenever
`__STDC_VERSION__` indicates *at least* C 11.  Make the test consistent
with this.  We already do this for the C++ case.

Fixes: #17740
2018-02-21 14:39:09 -05:00
Brad King b6d68766b1 Android.mk: Fix export of static libraries with PRIVATE dependencies
The `LINK_ONLY` generator expression is used to represent private
dependencies of static libraries in their `INTERFACE_LINK_LIBRARIES`
property value.  Fix evaluation of generator expressions during export
to support the `LINK_ONLY` genex.  Extend the RunCMake.AndroidMK test
with a case for this.
2018-02-14 11:24:05 -05:00
Brad King 8285aa9e4e Tests: Add missing error check in CudaOnly.GPUDebugFlag
If `cudaMallocManaged` fails then later use of `has_debug` is not valid.
2018-02-01 09:07:50 -05:00
Brad King 4499cc8bb6 Merge topic 'msvc_cuda_files_use_consistent_obj_names'
fa583869 CUDA: Use MSVC default pattern for naming object files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1722
2018-01-31 08:36:24 -05:00
Brad King 3fd01be56b Merge topic 'source_group-TREE-args'
365e02e7 source_group: Fix TREE argument parsing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1713
2018-01-31 08:34:24 -05:00
Mateusz Janek 365e02e73e source_group: Fix TREE argument parsing
Fixes: #17581
2018-01-30 12:49:26 -05:00
Robert Maynard fa583869f7 CUDA: Use MSVC default pattern for naming object files
The default that CUDA uses causes failures when you try to embed
CUDA obj's into another target.
2018-01-30 09:14:02 -05:00
Brad King 18153217e2 Merge topic 'ctest_start_function_scope'
13347740 Help: add release notes, documentation for CTEST_RUN_CURRENT_SCRIPT behavior
74092d92 cmCTestScriptHandler: Add new field ShouldRunCurrentScript

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1703
2018-01-29 08:04:59 -05:00
Kyle Edwards 74092d92bf cmCTestScriptHandler: Add new field ShouldRunCurrentScript
This is to avoid scope issues with CTEST_RUN_CURRENT_SCRIPT. If
ctest_start() is called within a function scope, the value of
CTEST_RUN_CURRENT_SCRIPT that it sets doesn't make it to the global
scope. With this change, ctest_start() no longer sets
CTEST_RUN_CURRENT_SCRIPT, and instead sets a field directly in
cmCTestScriptHandler. The old behavior of CTEST_RUN_CURRENT_SCRIPT
has also been kept for projects and tests that rely on setting it.
2018-01-26 09:27:22 -05:00
Brad King d71be346a4 Tests: Speed up RunCMake.TargetPropertyGeneratorExpressions
Consolidate similar test cases.
2018-01-25 12:08:13 -05:00
Brad King 234a069de3 Tests: Speed up RunCMake.GeneratorExpression
Avoid enabling languages in cases that do not need them.
2018-01-25 10:50:20 -05:00
Brad King aaf3c5b32c Merge topic 'RemoveKDevelop3'
551bd0b3 Generators: adjust error message for the removed KDevelop3 generator
9198e6a2 Generators: remove KDevelop3 generator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1688
2018-01-25 08:34:53 -05:00
Brad King 76f5a87cf1 Merge topic 'sourceFile-new-properties'
04483111 sourceFile properties: add property INCLUDE_DIRECTORIES
3073bd1f VisualStudio generators: refactoring
78b1c2e0 sourceFile properties: add property COMPILE_OPTIONS
3f935e69 LocalGenerator: refactoring

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1596
2018-01-25 08:33:35 -05:00
Brad King 03050c5689 Merge topic 'fix-include_regular_expression-subdir'
2d64f9f0 include_regular_expression: Fix propagation to subdirectories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1690
2018-01-25 08:31:03 -05:00
Marc Chevrier 0448311179 sourceFile properties: add property INCLUDE_DIRECTORIES 2018-01-24 15:10:10 +01:00
Brad King 05e9cdb81e Merge topic 'GenerateExportHeader-include-guard'
b1ae9aaf GenerateExportHeader: add release notes, tests for include guard changes
f4082b0e GenerateExportHeader: add INCLUDE_GUARD_NAME option

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1643
2018-01-24 08:53:05 -05:00
Brad King 56fd8b3c72 Merge topic 'UseJava-native-headers-generation'
4829ea23 add_jar: add option GENERATE_NATIVE_HEADERS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1675
2018-01-24 08:51:32 -05:00
Alex Neundorf 9198e6a27b Generators: remove KDevelop3 generator
The last KDevelop3 release was many years ago, in 2008 I think.
I haven't seen or read about anybody using KDevelop 3 since a
long time, so I think it can safely be removed from CMake.
KDevelop 4 (first released in 2010) has its own proper CMake
support now, independent from this generator.

Alex
2018-01-24 08:30:02 -05:00
Brad King 2d64f9f08d include_regular_expression: Fix propagation to subdirectories
Refactoring in commit v3.4.0-rc1~321^2 (cmMakefile: Remove special
handling of INCLUDE_REGULAR_EXPRESSION, 2015-04-04) accidentally broke
propagation of the include regex to subdirectories.  Refactoring in
commit v3.5.0-rc1~319^2~1 (cmState: Initialize properties immediately,
2015-10-07) moved maintenance of this value from `cmMakefile` to
`cmStateSnapshot`.

Restore propagation of the `INCLUDE_REGULAR_EXPRESSION` to
subdirectories and add a test to cover it.

Fixes: #17676
2018-01-24 08:20:19 -05:00
Kyle Edwards b1ae9aaf79 GenerateExportHeader: add release notes, tests for include guard changes 2018-01-23 10:43:40 -05:00
Marc Chevrier 78b1c2e09e sourceFile properties: add property COMPILE_OPTIONS
Add the support of per-source property COMPILE_OPTIONS,
including generator expressions support.

Related: #17507
2018-01-23 10:24:56 +01:00
Marc Chevrier 4829ea239a add_jar: add option GENERATE_NATIVE_HEADERS 2018-01-22 17:15:59 +01:00
Brad King b058d92b33 Merge topic 'autogen-first-line-fix'
b4e6911b Autogen: Tests: Extend AUTOUIC include patterns test
ff91a5d5 Autogen: Tests: Extend AUTOMOC include patterns test
a1d491ca Autogen: AUTOMOC/UIC fix for moc/uic include on the first line

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1670
2018-01-22 10:23:41 -05:00
Brad King 5d13fa1010 Merge topic 'boost-optional-components'
2557cad5 FindBoost: support OPTIONAL_COMPONENTS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Paul "TBBle" Hampson <paul.hampson@pobox.com>
Merge-request: !1660
2018-01-22 10:20:53 -05:00
Sebastian Holtermann b4e6911bf5 Autogen: Tests: Extend AUTOUIC include patterns test 2018-01-19 19:21:12 +01:00
Sergiu Deitsch 2557cad5ec FindBoost: support OPTIONAL_COMPONENTS 2018-01-19 17:00:44 +01:00
Brad King e68a269cd2 Merge topic 'cache-truncate-newlines'
c42b377c cmCacheManager: Test and document newline truncation behavior
a9c48307 cmCacheManager: Truncate values containing newlines

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1652
2018-01-19 10:08:06 -05:00
Sebastian Holtermann ff91a5d54b Autogen: Tests: Extend AUTOMOC include patterns test 2018-01-18 18:38:45 +01:00
Brad King c1ea96d04c Merge topic 'autogen-parallel'
9cfa213a Autogen: Rename cmQtAutogeneratorInitializer to cmQtAutoGenInitializer
79908ae4 Autogen: Add release notes for (CMAKE_)AUTOGEN_PARALLEL
45ee4979 Autogen: Add documentation for (CMAKE_)AUTOGEN_PARALLEL
6f4b6613 Autogen: Tests: Add AUTOGEN_PARALLEL tests
a008578d Autogen: Process files concurrently in AUTOMOC and AUTOUIC
488baaf0 Autogen: Tests: Fix MocInclude test(s)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1632
2018-01-18 09:46:29 -05:00
Brad King bffdc2e2e1 Merge topic 'msvc_cuda_8_explicitly_specify_cuda_language'
46abfedb CUDA: MSVC will now state files are cuda files when needed

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1658
2018-01-18 09:41:01 -05:00