Commit Graph

9784 Commits

Author SHA1 Message Date
Bill Hoffman 7d190a65ca Change run_ctest_script in ctest to not stop processing when there is an error in the script being run. Also, add a RETURN_VALUE option so that you can find out if the script failed 2009-09-04 13:24:25 -04:00
Brad King 368a18b83c Cleanup source file dependency tracing logic
In cmTarget we trace the dependencies of source files in the target to
bring in all custom commands needed to generate them.  We clean up the
implementation to use simpler logic and better method names.  The new
approach is based on the observation that a source file is actually an
input (dependency) of the rule that it runs (compiler or custom) even in
the case that it is generated (another .rule file has the rule to
generate it).
2009-09-04 12:39:18 -04:00
Brad King 4eb5f1bef6 Cleanup cmTarget source file list representation
This teaches cmTarget to use a set of cmSourceFile pointers to guarantee
unique insertion of source files in a target.  The order of insertion is
still preserved in the SourceFiles vector.
2009-09-04 12:39:05 -04:00
Brad King 053519b390 Simplify VS CMake re-run check
When CMake is invoked by the VS IDE re-run rule we compute whether or
not CMake really needs to re-run based on some timestamp helper files.
Previously we assumed that if the main generate.stamp file exists then
VS has correctly detected that the file is out of date.  However, this
assumption is too aggressive and re-runs CMake unnecessarily sometimes.

This commit removes the assumption and always checks timestamps itself.
The change breaks the explicit user re-run request (R-click -> Compile)
but only in cases when the build system is already up to date.
2009-09-04 12:38:15 -04:00
Brad King 524bb1e36e Simplify VS generator ZERO_CHECK dependency
The VS generators use a ZERO_CHECK target on which all other targets
depend to check whether CMake needs to re-run.  This commit simplifies
the addition of a dependency on the target to all other targets.

We also move addition of dependencies to the beginning of the Generate
step.  This allows the dependency on ZERO_CHECK to be included in the
global inter-target dependency analysis.
2009-09-04 12:37:53 -04:00
Zach Mullen 7f9a0f508f Fixed output as-it-happens issue. Now displays output as it receives each newline. 2009-09-04 11:23:38 -04:00
Zach Mullen c6e5dd21fd Added the test property EXPENSIVE, which denotes that the given test(s) should be started prior to tests that are not marked as such. Also fixed test dependencies, and a few uninitialized variables in cmProcess. 2009-09-04 10:16:06 -04:00
KWSys Robot 85463b9955 KWSys Nightly Date Stamp 2009-09-04 00:01:06 -04:00
Bill Hoffman 1554265aa6 Remove CMakeSetup. Long live cmake-gui, start building Qt now. 2009-09-03 17:01:07 -04:00
Ken Martin 766f6608bf some white space fixes for the book 2009-09-03 15:58:22 -04:00
Zach Mullen 7f6ff73396 Fixed 2 unused variable warnings 2009-09-03 15:50:47 -04:00
Zach Mullen d4adde13d7 Allowed tests to pull more than one line of output in their quantum. Fixed uninitialized variables in the case that the test process could not start. 2009-09-03 15:33:44 -04:00
Ken Martin f686dbecb6 some white space fixes for the book 2009-09-03 15:29:29 -04:00
Zach Mullen 20713ab89d Fixed warnings 2009-09-03 11:14:13 -04:00
Brad King cd147f0f71 COMP: Silence useless Borland inlining warning
KWSys tries not to force anything on source files that include its
headers, but Borland warning 8027 leaves us no choice when we want to
have inline function definitions.  This commit disables the warning for
the RegularExpression header and any file that includes it.
2009-09-03 11:10:06 -04:00
Zach Mullen 659171d1f7 ENH: Added PARALLEL_LEVEL option for ctest_memcheck(). Added PROCESSORS option to set_tests_properties (implementation to come). 2009-09-03 10:47:14 -04:00
Brad King e308621382 Create CMP0014 to require CMakeLists.txt files
Until now CMake accidentally accepted add_subdirectory() and subdirs()
calls referring to directories that do not contain a CMakeLists.txt
file.  We introduce CMake Policy CMP0014 to make this case an error.
2009-09-03 08:27:12 -04:00
Brad King 3fda5c6463 Factor cmLocalGenerator::Configure input file read
This method tells the cmMakefile to read the input CMakeLists.txt file.
We factor out the call into a ReadInputFile method so it can be extended
without polluting the Configure method.
2009-09-03 08:27:00 -04:00
Brad King 1db5c90644 Factor cmLocalGenerator::Configure object max path
Much of the code in this method was dedicated to computing ObjectMaxPath
after configuring the directory.  We move this last step into its own
ComputeObjectMaxPath method for better organization.
2009-09-03 08:26:46 -04:00
Brad King a6890a1673 Manage current local generator with automatic var
The cmLocalGenerator::Configure method sets its cmLocalGenerator
instance as the global generator's current local generator during
configuration.  This commit refactors management of the current local
generator to use an automatic variable.  This will allow early returns
from the method.
2009-09-03 08:26:31 -04:00
Brad King 2ea2810737 Fix typo in REQUIRED_ALWAYS policy error message 2009-09-03 08:26:18 -04:00
KWSys Robot 3ba3f9e917 KWSys Nightly Date Stamp 2009-09-03 00:01:12 -04:00
Zach Mullen c5cf9b0e5f STYLE: line length 2009-09-02 16:32:43 -04:00
Brad King 0e8c7859c8 Silence VS generator for missing CMakeLists.txt
CMake Makefile generators silently ignore missing CMakeLists.txt files
and just treat the source directory as if it had an empty input file.
This will be addressed with a new CMake Policy, but for now we make the
VS generator consistent with the Makefile generator behavior.  The VS
generator will need to handle the OLD behavior of the policy anyway.
2009-09-02 16:07:12 -04:00
Brad King 0af3b3b802 Speed up graph traversal for project->targets map
The cmGlobalGenerator::AddTargetDepends method traces the dependencies
of targets recursively to collect the complete set of targets needed for
a given project (for VS .sln files).  This commit teaches the method to
avoid tracing its dependencies more than once.  Otherwise the code does
an all-paths walk needlessly.
2009-09-02 16:06:43 -04:00
Zach Mullen 7e20db0224 ENH: Added PARALLEL_LEVEL option to ctest_test() command. 2009-09-02 12:35:42 -04:00
Zach Mullen 69fd641adb Fixed ctest output where max test index is not the same width as the total number of tests. Also some preliminary changes for batching ctest jobs 2009-09-02 10:08:40 -04:00
KWSys Robot 99144383cf KWSys Nightly Date Stamp 2009-09-02 00:01:08 -04:00
David Cole d741a6a57f Add curl timeout options to the SubmitUsingHTTP method. They were only in the SubmitUsingFTP method. 2009-09-01 17:23:50 -04:00
Bill Hoffman 327c561424 Use the MANIFEST flag for non incremental linking as well. 2009-09-01 15:08:51 -04:00
Bill Hoffman e9a170b108 Move /MANIFEST flag into -E vs_link. This is so it can be used by the intel compilers without having to specifiy it in the intel compiler files 2009-09-01 14:33:26 -04:00
Bill Hoffman 5fa4784274 Handle embeded manifests with ifort. 2009-09-01 14:10:49 -04:00
Brad King 16ce84b067 Teach export(PACKAGE) to fill the package registry
We define the export(PACKAGE) command mode to store the location of the
build tree in the user package registry.  This will help find_package
locate the package in the build tree.  It simplies user workflow for
manually building a series of dependent projects.
2009-09-01 14:04:53 -04:00
Brad King ed0650f6ae Teach find_package to search a "package registry"
A common user workflow is to build a series of dependent projects in
order.  Each project locates its dependencies with find_package.  We
introduce a "user package registry" to help find_package locate packages
built in non-standard search locations.

