Commit Graph

1122 Commits

Author SHA1 Message Date
Bill Hoffman 572cf0212f ENH: make sure tests for cpack are run correctly 2009-04-21 17:12:37 -04:00
Brad King 0d92350bb6 ENH: Create file(RENAME) command mode
This creates command "file(RENAME <oldname> <newname>)" to rename a file
or directory within a single disk volume.
2009-04-15 09:58:13 -04:00
Brad King 68248be52e ENH: Allow lists in AddExternalProject arguments
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.
2009-04-09 13:56:08 -04:00
Brad King d05e98f8d7 ENH: Allow IMPORTED_IMPLIB w/o IMPORTED_LOCATION
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.
2009-04-08 16:29:04 -04:00
Brad King d49978a948 ENH: Teach Update* tests to report local mod step
The CTest.UpdateCVS/SVN tests report every step with a message.  This
adds a message for the local modification step.
2009-04-08 09:22:08 -04:00
Brad King cd532b6132 ENH: Make UpdateCVS test robust to 1s file time res
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.
2009-04-08 09:21:57 -04:00
Brad King d6bdaf9f13 ENH: Test transitive link to subdir-imported lib
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.
2009-04-06 11:11:33 -04:00
David Cole 2981936707 STYLE: White space only change to see if continuous is working on new dashboard machine... 2009-03-31 13:50:26 -04:00
David Cole 17d62105d6 STYLE: White space only change to see if continuous is working on new dashboard machine... 2009-03-31 13:16:56 -04:00
Brad King d2175580e7 ENH: Generalize AddExternalProject step creation
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.
2009-03-30 11:36:32 -04:00
Brad King 5f4686920d BUG: Fix CMAKE_CURRENT_LIST_FILE in macros
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.
2009-03-25 10:37:04 -04:00
Brad King 4085454658 ENH: Support preprocessor def values in VS6
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.
2009-03-23 14:48:09 -04:00
Brad King 2cc46c12f8 ENH: Add patch step for add_external_project
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.
2009-03-18 11:01:02 -04:00
Brad King 6ae0ff626a ENH: Improve add_external_project interface
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.
2009-03-18 11:00:30 -04:00
Brad King ecb0f3af55 ENH: New foreach(<var> IN ...) mode
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.
2009-03-17 15:10:15 -04:00
Brad King 493f88ce55 ENH: Allow projects to disable per-rule echo lines
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.
2009-03-16 16:55:58 -04:00
Brad King 2f651c2e59 ENH: Allow projects to disable per-rule progress
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.
2009-03-16 16:22:19 -04:00
Brad King 9862f383d0 ENH: Add NAME mode to ADD_TEST command
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.
2009-03-16 10:51:30 -04:00
Brad King e5e91d6179 ENH: Teach set/get_property about CACHE properties
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.
2009-03-10 11:10:59 -04:00
David Cole 7bf80c9a11 STYLE: White space only change to see if continuous is working on new dashboard machine... 2009-03-06 14:29:31 -05:00
Brad King ca3b93d9c6 ENH: Teach message() how to display warnings
This adds message(WARNING) and message(AUTHOR_WARNING) command modes and
fully documents the command behavior in all modes.
2009-03-06 10:04:06 -05:00
Brad King 98c51ff6dc ENH: Overhaul CMake version numbering
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.
2009-03-05 15:17:07 -05:00
Brad King 170febac52 ENH: Cleanup cmake --build interface.
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.
2009-03-04 15:39:27 -05:00
Brad King ba5cbf0fb1 ENH: Better recursive make in AddExternalProject
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.
2009-03-04 11:45:42 -05:00
Brad King 7960f7541c ENH: Extend CTest.UpdateSVN to test local mods
This teaches the test to create local modifications in the work tree
before updating.
2009-02-26 09:22:16 -05:00
Brad King ff32962a68 ENH: Test included header in Fortran preprocessing
This extends the Fortran preprocessing test to include a header file
through a preprocessor directive.
2009-02-24 14:32:31 -05:00
Brad King 1595b8e69e ENH: Add install(DIRECTORY) option 'OPTIONAL'
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.
2009-02-24 11:41:40 -05:00
Brad King ac89c8004b BUG: Fix CTest.UpdateCVS/SVN tests for win slashes
This fixes the tests to allow windows slashes in reported file names in
the generated Update.xml file.
2009-02-23 16:54:53 -05:00
Brad King 430b376a5b ENH: Test svn updates with space in author name
This enhances the CTest.UpdateSVN test with a space in the test author
name.  It will check that author name parsing works correctly.
2009-02-23 15:59:20 -05:00
Brad King 5b49f22caf ENH: Enhance CTest.UpdateCVS/SVN tests
This adds a source tree subdirectory to the content of the test
projects.  It also smoke tests more than one revision worth of changes.
2009-02-23 15:59:07 -05:00
Brad King a16c857c30 ENH: Better failure output from CTest.Update*
This teaches CTestUpdateCommon to report the process exit condition from
failed child processes executed during tests.
2009-02-23 15:58:44 -05:00
Bill Hoffman 819a4f2e57 ENH: make sure multiple archs are only tested when the work 2009-02-19 15:24:44 -05:00
Bill Hoffman 756cb547f3 BUG: fix xcode depend issue and add a test for it 2009-02-19 11:51:24 -05:00
Brad King ae873d4a89 ENH: Add get_filename_component(... REALPATH)
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.
2009-02-09 09:23:55 -05:00
Brad King 16fe328dfc BUG: Alternative fix to bug #8423
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.
2009-02-06 08:33:52 -05:00
Bill Hoffman 4b5cabed0e ENH: add missing file 2009-01-29 11:57:42 -05:00
Bill Hoffman 33c296a44e BUG: fix for #8423 2009-01-29 11:39:03 -05:00
Bill Hoffman bac4f79764 ENH: change to use CMAKE_CREATE_VERSION from CMAKE_VERSION as CMAKE_VERSION is auto-defined now 2009-01-27 10:35:29 -05:00
Brad King c332e0bf3c ENH: Isolate policy changes in included scripts
Isolation of policy changes inside scripts is important for protecting
the including context.  This teaches include() and find_package() to
imply a cmake_policy(PUSH) and cmake_policy(POP) around the scripts they
load, with a NO_POLICY_SCOPE option to disable the behavior.  This also
creates CMake Policy CMP0011 to provide compatibility.  See issue #8192.
2009-01-22 13:18:40 -05:00
Brad King 3028ca756c ENH: Better policies for functions and macros
This teaches functions and macros to use policies recorded at creation
time when they are invoked.  It restores the policies as a weak policy
stack entry so that any policies set by a function escape to its caller
as before.
2009-01-22 13:16:47 -05:00
David Cole 3a4f76949a BUG: Fix issue #8402. Add a drag and drop bundle generator to the Mac build of CPack. Add a test of it in the CPackComponents test. Thanks to Clinton Stimpson for the patch. 2009-01-22 12:12:44 -05:00
David Cole e8a0e90133 BUG: Avoid trying to package the X11 test on Windows when there is no NSIS installer available. 2009-01-22 10:22:30 -05:00
David Cole 36c228814b BUG: Fix issue #7523: Analyze output of 'hdiutil attach' to get the name of the volume that was mounted. Eliminates the need to use the -mountpoint arg of hdiutil which has a silly 90 character limit on the name of the mount point. Also add a custom volume icon to the BundleGeneratorTest to cover this code. 2009-01-21 13:39:22 -05:00
David Cole c647ed54d9 BUG: Fix issue #7833: Add file extension handling to CPack generated installers for OSXX11 applications. Also modify the X11 test to build such an installer on Mac builds that test CPack and have X11 available. Thanks to Wes Turner for the patch. 2009-01-21 11:54:30 -05:00
David Cole 03c940aeb3 BUG: Fix for issue #7470. Allow spaces in the path names of installed files with the NSIS CPack generator and component-based installs. Add an installed file to the CPackComponents test: it failed before the fix; now it passes. 2009-01-20 14:29:41 -05:00
Brad King bb2c08546c ENH: Test find_package re-find feature
Recently we taught find_package to re-find a package if its
<package>_DIR result variable was set to a location not containing the
package (instead of reporting an error as before).  This tests the
feature.
2009-01-14 09:34:42 -05:00
Brad King d66c25c2f0 ENH: Teach ctest_submit about parts
This adds a PARTS option to the ctest_submit command which tells it to
submit only parts whose names are listed with the option.
2009-01-12 10:38:27 -05:00
Brad King b5f3d4be61 ENH: Re-enable new 'testing' test mode
This fixes selection of a configuration when none is specified to find
an available configuration of the ctest test-command.
2009-01-05 14:14:25 -05:00
Bill Hoffman 36ce9651db ENH: make it take longer 2008-12-29 18:11:02 -05:00
Bill Hoffman 38b7b3fea0 ENH: add test for -j N ctest stuff 2008-12-29 17:43:37 -05:00
David Cole 5d9e78e918 ENH: Re-work of fix committed yesterday for the Watcom WMake dashboard. Fix it properly by using the SYMBOLIC source file property to indicate to WMake when the sentinel file is not actually written by the update step. 2008-12-24 10:10:40 -05:00
David Cole 2f90c29be1 BUG: Workaround for Watcom WMake not handling "always out of date" custom commands to fix the failing ExternalProject test on the CMake nightly dashboard. 2008-12-23 10:01:53 -05:00
Brad King fb4f016299 BUG: Disable new 'testing' test mode for now
The new 'testing' test behavior of actually running the tests generated
by the project still fails when the test script guesses the Debug
configuration but the CMake build tree was only built Release.  The
inner ctest needs to find the ctest executable but is given the wrong
configuration.
2008-12-18 17:15:58 -05:00
Brad King 64f419c0e8 BUG: Fix new 'testing' test for CMake releases
The recent change of the 'testing' test to actually drive the tests
within it does not work on Windows with released CMakes 2.6.2 and lower
if no configuration is given to ctest with a -C option.  This works
around the problem by detecting the case and changing the empty
configuration to Debug.
2008-12-18 14:26:20 -05:00
Brad King 0a83aa6f57 BUG: Fix windows command line escape for empty arg
On Windows the KWSys System package generates escapes for command-line
arguments.  This fix enables quoting of the empty string as an argument.
This also adds a test to pass an empty argument to a custom command.
2008-12-18 13:36:58 -05:00
Brad King adb6bf82b0 ENH: Improve 'testing' test to actually test
The 'testing' CMake test builds a project that uses add_test.  This
strengthens the test to actually run CTest on the project build tree
after building it.
2008-12-18 12:28:05 -05:00
Brad King 3958b3e112 ENH: Teach find_package about more install dirs
We now search in

  <prefix>/<name>*/
  <prefix>/<name>*/(cmake|CMake)

