summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'ExternalProject-command'Brad King2017-09-053-0/+55
|\ | | | | | | | | | | | | 15617484 ExternalProject: Prevent COMMAND from being treated as a true keyword Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1178
| * ExternalProject: Prevent COMMAND from being treated as a true keywordCraig Scott2017-09-023-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The known keywords for each function are obtained by scraping the documentation for lines matching a particular regular expression. In commit 8842a027 (ExternalProject: Improve documentation, 2017-07-09), the docs were overhauled and the COMMAND docs subsequently matched the regular expression when they shouldn't have. This made COMMAND appear as a true keyword, which thwarted the special handling logic elsewhere for the intended use of COMMAND arguments. This commit contains a workaround for issue #17229 to force a dependency of the patch step on the update step to ensure a predictable step order. Fixes: #17198
* | Merge topic 'tll-global-unknown-lib'Brad King2017-09-012-0/+5
|\ \ | | | | | | | | | | | | | | | | | | a47a8533 target_link_libraries: Allow linking to UNKNOWN IMPORTED GLOBAL libs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1220
| * | target_link_libraries: Allow linking to UNKNOWN IMPORTED GLOBAL libsBrad King2017-08-312-0/+5
| | | | | | | | | | | | | | | | | | This combination was accidentally rejected. Allow it and add a test. Fixes: #17245
* | | Merge topic 'fix-genex-SOURCES'Brad King2017-09-015-0/+15
|\ \ \ | |/ / |/| | | | | | | | | | | | | | 068cc545 Genex: Fix TARGET_PROPERTY value of SOURCES Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1218
| * | Genex: Fix TARGET_PROPERTY value of SOURCESBrad King2017-09-015-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactoring in commit v3.8.0-rc1~445^2~2 (cmTarget: Move sanity checks and computed property access to callers, 2016-10-13) exposed a typo in commit v3.8.0-rc1~445^2~3 (cmGeneratorTarget: Implement cmTargetPropertyComputer interface, 2016-10-13). Together they broke the `$<TARGET_PROPERTY:mytgt,SOURCES>` generator expression in the case that the `SOURCES` target property is populated in part by the `target_sources` command. Add the missing `;`-separator. Fixes: #17243
| * | Merge branch 'find-package_root-disable' into release-3.9Brad King2017-08-103-0/+3
| |\ \ | | | | | | | | | | | | Merge-request: !1116
* | \ \ Merge topic 'lexer-null'Brad King2017-08-314-0/+7
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 14d9a11b ListFileLexer: fix heap-buffer-overflow on malicious input Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1153
| * | | | ListFileLexer: fix heap-buffer-overflow on malicious inputMatthias Maennich2017-08-304-0/+7
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case a list file contains a null terminated string that is continued until a later space, the lexer token information got inconsistent: e.g. an argument "TEST\0FOOBAR" is passed by the lexer as a token char* = "TEST\0FOOBAR" and length 11 ^^ note: ascii 0x00 Using strdup in cmListFileLexer leads lexer->token.text to be allocated with size 5 and lexer->token.length to be set to 11 A subsequent call to this function with an argument of 5 < length <= 11 wrongly assumed a sufficiently sized buffer and therefore corrupted the heap buffer. The program might crash due to this corruption. The case "NullTerminatedArgument" is intentionally using a quite large 'rest' to increase the chance to actually hit the issue. It will reliably crash with address sanitizer enabled though. This fix addresses all rules where arbitrary characters are matched to ignore \0 in order to fall through to the rule that matches an arbitrary character as BadCharacter. Signed-off-by: Matthias Maennich <matthias@maennich.net>
* | | | Add properties to run cppcheck along with the compilerBill Hoffman2017-08-3015-1/+74
|/ / / | | | | | | | | | | | | | | | Create a `<LANG>_CPPCHECK` target property (initialized by a `CMAKE_<LANG>_CPPCHECK` variable) to specify a `cppcheck` command line to be run along with the compiler.
* | | Avoid CRLF newlines in Git repo blobsBrad King2017-08-303-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | In commit 8ed03baa76 (gitattributes: prefer `eol=crlf` to `-crlf`, 2017-08-23) we left a few CRLF blobs in the repository. Some Git versions get confused by text files with CRLF blobs. Convert them to LF blobs. Use the `eol=crlf` attribute to tell Git to use CRLF on checkout.
* | | Tests: Fix RunCMake.BuildDepends on VS 2017 with v90 toolsetBrad King2017-08-251-1/+2
| | | | | | | | | | | | | | | The MSVC toolsets v100 and below forget to re-link when a manifest changes. Exclude this part of the test case for them.
* | | CPack: extend testing frameworkDomen Vrankar2017-08-192-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some CPack tests require running commands after the inclusion of CPack.cmake and this patch enables such tests to declare run_after_include_cpack function which is run after the inclusion.
* | | Add PREPEND sub-command to string commandSylvain Joubert2017-08-115-0/+67
| | |
* | | Merge topic 'find-package_root-test-regex'Brad King2017-08-106-465/+480
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | e574bce1 Tests: Simplify RunCMake.find_package PackageRoot case regexes Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Chuck Atkins <chuck.atkins@kitware.com> Merge-request: !1115
| * | Tests: Simplify RunCMake.find_package PackageRoot case regexesBrad King2017-08-086-465/+480
| | |
* | | Merge topic 'find-package_root-disable'Brad King2017-08-103-0/+3
|\ \ \ | | |/ | |/| | | | | | | | | | | | | 578d95f8 find_*: Disable the PACKAGE_ROOT search path group for CMake 3.9 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1116
| * | 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
* | Merge topic 'gtest-dynamic-discovery'Brad King2017-08-086-0/+111
|\ \ | | | | | | | | | | | | | | | | | | bfcda401 Add dynamic test discovery for for Google Test Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1056
| * | Add dynamic test discovery for for Google TestMatthew Woehlke2017-07-276-0/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new gtest_discover_tests function to GoogleTest.cmake, implementing dynamic test discovery (i.e. tests are discovered by actually running the test executable and asking for the list of available tests, which is used to dynamically declare the tests) rather than the source-parsing approach used by gtest_add_tests. Compared to the source-parsing approach, this has the advantage of being robust against users declaring tests in unusual ways, and much better support for advanced features such as parameterized tests. A unit test, modeled after the TEST_INCLUDE_DIR[S] test, is also included. Note that the unit test does not actually require that Google Test is available. The new functionality does not actually depend on Google Test as such; it only requires that the test executable lists tests in the expected format when invoked with --gtest_list_tests, which the unit test can fake readily.
* | | HP-UX: Drop support for building CMake on HP-UXBrad King2017-08-071-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | CMake will soon require both C++11 and libuv to build. Neither of these works on HP-UX, so unfortunately we need to drop support for the platform until someone can get them working. Issue: #17137
* | | Merge topic 'genex-error-grammar'Brad King2017-08-047-14/+14
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | e49c9eec cmGeneratorExpressionNode: add some missing commas Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1102
| * | | cmGeneratorExpressionNode: add some missing commasBen Boeckel2017-08-037-14/+14
| | | |
* | | | Merge topic 'add-package_root-to-find_package'Brad King2017-08-0412-461/+919
|\ \ \ \ | |/ / / |/| | / | | |/ | |/| | | | | | | | | | | | | 4a207116 find_package: Split PACKAGE_ROOT tests to work with smaller regex 9722ff5a find_package: Fix PACKAGE_ROOT test to check find_pacakge(CONFIG) mode. c5d2b99c find_package: Add missing PACKAGE_ROOT_PATH search path implementation. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1082
| * | 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
| |\ \
* | \ \ Merge topic 'string-clear-intermediate-matches'Brad King2017-07-213-0/+33
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b7941641 cmStringCommand: clear intermediate matches Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1065
| * | | | cmStringCommand: clear intermediate matchesBen Boeckel2017-07-213-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When `string(REGEX REPLACE)` or `string(REGEX MATCHALL)` loop internally, they store their matches, but they do not clear the previous match from an earlier iteration. This can leave the contents of `CMAKE_MATCH_<N>` with bogus values for later matches in the string if they have groups which earlier matched a non-empty string, but now match an empty string. Fixes #17079.
* | | | | Merge topic 'docsExternalProject'Brad King2017-07-213-6/+6
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8842a027 ExternalProject: Improve documentation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1037
| * | | | | ExternalProject: Improve documentationCraig Scott2017-07-173-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added clearer structure by grouping the options into logical sections. - Expanded the details for many of the options. - Added Examples section to show how to use the various commands. - Specifically highlighted that the contents of SOURCE_DIR may be lost if a download method is also provided. - Updated argument-matching regex to be more robust and account for the varying leading spaces before keywords in the docs. - Updated tests to account for slightly changed error messages.
* | | | | | Merge topic 'cmake-E-sha'Brad King2017-07-1840-0/+64
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c4de0a25 Add sha1sum, sha224sum, sha256sum, sha384sum and sha512sum to command mode c4647d84 Change ComputeFileMD5 to ComputeFileHash 501a4fee Add some unit tests for md5sum Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1021
| * | | | | | Add sha1sum, sha224sum, sha256sum, sha384sum and sha512sum to command modeAndré Klitzing2017-07-1431-0/+47
| | | | | | |
| * | | | | | Add some unit tests for md5sumAndré Klitzing2017-07-0910-0/+17
| |/ / / / /
* | | | | | Merge topic 'objlib-own-target-objs'Brad King2017-07-184-0/+9
|\ \ \ \ \ \ | |_|/ / / / |/| | | / / | | |_|/ / | |/| | | | | | | | | | | | | d89e10cd Diagnose object library self-reference Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1053
| * | | | 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
* | | | | Merge topic 'android-system-include-last'Brad King2017-07-134-0/+31
|\ \ \ \ \ | | |_|/ / | |/| | / | |_|_|/ |/| | | | | | | | | | | 4bafa392 Android: Always add standard include directories last Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1052
| * | | 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
| |\ \
| * \ \ Merge branch 'find_package-root-prefix-path-suffixes' into release-3.9Brad King2017-07-118-0/+72
| |\ \ \
| * \ \ \ Merge branch 'bindexplib-revert-consts' into release-3.9Brad King2017-07-102-12/+0
| |\ \ \ \
* | \ \ \ \ Merge topic 'test_include_files'Brad King2017-07-137-0/+79
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 117033c1 Add TEST_INCLUDE_DIR[S] unit test ed5bde30 Add TEST_INCLUDE_FILES Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1031
| * | | | | | Add TEST_INCLUDE_DIR[S] unit testMatthew Woehlke2017-07-127-0/+79
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | Add a unit test for the TEST_INCLUDE_DIR and (new) TEST_INCLUDE_DIRS directory properties.
* | | | | | Merge topic 'labels-for-subprojects'Brad King2017-07-1332-0/+483
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 376dc3eb Help: Add notes for topic 'labels_for_subprojects' a70d8e93 Add tests for new directory labels and labels-for-subprojects features 47b3a57c Display subproject timing summary d3859624 Add directory property 'LABELS' and CMAKE_DIRECTORY_LABELS variable d08ec4d2 Add CTEST_LABELS_FOR_SUBPROJECTS as a CTest module and script variable Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1004
| * | | | | | Add tests for new directory labels and labels-for-subprojects featuresBetsy McPhail2017-07-1032-0/+483
| |/ / / / /
* | | | | | Merge topic 'vs-2017-sln-guid'Brad King2017-07-1211-7/+18
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 5cf9c3d0 VS: Add SolutionGuid to generated .sln files Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1042
| * | | | | 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 topic 'find_package-root-prefix-path-suffixes'Brad King2017-07-128-0/+72
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 80b905f8 find_*: Honor PATH_SUFFIXES in PackageName_ROOT paths 1ae1b880 cmFindCommon: Drop unused FilterPaths method cca8454e cmFindCommon: Fix typo in PackageName_ROOT path label Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Chuck Atkins <chuck.atkins@kitware.com> Merge-request: !1044
| * | | | | 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 topic 'bindexplib-revert-consts'Brad King2017-07-122-12/+0
|\ \ \ \ \ | | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | 3250b9a1 bindexplib: Revert support for constants symbols Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1041