The registry explicitly stores locations of build trees providing
instances of a given package.  There is no defined order among the
locations specified.  These locations should provide package
configuration files (<package>-config.cmake) and package version files
(<package>-config-version.cmake) so that find_package will recognize the
packages and test version numbers.
2009-09-01 14:04:27 -04:00
Zach Mullen 90cc5c5e04 ENH: Improved test reporting output 2009-09-01 11:58:04 -04:00
Brad King 69251f7549 Define 'multiplicity' for cyclic dependencies
We create target property "LINK_INTERFACE_MULTIPLICITY" and a per-config
version "LINK_INTERFACE_MULTIPLICITY_<CONFIG>".  It sets the number of
times a linker should scan through a mutually dependent group of static
libraries.  The largest value of this property on any target in the
group is used.  This will help projects link even for extreme cases of
cyclic inter-target dependencies.
2009-09-01 10:37:37 -04:00
KWSys Robot 1d772a2b4f KWSys Nightly Date Stamp 2009-09-01 00:01:14 -04:00
Brad King 207aab6acf Define kwsys_ios_binary macro for std::ios::binary
The 'binary' openmode does not exist on all compilers.  We define macro
<kwsys>_ios_binary, where <kwsys> is the KWSys namespace, to refer to
std::ios::binary if it exists and 0 otherwise.  Sample usage:

  kwsys_ios::ifstream fin(fn, kwsys_ios::ios::in | kwsys_ios_binary);
2009-08-31 13:00:55 -04:00
Zach Mullen 6d0b6f2b9e Fixed ctest_memcheck docs (http://www.cmake.org/Bug/view.php?id=9242) 2009-08-31 11:32:39 -04:00
Zach Mullen 59b34a6a1a Fixed Dart time recording for ctest 2009-08-31 10:28:39 -04:00
Zach Mullen 5a5cc52230 Fixed conversion warning on 64 bit machines 2009-08-31 09:50:35 -04:00
KWSys Robot bf830eea5e KWSys Nightly Date Stamp 2009-08-31 00:01:07 -04:00
Zach Mullen 387ba0c646 Fixed line length issue 2009-08-30 10:57:30 -04:00
KWSys Robot 3941546ba3 KWSys Nightly Date Stamp 2009-08-30 00:01:02 -04:00
KWSys Robot 82f95381f9 KWSys Nightly Date Stamp 2009-08-29 00:01:02 -04:00
Zach Mullen b0b5ffcf5c MemCheck should now work again in ctest 2009-08-28 15:08:03 -04:00
Zach Mullen 996bb51a1d Replaced std::stringstream with cmOStringStream 2009-08-28 11:40:34 -04:00
Zach Mullen b427d1985e Added ctest -N test. Fixed ctest working directory bug. MemCheck fix coming soon... 2009-08-28 11:08:39 -04:00
KWSys Robot 00ca781088 KWSys Nightly Date Stamp 2009-08-28 00:01:04 -04:00
Zach Mullen 177edc5ed1 Fixed ctest -N segfault issue. Further refactored ctest. Enabled failover for ctest 2009-08-27 10:37:30 -04:00