when looking for package configuration files.  This is useful on Windows
since the Program Files folder is in CMAKE_SYSTEM_PREFIX_PATH.  These
paths are the Windows equivalent to the Apple convention application and
framework paths we already search.  See issue #8264.
2008-12-17 09:24:05 -05:00
Brad King 625ef26163 ENH: Allow most characters in ENV variable refs
The $ENV{VAR} syntax permits access to environment variables.  This
teaches CMake to recognize most characters in the VAR name since some
environments may have variables with non-C-identifier characters.
2008-12-17 08:24:35 -05:00
Brad King 63e186a8e6 ENH: Strengthen FindPackageTest version check
The previous change to test finding in lib/cmake/<name>* weakened the
versioned find tests.  Since the lib/cmake paths are searched before
lib/<name>* paths the previous change skipped requiring the command to
ignore zot-3.0 when finding zot-3.1.  This change restores that and adds
zot-4.0 to test the lib/cmake path.
2008-12-16 09:13:39 -05:00
David Cole 3ddb9dfdea BUG: One more conditional in the ExternalProject test to prevent build errors of Tutorial Step5 on Win98 using Visual Studio 6 when the path length of its build tree exceeds 72 characters. Crazy, perhaps. But this fixes the last real dashboard failure of the ExternalProject test. 2008-12-11 15:55:46 -05:00
Bill Hoffman a87bb1b2f9 ENH: remove some verbosity to reduce test time 2008-12-11 14:35:57 -05:00
David Cole 4f217f0361 BUG: Prevent KWStyle portion of ExternalProject test from configuring, building, installing and testing on WATCOM dashboards. WATCOM STL support is still under development. 2008-12-10 11:30:51 -05:00
Brad King e51969ac49 ENH: Add useful search locations to find_package
This teaches find_package to search

  <prefix>/(share|lib)/cmake/<name>*/

