summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* Genex: Fix stack overflow in transitive property evaluation.Stephen Kelly2014-07-0120-0/+128
| | | | | | | | | | | | | | | | | | | | Commit v2.8.11~156^2~2 (Expand includes and defines transitively in 'external' genexes., 2013-02-13) introduced a recursive loop and a stack overflow during evaluation of a link implementation which depends on a transitive property, such as add_library(empty1 ...) add_library(empty2 ...) target_link_libraries(empty1 PRIVATE $<$<STREQUAL:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>,/foo/bar>:empty2> ) There is no use-case for code like that currently, but it should not cause a stack overflow. Avoid the recursion by reporting an error early if a case like this is found.
* Merge topic 'CTestTestTimeout-increase'Brad King2014-06-271-5/+2
|\ | | | | | | | | a73373a8 CTestTestTimeout: increase the timeout for all platforms
| * CTestTestTimeout: increase the timeout for all platformsRolf Eike Beer2014-06-251-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | Slow or busy machines not running Cygwin may also fail the 1 second timeout: CMake Error at CTestTestTimeout/test.cmake:38 (message): Log does not exist: .../Tests/CTestTestTimeout/timeout.log http://open.cdash.org/testDetails.php?test=264045338&build=3382733 http://open.cdash.org/testDetails.php?test=263904235&build=3382056
* | Merge topic 'install-messages'Brad King2014-06-2718-0/+143
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d19b64d6 install(DIRECTORY): Add MESSAGE_NEVER option to avoid output (#13761) c9568de5 install: Add CMAKE_INSTALL_MESSAGE variable (#13761) ec7cf7ea install: Thread message level setting through internal API abebcd23 file(INSTALL): Add undocumented options to control output verbosity 464567a5 file(INSTALL): Report existing DIRECTORY as Up-to-date f701b0b7 file(INSTALL): Do not pre-create DESTINATION for DIRECTORY f0a01962 cmInstallTargetGenerator: Drop default constructor arguments 67815894 Help: Add install() command document section headers
| * | install(DIRECTORY): Add MESSAGE_NEVER option to avoid output (#13761)Brad King2014-06-246-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Installing large directories, e.g., the output of a doxygen run, prints one line per file resulting in too much noise in the build output. Add an option to the install(DIRECTORY) command to not print anything upon make install. Extend the RunCMake.install test with cases covering MESSAGE_NEVER behavior of the install(DIRECTORY) command. Suggested-by: Stefan Eilemann <Stefan.Eilemann@epfl.ch>
| * | install: Add CMAKE_INSTALL_MESSAGE variable (#13761)Brad King2014-06-244-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | Create a variable to allow users to control which installation messages are printed. In particular, provide a "LAZY" setting that prints "Installing" messages but not "Up-to-date" messages. This is desirable for incremental re-installations. Suggested-by: J Decker <d3ck0r@gmail.com>
| * | file(INSTALL): Add undocumented options to control output verbosityBrad King2014-06-246-0/+45
| | | | | | | | | | | | | | | | | | Create options "MESSAGE_ALWAYS", "MESSAGE_LAZY", and "MESSAGE_NEVER" to specify whether to print the "Installing" and "Up-to-date" messages. Extend the RunCMake.file test with cases covering these options.
| * | file(INSTALL): Report existing DIRECTORY as Up-to-dateBrad King2014-06-248-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach cmFileCopier::InstallDirectory to detect whether the destination directory exists. If so, report it as "Up-to-date" instead of "Installing". This resolves message asymmetry with file installations. Extend the RunCMake.file and RunCMake.install tests to check the installation output on both the first and second run. Suggested-by: J Decker <d3ck0r@gmail.com>
* | | Merge topic 'refactor-link-internals'Brad King2014-06-254-2/+23
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f5c18c9c cmTarget: Drop GetDirectLinkLibraries methods 281eb3d8 cmTarget: Improve HaveBuildTreeRPATH implementation d912220e cmTarget: Lookup targets in LinkInterface and LinkImplementation edce4351 cmExportFileGenerator: Make SetImportLinkProperty a template 097be413 cmTarget: Add GetUtilityItems to get target ordering dependencies 4dad5fd2 cmTarget: Add cmLinkItem to refer to a target by name and pointer a2723442 Fix scope of transitive target name lookups 069d60fe cmTarget: Add method to lookup other targets in a target's scope 47ab3ca6 cmTarget: Constify GetLinkImplementationClosure results 9f3ed029 cmTarget: Constify GetTransitivePropertyTargets results 6f0951af cmTarget: Drop 'head' target from GetImportInfo 0dc9e88d cmTarget: Remove 'head' argument from GetLinkImplementation 4ac72455 cmTarget: Drop 'head' argument from GetLinkClosure bcdb7ff9 cmTarget: Remove 'head' argument from GetLinkerLanguage bd9b667b cmComputeLinkInformation: Remove 'head' argument 06328dd5 cmTarget: Remove 'head' argument from GetLinkInformation ...
| * | Fix scope of transitive target name lookupsBrad King2014-06-234-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In cmTarget, cmGeneratorTarget, and cmGeneratorExpressionEvaluator, fix target name lookups to occur in the cmMakefile context of the target that referenced the name, not the current 'head' target. The context matters for imported targets because they are directory-scoped instead of globally unique. We already do this in cmComputeLinkDepends and cmComputeTargetDepends. Extend the InterfaceLibrary test with an example covering this behavior.
* | | Update CDash server URLBrad King2014-06-2420-40/+40
| | | | | | | | | | | | It is now at open.cdash.org and does not start in "/CDash".
* | | Tests: Fix CMAKE_TESTS_CDASH_SERVER parsingBrad King2014-06-241-1/+1
| | | | | | | | | | | | | | | Allow the value to end without a slash and have an empty server path component. This is needed to match "http://open.cdash.org" correctly.
* | | cmake: Add '-E env' command-line toolBrad King2014-06-2311-0/+24
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | Extend the cmake command-line interface to support cmake -E env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]... This will be useful to run processes with modified environments without using a shell or a full "cmake -P" script to wrap it. Extend the RunCMake.CommandLine test to cover success and failure cases. Inspired-by: Jonathan Bohren <jbo@jhu.edu>
* | Merge topic 'vs-subdir-sln-depends'Brad King2014-06-163-5/+15
|\ \ | | | | | | | | | | | | | | | | | | cb67509b VS: Remove unused parameter of WriteTargetConfigurations 790e1677 VS: Fix subproject .sln dependencies on custom targets 5fba44cf VS: Move VS-only API out of cmGlobalGenerator
| * | VS: Fix subproject .sln dependencies on custom targetsBrad King2014-06-123-5/+15
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each project listed in a .sln must be marked (or not) as part of the "default build" for each configuration. For targets created by the add_custom_target() command we add them to the default build if they are not excluded in some way or if another target depends on them. In the top-level .sln, a custom target is excluded if it is not created with the ALL option to add_custom_target. In subdirectory .sln files, a target may also be excluded if it is not within the directory and is brought into the solution only due to a dependency from another target in the solution. Fix the "IsPartOfDefaultBuild" and "IsDependedOn" methods to check every target to be included in the .sln for a dependency on the custom target. Otherwise transitive dependencies through targets not in the current subdirectory will not be considered. Extend the SubProject test with a custom target to cover this case. Reported-by: William Deurwaarder <William.Deurwaarder@tomtom.com> Reported-by: Dirk Steenpass <dirk.steenpass@gmail.com>
* | Merge topic 'add_jacoco_coverage_parsing'Brad King2014-06-134-0/+77
|\ \ | |/ |/| | | | | 558c2190 CTest: Add Jacoco Coverage functionality
| * CTest: Add Jacoco Coverage functionalityJoseph Snyder2014-06-124-0/+77
| | | | | | | | | | | | | | | | Add the ability to parse the XML output of the Jacoco tool. Jacoco (www.eclemma.org/jacoco) is a Java coverage tool. Add and integrate a class for the parser and include a test which utilizes the new parser.
* | Merge topic 'WriteCompilerDetectionHeader-compiler-versions'Brad King2014-06-103-1/+24
|\ \ | | | | | | | | | | | | | | | | | | | | | ddec418a Features: Add compiler version support to WriteCompilerDetectionHeader. b7029576 Project: Add configurable name for version computation macros. 78acaafe Project: Separate simulated compiler id from version detection. 567af1a5 WCDH: Issue a better message for version compatibility.
| * | Features: Add compiler version support to WriteCompilerDetectionHeader.Stephen Kelly2014-06-092-0/+19
| | |
| * | WCDH: Issue a better message for version compatibility.Stephen Kelly2014-06-051-1/+5
| | |
* | | cmake: Do not open directories as scripts (#14966)Brad King2014-06-093-0/+4
| | | | | | | | | | | | | | | Check if a file path is a directory before opening it. Extend the RunCMake.CommandLine test with a case running "cmake -P" on a directory.
* | | Merge topic 'dev/backtrace-performance'Brad King2014-06-091-2/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 86be733f cmGeneratorExpression: Add workaround for Borland compiler 3495ab0a tests: update unused variable test expected output 2a1b2d84 backtrace: Convert to local paths in IssueMessage a0829205 genex: remove the need for backtraces efc20569 cmake: remove dummy backtraces for IssueMessage d46c650d cmMakefile: return a backtrace
| * | | tests: update unused variable test expected outputBen Boeckel2014-06-051-2/+2
| | |/ | |/| | | | | | | | | | The expected output is now a relative path, not a full path. Update the pass/fail detection accordingly.
* | | Merge topic 'testRST-no-preprocessor-FILE'Brad King2014-06-092-3/+10
|\ \ \ | | | | | | | | | | | | | | | | 218699eb Tests: Fix CMakeLib.testRST for relative __FILE__
| * | | Tests: Fix CMakeLib.testRST for relative __FILE__Brad King2014-06-062-3/+10
| | | | | | | | | | | | | | | | | | | | Pass the test input directory as a runtime argument instead of depending on __FILE__ to locate it.
* | | | Merge topic 'xcode15-fix-RunCMake-TargetSources'Brad King2014-06-093-5/+8
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 0366ba5d Tests: Fix RunCMake.TargetSources on Xcode 1.5
| * | | | Tests: Fix RunCMake.TargetSources on Xcode 1.5Brad King2014-06-063-5/+8
| |/ / / | | | | | | | | | | | | | | | | | | | | Xcode 1.5 does not support multiple configurations. The generator also adds some sources internally that cause extra OriginDebug output. Update the expected output to tolerate it.
* | | | Merge topic 'fix-ctest-label-regex'Brad King2014-06-093-0/+56
|\ \ \ \ | |/ / / |/| | | | | | | | | | | 887532f0 CTest: Fix combined inclusive/exclusive label regular expressions
| * | | CTest: Fix combined inclusive/exclusive label regular expressionsNils Gladitz2014-06-063-0/+56
| |/ /
* | | tests: allow RelWithDebInfo and MinSizeRel configs to workBen Boeckel2014-06-052-0/+16
|/ /
* | Merge topic 'delay-generator-toolset'Brad King2014-06-0510-1/+61
|\ \ | | | | | | | | | | | | | | | | | | 528e8af1 Allow a toolchain file to specify a generator toolset 98afb454 VS: Split user- and generator-provided PlatformToolset 3e9f6e36 Xcode: Rename internal variable {Platform => Generator}Toolset
| * | Allow a toolchain file to specify a generator toolsetBrad King2014-06-0410-1/+61
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delay use of CMAKE_GENERATOR_TOOLSET until the CMakeSystem.cmake file has been configured and loaded during the first project() or enable_language() command. This gives the toolchain file named by CMAKE_TOOLCHAIN_FILE a chance to set CMAKE_GENERATOR_TOOLSET. This point is still early enough to set the generator toolset prior to the initialization of any languages that might use the toolset. The cmake::GeneratorToolset member variable remains an indication of what was specified by the -T option or loaded from the cache. It does not need to be updated based on the toolchain file setting. The cmMakefile::TryCompile can still pass cmake::GeneratorToolset into the inner instance because the try-compiled project will do platform and language initialization using the CMakeSystem module configured for the outer project. Extend the RunCMake.GeneratorToolset test with cases that use a toolchain file to set CMAKE_GENERATOR_TOOLSET.
* | Merge topic 'expand_cobertura_coverage'Brad King2014-06-054-0/+190
|\ \ | |/ |/| | | | | | | 50daf239 CTest: Generalize Cobertura coverage format handling a2822d30 CTest: Rename coverage implementation for "Python" to "Cobertura"
| * CTest: Generalize Cobertura coverage format handlingJoseph Snyder2014-06-044-0/+190
| | | | | | | | | | | | | | | | | | Add support for Cobertura coverage files written by Java. Add a test which uses the report from a Java run of Cobertura to calculate coverage. In the documentation of CTEST_COVERAGE_COMMAND, give a sample .sh file to merge the Cobertura .ser files and generate the XML report from the merged file.
* | Merge topic 'fix-build-crash-on-bad-generator'Brad King2014-06-049-0/+14
|\ \ | |/ |/| | | | | 44e2923f cmake: Fix --build crash on bad CMAKE_GENERATOR in cache
| * cmake: Fix --build crash on bad CMAKE_GENERATOR in cacheBrad King2014-06-039-0/+14
| | | | | | | | | | | | | | | | | | | | If we fail to create the generator named by CMAKE_GENERATOR, exit with an error message instead of crashing. While at it, fix the wording of the error message when CMAKE_GENERATOR is not set. Extend the RunCMake.CommandLine test with cases covering the "cmake --build" option when the named directory does not provide a CMakeCache.txt with a valid CMAKE_GENERATOR.
| * CMP0022: Fix link language propagation in NEW behaviorBrad King2014-05-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The languages used in compiling STATIC libraries need to be propagated to dependents regardless of the settings of INTERFACE_LINK_LIBRARIES or CMP0022. They are independent of the libraries in the link interface. Prior to commit v2.8.12~192^2~2 (Introduce the INTERFACE_LINK_LIBRARIES property, 2013-06-04) the cmTarget::ComputeLinkInterface code path for "explicitLibraries" could never be taken for STATIC libraries, so the logic to propagate languages existed only in the non-explicitLibraries code path. After that commit, INTERFACE_LINK_LIBRARIES could be set for STATIC libraries to cause the "explicitLibraries" code path to be taken. The commit also left the old non-explicitLibraries code path conditional on CMP0022 not being set to NEW. Thus link language propagation was left missing from two cases by that commit. The explicitLibraries code path was fixed to propagate languages by commit v2.8.12~149^2~1 (cmTarget: Fix iface libraries and languages for static libraries, 2013-07-26). However, the non-explicitLibraries case was never taught to propagate languages when CMP0022 is set to NEW. Fix that now. Factor the logic to propagate link languages out of the link interface libraries conditions so that it always occurs. Update Tests/Fortran to set CMP0022 to NEW to test this case (because the test passes only if link language propagation works).
| * cmTarget: Evaluate CMP0026 in calling contextBrad King2014-05-093-0/+17
| | | | | | | | | | | | | | | | | | | | This policy should be checked at the call site that tries to access the LOCATION property, not the directory scope containing the target. Thread the caller context through cmTarget::GetProperty to use for checking the policy setting and emitting a diagnostic with proper backtrace. Extend the RunCMake.CMP0026 test with a cross-directory case.
* | Merge topic 'feature-extensions-by-default'Brad King2014-06-029-6/+20
|\ \ | | | | | | | | | | | | 60a981ea Features: Enable compiler extensions by default.
| * | Features: Enable compiler extensions by default.Stephen Kelly2014-05-319-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compilers enable their extensions by default, and disabling them implicitly can lead to results which are surprising or non-obvious to debug. http://public.kitware.com/pipermail/cmake-developers/2014-May/010575.html http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/10214 https://www.mail-archive.com/cmake-developers@cmake.org/msg10116.html (Compiler feature extensions by default, 29 May 2014)
* | | Merge topic 'consistent-genex-target-message'Brad King2014-05-3019-0/+116
|\ \ \ | |/ / |/| | | | | | | | fb2fa476 Genex: Clarify error message on use with non-binary targets (#14899).
| * | Genex: Clarify error message on use with non-binary targets (#14899).Stephen Kelly2014-05-2919-0/+116
| | |
* | | Merge topic 'normalize-custom-command-paths'Brad King2014-05-291-0/+27
|\ \ \ | | | | | | | | | | | | | | | | c4af46b4 add_custom_command: Normalize OUTPUT and DEPENDS paths.
| * | | add_custom_command: Normalize OUTPUT and DEPENDS paths.Stephen Kelly2014-05-281-0/+27
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While tracing dependencies of a target, cmTargetTraceDependencies follows sources by full path to determine if the source is to be produced by a custom command. Commit 4959f341 (cmSourceFileLocation: Collapse full path for directory comparisons., 2014-03-27) changed the storage of target sources to be in the form of a normalized path instead of an unnormalized path. The path is followed by looking it up in a mapping via cmMakefile::GetSourceFileWithOutput to acquire an appropriate cmSourceFile. The mapping is populated with the OUTPUT components of add_custom_command invocations, however it is populated with unnormalized paths. This means that the tracing logic does not find appropriate cmSourceFiles, and does not generate appropriate build rules for the generated sources. Normalize the paths in the OUTPUT components of add_custom_command to resolve this. The paths in the DEPENDS component of add_custom_command are also not normalized, leading to the same problem again. Normalize the depends paths after generator evaluation and expansion.
* | | Merge topic 'cxx14-features'Brad King2014-05-2913-1/+141
|\ \ \ | |/ / |/| | | | | | | | dd043c3f Features: Add support for C++14 features.
| * | Features: Add support for C++14 features.Stephen Kelly2014-05-2213-1/+141
| | | | | | | | | | | | Record the features implemented by GNU 4.9 and Clang 3.4.
* | | Merge topic 'cpack-properties'Brad King2014-05-2819-0/+94
|\ \ \ | | | | | | | | | | | | | | | | | | | | d0b1d2a6 CPackWiX: Implement CPACK_NEVER_OVERWRITE and CPACK_PERMANENT properties 15a8af21 Add an "installed file" property scope
| * | | Add an "installed file" property scopeNils Gladitz2014-05-2819-0/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach set_property and get_property an "INSTALL" property type to be associated with install-tree file paths. Make the properties available to CPack for use during packaging. Add a "prop_inst" Sphinx domain object type for documentation of such properties.
* | | | Merge topic 'revise-CTestTestTimeout'Brad King2014-05-277-37/+40
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 9afcecaf Tests: Try to make CTestTestTimeout more robust
| * | | | Tests: Try to make CTestTestTimeout more robustBrad King2014-05-237-37/+40
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | Write to the timeout test log file before sleeping and flush to be sure it is created. Move the check that the after-sleep line is not written out to the ctest script. Rename the CheckChild test to TestSleep since it no longer checks. Do not try to read the log file if it does not exist.