Commit Graph

5215 Commits

Author SHA1 Message Date
Brad King
066fe644ee Merge branch 'automoc-apple-framework' into release-3.10
Merge-request: !1561
2017-12-07 09:13:45 -05:00
Sebastian Holtermann
e4ccc68429 Autogen: Tests: Add test for MacOS frameworks 2017-12-07 09:05:58 -05:00
Matthew Woehlke
935848a8a7 GoogleTest: Add test for missing test executable
Add a test to verify expected behavior when a test executable on which
gtest_discover_tests is invoked was not built. (The test for the newly
added timeout conveniently sets up this situation, so this new test was
almost trivial to add.)
2017-12-06 07:37:48 -05:00
Matthew Woehlke
29731d8919 GoogleTest: Add timeout to discovery
Add a TIMEOUT option to gtest_discover_tests. This provides a
work-around in case a test goes out to lunch, rather than causing the
build to simply hang. (Although this is still a problem with the user's
project, hanging the build is not cool, especially in the case of
automatically running CI builds. It is much preferred that the build
should actively fail in this case, and it is trivially easy for us to
implement that.)
2017-12-06 07:37:48 -05:00
Matthew Woehlke
70f9f62da8 GoogleTest: Fix multiple discovery on same target
According to the documentation, tests can be discovered for a target
multiple times by using a different prefix and/or suffix to ensure name
uniqueness. However, while this worked for gtest_add_tests, it did not
work with gtest_discover_tests because the generated file that sets up
the tests was named based only on the target name, and so subsequent
discovery from the same target would clobber earlier discovery.

Fix this by introducing a counter that records how many times discovery
has been used on a target, and use this to generate unique names of the
generated test list files.
2017-11-21 12:05:34 -05:00
Brad King
3a993c49db Tests: Add options to disable tests requiring Qt 2017-11-13 13:58:32 -05:00
Brad King
ddf485511b Merge branch 'implicit-lib-gcceh' into release-3.10
Merge-request: !1460
2017-11-08 08:12:08 -05:00
Christian Pfeiffer
41aacca7fb Restore exclusion of "gcc_eh" from implicit link libraries
Since commit v3.9.0-rc1~148^2 (Do not assume GCC libs are linked by all
compilers, 2017-05-05) we no longer filter out all `gcc*` implicit link
libraries.  This allows mixing of gcc and non-gcc compilers across
languages.  However, this caused a subtle problem with how GCC makes
exception handling symbols available to linked binaries.

GCC (at least on MinGW) provides two different libraries with exception
handling symbols:

* gcc_s: A shared library with -fvisibility=default, used by -shared-libgcc.
* gcc_eh: A static library with -fvisibility=hidden, used by -static-libgcc.

The C compiler (on MinGW) defaults to -static-libgcc and uses gcc_eh.
The C++ compiler defaults to -shared-libgcc and uses gcc_s when linking
shared libraries and executables so that exceptions can propagate across
shared libraries [1].  When linking a mixed-language binary, the C++
compiler should be used along with its choice of gcc_s.  In this case
gcc_eh should not be added even though the C compiler implies it because
gcc_s supersedes it.

Since the above-mentioned change, CMake is adding gcc_eh to C++ link
lines that also contain C code on MinGW.  This causes both gcc_s and
gcc_eh to be used, which is incorrect.  We can fix this simply by
excluding gcc_eh from the C compiler's implicit link libraries.

[1] https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gcc/Link-Options.html#Link-Options

Fixes: #17436
2017-11-08 08:10:52 -05:00
Sebastian Holtermann
d3caf941e4 Autogen: Tests: Set AUTOMOC_MOC_OPTIONS in a simple test 2017-10-31 14:55:49 +01:00
Brad King
da00080ed4 Merge branch 'cpack-rpm-dist-test-fix' into release-3.10
Merge-request: !1424
2017-10-30 08:50:21 -04:00
Domen Vrankar
9ce00caee3 CPack/RPM: DIST-MONOLITHIC-type subtest fix
Test was failing in case dist macro contained
a + symbol which is valid but must be escaped
for using the string as a regex.