for package configuration files.  Packages that do not already have
files in a <prefix>/lib/<name>* directory can use this location to avoid
cluttering the lib directory.
2008-12-09 14:07:19 -05:00
David Cole 994ad3633e COMP: No-op. White space only change to trigger a re-run of the ExternalProject test on the QNX continuous dashboard to pick up the latest KWStyle changes. 2008-12-05 17:54:39 -05:00
David Cole fd644d1cb9 COMP: No-op. White space only change to trigger a re-run of the ExternalProject test on the QNX continuous dashboard to pick up the latest KWStyle changes. 2008-12-05 17:18:11 -05:00
David Cole 2540d84c02 COMP: No-op. White space only change to trigger a re-run of the ExternalProject test on the QNX continuous dashboard to pick up the latest KWStyle changes. 2008-12-05 16:46:52 -05:00
David Cole 527e2b8881 COMP: No-op. White space only change to trigger a re-run of the ExternalProject test on the QNX continuous dashboard to pick up the latest KWStyle changes. 2008-12-05 16:13:45 -05:00
David Cole dba2c51d90 ENH: Make it easier to use configure/make/make-install as the build steps for an external project. Add capability of customizing the download step. Add tests of empty projects. Better comments and error checking in AddExternalProject.cmake. In tests, use KWStyle from CVSHEAD to see if QNX continuous can build the latest KWStyle. Make KWStyle test depend on all previous test external projects so it builds last to catch other issues before any KWStyle compile errors. 2008-12-05 15:18:32 -05:00
David Cole 67ebcb9597 ENH: Use a TryCheckout technique to decide whether or not to attempt building the projects that depend on a cvs or svn download method. 2008-12-04 15:30:37 -05:00
David Cole 930827d48c ENH: First draft of add_external_project functionality. Tweaks, dashboard fixing, more tests and documentation certain to follow as it gets used by others... 2008-12-04 13:27:48 -05:00
David Cole ceaef94ccc ENH: Implement feature request from issue 7885. Allow setting environment variables on a per-test basis for ctest using set_test_properties ENVIRONMENT. 2008-11-26 14:38:43 -05:00
Bill Hoffman bdfc3fadd3 ENH: add more debug stuff to CTestCTest2 so I can figure out redwall 2008-11-23 10:49:46 -05:00
Bill Hoffman b8435f3d91 ENH: make ctest more verbose so that we can see failure on redwall 2008-11-21 16:37:49 -05:00
Bill Hoffman 46b9a884ac ENH: make this test pass if new curl is on 2008-11-21 16:10:09 -05:00
Bill Hoffman 0f88ea3993 ENH: only link in curl directories that exist, this will help with vs6 nmake 2008-11-20 14:06:57 -05:00
Bill Hoffman bc1f0e1b11 ENH: make it work if new curl is on 2008-11-19 01:15:41 -05:00
Bill Hoffman 32ac624352 ENH: make it work if new curl is on 2008-11-18 09:37:31 -05:00
Bill Hoffman 1f9d9b2050 ENH: add gfortran-4 2008-11-18 09:37:06 -05:00
Bill Hoffman 9e773f5376 ENH: fix gcc sun fortran mix 2008-11-11 14:03:14 -05:00
Bill Hoffman 9377e7122c ENH: put a check in for the gnu sunpro case 2008-11-10 10:53:36 -05:00
Bill Hoffman 49f393074c ENH: make the test pass when fortran is gnu and c is cl 2008-11-06 17:33:42 -05:00
Bill Hoffman 86b123ba27 ENH: add a way to fix bullseye link with fortran 2008-11-06 09:41:08 -05:00
Bill Hoffman 020f5ae82e ENH: only call the fortran c interface test when compilers match 2008-11-05 10:20:51 -05:00
Bill Hoffman a1f1e50143 ENH: only allow matching fortran a c compilers to be used 2008-11-03 12:15:59 -05:00
Bill Hoffman a996c16bba ENH: do not error when sunpro or mipspro fortran used 2008-10-31 16:10:34 -04:00
Bill Hoffman cecc2ab290 ENH: do not error when sunpro or mipspro fortran used 2008-10-31 16:08:56 -04:00
Bill Hoffman a07ab25e14 ENH: add some debug stuff for the dashboards 2008-10-30 17:32:40 -04:00
David Cole b0536e29ea ENH: Use settings for CPackComponents test to make it fail if the recent fix of cmCPackGenerator.cxx revision 1.16 ever encounters another regression. 2008-10-29 12:27:19 -04:00
Bill Hoffman 84a4222314 ENH: add test for FortranCInterface 2008-10-29 10:58:40 -04:00
David Cole 86ded1ba58 ENH: Activate GetPrerequisites code on Linux. Thanks to Mike Arthur for finishing it off. 2008-10-24 11:39:10 -04:00
Brad King e12f299f9d ENH: Enable cvs update test with CMake before 2.6
When CMake is built by CMake 2.4 or lower the FindCVS module is not
available.  In that case we activiate CTest.UpdateCVS by searching for
the cvs command directly.
2008-10-19 16:16:58 -04:00
Brad King 3584a4eceb ENH: Test CTest update logic with VCS tools
This creates new tests "CTest.UpdateSVN" and "CTest.UpdateCVS".  They
test that the Update.xml produced by CTest for a version-controlled
project contains entries for files added, changed, and removed.
2008-10-19 11:53:01 -04:00
Bill Hoffman 407a2bc737 ENH: fix test to work with in-source testing of CMake 2008-10-18 10:31:16 -04:00
Bill Hoffman 96262d167b ENH: run the right cmake 2008-10-15 16:56:01 -04:00
Bill Hoffman 6a312b9746 ENH: run the right cmake 2008-10-15 16:50:55 -04:00
Bill Hoffman 1777bb502a BUG: 4244, add a --build option to cmake that can build projects configured by CMake 2008-10-15 13:56:07 -04:00
Brad King c5f70ff27f ENH: Allow custom sources in custom targets
This adds a SOURCES option to ADD_CUSTOM_TARGET, enabling users to
specify extra sources for inclusion in the target.  Such sources may not
build, but will show up in the IDE project files for convenient editing.
See issue #5848.
2008-10-09 11:01:23 -04:00
Brad King 25a5c34a62 ENH: Remove implicit NO_MODULE when recursing
Recently we taught find_package that the NO_MODULE option is implied
when it is recursively invoked in a find-module.  This behavior may be
confusing because two identical calls may enter different modes
depending on context.  It also disallows the possibility that one
find-module defers to another find-module by changing CMAKE_MODULE_PATH
and recursively invoking find_package.  This change reverts the feature.
2008-10-08 10:56:23 -04:00
Brad King 0ae545ebad ENH: Add UNSUITABLE result to package version test
Package version test files may now declare that they are unsuitable for
use with the project testing them.  This is important when the version
being tested does not provide a compatible ABI with the project target
environment.
2008-10-03 10:41:15 -04:00
Brad King 79e9b75558 ENH: Help recursive find_package calls in modules
These changes teach find_package to behave nicely when invoked
recursively inside a find-module for the same package.  The module will
never be recursively loaded again.  Version arguments are automatically
forwarded.
2008-10-03 10:40:07 -04:00
Brad King f8bc0492e1 ENH: Create $CACHE{VAR} syntax
This syntax allows reading of cache entries even when variables of the
same name have been defined in the local scope.  See issue #7715.
2008-09-25 10:21:15 -04:00
Brad King 4fa96dbf95 ENH: Add version comparison to if() command
Provide VERSION_LESS, VERSION_EQUAL, and VERSION_GREATER operators in
the if() command.  This simplifies component-wise comparison of version
numbers in the form "major[.minor[.patch[.tweak]]]".
2008-09-10 11:58:40 -04:00
Brad King 994262e5cc ENH: Improve find_package version numbering
Make the number of version components specified explicitly available.
Set variables for unspecified version components to "0" instead of
leaving them unset.  This simplifies version number handling for find-
and config-modules.  Also support a fourth "tweak" version component
since some packages use them.
2008-09-10 10:11:48 -04:00
David Cole 2fb00f28be PERF: Test takes too long when recursing for executable files and when doing recursive prerequisite analysis. Put it back the way it was. Add another test later to do the recursive prerequisite analysis. 2008-09-09 12:48:58 -04:00
Bill Hoffman 1a3502d66a BUG: fix test to work with new restrictions that cross compiling must be on 2008-09-08 20:21:35 -04:00
David Cole 6f8bdd276c ENH: Add BundleUtilities.cmake and supporting changes to GetPrerequisites.cmake. Function copy_and_fixup_bundle in BundleUtilities helps to make standalone bundle applications on the Mac by pulling in prerequisite non-system libraries and frameworks as needed. Uses otool and install_name_tool to do analysis and fixups. Project-specific hooks for deciding where to embed libraries and for resolving item names into full path file names are also provided. 2008-09-06 12:20:07 -04:00
David Cole 58be1b005f BUG: Fix issue #7046 - make sure extensionless headers and resource files work with the Xcode generator. Also fix incorrect mappings in the lastKnownFileType code. Add some extensionless files to the Framework test. 2008-09-05 15:51:19 -04:00
Brad King 3c5cf1bb8c ENH: Allow a custom list of debug configurations
Create a DEBUG_CONFIGURATIONS global property as a way for projects to
specify which configuration names are considered to be 'debug'
configurations.
2008-09-04 17:34:25 -04:00
David Cole a54e97cf94 ENH: Add indirect dependency to Carbon and call a Carbon function from executable. This will allow detecting broken dependency chaining for '-framework blah' style lib dependencies. 2008-09-02 11:07:04 -04:00
Brad King 0a10958a88 BUG: Fix Unset test on VS 6
Visual Studio 6 does not recognize .cc as a C++ extension by default.
Simplify the test to be C-only and use a .c extension.
2008-08-30 10:32:52 -04:00
David Cole ff14ae2439 ENH: Changes that allow configuring/building BundleTest test separately from the main CMake build. (Eliminate reference to CMake_SOURE_DIR.) 2008-08-27 12:53:19 -04:00
Brad King 33e865c041 ENH: Add unset() command.
This introduces the unset() command to make it easy to unset CMake
variables, environment variables, and CMake cache variables.  Previously
it was not even possible to unset ENV or CACHE variables (as in
completely remove them).  Changes based on patch from Philip Lowman.
See issue #7507.
2008-08-25 10:31:29 -04:00
Brad King 990c6b0b90 ENH: Allow custom limit on object file path length
Some native build tools, particularly those for cross compiling, may
have a limit on the length of the full path to an object file name that
is lower than the platform otherwise supports.  This change allows the
limit to be set by the project toolchain file through the variable
CMAKE_OBJECT_PATH_MAX.
2008-08-21 09:54:36 -04:00
Brad King fff812db95 ENH: Add if(TARGET) command
It is useful to be able to test if a target has been created.  Often
targets are created only inside conditions.  Rather than storing the
result of the condition manually for testing by other parts of the
project, it is much easier for the other parts to just test for the
target's existence.  This will also be useful when find-modules start
reporting results with IMPORTED targets and projects want to test if a
certain target is available.
2008-08-20 11:45:16 -04:00
Brad King 181c1eeede ENH: Add test_clean target to wipe out tests
We frequently need to wipe out all the CMake test build directories in
order to run tests from scratch.  This change adds a test_clean custom
target to remove all these directories for out-of-source builds.
2008-08-19 11:43:57 -04:00
Brad King 061d20be38 ENH: Add UNKNOWN type for IMPORTED libraries
When creating an IMPORTED target for a library that has been found on
disk, it may not be known whether the library is STATIC or SHARED.
However, the library may still be linked using the file found from disk.
Use of an IMPORTED target is still important to allow per-configuration
files to be specified for the library.

