Commit Graph

9187 Commits

Author SHA1 Message Date
Brad King a26481f9fb STYLE: Nightly Date Stamp 2009-02-13 00:01:04 -05:00
Brad King 7590ad17ad BUG: Fix logic of LabelFiles.txt generation
This fixes a dumb logic error which causes generation of LabelFiles.txt
to try to open the file once for every target with labels.
2009-02-12 13:25:15 -05:00
Brad King 7435355ec8 ENH: Report file names relative to source dir
This teaches cmCTestLaunch to report source files that lie under the top
source directory relative to the top.
2009-02-12 13:00:22 -05:00
Ken Martin 4f369610f5 ENH: fix documentation and add docs on parenthetical expressions 2009-02-12 12:50:12 -05:00
Bill Hoffman 3d0e241498 BUG: #8496 add support for system info on haiku 2009-02-12 10:08:15 -05:00
Brad King fa9e93f712 BUG: Do not drop build fragments with same time
When we collect Build.xml fragments generated by 'ctest --launch', this
lexicographically orders fragments with the same time stamp on disk
instead of incorrectly dropping duplicates.
2009-02-12 10:01:39 -05:00
Brad King 47e8ee71dd STYLE: Nightly Date Stamp 2009-02-12 00:01:03 -05:00
Brad King 7497fd575d ENH: Teach CTest dashboard builds to use launchers
This defines a 'UseLaunchers' CTest configuration option.  When enabled,
CTest skips log scraping from the Build step output.  Instead it defines
the environment variable CTEST_LAUNCH_LOGS to a log directory during the
build.  After the build it looks for error-*.xml and warning-*.xml files
containing fragments for inclusion in Build.xml and submission.

This is useful in conjuction with 'ctest --launch' and the RULE_LAUNCH_*
properties to get reliable, highly-granular build failure reports.
2009-02-11 15:18:08 -05:00
Brad King b42b6a7f60 COMP: Do not use modern empty init list syntax
cmCTestLaunch first used an empty initializer list to zero-initialize a
buffer, but this is not supported on older compilers.  Instead we avoid
the need for initialization altogether.
2009-02-11 11:57:24 -05:00
Brad King 0847d825b3 ENH: Create internal 'ctest --launch' tool
This creates an undocumented 'ctest --launch' mode.  It launches a
specified command and optionally records a failure in an xml fragment.
We will optionally use this in CTest's Build stage to record per-rule
build failure information when using Makefile generators.
2009-02-11 11:31:25 -05:00
Brad King 52692cccaa STYLE: Nightly Date Stamp 2009-02-11 00:01:04 -05:00
Bill Hoffman 32dbc4acf8 ENH: fix fix for unc paths 2009-02-10 17:25:20 -05:00
Bill Hoffman efad72a9a3 ENH: add label global property to ctest scripts 2009-02-10 16:08:40 -05:00
Bill Hoffman 4e710a9ebe ENH: add the ability to run tests by labels 2009-02-10 14:24:24 -05:00
Bill Hoffman 70363cbf8f BUG: partial fix for 8056 -W now works with -j 2009-02-10 14:19:50 -05:00
Brad King 15c52e9891 ENH: Add rule substitutions useful for launchers
This defines make rule substitutions <LANGUAGE>, <TARGET_NAME>,
<TARGET_TYPE>, and <OUTPUT>.  They will be useful for RULE_LAUNCH_*
property values.
2009-02-10 08:52:07 -05:00
Brad King b604b98c56 ENH: Define RULE_LAUNCH_* properties
This defines global, directory, and target properties
RULE_LAUNCH_COMPILE, RULE_LAUNCH_LINK, and RULE_LAUNCH_CUSTOM.  Their
values specify 'launcher' command lines which are prefixed to compile,
link, and custom build rules by Makefile generators.
2009-02-10 08:51:15 -05:00
Brad King c895d9f2e0 ENH: Give target in which custom commands build
This gives the cmTarget instance for which custom command rules are
being generated to cmLocalUnixMakefileGenerator3::AppendCustomCommands.
It will be useful in the future.
2009-02-10 08:50:33 -05:00
Brad King 13f9bb646d ENH: Define target and source property LABELS
This creates a new LABELS property for targets and source files.  We
write the labels of each target and its source files in target-specific
locations in the build tree for future use.
2009-02-10 08:50:21 -05:00
Brad King d0ed46e3d6 ENH: Define target-specific support directories
This creates method cmTarget::GetSupportDirectory to compute a
target-specific support directory in the build tree.  It uses the
"CMakeFiles/<name>.dir" convention already used by the Makefile
generators.  The method will be useful for any code that needs to
generate per-target information into the build tree for use by CMake
tools that do not run at generate time.
2009-02-10 08:50:09 -05:00
Brad King ffba5b14ae STYLE: Nightly Date Stamp 2009-02-10 00:01:03 -05:00
Alexander Neundorf f27a2ca363 COMP: remove unused variable TargetSourceFileCount, it seems it is unused since version 1.88 of cmGlobalUnixMakefileGenerator3.cxx
patch by Daniel DOT Teske AT Nokia DOT com