Fixes #17328
2017-10-30 08:48:46 -04:00
Brad King
0504fc8d84 Merge branch 'backport-fix-co-compile' into release-3.10
Merge-request: !1418
2017-10-27 09:41:25 -04:00
Brad King
dc4d2021e1 Merge branch 'autogen-static-library-cycles' into release-3.10
Merge-request: !1408
2017-10-27 09:41:11 -04:00
Sebastian Holtermann
3a4db8617e Autogen: Tests: Add test for STATIC_LIBRARY cycles 2017-10-27 09:37:15 -04:00
Brad King
992962c76d cmcmd: Restore support for running multiple lint tools
Refactoring in commit v3.10.0-rc1~115^2 (Clean up iwyu code to not be
one big if statement, 2017-08-28) incorrectly changed the logic to run
only one lint tool at a time.  Restore support for running all tools
specified on the command-line.
2017-10-27 09:26:50 -04:00
Brad King
f01576012f Merge branch 'cmp0040-wording' into release-3.10
Merge-request: !1415
2017-10-26 09:48:28 -04:00
Brad King
a1b1f1a282 CMP0040: Clarify policy warning to match documentation
In commit v3.5.0-rc1~8^2~2 (Help: Clarify policy `CMP0040`
documentation, 2016-01-28) the documentation was clarified to indicate
that the target must be defined in the current directory.  Do the same
for the text of the policy warning itself.

Fixes: #17399
2017-10-26 09:47:29 -04:00
Brad King
f64c554cc9 Merge branch 'imported-interface-no-system' into release-3.10
Merge-request: !1386
2017-10-13 14:36:45 -04:00
Brad King
2de0e0fdfa Do not initialize NO_SYSTEM_FROM_IMPORTED on INTERFACE libraries
The change in commit v3.8.0-rc1~276^2 (Allow NO_SYSTEM_FROM_IMPORTED on
imported INTERFACE libraries, 2016-11-21) was incorrect.  The property
is not meant to be set on imported targets at all.  It is meant to be
set on their consumers that compile sources.  Since INTERFACE libraries
have no sources to compile, the property is not needed on them.

Revert most of that change.  Unfortunately we must still tolerate
project code setting NO_SYSTEM_FROM_IMPORTED on INTERFACE libraries
because they were allowed by CMake 3.8 and 3.9.

Issue: #17348
2017-10-13 14:32:14 -04:00
Brad King
155c1505a5 Merge branch 'cpack-deb-mr-1296-fix' into release-3.10
Merge-request: !1375
2017-10-11 08:25:30 -04:00
Domen Vrankar
529729d6e7 CPack/Deb: CPACK_DEBIAN_PACKAGE_VERSION regex testing exception
CPACK_DEBIAN_PACKAGE_VERSION variable could in the past also
contain release and epoch version so regex test should expect
the entire versioning if both CPACK_DEBIAN_PACKAGE_RELEASE
and CPACK_DEBIAN_PACKAGE_EPOCH are not set.
Also since the checks were not performed in the past the regex
test of CPACK_DEBIAN_PACKAGE_VERSION variable content should
only report author warnings instead of errors in case of the
test fail.