This change creates an UNKNOWN type for IMPORTED library targets.  The
IMPORTED_LOCATION property (and its per-config equivalents) specifies
the location of the library.  CMake makes no assumptions about the
library that cannot be inferred from the file on disk.  This will help
projects and find-modules import targets found on disk or specified by
the user.
2008-08-18 11:39:22 -04:00
Brad King 94c1fe83fd ENH: Make link interface mode more distinct
Rename the recently added INTERFACE mode of the target_link_libraries()
command to LINK_INTERFACE_LIBRARIES.  This makes it much more distinct
from a normal call to the command, and clearly states its connection to
the property of the same name.  Also require the option to appear
immediately after the target name to make it a mode rather than an
option.
2008-08-18 10:11:29 -04:00
Brad King 7f7068e9d4 ENH: Add cmake_policy(GET) command mode
It is likely that projects or CMake modules in the future will need to
check the value of a policy setting.  For example, if we add a policy
that affects the results of FindXYZ.cmake modules, the module code will
need to be able to check the policy.
2008-08-18 09:53:06 -04:00
Alexander Neundorf 814b368725 STYLE: extend documentation for RETURN() a bit
ENH: add a test for calling RETURN() in an included file

Alex
2008-08-16 18:06:17 -04:00
Brad King 1712cd0a98 BUG: Fix ExportImport test on VS6
Visual Studio 6 does not support per-target object files, so just use two
separate source file names in this case.
2008-08-12 17:27:48 -04:00
Brad King 7b873cd951 ENH: Test target_link_libraries INTERFACE option 2008-08-11 16:23:10 -04:00
Brad King c76f3ae5b5 ENH: Test fake circular dependency case
A recent change fixed a case in which CMake incorrectly diagnosed a
circular dependency involving a non-linkable executable target.  This
adds a test for that case.
2008-08-07 10:13:15 -04:00
Alexander Neundorf e0f59d9af5 BUG: fix endif()
Alex
2008-08-06 17:43:34 -04:00
Alexander Neundorf e6290446d8 ENH: add simple tests to test that the extra generators don't crash
Alex
2008-08-06 16:16:53 -04:00
Brad King 32df2a715b ENH: Test relative path custom command output
As of CMake 2.6 a custom command output specified by relative path is
placed in the build tree.  This adds a test to make sure other
references to the output are hooked up correctly, fixing a bug in CMake
2.6.1.
2008-08-05 13:27:14 -04:00
Bill Hoffman 26aa93d2cd ENH: fix build with Xcode project was missing 2008-07-31 10:54:55 -04:00
David Cole 6ec7ec2079 ENH: Add test for the new CPack BundleGenerator. Thanks to Tim Shead for the patch. See issue #7170 for more details. 2008-07-30 16:36:22 -04:00
Bill Hoffman 299a0c826b ENH: remove test that does not work on all compilers 2008-07-16 09:29:56 -04:00
Bill Hoffman ab3ed2b2bf ENH: add a test for bug 7316 2008-07-15 10:04:01 -04:00
David Cole a02bf86255 ENH: Use new cpack_add_component macro (and friends) from the CPackComponents test. Thanks again to Doug Gregor! 2008-07-08 17:47:53 -04:00
Bill Hoffman 2081dcbfce ENH: add get_test_property to bootstrap so bootstrap builds test the same as non-bootstrap builds 2008-07-07 15:07:54 -04:00
Brad King e245d4ea11 BUG: Replace non-bootstrap command with macro
- The GET_TEST_PROPERTY command does not exist during bootstrap.
  - Instead of lots of conditionals, replace it with a macro.