Alex
2009-02-09 16:45:18 -05:00
Brad King 6ed916795d BUG: Work around broken GetLongPathName case
On Windows the GetLongPathName API function does not work on some
filesystems even if the file exists.  In this case we should just use
the original long path name and not the GetShortPathName result.
See issue #8480.
2009-02-09 16:45:15 -05:00
Alexander Neundorf bd92bec66c STYLE: fix two typos in the comments, patch from Daniel DOT Teske AT Nokia DOT com, QtCreator developer
Alex
2009-02-09 16:36:56 -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 ca096a4596 BUG: Fix GetRealPath when realpath fails
This patch from Philip Lowman teaches SystemTools::GetRealPath to deal
with paths that do not exist by dealing with the case that realpath
returns NULL.  See issue #8423.
2009-02-09 09:23:13 -05:00
Bill Hoffman 67ddd0c837 BUG: fix for 0008378, lists with FILEPATH and UNC //server/path fail 2009-02-09 08:25:55 -05:00
Brad King 37428e32aa STYLE: Nightly Date Stamp 2009-02-09 00:01:14 -05:00
Brad King 4c2ff835bb STYLE: Nightly Date Stamp 2009-02-08 00:01:05 -05:00
Brad King 640fd4a528 STYLE: Nightly Date Stamp 2009-02-07 00:01:08 -05:00
Brad King f35c0c2a17 BUG: Fix OS X FW symlink byproduct dependencies
When testing whether to re-run CMake, a byproduct may be a symlink.  If
so, the existence of the link is important rather than the link's
target.  See issue #8465.
2009-02-06 11:49:00 -05:00
Brad King 2282748907 BUG: Fix OS X AppBundle/FW byproducts dependencies
App Bundle and Framework directories, symlinks, and Info.plist files we
create during generation are byproducts, not outputs.  We should re-run
CMake only when they are missing, not when they are old.
See issue #8465.
2009-02-06 11:18:56 -05:00
Brad King 81601796a6 COMP: Avoid parameter/member shadow in cmXMLSafe
A cmXMLSafe constructor named its parameter 'str' which shadowed the
name of the 'str' method.  This renames the parameter to avoid the
conflict warning.
2009-02-06 09:08:02 -05:00
Brad King 67671ac400 BUG: Do not re-generate after a AppBundle build
A previous change accidentally added the MacOS content directory and
Info.plist files created for MACOSX_BUNDLE executables to the list of
CMake input files.  This causes CMake to re-generate the project too
often.  These items should be added to the list of CMake output files.
2009-02-06 09:03:27 -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
Brad King 0499ca66aa ENH: Clarify cmake_policy(VERSION) documentation
The previous documentation could be interpreted as setting policies
newer than the given version to OLD instead of unset.  This clarifies
it.
2009-02-06 08:15:05 -05:00
Brad King 8dfb99c660 STYLE: Nightly Date Stamp 2009-02-06 00:01:04 -05:00
Brad King 63d718e9f2 COMP: Avoid warning about signed-char comparison
On some compilers 'char' is signed and is therefore always equal to or
less than 0x7f.  In order to avoid the compiler warning we perform the
comparison with an unsigned char type.
2009-02-05 17:09:28 -05:00
Brad King dc13914cd6 ENH: Create cmXMLSafe to help escapes in XML
This class provides easy syntax to efficiently insert blocks of data
into XML documents with proper escapes.  It replaces the old
cmCTest::MakeXMLSafe and cmSystemTools::MakeXMLSafe methods which
allocated extra memory instead of directly streaming the data.
2009-02-05 16:31:37 -05:00
Brad King f16a471576 STYLE: Nightly Date Stamp 2009-02-05 00:01:12 -05:00
Brad King d18ae05da1 ENH: Re-order generation of build summary and xml
This moves the error/warning count summary printed by
cmCTestBuildHandler to after Build.xml is generated.  Later we will
compute the counts during generation of the xml.
2009-02-04 14:34:25 -05:00
Brad King 5f65e04ea2 ENH: Refactor Build.xml generation
This divides cmCTestBuildHandler::GenerateDartBuildOutput into three
methods to generate the header, content, and footer components of
Build.xml files.  It will allow the content generation to be replaced
later.
2009-02-04 14:34:12 -05:00
David Cole c6d499aba5 COMP: Iterator version of std::set not available with vs6 implementation of STL. Use explicit iteration to insert individual elements one at a time. Sigh. 2009-02-04 12:38:03 -05:00
Brad King a27e9ca4a2 BUG: Fix old-style install to prefix top
The old install_files, install_programs, and install_targets commands
used to permit installation to the top of the prefix by specifying
destination '/'.  This was broken in 2.6.0 to 2.6.2 by changes to
enforce valid destinations that did not account for this case.  This
change fixes the case by converting the install destination to '.' which
is the new-style way to specify the top of the installation prefix.
2009-02-04 10:34:10 -05:00
Brad King 2d662e0083 STYLE: Nightly Date Stamp 2009-02-04 00:01:12 -05:00
David Cole 6f88b29121 ENH: Add FILES arg to the ctest_submit command. BUG: Propagate the IsCDash setting properly to the ctest configuration during a submit. Also, do not propagate TriggerSite for projects submitting to CDash. No triggers are necessary with CDash. 2009-02-03 11:52:54 -05:00
Bill Hoffman a1d7f82d68 ENH: fix dynamic loading on haiku 2009-02-03 11:27:08 -05:00
Brad King feafe2abee STYLE: Nightly Date Stamp 2009-02-03 00:01:13 -05:00
Brad King 084e5a5e9e BUG: Fix preprocess and assembly rule expansion
The recent change to avoid expanding rule variables in informational and
'cd' commands broke the logical order in generation of preprocess and
assembly rules.  This corrects the order.
2009-02-02 14:36:53 -05:00
Brad King fd40f27420 COMP: Fix rule hash code during bootstrap
During bootstrap we do not bother with rule hashing.  This updates the
dummy implementation to account for the recent change in rule hash
method signatures.
2009-02-02 14:36:45 -05:00
Brad King 496c203a0b BUG: Do not expand rule variables in info rules
Previously the makefile generator would expand rule variables even on
its progress and echo commands for object compilation rules (but not for
link rules).  This fixes the implementation to only expand rule
variables on user-specified rules.
2009-02-02 13:28:17 -05:00
Brad King ac9b7ec155 ENH: Refactor custom command rule hashing
This simplifies computation of custom command rule hashes to hash
content exactly chosen as the custom commands are generated.
Unfortunately this will change the hashes of existing build trees from
earlier CMake versions, but this is not a big deal.  The change is
necessary so that in the future we can make optional adjustments to
custom command lines at generate time without changing the hashes every
time the option is changed.
2009-02-02 13:28:12 -05:00
Brad King 7d6a5e097f ENH: More robust property lookup
This teaches cmMakefile::GetProperty and cmake::GetProperty methods to
return NULL when the property name is NULL, making them more robust and
consistent with the behavior of cmTarget::GetProperty.
2009-02-02 13:27:30 -05:00
Brad King cc2092d5bb ENH: Put test labels in MemCheck results
This refactors generation of <Test> element headers and footers in
cmCTestTestHandler and re-uses it in cmCTestMemCheckHandler.  The change
removes duplicate code and enables the new <Labels> element for MemCheck
results.
2009-02-02 13:24:26 -05:00
Brad King eea054d82c ENH: Clarify target_link_libraries docs
The target_link_libraries command supports flags as well as libraries.
This makes the support explicit in the documentation.
2009-02-02 09:42:23 -05:00
Brad King 367101b02c STYLE: Nightly Date Stamp 2009-02-02 00:01:24 -05:00
Brad King dba64adac2 STYLE: Nightly Date Stamp 2009-02-01 00:01:18 -05:00
Brad King aa45ec10bc STYLE: Nightly Date Stamp 2009-01-31 00:01:24 -05:00
Brad King 140403ae62 STYLE: Nightly Date Stamp 2009-01-30 00:01:28 -05:00
David Cole d74b75af09 ENH: Emit a little more information in the error message when the output file is not found during a core try compile. 2009-01-29 15:23:18 -05:00
Bill Hoffman f6cb5c39bd BUG: fix for #8418 -E chdir should return fail of dir does not exist 2009-01-29 14:31:45 -05:00
Brad King ab11f82a52 ENH: Docs for relative paths in link_directories
The link_directories command treats relative paths differently from most
CMake commands.  This notes the difference in the documentation.
See issue #8377.
2009-01-29 14:14:02 -05:00
Bill Hoffman 33c296a44e BUG: fix for #8423 2009-01-29 11:39:03 -05:00
Bill Hoffman 56ea0ad186 STYLE: fix warning 2009-01-29 09:26:40 -05:00
Brad King e69050643c STYLE: Nightly Date Stamp 2009-01-29 00:01:32 -05:00
Bill Hoffman a26c70477c STYLE: fix warning 2009-01-28 16:56:33 -05:00
Brad King 7ef31a2461 STYLE: Nightly Date Stamp 2009-01-28 00:01:34 -05:00
David Cole 3df1535c80 STYLE: Emit filenames in try_compile error message to get more information from the Continuous dashboard test that is failing. 2009-01-27 11:35:36 -05:00
Brad King 5527ca5524 BUG: Reset file submission list on test restart
When running in script mode it is possible to run multiple separate
dashboard submissions in one cmCTest instance.  The recent refactoring
of file submission lists into parts failed to clear the submission lists
when starting a new dashboard (ctest_start or ctest_update).  Only the
unused old submission set was cleared.  This fixes the refactored
version to remove the old submission set completely and also clear the
part-wise lists.
2009-01-27 10:58:33 -05:00
Brad King 6ae2f8e7ee BUG: Fix CTest submit-only operation
We need to initialize cmCTestSubmitHandler on construction to make sure
all parts get enabled by default.  The recent fix to re-enable all parts
on initialization broke submit-only operations because the handler did
not initialize on construction.  This also removes duplicate
initialization code.
2009-01-27 10:58:25 -05:00
David Cole 1dee719cdc BUG: Fix issue #6195. Add CMAKE_OSX_DEPLOYMENT_TARGET cache variable to specify the target deployment runtime OS version of the built executables on Mac OSX. Thanks to Mike Jackson for the patch. 2009-01-27 10:30:55 -05:00
Bill Hoffman 97ef91d57b BUG: fix for 7845, idl files compile even with headerfile only on 2009-01-27 10:26:55 -05:00
Brad King 1902f8e63c STYLE: Nightly Date Stamp 2009-01-27 00:02:07 -05:00
Brad King 504fa52f6b STYLE: Nightly Date Stamp 2009-01-26 00:01:41 -05:00
Brad King 64c78918a1 STYLE: Nightly Date Stamp 2009-01-25 00:01:50 -05:00
Brad King 72aad46fea STYLE: Nightly Date Stamp 2009-01-24 00:01:49 -05:00
Bill Hoffman 29ba1aa77a ENH: try to fix vs6 build 2009-01-23 12:20:09 -05:00
Brad King f0eef5ab52 STYLE: Nightly Date Stamp 2009-01-23 00:02:12 -05:00
David Cole 2914b740c2 BUG: Forgot to change parent class in cmCPackTypeMacro when I added cmCPackDragNDropGenerator. Fix it now that it really matters. (The BundleGenerator test started failing after the last commit. This fixes it.) 2009-01-22 14:23:44 -05:00
David Cole 6bf31875ce BUG: Fix issue #8383. Avoid crashing when using the Bundle CPack generator and CPACK_BUNDLE_NAME is not set. Instead, fail gracefully giving an informative error message and non-zero exit code. 2009-01-22 13:56:13 -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
Brad King 18eadebc4c ENH: Improve stack discussion in cmake_policy
This re-organizes the discussion of the policy stack in documentation of
the cmake_policy() command.  The new organization clearer and easier to
extend with new information.
2009-01-22 13:16:33 -05:00
Brad King 26bf8b2cda ENH: Create notion of a 'weak' policy stack entry
A 'weak' poilcy stack entry responds normally to queries.  However,
setting a policy in a weak entry will recursively set the policy in the
next entry too.  This also gives the internal interface to create a weak
entry the option to provide an initial PolicyMap for it.
2009-01-22 13:16:27 -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
Brad King dfc181a1dc ENH: Create policy scope barriers
This creates a barrier mechanism to prevent user code from using
cmake_policy(POP) to pop a scope it didn't push with cmake_policy(PUSH).
2009-01-22 10:57:16 -05:00
Brad King ac14b5d2eb ENH: Make policy push/pop methods private
This makes cmMakefile::PushPolicy and cmMakefile::PopPolicy private so
that any outside place that uses them needs to use the PolicyPushPop
helper in an automatic variable.  We grant an exception to
cmCMakePolicyCommand so it can implement cmake_policy(PUSH) and
cmake_policy(POP).
2009-01-22 10:57:09 -05:00
Brad King c980021814 ENH: Refactor find_package version file scoping
This converts the variable and policy scope protection find_package()
uses when loading version files to use automatic variables.
2009-01-22 10:56:58 -05:00
Brad King a01eb6b27b ENH: Create automatic policy push/pop helper
This creates cmMakefile::PolicyPushPop to push and pop policy scope
automatically.  It also enforces balanced push/pop pairs inside the
scope it handles.
2009-01-22 10:56:50 -05:00
Brad King 8997f4760a ENH: Refactor policy stack representation
This defines PolicyMap as a public member of cmPolicies.  Its previous
role as a policy stack entry is now called PolicyStackEntry and
represented as a class to which more information can be added later.
2009-01-22 10:56:39 -05:00
David Cole 0a23c0ee40 BUG: Fix issue #8363. Wrap output with MakeXMLSafe calls so that the generated XML files are valid, parse-able XML. 2009-01-22 07:16:05 -05:00
Brad King 5f3c354b66 STYLE: Nightly Date Stamp 2009-01-22 00:01:56 -05:00
Brad King f1e74ae018 BUG: Fix VS IDE solution files order again
The previous change to order projects in the VS IDE did not account for
duplicate target names (such as ALL_BUILD and ZERO_CHECK) among the
input set.  While we suppress generation of the duplicate project
entries, we need to use a multiset to store ordered duplicates.
2009-01-21 17:36:06 -05:00
Brad King 0d83faf3e3 BUG: Fix ALL_BUILD ordering enforcement
The previous change to make ALL_BUILD come first among targets did not
account for comparing the target name against itself.  This led to an
invalid ordering of the target set.  This change fixes it.
2009-01-21 17:24:54 -05:00
Brad King 5b63e31041 ENH: Make ALL_BUILD always the default project
This teaches the VS IDE generators to write ALL_BUILD into solution
files first so that it is always the default active project.  Previously
it was first only if no target name sorted lexicographically earlier.
See issue #8172.
2009-01-21 17:06:57 -05:00
Brad King 00ca96ae7c BUG: Fix VS IDE project order
Our implementation of the feature to pull in dependent targets in VS
solution files for subprojects caused the order of project files in the
solution to be arbitrary (based on pointer value in the representation).
Target ordering in solution files is important to prevent unnecessary
changing of the files and because the VS IDE selects the first project
listed as the default active target.  This change restores lexicographic
order by target name.
2009-01-21 16:39:43 -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 88a499c54c ENH: Use the latest CMake-logo-triangle-high-res.png to improve the look of CMakeSetup.icns on the Mac. 2009-01-21 13:20:47 -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
Brad King 919fdb7f27 ENH: Enforce logical blocks in functions/macros
This teaches function() and macro() to enforce matching logical blocks
inside the recorded bodies.  This makes the error message more specific.
2009-01-21 09:49:31 -05:00