Fixes: #17339
2017-10-11 00:10:01 +02:00
Brad King
f686c45d62 Merge branch 'xcode-tests-ios-deployment-target' into release-3.10
Merge-request: !1365
2017-10-10 09:09:03 -04:00
Gregor Jasny
3a49b4eb78 Xcode 9: Lower iOS deployment version to get armv7 builds 2017-10-10 09:08:44 -04:00
Gregor Jasny
78a560e42b Revert "Xcode: Adjust tests to drop of 32bit iOS architectures"
This reverts commit d210b28130.
2017-10-10 09:08:44 -04:00
Brad King
f7d29c0b9a Merge topic 'xcode9-ios-tests'
d210b281 Xcode: Adjust tests to drop of 32bit iOS architectures

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1347
2017-10-05 09:50:03 -04:00
Gregor Jasny
d210b28130 Xcode: Adjust tests to drop of 32bit iOS architectures 2017-10-05 14:10:28 +02:00
Brad King
e55d69cf5a Tests: Remove ancient workaround in LoadCommand tests 2017-10-04 09:42:52 -04:00
Brad King
1e38b99454 Merge topic 'test-macos-updates'
58d9297e Tests: Fix RunCMake.Framework ios arch for Xcode 9
b8dd7a70 Tests: Fix RunCMake.Framework expected output on macOS 10.13

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1338
2017-10-04 07:08:27 -04:00
Brad King
8b5539d1c2 Merge topic 'src-flags-genex-target'
303cd703 VS,Xcode: Fix TARGET_PROPERTY genex in source COMPILE_FLAGS property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Nikita Nemkin <nikita@nemkin.ru>
Merge-request: !1336
2017-10-04 07:05:41 -04:00
Brad King
58d9297eef Tests: Fix RunCMake.Framework ios arch for Xcode 9
Xcode 9 comes with the iPhoneOS 11.0 SDK that does not support the
`armv7` architecture.  For this SDK version and newer, use `arm64`.
2017-10-03 09:09:08 -04:00
Brad King
b8dd7a705c Tests: Fix RunCMake.Framework expected output on macOS 10.13
The archiver output in the case of universal binaries has changed
slightly.  Update our expected output to match.  While at it, drop
unnecessary leading and trailing `.*`.
2017-10-03 09:08:27 -04:00
Brad King
046625d26f Merge topic 'FindProtobuf-gen-desc'
1299f4cc FindProtobuf: add flag to allow descriptor files to be generated
4e91be95 FindProtobuf: Refactor custom command output listing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1301
2017-10-03 08:14:34 -04:00
Brad King
303cd7037a VS,Xcode: Fix TARGET_PROPERTY genex in source COMPILE_FLAGS property
This already worked in other generators.  Also add a test case.

Fixes: #17314
2017-10-03 08:03:33 -04:00
Peter Mitrano
1299f4cc5e FindProtobuf: add flag to allow descriptor files to be generated
- The .desc files will be in the same folder as the generated .cc and .h files.
- Paths to generate .desc files are stored in a variable passed in
- This is only implemented for C++
- Remove legacy ARGS
- Add test that generates and uses C++ protobuf message
- Add test that checks that the generated .desc file can be instantiated
  with DynamicMessageFactory
- Add Help rst for new feature
2017-10-02 08:08:24 -04:00
Brad King
9288c291cb Merge topic 'FindBoost-cmake-package'
c044b9ae FindBoost: Improve messages when a Boost CMake package is found

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1330
2017-10-02 07:58:08 -04:00
Brad King
c044b9ae84 FindBoost: Improve messages when a Boost CMake package is found
Add a test for this case to verify the messages.  This test will also be
valuable to cover this code path in which we've had several regressions
recently.
2017-09-29 10:10:01 -04:00
Brad King
aa640cc20f Tests: Fix CudaOnly.WithDefs test on CUDA 9
CUDA 9 dropped support for `compute_20`, so use a different alternative.
2017-09-29 09:55:11 -04:00
Brad King
59285ee58e Merge topic 'add-vs-shader-properties'
49dab3eb VS: Add VS_SHADER_OUTPUT_HEADER_FILE and VS_SHADER_VARIABLE_NAME properties.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1319
2017-09-29 08:56:04 -04:00
Sebastian Holtermann
084ace47b6 Autogen: Tests: Update AUTOMOC_MACRO_NAMES test 2017-09-28 09:21:44 +02:00
Kevin M. Godby
49dab3ebfb VS: Add VS_SHADER_OUTPUT_HEADER_FILE and VS_SHADER_VARIABLE_NAME properties.
The VS_SHADER_OUTPUT_HEADER_FILE property is the name of the generated
header file containing the object code of the shader.

The VS_SHADER_VARIABLE_NAME property is the name of the variable
containing the object code in the above header file.