2008-07-03 15:46:37 -04:00
Brad King f58a1370cd ENH: Remove condition on use of CMake 2.4 commands
- Commands SET_TESTS_PROPERTIES and GET_TEST_PROPERTY exist
    in CMake 2.4, which is now required.
  - Therefore we need not check before using them.
2008-07-03 14:38:57 -04:00
Brad King 56f1e0b9c2 COMP: Don't set properties on a non-existing test
- Test SubProject-Stage2 is conditionally created.
  - Set properties on it only if it exists.
2008-07-03 14:34:28 -04:00
Bill Hoffman bb7b27e417 ENH: add initial ctest -j feature 2008-07-03 09:31:33 -04:00
Ken Martin 19e891532a ENH: support parenthesis as arguments and in conditionals feature request #6191 2008-06-26 13:01:35 -04:00
David Cole fd413f2ab8 BUG: Avoid running the new CPackComponents test on Windows unless the NSIS installer is available. 2008-06-19 11:08:08 -04:00
David Cole edaa6d3a97 BUG: Be more specific about the expected file name of the installer. (So we don't get mylibapp.exe in our GLOB results in make based build trees where the built exes end up in the same directory as the CPack installers...) 2008-06-18 09:28:51 -04:00
David Cole 1105a86c52 ENH: Add patch for feature request #6847 - CPack components for NSIS and PackageMaker installers. Thanks to Doug Gregor for all the hard work involved with implementing this patch! Also added new test CPackComponents that is conditionally executed only when NSIS or PackageMaker installer builders are available. 2008-06-17 11:39:26 -04:00
Bill Hoffman abe8ecf418 ENH: try turning this on again 2008-06-17 10:51:37 -04:00
Bill Hoffman 6a4dede49b ENH: turn this off until it passes on all systems 2008-06-16 20:10:29 -04:00
Bill Hoffman ee086dd028 ENH: add a project name 2008-06-16 20:05:46 -04:00
Bill Hoffman d07a4675d2 ENH: fix find module stuff for test 2008-06-16 15:19:44 -04:00
Alexander Neundorf 8ef9983db6 ENH: add test which executes all FindXXX.cmake modules
Alex
2008-06-16 14:03:03 -04:00
Brad King fdb17d604c ENH: Add test for new find_* command HINTS option. 2008-06-09 15:09:14 -04:00
Brad King 9c8185494b BUG: Fix CMake.FindBase test to normalize paths before comparing.
- Previously the find_* commands did not normalize the search paths
  - The recent refactoring enabled such normalization
  - The FindBase test must also normalize before comparing paths
2008-06-08 11:41:16 -04:00
Brad King 3ecfb5f7e8 BUG: Fix new custom command with make-var expansion test on VS6. The VS6 IDE adds some extra characters to the variable value during expansion. 2008-06-05 10:01:16 -04:00
Brad King 306e3e573f ENH: Add test for make variable replacement in a custom command with the VERBATIM option. 2008-06-04 12:10:59 -04:00
Brad King bed3ac8741 ENH: Remove SKIP_RULE_DEPENDS option from add_custom_command()
- Option was recently added but never released.
  - Custom commands no longer depend on build.make so we do
    not need the option.
  - Rule hashes now take care of rebuilding when rules change
    so the dependency is not needed.
2008-06-02 16:45:07 -04:00
Brad King 91de0b09ef ENH: Update BuildDepends test to check #include lines with macros.
- Tests IMPLICIT_DEPENDS_INCLUDE_TRANSFORM properties.
  - See issue #6648.
  - Works without help in VS IDEs due to native dependency handling.
  - Xcode needs help to rebuild correctly.
2008-05-14 11:55:12 -04:00