summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* get_property: Drop test for builtin property documentationBrad King2013-10-161-11/+0
| | | | | Property documentation is no longer builtin, so the get_property command will be unable to return the documentation. Drop the test for it.
* Add class cmRST to do basic reStructuredText processingBrad King2013-10-169-0/+246
| | | | | | | | | | | | | | | | Create a cmRST class to perform just enough reStructuredText processing to support display of Help documents in human-readable text format. This will be used to implement --help-* command-line options. Support directives "include", "replace", "parsed-literal", "toctree" (Sphinx), and "cmake-module" (CMake Sphinx Extension to scan .cmake modules). Support inline CMake Sphinx Domain roles to convert cross-references to corresponding title text. Support inline substitutions defined by the "replace" directive, but keep it simple by requiring replacements to be defined before use. Add a CMakeLib "testRST" case to cover processing of supported constructs and compare results against expected output.
* Drop CMAKE_STRICT modeBrad King2013-10-153-43/+0
| | | | | | | With our modern development workflow it is less likely a property will be added to C++ code without documentation. This mode only existed to support the DocTest which had very limited coverage of the properties anyway.
* Merge topic 'target-LOCATION-policy'Brad King2013-10-1515-3/+74
|\ | | | | | | | | e4e5b28 cmTarget: Deprecate the LOCATION target property with a policy.
| * cmTarget: Deprecate the LOCATION target property with a policy.Stephen Kelly2013-10-1115-3/+74
| | | | | | | | | | | | | | | | | | | | | | | | The final location and name of a build-target is not determined until generate-time. However, reading the LOCATION property from a target is currently allowed at configure time. Apart from creating possibly-erroneous results, this has an impact on the implementation of cmake itself, and prevents some major cleanups from being made. Disallow reading LOCATION from build-targets with a policy. Port some existing uses of it in CMake itself to use the TARGET_FILE generator expression.
* | Merge topic 'export-at-generate-time'Brad King2013-10-153-4/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | a4263c9 export(): Handle multiple dependent export sets. 66b290e export(): Process the export() command at generate time. 5fe5c32 export(): Set a Makefile on the cmExportBuildFileGenerator. e383555 cmExportInstallFileGenerator: Fix comment to match reality.
| * | export(): Process the export() command at generate time.Stephen Kelly2013-10-113-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make the API for adding targets string based so that it can easily use cmGeneratorTarget. Teach the cmIncludeCommand to generate the exported file at configure-time instead if it is to be include()d. The RunCMake.ExportWithoutLanguage test now needs a dummy header.h file as expected error from export() is now reported after the missing file error.
* | | Merge topic 'fix-CMP0024-multiple-directories'Brad King2013-10-156-13/+12
|\ \ \ | |/ / | | | | | | | | | af1f698 CMP0024: Store the fact of included export in global generator.
| * | CMP0024: Store the fact of included export in global generator.Stephen Kelly2013-10-106-13/+12
| |/ | | | | | | | | Storing it in the makefile means that the policy does not trigger when include and export are in differing directories.
* | Merge topic 'bump-required-cmake-version'Brad King2013-10-152-28/+11
|\ \ | | | | | | | | | | | | 920ffbf Require CMake 2.8.4 or greater to build CMake
| * | Require CMake 2.8.4 or greater to build CMakeStephen Kelly2013-10-152-28/+11
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | This allows the use of the $<TARGET_FILE:...> generator expression as a replacement for the use of the LOCATION target property. The use of the LOCATION target property is now deprecated for in-build targets. Also drop other checks for older CMake versions: * Simplify cmake_set_target_folder macro. * Use find_package(LibArchive) unconditionally. * Simplify condition for running testVisualStudioSlnParser test. * Convert two macros to functions. * Unconditionally run the CTestTestRerunFailed test.
* | Add a test for SYSTEM headers in INTERFACE libraries.Stephen Kelly2013-10-093-0/+51
|/
* Merge topic 'xcode-5-no-BuildDepends-help'Brad King2013-10-091-1/+1
|\ | | | | | | | | 7f459a6 Xcode: Teach BuildDepends test that Xcode >= 5 needs no help
| * Xcode: Teach BuildDepends test that Xcode >= 5 needs no helpBrad King2013-10-081-1/+1
| | | | | | | | | | | | Drop the HELP_XCODE workarounds needed on older Xcode versions when using Xcode >= 5. We now expect builds and rebuilds to work using proper dependencies with no special help.
* | Merge topic 'deprecation-message'Brad King2013-10-0914-2/+33
|\ \ | | | | | | | | | | | | | | | | | | f973737 GenerateExportHeader: Port to use message(DEPRECATION) f69606d Qt4Macros: Port to use message(DEPRECATION) 509c142 message: Add a DEPRECATION mode
| * | Qt4Macros: Port to use message(DEPRECATION)Stephen Kelly2013-10-082-2/+2
| | |
| * | message: Add a DEPRECATION modeStephen Kelly2013-10-0812-0/+31
| |/ | | | | | | | | | | By default, the message is not issued. If CMAKE_ERROR_DEPRECATED is on, the message is fatal. If CMAKE_WARN_DEPRECATED is on, the message is a warning.
* | Merge topic 'FindGTK2-targets'Brad King2013-10-0948-0/+1031
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7efef02 FindGTK2: Add tests for components and targets in gtk and gtkmm modules 95fc47a FindGTK2: Make pangocairo and cairo optional dependencies 26f790f FindGTK2: Change extra includes -> optional 24e0272 FindGTK2: do not skip target creation if optional dependencies are not found d5f130c FindGTK2: Refactor _GTK2_ADJUST_LIB_VARS into _GTK2_ADD_TARGET fffbd72 FindGTK2: Do not add freetype includes if they are not found b69720d FindGTK2: Add libraries to the GTK2_LIBRARIES variable only when found 425ec40 FindGTK2: Do not link libfreetype e9f46df FindGTK2: Add config directories only if different from include ones 56a79e1 FindGTK2: Set INTERFACE_COMPILE_DEFINITIONS target property only if not empty 4b47586 FindGTK2: Add check to ensure that target exists 61242cc FindGTK2: Fix gmodule, glibmm, pangoft2, and pangoxft targets 4b876de FindGTK2: Link freetype libs to targets including freetype includes 67e761f FindGTK2: Small cleanup 682eea3 FindGTK2: Do not require the GTK_ prefix in all the internal functions 0bc3763 FindGTK2: Better handling of include directories ...
| * | FindGTK2: Add tests for components and targets in gtk and gtkmm modulesDaniele E. Domenichelli2013-10-0848-0/+1031
| | |
* | | Merge topic 'haiku-updates'Brad King2013-10-092-2/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 54ef2be Haiku: Include files cleanup in cmCTest 38d5555 Haiku: Remove outdated preprocessor checks 1dc61f8 Haiku: Remove use of B_COMMON_DIRECTORY 7ebc1cb Haiku: Several fixes to platform module
| * | | Haiku: Several fixes to platform moduleAdrien Destugues2013-10-082-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Do not define BEOS anymore (this includes workarounds which we don't need most of the time in Haiku, so we prefer opt-in IF(HAIKU) in the cmake files instead). * On the other hand, do define UNIX (we are trying to be compliant) and HAIKU (there is still a number of things we don't do like the average UNIX clone) * Do not use UnixPaths, as our filesystem hierarchy isn't anything like what it expects. * Do not use -nostart, which the compiler doesn't know about anymore. This used to be an Haiku extension to gcc, and is equivalent to -shared which is the default gcc option. * While "dl" functions are provided in libroot, this is always implicitly linked so there is no need to tell cmake about it. * Forcing position-independent code is not needed, so remove it. * On the other hand, include appropriate linker options for executables and shared libraries. * Support for the two available compilers in Haiku (gcc2 and gcc4) and pick the right headers and libraries according to the currently selected one. * With the adoption of the package manager, the directory layout was changed. Tell cmake where to look for header files and libraries. * As we don't define BEOS anymore, enable the workaround we still need for HAIKU as well. This is the lack of a libm (it is part of the implicitly linked in libroot) Applied-by: Rolf Eike Beer <eike@sf-mail.de>
* | | | Merge topic 'unset-PARENT_SCOPE'Brad King2013-10-091-0/+27
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 261c248 unset: Add PARENT_SCOPE option
| * | | | unset: Add PARENT_SCOPE optionBrad King2013-10-081-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an unset() command option to remove a variable from the calling scope, just like the set() command's PARENT_SCOPE option. Teach the Unset test to cover such cases.
* | | | | Merge topic 'apple-clang-id'Brad King2013-10-093-2/+5
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | 1763c31 Set policy CMP0025 to NEW while building CMake itself aa53ee5 Add policy CMP0025 for Apple Clang compiler id compatibility ab65862 Clang: Add separate "AppleClang" compiler id
| * | | | Set policy CMP0025 to NEW while building CMake itselfBrad King2013-10-081-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CMake is aware of the policy's NEW behavior and the AppleClang compiler id. Set the policy to NEW explicitly to avoid the warning and get the NEW behavior. Also teach the RunCMake test infrastructure to build tests with -DCMAKE_POLICY_DEFAULT_CMP0025=NEW to avoid the policy warning in test output that must match specific regular expressions.
| * | | | Clang: Add separate "AppleClang" compiler idBrad King2013-10-082-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apple distributes their own Clang build with their own version numbers that differ from upstream Clang. Use the __apple_build_version__ symbol to identify the Apple Clang compiler and report the Apple Build Version as the fourth version component in CMAKE_<LANG>_COMPILER_VERSION. Add Compiler/AppleClang-<lang> and Platform/Darwin-AppleClang-<lang> modules that simply include the upstream equivalents. Fix comparisons of CMAKE_<LANG>_COMPILER_ID to Clang in CMake's own source and tests to account for AppleClang.
* | | | | Merge topic 'export-policy'Brad King2013-10-088-0/+58
|\ \ \ \ \ | |/ / / / | | | | | | | | | | | | | | | 904ff9f export: Add policy CMP0024 to disallow include() of export files
| * | | | export: Add policy CMP0024 to disallow include() of export filesStephen Kelly2013-10-078-0/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, export() is executed at configure-time. One problem with this is that certain exported properties like the link interface may not be complete at the point the export() is encountered leading to an incorrect or incomplete exported representation. Additionally, the generated IMPORTED_LOCATION property may even be incorrect if commands following the export() have an effect on it. Another problem is that it requires the C++ implementation of cmake to be capable of computing the exported information at configure time. This is a limitation on the cleanup and maintenance of the code. At some point in the future, this limitation will be dropped and more implementation will be moved from cmTarget to cmGeneratorTarget.
* | | | | Merge topic 'INTERFACE_LIBRARY-target-type'Brad King2013-10-0841-1/+448
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | ce0c303 install: Teach EXPORT option to handle INTERFACE_LIBRARY targets 435c912 export: Add support for INTERFACE_LIBRARY targets fe73226 Add the INTERFACE_LIBRARY target type.
| * | | | install: Teach EXPORT option to handle INTERFACE_LIBRARY targetsStephen Kelly2013-10-082-0/+33
| | | | |
| * | | | export: Add support for INTERFACE_LIBRARY targetsStephen Kelly2013-10-0811-0/+142
| | | | |
| * | | | Add the INTERFACE_LIBRARY target type.Stephen Kelly2013-10-0732-1/+273
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This target type only contains INTERFACE_* properties, so it can be used as a structural node. The target-specific commands enforce that they may only be used with the INTERFACE keyword when used with INTERFACE_LIBRARY targets. The old-style target properties matching LINK_INTERFACE_LIBRARIES_<CONFIG> are always ignored for this target type. The name of the INTERFACE_LIBRARY must match a validity generator expression. The validity is similar to that of an ALIAS target, but with the additional restriction that it may not contain double colons. Double colons will carry the meaning of IMPORTED or ALIAS targets in CMake 2.8.13. An ALIAS target may be created for an INTERFACE library. At this point it can not be exported and does not appear in the buildsystem and project files are not created for them. That may be added as a feature in a later commit. The generators need some changes to handle the INTERFACE_LIBRARY targets returned by cmComputeLinkInterface::GetItems. The Ninja generator does not use that API, so it doesn't require changes related to that.
* | | | Merge topic 'CheckStructHasMember_CXX'Brad King2013-10-0823-0/+193
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 73d28d2 CheckStructHasMember: Add support for C++
| * | | | CheckStructHasMember: Add support for C++Daniele E. Domenichelli2013-10-0823-0/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously if headers required to check if a struct has a member can be compiled with C++ compiler only, the check would fail because the C compiler fails. As a consequence, the result variable would be set to false, even if the struct has that particular member. Teach CHECK_STRUCT_HAS_MEMBER to accept a new optional argument LANGUAGE that allows one to explicitly set the compiler to use. The new signature is therefore: CHECK_STRUCT_HAS_MEMBER (<struct> <member> <header> <variable> [LANGUAGE <language>])
* | | | | Merge topic 'Add-coverage.py-Coverage'Brad King2013-10-085-0/+81
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | d0ec3a0 Adding support for the Python coverage.py tool.
| * | | | | Adding support for the Python coverage.py tool.Patrick Reynolds2013-10-085-0/+81
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | This assumes that coverage.py has been run in such a way to produce its standard XML output. This uses the Cobertura schema and should be somewhat generalizable.
* | | | | Merge topic 'ctest_rerun_failed'Brad King2013-10-081-0/+10
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | eb2decc ctest: Add --rerun-failed option
| * | | | ctest: Add --rerun-failed optionZack Galbreath2013-10-081-0/+10
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new command line argument to ctest. This allows users to rerun tests that failed during the previous call to ctest. This is accomplished by analyzing the most recently modified file named "^LastTestsFailed*" in the Testing/Temporary subdirectory of the project's binary directory.
* | | | Merge topic 'test-Qt4-quiet'Brad King2013-10-071-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | a3170c8 Tests: Make find_package(Qt4) QUIET
| * | | | Tests: Make find_package(Qt4) QUIETBrad King2013-10-031-1/+1
| |/ / / | | | | | | | | | | | | | | | | | | | | The lack of Qt4 on a system should silently skip the corresponding tests with no other messages. This is already the case for other find_package calls in Tests/CMakeLists.txt.
* | | | Merge topic 'IMPORTED-target-SYSTEM-includes'Brad King2013-10-075-0/+95
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | a63fcbc Always consider includes from IMPORTED targets to be SYSTEM.
| * | | | Always consider includes from IMPORTED targets to be SYSTEM.Stephen Kelly2013-09-245-0/+95
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | Introduce a target property to control this behavior variable to set the default value for the target property. This does not affect try_compile runs.
* | | | Merge topic 'test-property-genex'Brad King2013-10-074-1/+74
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6a47c37 add_test: Mention generator expressions in old-style add_test docs d331292 cmTestGenerator: Evaluate generator expressions in test properties 6fe5c4a cmTestGenerator: Separate test properties for each configuration
| * | | | cmTestGenerator: Evaluate generator expressions in test propertiesBen Boeckel2013-09-204-1/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is useful for cases like: add_test(NAME mytest COMMAND mydriver $<TARGET_FILE:myexe>) set_tests_properties(mytest PROPERTIES REQUIRED_FILES "$<TARGET_FILE:myexe>" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>" ) In this example we require the actual test executable to exist to run the test in addition to the test driver at argv[0]. Also the $<CONFIGURATION> expression improves over \${CTEST_CONFIGURATION_TYPE} because the latter is not normalized for case-sensitive filesystems.
* | | | | Merge topic 'RunCMake-ignore-valgrind-lines'Brad King2013-10-071-0/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 4953330 Tests/RunCMake: Tolerate valgrind lines in CMake output
| * | | | | Tests/RunCMake: Tolerate valgrind lines in CMake outputBrad King2013-09-161-0/+1
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | When RunCMake tests run during dynamic analysis, valgrind may add lines of the form "==[0-9]+==..." to the output. Remove such lines from the actual output before matching it against the expected output.
* | | | | Merge topic 'cleanup-CTestTestMemcheck'Brad King2013-10-071-10/+27
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e8e67ae CTestTestMemcheck: Fix matching of malloc debug messages 8ea62fd CTestTestMemcheck: Tolerate trailing "==..." lines from valgrind f169f48 CTestTestMemcheck: Refactor output expectation regex generation
| * | | | | CTestTestMemcheck: Fix matching of malloc debug messagesBrad King2013-09-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 10bc50ea (Tests: ignore Guard Malloc messages in MemChecker tests, 2013-05-13) we forgot to escape backslashes in the CMake language to get them into the regex. Add them now.
| * | | | | CTestTestMemcheck: Tolerate trailing "==..." lines from valgrindBrad King2013-08-161-1/+2
| | | | | |
| * | | | | CTestTestMemcheck: Refactor output expectation regex generationBrad King2013-08-161-10/+26
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor generation of PASS_REGULAR_EXPRESSION for tests CTestTestMemcheckDummyPurify CTestTestMemcheckDummyValgrind CTestTestMemcheckDummyValgrindPrePost CTestTestMemcheckDummyValgrindIgnoreMemcheck Avoid duplicating the normal ctest output matching expression. Use literal newlines instead of "\n" to improve readability. Integrate matching of guard-malloc lines at the end of the output with expressions matching tool output like lines for BullseyeCoverage.