Signed-off-by: Kevin M. Godby <kevin@godby.org>
2017-09-27 07:56:09 -04:00
Brad King
f9c619105c Merge topic 'GetPrerequisites-no-clear-on-missing'
1a7b8c83 GetPrerequisites: Restore behavior on missing binary of not clearing list

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1312
2017-09-27 07:16:06 -04:00
Brad King
f75ac39692 Merge topic 'ninja-rc-depfile-quoting'
df965cb9 Ninja: Fix quoting of RC language depfile in cmcldeps call

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1309
2017-09-27 07:14:17 -04:00
Brad King
c4d0939fba Merge topic 'FindOpenGL-glvnd'
e2e8a690 FindOpenGL: Add support for GLVND on Linux

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !782
2017-09-27 07:13:12 -04:00
Brad King
09350f19e0 Merge topic 'revert-perf-source-lookup'
a7005c98 Tests: Add case for legacy source file property behavior
1604716d Revert "Performance: Improve efficiency of source file lookup in cmMakefile"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1308
2017-09-27 07:11:07 -04:00
Brad King
1a7b8c8321 GetPrerequisites: Restore behavior on missing binary of not clearing list
Prior to commit v3.4.0-rc1~264^2~1 (GetPrerequisites: Add error checks
for execute_process() calls, 2015-07-29), `get_prerequisites` would
simply warn on a missing binary and not update the result list at all.
That commit accidentally made the case an error.  This was fixed by
commit v3.8.0-rc1~110^2 (GetPrerequisites: Do not fail on files we
cannot find, 2017-01-10), but the fix also cleared the result list.
Clearing the list is incorrect because it is supposed to be able to
accumulate results over multiple calls.

Remove the list clearing behavior to restore the original behavior on a
missing binary.

Fixes: #17306
2017-09-26 07:31:33 -04:00
Brad King
df965cb963 Ninja: Fix quoting of RC language depfile in cmcldeps call
Since commit v3.0.0-rc1~448^2 (Ninja: use deps = gcc/msvc feature,
2013-10-18) the value of the `DEP_FILE` binding already includes the
needed quoting to refer to the file.  However, that commit forgot to
update one of the `$DEP_FILE` references to not be quoted anymore.
The offending code path currently only affects cmcldeps for RC.
Remove the extra quoting now.

Fixes: #17298
2017-09-25 10:07:48 -04:00
Tom Fogal
e2e8a690cd FindOpenGL: Add support for GLVND on Linux
Find GLVND components if available.  Add `GLX` and `EGL` options for
COMPONENTS that allow requesting these libraries explicitly.  Introduce
new import targets for these windowing-system-specific libraries.

On a GLVND system, populate the legacy `OPENGL_LIBRARIES` variable and
the `OpenGL::GL` target using the `OpenGL` and `GLX` components.  On
non-GLVND systems, continue to use the legacy `GL` library and simply do
not provide the GLVND components.  Application code can choose to adapt
based on the availability of GLVND components as imported targets.
2017-09-25 09:22:29 -04:00
Brad King
a7005c985d Tests: Add case for legacy source file property behavior
The change in commit 3b95ab5693 (Performance: Improve efficiency of
source file lookup in cmMakefile, 2017-08-17) broke some legacy behavior
of source file properties in which the order sources are first resolved
with extensions affects how setting properties without extensions works.
It has been reverted for now, but the discovery was made after merging
because the broken case was not covered by our test suite.

Add a test case representing the legacy behavior.

Issue: #15208
2017-09-25 09:06:35 -04:00
Brad King
6d20eda21a Merge topic 'test-fix-msvc-standard-default'
a5dd1599 Tests: Fix RunCMake.try_compile CxxStandard case on MSVC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1302
2017-09-25 08:55:24 -04:00
Brad King
7df7eea7cf Merge topic 'autogen-generators-refactor'
51fd7b71 Autogen: Tests: Add a change-not test to the mocRerun test
c8f92db7 Autogen: Tests: Disable an AUTOMOC_DEPENDS_FILTER test for Ninja
3c77515e Autogen: Tests: Refactor the QtAutogenRebuild rccDepends test
04a0daee Autogen: Tests: Move each rerun test script to a NAME.cmake file
e5c6610a Autogen: Tests: Extend CMAKE_AUTOMOC_DEPEND_FILTERS rebuild test
93265652 Autogen: Tests: Add <SUBDIR>/ui_view.h AUTOUIC includes to sameName test
4eb7d817 Autogen: Tests: Add <SUBDIR>/item.moc includes to sameName test
3f223743 Autogen: Read relative paths from rcc output
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1244
2017-09-22 10:15:54 -04:00