summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* BUG: Parse more bzr xml output encodingsBrad King2009-05-181-0/+4
| | | | | | | The BZR xml output plugin can use some encodings that are not recognized by expat, which leads to "Error parsing bzr log xml: unknown encoding". This works around the problem by giving expat a mapping, and adds a test. Patch from Tom Vercauteren. See issue #6857.
* ENH: Teach CTest to handle Bazaar repositoriesBrad King2009-05-142-0/+164
| | | | | | | | This creates cmCTestBZR to drive CTest Update handling on bzr-based work trees. Currently we always update to the head of the remote tracking branch (bzr pull), so the nightly start time is ignored for Nightly builds. A later change will address this. Patch from Tom Vercauteren. See issue #6857.
* BUG: file(COPY) test should not make read-only dirBrad King2009-05-131-2/+2
| | | | | | | CMake directory removal code cannot remove content from read-only directories (a separate bug which will be fixed). Therefore we should not create them in the StringFileTest. This tweaks the file(COPY) call to test not giving OWNER_WRITE to files rather than directories.
* ENH: Always imply CLEAN_DIRECT_OUTPUT target propBrad King2009-05-013-3/+3
| | | | | | | | | | | | | | This property was left from before CMake always linked using full path library names for targets it builds. In order to safely link with "-lfoo" we needed to avoid having both shared and static libraries in the build tree for targets that switch on BUILD_SHARED_LIBS. This meant cleaning both shared and static names before creating the library, which led to the creation of CLEAN_DIRECT_OUTPUT to disable the behavior. Now that we always link with a full path we do not need to clean old library names left from an alternate setting of BUILD_SHARED_LIBS. This change removes the CLEAN_DIRECT_OUTPUT property and instead uses its behavior always. It removes some complexity from cmTarget internally.
* ENH: Allow more specification of target file namesBrad King2009-05-013-2/+19
| | | | | | | | | | | | | | This creates target properties ARCHIVE_OUTPUT_NAME, LIBRARY_OUTPUT_NAME, and RUNTIME_OUTPUT_NAME, and per-configuration equivalent properties ARCHIVE_OUTPUT_NAME_<CONFIG>, LIBRARY_OUTPUT_NAME_<CONFIG>, and RUNTIME_OUTPUT_NAME_<CONFIG>. They allow specification of target output file names on a per-type, per-configuration basis. For example, a .dll and its .lib import library may have different base names. For consistency and to avoid ambiguity, the old <CONFIG>_OUTPUT_NAME property is now also available as OUTPUT_NAME_<CONFIG>. See issue #8920.
* BUG: Fix CMake.File test for deep dir nameBrad King2009-04-291-1/+1
| | | | | This fixes the regex checking expected output of Copy-NoFile to account for line wrapping when the input directory name is long.
* ENH: Test file(COPY) failure casesBrad King2009-04-299-0/+58
| | | | | This tests some cases of bad arguments to the file(COPY) signature. It checks that the proper error messages are produced.
* ENH: Create file(COPY) command signatureBrad King2009-04-291-1/+10
| | | | | | | | The file(INSTALL) command has long been undocumented and used only to implement install() scripts. We now document it and provide a similar file(COPY) signature which is useful in general-purpose scripts. It provides the capabilities of install(DIRECTORY) and install(FILES) but operates immediately instead of contributing to install scripts.
* ENH: Test spaces in non-string preprocessor valuesBrad King2009-04-241-1/+1
| | | | | | | This extends the Preprocessor test to put spaces in the value of a definition that is not a quoted string. In particular this tests that VS6 supports values with spaces if they do not have '"', '$', or ';'. See issue #8779.
* ENH: Support more preprocessor values in VS6Brad King2009-04-241-2/+3
| | | | | | | | | Previously we rejected all preprocessor definition values containing spaces for the VS6 IDE generator. In fact VS6 does support spaces but not in combination with '"', '$', or ';', and only if we use the sytnax '-DNAME="value with spaces"' instead of '-D"NAME=value with spaces"'. Now we support all definition values that do not have one of these invalid pairs. See issue #8779.
* BUG: Fix CTest.UpdateGIT test for older gitBrad King2009-04-231-1/+1
| | | | | Older git versions do not support 'git init --bare', so we instead use the more proper 'git --bare init'.
* ENH: Teach CTest to handle git repositoriesBrad King2009-04-222-0/+187
| | | | | | | This creates cmCTestGIT to drive CTest Update handling on git-based work trees. Currently we always update to the head of the remote tracking branch (git pull), so the nightly start time is ignored for Nightly builds. A later change will address this. See issue #6994.
* ENH: make sure tests for cpack are run correctlyBill Hoffman2009-04-211-1/+1
|
* ENH: make sure tests for cpack are run correctlyBill Hoffman2009-04-211-2/+2
|
* ENH: make sure tests for cpack are run correctlyBill Hoffman2009-04-211-1/+1
|
* ENH: make sure tests for cpack are run correctlyBill Hoffman2009-04-211-2/+2
|
* ENH: Create file(RENAME) command modeBrad King2009-04-151-1/+3
| | | | | This creates command "file(RENAME <oldname> <newname>)" to rename a file or directory within a single disk volume.
* ENH: Allow lists in AddExternalProject argumentsBrad King2009-04-092-0/+8
| | | | | | | | | | | | | | | | | | The add_external_project function separates its arguments with ';' separators, so previously no command line argument could contain one. When specifying CMAKE_ARGS, some -D argument values may need to contain a semicolon to form lists in the external project cache. This adds add_external_project argument LIST_SEPARATOR to specify a list separator string. The separator is replaced by ';' in arguments to any command created to drive the external project. For example: add_external_project(... LIST_SEPARATOR :: CMAKE_ARGS -DSOME_LIST:STRING=A::B::C ...) passes "-DSOME_LIST:STRING=A;B;C" to CMake for the external project.
* ENH: Allow IMPORTED_IMPLIB w/o IMPORTED_LOCATIONBrad King2009-04-084-3/+36
| | | | | | Linking to a Windows shared library (.dll) requires only its import library (.lib). This teaches CMake to recognize SHARED IMPORTED library targets that set only IMPORTED_IMPLIB and not IMPORTED_LOCATION.
* ENH: Teach Update* tests to report local mod stepBrad King2009-04-082-0/+2
| | | | | The CTest.UpdateCVS/SVN tests report every step with a message. This adds a message for the local modification step.
* ENH: Make UpdateCVS test robust to 1s file time resBrad King2009-04-081-0/+7
| | | | | | | CVS clients recognize file modifications only if a file's timestamp is newer than its CVS/Entries line. This fixes intermittent failure of the test on filesystems with low timestamp resolution by delaying before creating a local modification.
* ENH: Test transitive link to subdir-imported libBrad King2009-04-066-62/+97
| | | | | This tests linking to an imported target that is not visible but is a transitive dependency of a target that is visible. See issue #8843.
* STYLE: White space only change to see if continuous is working on new ↵David Cole2009-03-311-1/+0
| | | | dashboard machine...
* STYLE: White space only change to see if continuous is working on new ↵David Cole2009-03-311-0/+1
| | | | dashboard machine...
* ENH: Generalize AddExternalProject step creationBrad King2009-03-301-1/+8
| | | | | | This creates function 'add_external_project_step' to centralize creation of external project steps. Users may call it to add custom steps to external project builds.
* BUG: Fix CMAKE_CURRENT_LIST_FILE in macrosBrad King2009-03-252-0/+15
| | | | | | | | | | | | | | | | | | | | | The value of CMAKE_CURRENT_LIST_FILE is supposed to be the list file currently being executed. Before macros were introduced this was always the context of the argument referencing the variable. Our original implementation of macros replaced the context of command arguments inside the macro with that of the arguments of the calling context. This worked recursively, but only worked when macros had at least one argument. Furthermore, it caused parsing errors of the arguments to report the wrong location (calling context instead of line with error). The commit "Improve context for errors in macros" fixed the latter bug by keeping the lexical context of command arguments in macros. It broke evaluation of CMAKE_CURRENT_LIST_FILE because the calling context was no longer preserved in the argument referencing the variable. However, since our list file processing now maintains the proper value of CMAKE_CURRENT_LIST_FILE with dynamic scope we no longer need the context of the argument and can just evaluate the variable normally.
* ENH: Support preprocessor def values in VS6Brad King2009-03-233-33/+34
| | | | | | | | | The add_definitions() command and COMPILE_DEFINITIONS dir/tgt/src properties support preprocessor definitions with values. Previously values were not supported in the VS6 generator even though the native tool supports them. It is only values with spaces that VS6 does not support. This enables support and instead complains only for values with spaces. See issue #8779.
* ENH: Add patch step for add_external_projectBrad King2009-03-182-1/+24
| | | | | | The patch step runs parallel to the update step since it does not make sense to have both. Configuration of the step requires specification of a PATCH_COMMAND argument to add_external_project.
* ENH: Improve add_external_project interfaceBrad King2009-03-181-18/+16
| | | | | | | | | | | | | | | | This rewrites the keyword/argument parsing and handling in the AddExternalProject module to use arguments more literally: - The strict keyword-value pairing is gone in favor of keywords with arbitrary non-keyword values. This avoids requiring users to escape spaces and quotes in command lines. - Customized step command lines are now specified with a single keyword <step>_COMMAND instead of putting the arguments in a separate entry (previously called <step>_ARGS). - Build step custom commands now use VERBATIM mode so that arguments are correctly escaped on the command line during builds.
* ENH: New foreach(<var> IN ...) modeBrad King2009-03-171-0/+19
| | | | | | | | This creates a new mode of the foreach command which allows precise iteration even over empty elements. This mode may be safely extended with more keyword arguments in the future. The cost now is possibly breaking scripts that iterate over a list of items beginning with 'IN', but there is no other way to extend the syntax in a readable way.
* ENH: Allow projects to disable per-rule echo linesBrad King2009-03-163-6/+6
| | | | | | | | | This creates global property RULE_MESSAGES which can be set to disbale per-rule progress and action reporting. On Windows, these reports may cause a noticable delay due to the cost of starting extra processes. This feature will allow scripted builds to avoid the cost since they do not need detailed information anyway. This replaces the RULE_PROGRESS property created earlier as it is more complete. See issue #8726.
* ENH: Allow projects to disable per-rule progressBrad King2009-03-163-0/+9
| | | | | | | | This creates global property RULE_PROGRESS which can be set to disbale per-rule progress reporting. On Windows, progress reports may cause a noticable delay due to the cost of starting an extra process. This feature will allow scripted builds to avoid the cost since they do not need detailed progress anyway. See issue #8726.
* ENH: Add NAME mode to ADD_TEST commandBrad King2009-03-162-1/+11
| | | | | | | | This creates command mode add_test(NAME ...). This signature is extensible with more keyword arguments later. The main purpose is to enable automatic replacement of target names with built target file locations. A side effect of this feature is support for tests that only run under specific configurations.
* ENH: Teach set/get_property about CACHE propertiesBrad King2009-03-101-0/+26
| | | | | | | | This adds the CACHE option to set_property and get_property commands. This allows full control over cache entry information, so advanced users can tweak their project cache as desired. The set_property command allows only pre-defined CACHE properties to be set since others would not persist anyway.
* STYLE: White space only change to see if continuous is working on new ↵David Cole2009-03-061-1/+0
| | | | dashboard machine...
* ENH: Teach message() how to display warningsBrad King2009-03-063-0/+35
| | | | | This adds message(WARNING) and message(AUTHOR_WARNING) command modes and fully documents the command behavior in all modes.
* ENH: Overhaul CMake version numberingBrad King2009-03-052-0/+10
| | | | | | | | | | | | | This moves the version numbers into an isolated configured header so that not all of CMake needs to rebuild when the version changes. Previously we had spaces, dashes and/or the word 'patch' randomly chosen before the patch number. Now we always report version numbers in the traditional format "<major>.<minor>.<patch>[-rc<rc>]". We still use odd minor numbers for development versions. Now we also use the CCYYMMDD date as the patch number of development versions, thus allowing tests for exact CMake versions.
* ENH: Cleanup cmake --build interface.Brad King2009-03-041-1/+1
| | | | | | | | | | | This cleans up the 'cmake --build' command-line interface: - Rename --clean to --clean-first to better describe it. - Replace --extra-options with a -- separator to simplify passing of multiple native build tool options. - Document the options in the main CMake man page description of the --build option, and shares this with the usage message. - Require --build to be the first argument when present. - Move implementation into cmakemain where it belongs.
* ENH: Better recursive make in AddExternalProjectBrad King2009-03-041-8/+16
| | | | | | | This teaches AddExternalProject to run "$(MAKE)" for build and install steps of CMake-based external projects when using a Makefile generator. It allows the external project to participate in a parallel make invoked on the superproject.
* ENH: Extend CTest.UpdateSVN to test local modsBrad King2009-02-263-1/+13
| | | | | This teaches the test to create local modifications in the work tree before updating.
* ENH: Test included header in Fortran preprocessingBrad King2009-02-243-5/+7
| | | | | This extends the Fortran preprocessing test to include a header file through a preprocessor directive.
* ENH: Add install(DIRECTORY) option 'OPTIONAL'Brad King2009-02-242-0/+6
| | | | | | This adds the OPTIONAL option to the install(DIRECTORY) command. It tells the installation rule that it is not an error if the source directory does not exist. See issue #8394.
* BUG: Fix CTest.UpdateCVS/SVN tests for win slashesBrad King2009-02-231-1/+3
| | | | | This fixes the tests to allow windows slashes in reported file names in the generated Update.xml file.
* ENH: Test svn updates with space in author nameBrad King2009-02-231-1/+1
| | | | | This enhances the CTest.UpdateSVN test with a space in the test author name. It will check that author name parsing works correctly.
* ENH: Enhance CTest.UpdateCVS/SVN testsBrad King2009-02-233-6/+57
| | | | | This adds a source tree subdirectory to the content of the test projects. It also smoke tests more than one revision worth of changes.
* ENH: Better failure output from CTest.Update*Brad King2009-02-231-1/+1
| | | | | This teaches CTestUpdateCommon to report the process exit condition from failed child processes executed during tests.
* ENH: make sure multiple archs are only tested when the workBill Hoffman2009-02-191-1/+7
|
* BUG: fix xcode depend issue and add a test for itBill Hoffman2009-02-191-1/+3
|
* ENH: Add get_filename_component(... REALPATH)Brad King2009-02-092-0/+58
| | | | | | | This patch from Philip Lowman creates a REALPATH mode in the get_filename_component command. It is like ABSOLUTE, but will also resolve symlinks (which ABSOLUTE once did but was broken long ago). See issue #8423.
* BUG: Alternative fix to bug #8423Brad King2009-02-062-44/+0
| | | | | | | | | The patch used to fix this bug used SystemTools::GetRealPath which works only for existing files. It broke the case of using the command get_filename_component for a non-existing file. Also, it changed long-standing behavior in a possibly incompatible way even for existing files. This reverts the original fix and instead updates the documentation to be consistent with the behavior.