summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* find_*: Disable the PACKAGE_ROOT search path group for CMake 3.9Brad King2017-08-083-0/+3
| | | | | | | | | | | | | | | | Disable the feature added by commit v3.9.0-rc1~71^2~2 (find_*: Add a new PackageRoot search path group, 2017-05-03) and remove documentation added by commit v3.9.0-rc1~71^2 (find_*: Add docs for PackageRoot search path group, 2017-05-03). Unfortunately the name `<pkg>_ROOT` may already be set by projects for their own incompatible purposes. Disable the behavior change for now to fix the regression for CMake 3.9. We can restore it later with a policy. In order to keep the implementation and tests working, add an undocumented variable we can use in the tests to enable the behavior before the policy is introduced. Fixes: #17144
* find_package: Split PACKAGE_ROOT tests to work with smaller regexChuck Atkins2017-08-027-846/+872
|
* find_package: Fix PACKAGE_ROOT test to check find_pacakge(CONFIG) mode.Chuck Atkins2017-07-287-99/+531
|
* Merge branch 'objlib-own-target-objs' into release-3.9Brad King2017-07-174-0/+9
|\
| * Diagnose object library self-referenceBrad King2017-07-144-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code add_library(A OBJECT a.c) target_sources(A PRIVATE $<TARGET_OBJECTS:A>) used to crash CMake via infinite recursion while evaluating the generator expression. Then the change in commit v3.9.0-rc1~266^2~1 (cmGeneratorTarget: Replace source classifier implementation, 2017-04-07) avoided the infinite recursion because GetKindedSources now creates a map entry and initializes it once. If it is called again on the same target during that initialization, the partially computed results are returned. This is still wrong but does not crash. Detect and diagnose this case instead. Co-Author: Ben Boeckel <ben.boeckel@kitware.com> Fixes: #16578
* | Android: Always add standard include directories lastBrad King2017-07-134-0/+31
|/ | | | | | | | | | | | | | | | | | | | | | | | | | The logic added in commit v3.6.0-rc1~30^2 (Add a variable to specify language-wide system include directories, 2016-05-24) to use `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` incorrectly filters them by `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`. Rather than recognizing this, commit v3.8.0-rc1~60^2 (Android: Pass sysroot include directory explicitly, 2017-01-20) worked around the problem by incorrectly removing `/usr/include` from `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` so it worked in `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`. By not filtering out `/usr/include` from user-specified include directories, we allow the code include_directories(${CMAKE_SYSROOT}/usr/include) to place the include directory too early on the command line. Fix support for standard include directories to not be filtered by implicit include directories, and do not remove `/usr/include` from the list of implicit include directories for Android builds. Add a test case to verify that an explicit `/usr/include` is ignored in favor of the standard directory at the end. Fixes: #17059
* Merge branch 'vs-2017-sln-guid' into release-3.9Brad King2017-07-1111-7/+18
|\
| * VS: Add SolutionGuid to generated .sln filesBrad King2017-07-1111-7/+18
| | | | | | | | | | | | Visual Studio 2017 Update 3 adds a SolutionGuid to its `.sln` files. Fixes: #17041
* | Merge branch 'find_package-root-prefix-path-suffixes' into release-3.9Brad King2017-07-118-0/+72
|\ \
| * | find_*: Honor PATH_SUFFIXES in PackageName_ROOT pathsBrad King2017-07-118-0/+72
| |/ | | | | | | | | | | | | This was accidentally forgotten in commit v3.9.0-rc1~71^2~2 (find_*: Add a new PackageRoot search path group, 2017-05-03). Fixes: #17052
* | Merge branch 'bindexplib-revert-consts' into release-3.9Brad King2017-07-102-12/+0
|\ \
| * | bindexplib: Revert support for constants symbolsBrad King2017-07-102-12/+0
| |/ | | | | | | | | | | | | | | | | | | Revert the main logic change of commit v3.9.0-rc1~192^2 (bindexplib: fix constants symbols export, 2017-04-26) and its test case. Unfortunately some constants may be provided by multiple object files with different `@...` suffixes, leading to ambiguous references. Revert support pending further investigation. Fixes: #17045
* | Merge branch 'autogen-no-generated-files' into release-3.9Brad King2017-07-072-0/+3
|\ \
| * | Autogen: Skip generated files for compatibility with CMake 3.8Brad King2017-07-072-0/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change in commit v3.9.0-rc1~464^2~8 (Autogen: Add AUTOMOC/UIC support for generated source files, 2017-03-02) changes behavior of existing projects that may not expect `AUTOGEN` on generated files and do not yet set `SKIP_AUTOGEN` on them. Disable the behavior change for now to fix the regression for CMake 3.9. We can restore it later with a policy. In order to keep the implementation and tests working, add an undocumented property we can use in the tests to enable the behavior before the policy is introduced. Fixes: #17031 Issue: #16186
* | find_package: Restore longer message when config files were consideredBrad King2017-07-0711-1/+45
|/ | | | | | | | | | | | | | | | | | Since commit v3.9.0-rc1~58^2 (find_package: shorten output for missing package in config mode, 2017-05-09) we print only the one line - Could NOT find Foo (missing: Foo_DIR) when package Foo cannot be found in CONFIG mode and it is not REQUIRED. However, in the case that package configuration files were found but not used, this one line message leaves out important information. This can happen when a package configuration file sets `Foo_FOUND` to `FALSE` or when its package version file does not match the requested version. Restore the longer message in these cases. Otherwise a seemingly valid explicit `Foo_DIR` setting appears to be silently ignored even if it was considered. Fixes: #17029
* Merge branch 'fix-crash-on-non-enabled-language-features' into release-3.9Brad King2017-06-2726-12/+30
|\
| * target_compile_features: Do not crash on non-enabled languageBrad King2017-06-264-0/+8
| | | | | | | | Fixes: #17011
| * Tests: Enable languages explicitly in RunCMake.target_compile_featuresBrad King2017-06-2622-12/+22
| | | | | | | | | | Enable C or CXX (or nothing) as needed in each test case. This will allow us to add test cases that do not enable CXX.
* | Merge branch 'vs-cuda-fix-flags' into release-3.9Brad King2017-06-271-0/+5
|\ \ | |/ |/|
| * VS: Fix support for nvcc flags not in our flag tableBrad King2017-06-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | The change in commit v3.9.0-rc4~3^2 (VS: Improve workaround for CUDA -Xcompiler placement bug, 2017-06-21) accidentally appended to the `AdditionalOptions` as if it were a `;`-separated list, but it is actually a command-line string. Append with a space instead. While at it, fix the same problem for the `AdditionalOptions` added to `CudaLink` by commit v3.9.0-rc3~1^2 (CUDA: When linking device code suppress CUDA 8.0+ deprecation warnings, 2017-06-09). Fixes: #17008
* | Merge branch 'vs-rc-flags' into release-3.9Brad King2017-06-221-0/+4
|\ \
| * | VS: Fix support for rc /nologo flag in per-source COMPILE_FLAGSBrad King2017-06-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v3.9.0-rc1~160^2 (VS: Use tool-specific flag table for COMPILE_FLAGS parsing, 2017-05-03) we now correctly use the `rc` flag table to process the COMPILE_FLAGS flags of `.rc` source files instead of incorrectly using the `cl` flag table as before. However, our `rc` flag table is not complete. The `/nologo` flag was working before only by accident because the `cl` flag table entry for it happened to match. Add the proper entry to the `rc` flag table. Fixes: #16991
* | | Merge branch 'vs-cuda-fix-flags' into release-3.9Brad King2017-06-213-0/+9
|\ \ \ | | |/ | |/|
| * | VS: Improve workaround for CUDA -Xcompiler placement bugBrad King2017-06-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit v3.9.0-rc1~431^2~6 (VS: Place CUDA host compiler options in proper project file fields, 2017-03-07) we worked around a bug in the CUDA VS integration by dropping `AdditionalCompilerOptions`. However, this silently drops `-Xcompiler=` options given by the user that don't map to one of CudaCompile's dedicated settings. Improve the workaround to instead put the remaining `AdditionalCompilerOptions` into the `AdditionalOptions` field behind `-Xcompiler=` ourselves.
| * | VS: Fix target_compile_options for CUDABrad King2017-06-212-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the VS generator to honor `COMPILE_OPTIONS` for CUDA. The exclusion added by commit v3.9.0-rc1~431^2~7 (VS: Do not pass CUDA compile options to C compiler, 2017-03-07) was correct but we need additional logic to pass the CUDA compile options to the CUDA compiler. Also we should still pass the CXX or C options to MSVC (ClCompile) when those languages are enabled even if the link language is CUDA.
* | | Vs: allow CSharp targets to be linked to CXX targetsMichael Stürmer2017-06-215-0/+54
|/ / | | | | | | Fixes: #16755
* | IPO: Consider support for each language separatelyBrad King2017-06-149-13/+13
| | | | | | | | | | | | | | | | | | We only define `INTERPROCEDURAL_OPTIMIZATION` behavior for C, CXX, and Fortran languages. Do not try to enable support for other languages. Furthermore, each language builds with a different compiler, so check for support by CMake and the compiler for each language independently. Fixes: #16944
* | Merge topic 'GoogleTest-disabled-tests'Brad King2017-06-052-1/+29
|\ \ | | | | | | | | | | | | | | | | | | | | | 92bbb706 GoogleTest: Add support for disabled tests Acked-by: Kitware Robot <kwrobot@kitware.com> Reviewed-by: Craig Scott <craig.scott@crascit.com> Merge-request: !920
| * | GoogleTest: Add support for disabled testsChuck Atkins2017-06-052-1/+29
| | | | | | | | | | | | Fixes: #10612
* | | Merge topic 'test-GNUInstallDirs-FreeBSD'Brad King2017-06-057-8/+136
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 913736f1 Tests: Fix RunCMake.GNUInstallDirs on BSD platforms Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !921
| * | | Tests: Fix RunCMake.GNUInstallDirs on BSD platformsBrad King2017-06-027-8/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The `GNUInstallDirs` module has different defaults on BSD platforms. Update the test expected output to account for the difference. Fixes: #16887
* | | | Merge topic 'ninja-mingw'Brad King2017-06-011-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 82badfff Ninja: Fix CMP0058 on MinGW c5ff50fc Tests: Fix CustomCommandByproducts regex for phony rules Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !919
| * | | | Tests: Fix CustomCommandByproducts regex for phony rulesBrad King2017-05-311-1/+1
| |/ / / | | | | | | | | | | | | Update the regex to match phony rules that have no inputs.
* | | | Merge topic 'add-common-record-features-macros'Brad King2017-06-017-44/+87
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3c1ecb52 Intel: Fix missing C std default for 12.0 <= ver < 12.1 f70b0bb3 SunPro: Make sure all known versions get CXX98 defaults 220ede74 GNU: Fix language defaults for 3.4 a40e6ba8 Clang: Fix language defaults for 2.1 9b112a84 Compilers: Port to use default cmake_record_lang_compile_features macros 37221529 MSVC: Add empty definitions for std compile options e556f1b9 CompileFeatures: Makes tests work with meta-feature only 20ffa147 Tests: Allow test macro to take no executable arguments ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !833
| * | | | CompileFeatures: Makes tests work with meta-feature onlyChuck Atkins2017-05-297-42/+81
| | | | |
| * | | | Tests: Allow test macro to take no executable argumentsChuck Atkins2017-05-291-2/+6
| | | | |
* | | | | Tests: Skip BootstrapTest if testing external CMakeBrad King2017-05-311-0/+3
| |/ / / |/| | | | | | | | | | | | | | | If we are not actually building CMake then we should not run the `BootstrapTest` (which builds CMake).
* | | | Merge topic 'ninja-mingw'Brad King2017-05-311-3/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6a2f8335 Ninja: Fix escaping of path to depfile 781eb380 Tests: Fix VSResource test on MinGW with Ninja and a space in the path Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !911
| * | | | Tests: Fix VSResource test on MinGW with Ninja and a space in the pathBrad King2017-05-301-3/+2
| |/ / /
* | | | Merge topic 'fix-XCTest-build-config'Brad King2017-05-311-0/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | be55f069 Tests: Fix XCTest build configuration Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !907
| * | | | Tests: Fix XCTest build configurationBrad King2017-05-301-0/+1
| |/ / / | | | | | | | | | | | | | | | | | | | | Build the test binaries with the same configuration in which they will be tested instead of the default Debug configuration. This fixes the test when run in a Release configuration.
* | | | Tests: Fix Qt5Autogen test on XcodeBrad King2017-05-302-4/+5
|/ / / | | | | | | | | | | | | | | | | | | Fix the `mocPlugin` project to provide `mocPlugin.xcodeproj` instead of `Project.xcodeproj` so that the `try_compile` project name matches. Also search in the `Debug` subdirectory of the `try_compile` build tree for the resulting binaries, to work with multi-config generators.
* | | Merge topic 'sunpro-std-flags'Brad King2017-05-281-3/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 370d0d25 SunPro: update flags used for CMake itself f1f21e30 SunPro: set -library=stlport as standard compile option for C++98 9316120c SunPro: add standard compile option for C++03 783fbb77 Tests: Compile entire Plugin test with the same language standard Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !879
| * | | Tests: Compile entire Plugin test with the same language standardBrad King2017-05-261-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | Set `CMAKE_CXX_STANDARD` early so that both KWSys and our test code build with the same language standard. This is important on compilers that have incompatible standard libraries.
* | | | Autogen: Test adaptionsSebastian Holtermann2017-05-261-2/+8
| | | |
* | | | Autogen: Per-config file suffixes. New AUTOGEN_BUILD_DIR target property.Sebastian Holtermann2017-05-261-2/+2
| | | | | | | | | | | | | | | | | | | | Closes #14760 Closes #14313
* | | | Merge topic 'FindDoxygen-add-docs-function'Brad King2017-05-256-0/+109
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 59ffabfe Improve Doxygen support Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !684
| * | | | Improve Doxygen supportAlex Turbov2017-05-246-0/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Except Graphviz's `dot` Doxygen may use few other utilities like `mscgen` (Message Sequence Chart) and `dia` (Diagram Editor). Now this module allows to manage Doxygen settings from `CMakeLists.txt` and forget about `Doxyfile`s. Also it provides a helper function to add a target to generate documentation: `doxygen_add_docs`. Implement code review notes: - Introduce `COMPONENTS` to find: `dot`, `mscgen` and `dia`; - Deprecate variables `DOXYGEN_SKIP_DOT`, `DOXYGEN_EXECUTABLE`, `DOXYGEN_DOT_EXECUTABLE`, `DOXYGEN_DOT_FOUND` in favour of `doxygen_add_docs ` usage instead; - Properly handle paths to found tools in Windows; - Prevent adding a custom target if Doxygen was not really found; - Introduce exported (executable) targets for found components. Co-Author: Craig Scott <craig.scott@crascit.com>
* | | | | Merge topic 'find_dependency-improvements'Brad King2017-05-2528-50/+71
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ab358d6a Improve find_dependency argument handling Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !872
| * | | | | Improve find_dependency argument handlingMatthew Woehlke2017-05-2228-50/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove highly specialized and totally positional argument handling in find_dependency macro, and instead just pass arguments through to find_package. This gives users access to the full suite of arguments that find_package knows, and is backward compatible with the old arguments. Also, rewrite the unit tests for this, since the old tests are exclusively focused on testing the old argument handling and are no longer applicable, and add some success tests (the old tests did not even set up the CMake state in a way that CMake had any hope of ever finding the test package).