summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'swift-with-interface-libs'Brad King2019-07-301-0/+3
|\ | | | | | | | | | | | | | | | | 601fe84bd1 Swift: Restore support for enabling with INTERFACE libraries Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Wanderley GuimarĂ£es da Silva <wanderley.guimaraes@gmail.com> Acked-by: Guillaume Egles <gegles@gmail.com> Merge-request: !3624
| * Swift: Restore support for enabling with INTERFACE librariesBrad King2019-07-291-0/+3
| | | | | | | | | | | | | | | | | | | | | | The check added in commit b06f4c8a74 (Swift: disallow WIN32_EXECUTABLE properties, 2019-05-31, v3.15.0-rc1~9^2) makes sense only for executables because the `WIN32_EXECUTABLE` property is defined only for them. Running the check on other target types, particularly those that do not link such as INTERFACE libraries, violates internal assumptions. In particular, `GetLinkerLanguage` should not be called on such targets. Fixes: #19528
| * Merge branch 'makefile-depend-relative-include' into release-3.15Brad King2019-07-255-1/+35
| |\ | | | | | | | | | Merge-request: !3599
| * \ Merge branch 'backport-clang-gnulike-support' into release-3.15Brad King2019-07-2419-43/+35
| |\ \ | | | | | | | | | | | | Merge-request: !3592
| | * | Tests: Revert "require C++14 for the Tutorial"Brad King2019-07-2413-13/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit a2a90f41e3 (Tests: require C++14 for the Tutorial, 2019-03-21, v3.15.0-rc1~41^2~2). In commit d50b31be35 (Clang: For MSVC ABI do not use modes older than C++14, 2019-07-23) we fixed the C++ standard selection for GNU-like Clang with the MSVC ABI so the test code itself no longer needs to do it. In particular, changing the tests in this way broke the tutorial's narrative.
* | | | Merge topic 'CheckCXXSymbolExists-c++-syntax'Brad King2019-07-291-0/+14
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 72fcadb007 CheckCXXSymbolExists: Make C++-syntax symbols work on more compilers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3545
| * | | | CheckCXXSymbolExists: Make C++-syntax symbols work on more compilersHong Xu2019-07-261-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | On some compilers the syntax `#ifndef std::fopen` will always lead to compilation error. Avoid generating it in the check.
* | | | | Merge topic 'android-ndk-r19'Brad King2019-07-2911-30/+34
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 97bca2f9fa Android: Use unified toolchain in NDK r19+ 19f36c5fb2 Android: Update test to not require GCC compiler to exist in NDK f3e32ddae9 Android: Re-order system initialization to select sysroot last 9a0720b819 Android: Clarify name of internal variable for arch triple 4e6c58d937 Android: Select NDK host tag while determining system Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3612
| * | | | | Android: Use unified toolchain in NDK r19+Brad King2019-07-2610-12/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The NDK build system now uses only a single toolchain in <ndk>/toolchains/llvm/prebuilt/<host> Its compilers are always `bin/{clang,clang++}` and its binutils are always `bin/<triple>-*`. It is a standalone toolchain: * The Anrdoid API level is specified at the end of `--target=`. * The standard library may be specified via `-stdlib=`. * No need to pass system includes or libraries explicitly. * No need to pass `--sysroot` or `-gcc-toolchain`. Teach CMake to recognize NDK versions that have a unified toolchain with its own sysroot and use the above approach. Fixes: #18739
| * | | | | Android: Update test to not require GCC compiler to exist in NDKBrad King2019-07-261-18/+19
| | | | | |
* | | | | | Merge topic 'test-cleanup-src-dir'Brad King2019-07-291-1/+0
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | d1aa9f307e Tests: Remove stray source dir modification in RunCMake.find_program Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3610
| * | | | | Tests: Remove stray source dir modification in RunCMake.find_programBrad King2019-07-261-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit c76c1ea208 (find_program: Consider CWD only for paths with separator, 2018-05-31, v3.13.0-rc1~413^2) this test has created a directory in the source tree unnecessarily. Remove it.
* | | | | | Merge topic 'ep_support_no_submodule_init'Kyle Edwards2019-07-261-2/+19
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d6be117ca0 ExternalProject: Support not initializing any submodules Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3579
| * | | | | | ExternalProject: Support not initializing any submodulesRobert Maynard2019-07-241-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #15592
* | | | | | | Property: Add INSTALL_REMOVE_ENVIROMENT_RPATH propertyJiang Yue2019-07-251-2/+27
| |/ / / / / |/| | | | |
* | | | | | Merge topic 'makefile-depend-relative-include'Brad King2019-07-255-1/+35
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | d46bac5d38 Makefile: Fix regression in dependencies on relative includes Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3599
| * | | | | Makefile: Fix regression in dependencies on relative includesBrad King2019-07-245-1/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit a13a5c948e (Replace use of CollapseCombinedPath with CollapseFullPath, 2019-03-19, v3.15.0-rc1~361^2~1), one code path now calls `CollapseFullPath` with a base path that may be relative. Backport KWSys commit c6f8e24a3 (SystemTools: Fix CollapseFullPath with relative base path, 2019-07-24) to handle such base paths. This case occurs when a build tree is placed in a directory inside a source tree such that CMake is willing to generate a relative path from the build tree to the source tree. Add a test covering this case. Fixes: #19507
* | | | | | Merge topic 'clang-gnulike-support'Brad King2019-07-256-30/+8
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a4657ef670 Merge branch 'backport-clang-gnulike-support' into clang-gnulike-support 161b33f12b Help/guide/tutorial: Revert "require C++14 for the Tutorial" 4f15a6a5c2 Tests: Revert "require C++14 for the Tutorial" 5cfc39127e Merge branch 'backport-clang-gnulike-support' into clang-gnulike-support d50b31be35 Clang: For MSVC ABI do not use modes older than C++14 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3592
| * \ \ \ \ \ Merge branch 'backport-clang-gnulike-support' into clang-gnulike-supportBrad King2019-07-246-30/+8
| |\ \ \ \ \ \ | | |_|/ / / / | |/| | | | / | | | |_|_|/ | | |/| | |
| | * | | | Clang: For MSVC ABI do not use modes older than C++14Brad King2019-07-246-30/+8
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit d44c0db0b2 (clang: setup correct configuration in gnu mode, 2019-02-20, v3.15.0-rc1~41^2~5) we support the GNU-like Clang that targets the MSVC ABI. However, Clang cannot compile with the MSVC standard library unless it runs in a mode aware of C++14 (since MSVC itself does not even have a lower mode). When `CMAKE_CXX_STANDARD` is set to 98 or 11, use C++14 anyway. Since Clang's default mode is aware of C++14, another option is to not add any flags for 98 or 11. However, if a future Clang version ever defaults to a higher C++ standard, setting the standard to 98 or 11 should at least not use a mode higher than 14. Also revert test updates from commit 4819ff9647 (Tests: fix failures with gnu mode clang on windows, 2019-03-21, v3.15.0-rc1~41^2~3) that were meant to work around the standard selection problem. Fixes: #19496
* | | | | Merge topic 'find_pkg_use_new_global_controls'Brad King2019-07-246-0/+78
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 609fe39043 FindPackage: Support `NO_[]_PATH` global call options ff29c92df6 Tests: find_file restore PATH env variable after test runs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3590
| * | | | | FindPackage: Support `NO_[]_PATH` global call optionsRobert Maynard2019-07-225-0/+76
| | | | | |
| * | | | | Tests: find_file restore PATH env variable after test runsRobert Maynard2019-07-221-0/+2
| | | | | |
* | | | | | Merge topic 'math_exp_not'Brad King2019-07-242-2/+4
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d427f12b73 math(EXPR): Implement ~(exp_NOT) expression as documented Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3582
| * | | | | | math(EXPR): Implement ~(exp_NOT) expression as documentedGabor Bencze2019-07-232-2/+4
| | |/ / / / | |/| | | | | | | | | | | | | | | | Fixes: #19252
* | | | | | Merge topic 'fix-emulator-arguments'Brad King2019-07-241-0/+3
|\ \ \ \ \ \ | |/ / / / / |/| | | | / | | |_|_|/ | |/| | | | | | | | | | | | | bf6f5467a0 Fix allocation in CROSSCOMPILING_EMULATOR evaluation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3591
| * | | | Fix allocation in CROSSCOMPILING_EMULATOR evaluationMarek Antoniak2019-07-231-0/+3
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit fec441ec17 (Teach CROSSCOMPILING_EMULATOR to support arguments, 2019-05-30, v3.15.0-rc1~6^2) the new member `cmCustomCommandGenerator::EmulatorsWithArguments` was not initialized to the proper size. Fix this and add a test case covering the crash that could occur with multiple commands where an emulator appears only in a later command. Fixes: #19500 Co-Author: Brad King <brad.king@kitware.com>
* | | | Merge topic 'make-imported-targets-more-equal'Brad King2019-07-233-1/+13
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | 680a3c63bb target_*: Allow setting INTERFACE properties of UNKNOWN IMPORTED targets 62b5d1e4ad cmTargetPropCommandBase: Order target type condition by order in enum Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3581
| * | | target_*: Allow setting INTERFACE properties of UNKNOWN IMPORTED targetsAvraham Shukron2019-07-223-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend the change made by commit fe4b25ec2f (Teach target_* commands to set INTERFACE properties of IMPORTED targets, 2017-09-18, v3.11.0-rc1~433^2~2) to work with imported targets of type `UNKNOWN`. Fixes: #19434
* | | | Merge topic 'cpack-install-scripts'Craig Scott2019-07-225-12/+28
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5f96601675 CPack: Introduce CPACK_INSTALL_SCRIPTS variable Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3531
| * | | | CPack: Introduce CPACK_INSTALL_SCRIPTS variableAlex Turbov2019-07-215-12/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The singular name `CPACK_INSTALL_SCRIPT` has existed but was not linked from the CPack documentation. Also, it supported multiple values and should have had a plural name. Add a plural-named alternative now. If both `CPACK_INSTALL_SCRIPTS` and `CPACK_INSTALL_SCRIPT` are set then ignore the latter with a warning. Signed-off-by: Alex Turbov <i.zaufi@gmail.com>
* | | | | Merge topic 'feature/message-indent'Craig Scott2019-07-226-0/+65
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | 5f6fd917a3 message(): Control indentation via CMAKE_MESSAGE_INDENT Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3464
| * | | | message(): Control indentation via CMAKE_MESSAGE_INDENTAlex Turbov2019-07-216-0/+65
| | | | |
* | | | | Tests: Create test for SKIP_REGULAR_EXPRESSION test propertyGabor Bencze2019-07-182-0/+27
| | | | |
* | | | | Merge topic 'aix-exe-implib'Brad King2019-07-175-4/+13
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2fa920c0cd AIX: Create import library for executables with exports Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3561
| * | | | | AIX: Create import library for executables with exportsBrad King2019-07-165-4/+13
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On AIX, plugins meant to be loaded into executables via `dlopen` must be linked with access to a list of symbols exported from the executable in order to use them (when not using runtime linking). The AIX linker supports specifying this list as an "import file" passed on the command line either via the `-bI:...` option or (with a leading `#! .` line) as a normal input file like any other library file. The linker import file plays the same role on AIX as import libraries do on Windows. Teach CMake to enable its import library abstraction on AIX for executables with the `ENABLE_EXPORTS` target property set. Teach our internal `ExportImportList` script to optionally generate a leading `#! .` line at the top of the generated export/import list. Update our rule for linking an executable with exports to generate a public-facing "import library" implemented as an AIX linker import file. With this approach, our existing infrastructure for handling import libraries on Windows will now work for AIX linker import files too: * Plugins that link to their executable's symbols will be automatically linked using the import file on the command line. * The executable's import file will be (optionally) installed and exported for use in linking externally-built plugins. This will allow executables and their plugins to build even if we later turn off runtime linking. Issue: #19163
* | | | | Merge topic 'project-version-0'Brad King2019-07-1710-6/+102
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0ba5891ead project: Keep leading `0` in PROJECT_VERSION components 5f84669806 Tests: Factor out RunCMake.project helper macro into module b1f387a7ea Refactor: Use raw string literals instead of escaping 41b85968d8 Refactor: Use initializer lists instead of `push_back` series 45e85dd2b2 Refactor: Add some `const` to vars 90f91e4d21 Refactor: Replace a "magic" number w/ a named constant 638383c38f Refactor: Eliminate one-time-used variables 9b6a53292f Refactor: Eliminate `sep` from the loop Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3517
| * | | | | project: Keep leading `0` in PROJECT_VERSION componentsAlex Turbov2019-07-168-0/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce CMake policy `CMP0096` to make `project()` keep leading zeros in version components. As a side effect, it now allows really long version numbers. Fixes: #19421 Co-Author: Brad King <brad.king@kitware.com>
| * | | | | Tests: Factor out RunCMake.project helper macro into moduleBrad King2019-07-152-6/+7
| | | | | |
* | | | | | Merge topic 'find_package-fix-NO_MODULE'Brad King2019-07-173-0/+35
|\ \ \ \ \ \ | |_|/ / / / |/| | | / / | | |_|/ / | |/| | | | | | | | | | | | | f2edccea66 find_package: Fix NO_MODULE under CMAKE_FIND_PACKAGE_PREFER_CONFIG Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3557
| * | | | find_package: Fix NO_MODULE under CMAKE_FIND_PACKAGE_PREFER_CONFIGCristian Adam2019-07-163-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The module mode fallback added by commit 22e65d10c1 (find_package: Fixed CMAKE_FIND_PACKAGE_PREFER_CONFIG Module fallback, 2019-06-13, v3.15.0-rc2~6^2) should not be used unless the `find_package` call allows module mode. Doing so can lead to infinite recursion if a find module tries to call config mode with `find_package(... NO_MODULE)`. Fix the logic and add a test case. Fixes: #19478
* | | | | Tests: Drop RunCMake workaround for AIX ld warnings about GNU atexitBrad King2019-07-151-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drop the filtering added by commit e22c45d4c9 (Tests: Teach RunCMake to ignore AIX ld warnings about GNU atexit, 2018-02-28, v3.12.0-rc1~419^2~6). It is no longer needed now that we compute our own exports on AIX and do not get these warnings when using shared libraries.
* | | | | AIX: Explicitly compute executable exports for both XL and GNUBrad King2019-07-152-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On AIX, symbols in executables must be exported in order to be visible to modules (plugins) they load via `dlopen`. Prior to policy `CMP0065`, CMake linked all executables with flags to export symbols, but the NEW behavior for that policy is to do so only for executables that have the `ENABLE_EXPORTS` target property set. In both cases, CMake has always used the AIX linker option `-bexpall` option to export symbols from executables. This has worked fairly well with the XL compiler, but with the GNU compiler it works only for C ABI symbols. The reason is that `-bexpall` does not export symbols starting in `_` but the GNU C++ ABI mangles all symbols with a leading `_`. Therefore we have only supported C ABI plugins with the GNU compiler on AIX. Some projects have tried to work around this by replacing `-bexpall` with `-bexpfull`, but the latter often exports symbols that we do not want exported. Avoid using `-bexpall` for executables by instead using by our own internal `ExportImportList` script to compute symbol export lists from the object files to be linked into an executable. Pass the explicitly computed export list to the AIX linker's `-bE:...` option. We already do this for shared object exports. Issue: #19163
* | | | | modernize: manage cmCommand instances using unique_ptr.Marc Chevrier2019-07-141-1/+0
| | | | |
* | | | | Introduce memory management helper: cm_memory.hxxMarc Chevrier2019-07-141-1/+2
| | | | |
* | | | | Merge topic 'cmake-e-true-false'Brad King2019-07-123-0/+6
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b8828ecbba cmake -E: Add true and false commands Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3542
| * | | | | cmake -E: Add true and false commandsKyle Edwards2019-07-113-0/+6
| | |_|_|/ | |/| | |
* | | | | Merge topic 'ctest_make_program__propagated_to_cmake_configure_pass'Brad King2019-07-121-101/+47
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | cd681f1f41 ctest: propagate make program to cmake Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3483
| * | | | ctest: propagate make program to cmakeRobert Maynard2019-07-111-101/+47
| | | | |
* | | | | Merge topic 'iwyu-memory'Brad King2019-07-112-0/+3
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 71fbebd1dc IWYU: Fix handling of <memory> standard header Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Marc Chevrier <marc.chevrier@gmail.com> Merge-request: !3536