Commit Graph

1034 Commits

Author SHA1 Message Date
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