Commit Graph

10720 Commits

Author SHA1 Message Date
Brad King 0653286dc6 Split Borland compiler information files
This commit re-writes Borland compiler build rules.  We split the rules
into modern <os>-<id>-<lang> information modules but share a common
macro between languages to avoid duplication.

We also address a bug in the previous rules that would build some target
types against the static Borland runtime and others against the shared
Borland runtime in one build tree.  Now we always use the shared runtime
as is the default in the rules for MS tools.
2009-10-08 11:56:07 -04:00
Zach Mullen 2af045dfc5 Trimmed off the newline from sw_vers output on mac, it could cause xml parsing errors if left in 2009-10-08 10:56:55 -04:00
KWSys Robot f3a0fba75e KWSys Nightly Date Stamp 2009-10-08 00:01:02 -04:00
Brad King 71910b3fd4 Fix find_package() when <pkg>_DIR is wrong
When <pkg>_DIR is set to an incorrect version we search again and store
the result in the variable, even if it is <pkg>_DIR-NOTFOUND.

There was a bug in the case when the new search does not find anything
and the old value came from a cache entry with UNINITALIZED type.  The
command used to try to load a package configuration file from the last
place searched, and would leave the old wrong value in the entry.  This
commit fixes the behavior to avoid trying to load a missing file and to
set the value to <pkg>_DIR-NOTFOUND as expected.
2009-10-07 14:37:30 -04:00
Brad King 1b5a986a42 Do not collapse path of NOTFOUND values
In cmMakefile::AddCacheDefinition we collapse paths specified in PATH or
FILEPATH cache entries originally specified on the command line with
UNINITALIZED type.  This commit fixes the logic to avoid collapsing
<var>-NOTFOUND and other false values.  The change allows other CMake
code to force a NOTFOUND value on an entry with UNINITALIZED type.
2009-10-07 14:37:19 -04:00
Bill Hoffman 45d22b48ab fix Xcode 30 generator 2009-10-07 08:15:14 -04:00
KWSys Robot d542cc01cb KWSys Nightly Date Stamp 2009-10-07 00:01:07 -04:00
Brad King ca95b339fb Use integer literal instead of character
The commit "Support more special characters in file(STRINGS)" added code
using a 'char' literal as an array index.  Some compilers warn about
this because char might be a signed type, leading to negative indices.
We replace the literal with an integer to avoid the warning.
2009-10-06 17:51:34 -04:00
Brad King c6fdff2b22 Support more special characters in file(STRINGS)
The commits "Teach Fortran compiler identification about the Portland
Group compiler" and "Fix previous change to file(STRINGS) command"
taught file(STRINGS) to recognize the form-feed '\f' character as part
of string literals.  The Portland Group Fortran compiler also puts 0x14
bytes at the end of string literals in some cases.  We generalize the
previous solution and add the new character in this commit.
2009-10-06 16:33:15 -04:00
Zach Mullen 80533948b2 Fix bus error on mac. Was a result of not having null termination of arg list to sw_vers calls. 2009-10-06 14:55:48 -04:00
Alexander Neundorf 8a5ae4c15e speedup C dependency scanning even more
Scanning the dependencies for kdelibs/khtml/ (when all files are scanned) is
now down to 4.6 s from 6.3 s before this change (without the
headerLocationCache it takes about 14 s here).
It doesn't really make sense to include the complete include path as part
of the key for the map, since the include path will be the same for
all files in a project, so it doesn't add anything.

Alex
2009-10-06 13:57:41 -04:00
Brad King 9000b5a4de Avoid non-root copies of root-only targets
In cmGlobalGenerator::GetTargetSets we collect targets from all local
generators in a tree or subtree corresponding to a project() command.
Some targets, such as ALL_BUILD, are duplicated in each subdirectory
with a project() command.  For such targets we should keep only the copy
for the top-most (root) local generator.

Previously this filtering was done in each VS IDE generator, but it is
easier to do it in one place when the targets are first encountered.
This also fixes bad ALL_BUILD dependencies generated for VS 7.0 because
the cmGlobalVisualStudio7Generator::WriteTargetDepends method was not
filtering out duplicates.  Now we avoid duplicates from the start.
2009-10-06 13:30:00 -04:00
Zach Mullen 444e581860 Added better OS information for Mac OS X 2009-10-06 11:46:16 -04:00
Brad King d8f6d3a274 Target copy ctor should initialize internal state
The commit "Target copy ctor should copy internal state" created a new
cmTargetInternals constructor but failed to initialize a POD member that
the original constructor initializes.  This commit fixes it.
2009-10-06 09:59:05 -04:00
Brad King d4ef3bcf59 Use explicit conversion to avoid warnings in cmELF 2009-10-06 08:33:05 -04:00
KWSys Robot 6b14c1d273 KWSys Nightly Date Stamp 2009-10-06 00:01:05 -04:00
Brad King 02f85f98c6 Target copy ctor should copy internal state
Ideally we should never copy cmTarget instances, but it is a pain to
remove current uses of it.  The pimplized portion of cmTarget has mostly
members that cache results, but some are part of the object state.
These should be copied in the copy ctor instead of re-initialized.
2009-10-05 16:14:17 -04:00
Clinton Stimpson 08583fc58e don't allow consecutive generates without a configure. 2009-10-05 16:05:40 -04:00
Zach Mullen 7fd3d7cf80 BUG: #0009648 Change "The following tests FAILED" message to print on stdout rather than stderr 2009-10-05 12:47:09 -04:00
Brad King 4e1d610224 Remove old Encoding field from CMake.desktop
The Encoding key is now deprecated by the FreeDesktop standard and all
strings are required to be encoded in UTF-8.  This desktop entry
explicitly specified an Encoding of UTF-8, which is harmless but no
longer necessary.  See

  http://standards.freedesktop.org/desktop-entry-spec/1.0/apc.html

for details.  Patch from Modestas Vainius.  See issue #9659.
2009-10-05 10:26:08 -04:00
Zach Mullen b304186bc5 Match width of ctest "Start xx: " line to line up with the end test line 2009-10-05 10:20:52 -04:00
Brad King 0fb5b2c88c Invalidate target link info when necessary
In cmTarget we compute the link implementation, link interface, and link
closure structures on-demand and cache the results.  This commit teaches
cmTarget to invalidate results after a LINK_INTERFACE_* property changes
or a new link library is added.  We also clear the results at the end of
the Configure step to ensure the Generate step uses up-to-date results.
2009-10-05 09:06:59 -04:00
Brad King daa2f3aa41 Combine duplicate code in target property methods
In cmTarget::SetProperty and cmTarget::AppendProperty we check whether
changing the property invalidates cached information.  The check was
duplicated in the two methods, so this commit moves the check into a
helper method called from both.
2009-10-05 09:06:44 -04:00
Brad King 78f0811628 Create explicit cmTarget::FinishConfigure step
This method is called during ConfigureFinalPass on every target.  It
gives each target a chance to do some final processing after it is known
that no more commands will affect it.  Currently we just call the old
AnalyzeLibDependencies that used to be called directly.
2009-10-05 09:06:29 -04:00
Brad King 847875bebd Remove unused cmTarget::AddLinkLibrary method 2009-10-05 09:05:57 -04:00
KWSys Robot b783fbd04c KWSys Nightly Date Stamp 2009-10-05 00:01:03 -04:00
Alexander Neundorf b3040beb41 fix two more warnings from icpc
asfGlob and abfGlob were there since rev 1.3 of this file (Oct 17th 2004) and unused since
then, so remove them

Alex
2009-10-04 11:40:02 -04:00
Bill Hoffman a9fa71a47c Try to avoid cronic random failures on some Macs. 2009-10-04 09:54:55 -04:00
Bill Hoffman 78f68ef1b7 Try to avoid cronic random failures on some Macs. 2009-10-04 09:32:48 -04:00
KWSys Robot eddfb095f9 KWSys Nightly Date Stamp 2009-10-04 00:01:06 -04:00
Alexander Neundorf eb91859d6f remove unused variables, reported by icpc
Alex
2009-10-03 08:35:57 -04:00
KWSys Robot b1686031e4 KWSys Nightly Date Stamp 2009-10-03 00:01:03 -04:00
David Cole ccb0cf1306 Fix warnings in CMake source code. 2009-10-02 15:30:01 -04:00
David Cole 837364cb04 Correct some typos in error messages in the string command. Add a test that covers more of the code implemented in cmStringCommand.cxx, especially the error handlers. 2009-10-02 14:51:43 -04:00
Brad King 3d3efbd3f5 Clarify documentation and message for CMP0012
This commit re-words the warning message produced for CMP0012 to avoid
the word 'you' since often the person reading the message is not the
author of the code.  We also add an example of the bad OLD behavior to
the policy documentation.
2009-10-02 14:36:47 -04:00
Brad King 5837f4a613 Fix documentation of CMP0012 and CMP0013 versions
These policies were originally developed during the 2.7.x series and
intended for 2.6.5.  There was never a 2.6.5 release, so we should refer
to 2.8.0 instead.
2009-10-02 14:04:57 -04:00
Brad King c513962701 Create INTERPROCEDURAL_OPTIMIZATION build feature
This commit creates target and directory properties to enable the Intel
interprocedural optimization support on Linux.  Enabling it adds the
compiler option '-ipo' and uses 'xiar' to create archives.

See issue #9615.
2009-10-02 13:52:13 -04:00
Brad King 1e48243591 Introduce "build feature" lookup framework
This creates cmTarget::GetFeature and cmMakefile::GetFeature methods to
query "build feature" properties.  These methods handle local-to-global
scope and per-configuration property lookup.  Specific build features
will be defined later.
2009-10-02 13:52:01 -04:00
Brad King 57df2abca8 Centralize language flag addition for Makefiles
We create cmMakefileTargetGenerator::AddFeatureFlags to consolidate
addition of language flags.  Currently it just adds the flags from
generic per-language flag variables (AddLanguageFlags).
2009-10-02 13:51:49 -04:00
Brad King 2117143103 Document CMAKE_CURRENT_LIST_FILE more precisely
There is confusion whether the file "currently being processed" inside a
function or macro is the file containing the definition or not.  This
commit explicitly describes the behavior.  See issue #9646.
2009-10-02 13:22:13 -04:00
KWSys Robot 2e78b58d79 KWSys Nightly Date Stamp 2009-10-02 00:01:09 -04:00
David Cole 44bcba7461 Fix warnings in CMake source code. Suppress rampant warnings emanating from Qt files. 2009-10-01 16:47:08 -04:00
Brad King 1b9e61f214 Add alternative _UTILITY targets to all solutions
In VS 6, 7, and 7.1 solutions we implement

  add_dependencies(myexe mylib) # depend without linking

by creating an intermediate mylib_UTILITY target with dependencies

  myexe -> mylib_UTILITY -> mylib

to avoid linking myexe to mylib.  Previously these extra targets were
only added to the solution files in an ancestor directory of that
defining mylib.  For example, in the project:

  # CMakeLists.txt
  project(TOP)
  add_subdirectory(A)
  add_subdirectory(b)

  # A/CMakeLists.txt
  add_library(mylib ...)

  # B/CMakeLists.txt
  project(B)
  add_executable(myexe ...)
  add_dependencies(myexe mylib)

the solution for TOP would have mylib_UTILITY but the solution for B
would not even though it pulls in mylib through the dependency.  This
commit fixes solutions generated in other directories so that any
solution that has mylib will get mylib_UTILITY also.

See issue #9568.
2009-10-01 10:27:02 -04:00
Brad King c8ddb6813b Cleanup cmGlobalGenerator::GetTargetSets method
This commit cleans up the declaration, definition, and invocations of
the GetTargetSets method and related code.  There is no change in
function except to make the method virtual.
2009-10-01 10:26:54 -04:00
KWSys Robot 3810911f56 KWSys Nightly Date Stamp 2009-10-01 00:01:11 -04:00
Brad King 51ba120844 Remove unused members of local VS 6 generator
The commit "Use target dependency closure for VS 6 solutions" removed
use of the CreatedProjectNames list, so we remove it.
2009-09-30 16:03:09 -04:00
Brad King 55eec2a5bf Use target dependency closure for VS 6 solutions
This teaches the VS 6 IDE generator to use the transitive closure of
target dependencies.  This re-uses much of the implementation already
done for the other VS>6 generators.  See issue #8223 and issue #9568.
2009-09-30 16:03:03 -04:00
Brad King 7e5c571cce Move OrderedTargetDependSet into VS superclass
We move cmGlobalVisualStudio7Generator::OrderedTargetDependSet up to
cmGlobalVisualStudioGenerator so it can be re-used for other VS
versions.  See issue #9568.
2009-09-30 16:02:58 -04:00
Brad King c63e3bd13c Fix get_filename_component() registry view
Some find-modules use get_filename_component() to expand registry
values.  We need to look in both the 32-bit and 64-bit registry views
when expanding values.  We prefer the one that the target application
would see.  See issue #8792.
2009-09-30 13:45:24 -04:00
Brad King 56d1a1780d Create cmMakefile::PlatformIs64Bit helper method
This method centralizes tests for whether CMAKE_SIZEOF_VOID_P is 8.
2009-09-30 13:45:14 -04:00
David Cole f9c0e13975 Fix warnings in CMake source code. 2009-09-30 11:46:42 -04:00
David Cole 004626d179 Fix warnings in CMake source code. 2009-09-30 11:42:40 -04:00
David Cole a9dcc7fd47 Fix warnings in CMake source code. Suppress warnings in Lexer and Parser files that are 'too hard' to fix. 2009-09-30 11:41:34 -04:00
Brad King 67530409a9 Fix module definition file reference for VS6 NMake
When building through NMake with VS 6, the module definition file must
be passed without spaces in the path.  This is because 'cl -link' does
not escape the spaces when passing the value on to the linker.
2009-09-30 10:12:54 -04:00
Brad King f40406ed6b Fix default install prefix on Haiku
Since Haiku does not have /usr (and therefore /usr/local), this commit
changes the default install prefix to the equivalent directory of
/boot/common.

See issue #9607.
2009-09-30 08:31:53 -04:00
KWSys Robot 27c04be03a KWSys Nightly Date Stamp 2009-09-30 00:01:27 -04:00
Brad King 024d05adad Fix use of module .def files for MS tools
We recognize .def source files and map them to the /DEF:<file> option in
the MSVC tools.  Previously this worked only for shared libraries.  This
commit cleans up the implementation and makes it work for executables
too.  See issue #9613.
2009-09-29 16:39:07 -04:00
Brad King caee3af3c5 Do not parse preprocessor defs for VS 10 link/lib
When constructing cmVisualStudioGeneratorOptions to parse options for
tools 'link' and 'lib' the tool type is now Linker, not Compiler.  This
tells it not to recognize flags starting in '/D' as preprocessor macros,
such as the '/DEF:<file>' linker option.  See issue #9613.
2009-09-29 16:38:43 -04:00
Brad King d6b47bee79 Add StringProperty options for VS 10 flag table
The commit "cmparseMSBuildXML should output StringProperty values too"
fixed the script that generated

  Source/cmVS10CLFlagTable.h
  Source/cmVS10LibFlagTable.h
  Source/cmVS10LinkFlagTable.h

This commit updates the files with the new output.
2009-09-29 16:37:06 -04:00
Zack Galbreath 70614b9e6a BUG: cmparseMSBuildXML should output StringProperty values too 2009-09-29 15:07:39 -04:00
Zach Mullen a5be445ca9 BUG: CTest should honor test timeouts. 2009-09-29 14:31:58 -04:00
Zach Mullen 202bb45695 BUG: 0009612: --output-on-failure option doesn't work with the new parallel CTest handler 2009-09-29 09:45:43 -04:00
Brad King aa8c003609 Qualify std::map compare functor as const
Some older STL implementations invoke the comparison functor as a const
object, so the function call operator must be 'const' qualified.  This
fixes the commit "Fix support for OLD behavior of policy CMP0002" to
compile on older STLs.
2009-09-29 08:34:39 -04:00
KWSys Robot defd8b87e1 KWSys Nightly Date Stamp 2009-09-29 00:01:07 -04:00
Bill Hoffman 24624e02f1 Make sure LINK_FLAGS are seen by generator, fix for part of bug#9613 2009-09-28 21:19:20 -04:00
Brad King 0089f9cf8f Fix support for OLD behavior of policy CMP0002
The commit "Cleanup make progress rule generation code" introduced a map
from target name to the progress.make file location.  Policy CMP0002's
OLD behavior allows duplicate target names in different directories, so
only one ends up with a progress.make file.  This commit fixes the map
to order by target name first and build directory second, restoring
support for duplicate target names.
2009-09-28 17:34:23 -04:00
David Cole a091e99cb9 Fix issue #8818 - escape quotes in the license file when using the DragNDrop cpack generator. Thanks to Clinton Stimpson for the patch. 2009-09-28 17:14:53 -04:00
Brad King 96afb12087 Convert CMake to OSI-approved BSD License
This converts the CMake license to a pure 3-clause OSI-approved BSD
License.  We drop the previous license clause requiring modified
versions to be plainly marked.  We also update the CMake copyright to
cover the full development time range.
2009-09-28 11:43:28 -04:00
Brad King de955e4b6d Convert KWSys to OSI-approved BSD License
This converts the KWSys license to a pure 3-clause OSI-approved BSD
License.  We drop the previous license clause requiring modified
versions to be plainly marked.  We also update the KWSys copyright to
cover the full development time range.
2009-09-28 11:37:35 -04:00
Brad King 832f0a88f0 Install KWSys Copyright.txt as documentation
This commit adds KWSys configuration option KWSYS_INSTALL_DOC_DIR to
specify the directory for installation of documentation.  We use it to
put the KWSys Copyright.txt file at the location

  ${KWSYS_INSTALL_DOC_DIR}/${KWSYS_NAMESPACE}/Copyright.txt

in the project installation tree.  This helps containing projects meet
the license requirement to distribute the copyright and license with
binary forms.
2009-09-28 11:36:54 -04:00
Brad King 6f010f1c40 Fix .vfproj file version for Intel Fortran 10.1
The commit "Generate proper Intel Fortran project version" replaced the
hard-coded 9.10 value with a runtime registry lookup of the real
version.  Version 10.1 actually uses project file format 9.10, so this
commit switches it back for that version.  See issue #9169.
2009-09-28 10:00:14 -04:00
Brad King 6c59b924d2 Use BeAPI for per-user package registry on Haiku
Applications on Haiku are discouraged from storing their data in $HOME.
This teaches export(PACKAGE) and find_package() to use the BeAPI on
Haiku to store the package registry instead of using ~/.cmake/packages.

See issue #9603.
2009-09-28 09:45:34 -04:00
KWSys Robot f73c769dd6 KWSys Nightly Date Stamp 2009-09-28 00:01:04 -04:00
KWSys Robot babd4c6da8 KWSys Nightly Date Stamp 2009-09-27 00:01:04 -04:00
Alexander Neundorf 253dafd025 Fix bug #9529.
Set the working_dir entry in the codeblocks project file of executable
targets to the directory where the executable is created. Then when running
CB, executing the target (not building), will run it from that directory.

Alex
2009-09-26 04:26:28 -04:00
KWSys Robot 680c780b22 KWSys Nightly Date Stamp 2009-09-26 00:01:04 -04:00
David Cole f199385605 Fix CMake Internal Error from cmTarget::GetOutputInfo - triggered by calling GetLocation on a utility target - caused by custom command output file with same name as custom target. The fix is to avoid calling GetLocation unless the target is of a type that is expected to have a location... 2009-09-25 13:23:19 -04:00
Brad King 9c626d8f68 Policies 14 and 15 will be first released in 2.8.0
CMake policies CMP0014 and CMP0015 were implemented in the development
series version 2.7.x but will be first released in 2.8.0.  Now that the
development version number is higher than that (2.9.x) we can update
their version of introduction to the actual release number.
2009-09-25 13:09:43 -04:00
Brad King 528097c794 Document full version number with policy default
In CMake Policy documentation we specify the default behavior for the
current version of CMake.  This commit fixes that version by reporting
the full version number instead of just major and minor.
2009-09-25 13:09:36 -04:00
Zach Mullen 5e06f0a557 Fixed uninitialized memory issue in ctest show-only mode 2009-09-25 11:45:19 -04:00
Brad King 9027506b10 Avoid word 'Copyright' in KWSys MD5 encode test
We replace the test text in the kwsys.testEncode test to avoid the word
'Copyright'.  This simplifies grep results for Copyright verification.
2009-09-25 11:19:39 -04:00
KWSys Robot 35c8e2e35e KWSys Nightly Date Stamp 2009-09-25 00:01:08 -04:00
Zach Mullen 5a2f24856e Output a message in ctest when each test is started 2009-09-24 13:49:20 -04:00
Zach Mullen 2e5ccdbc18 Removed comment 2009-09-24 11:09:10 -04:00
Zach Mullen 65c418e56f Reformat ctest -N output. Removed the "Start processing tests" message as well. 2009-09-24 09:49:46 -04:00
Brad King f10929ae7c Restore KWSys SystemTools _WIN32 state on cygwin
The commit "Fix KWSys SystemTools build on cygwin with -mwin32" tried to
restore the state of the _WIN32 definition that was broken by the commit
"Optimize KWSys SystemTools::FileExists on Windows".  It did so for the
case of building with -mwin32 on cygwin, but since including <windows.h>
defines _WIN32, it failed for the case of not using -mwin32.

This commit restores the state of _WIN32 in all cases by undefining it
after including <windows.h> if it was not defined beforehand.
2009-09-24 08:10:46 -04:00
KWSys Robot d6ffe2d512 KWSys Nightly Date Stamp 2009-09-24 00:01:04 -04:00
Zach Mullen 84f3f6cad6 Tests which are not run should be added to the failed test list. 2009-09-23 15:37:50 -04:00
Brad King bd33da9fcc Add Xcode SYMROOT setting for custom targets
Xcode 1.5 writes helper scripts at the projectDirPath location for
targets that do not set SYMROOT.  We now add SYMROOT to custom targets
so that all targets set it.  This prevents Xcode 1.5 from touching the
source directory now that we always set projectDirPath.

See issue #8481.
2009-09-23 14:10:08 -04:00
Alexander Neundorf 39383ef8cb Major optimization of C/C++ dependency scanning.
Now only the dependencies for the file where the dependencies actually may
have changed are rescanned, before that this was done for all source files
even if only one source file had changed.
This reduces e.g. on my machine the time for scanning the dependencies
of kdelibs/khtml/ when only one file (khtml_global.cpp) has changed from
around 7.5 seconds to 1.2 seconds.

The tests succeed, it does what I expected it to do on kdelibs, and Brad
also reviewed the patch, so I think it should be ok.

Alex
2009-09-23 14:02:05 -04:00
Clinton Stimpson 551fcc23c2 fix compile warnings 2009-09-23 13:09:56 -04:00
Brad King 4e121af95e Fix KWSys SystemTools build on cygwin with -mwin32
Commit "Optimize KWSys SystemTools::FileExists on Windows" accidentally
added "#undef _WIN32" when including <windows.h> on cygwin, which breaks
builds using the -mwin32 flag.  This commit removes that line and fixes
the real error it was intended to avoid.
2009-09-23 10:45:00 -04:00
Brad King e55bbab88b Teach Xcode generator to set XCODE_VERSION
We set the variable 'XCODE_VERSION' in the CMake language to the Xcode
version string (e.g. "3.1.2").  Platform config files may use it later.
2009-09-23 08:48:39 -04:00
KWSys Robot 07a473d5f5 KWSys Nightly Date Stamp 2009-09-23 00:01:07 -04:00
Clinton Stimpson ecfca5d0a8 fix issue 9346. add binary directory to window title to make it easier to deal with multiple cmake-gui instances 2009-09-22 18:29:35 -04:00
Brad King 61495cdaae Fix Xcode project references to the source tree
Xcode project source file references need to always be relative to the
top of the source tree in order for SCM and debug symbols to work right.
We must even allow the relative paths to cross outside of the top source
or build directories.

For subdirectory project() command Xcode projects we use the source
directory containing the project() command as the top.  Relative paths
are generated accordingly for each subproject.

See issue #8481.
2009-09-22 16:18:31 -04:00
Brad King 3fe5f8d960 Optionally force conversion to relative path
In cmLocalGenerator::ConvertToRelativePath we normally convert to
relative path only if the local and remote paths both lie inside the
source tree or both lie inside the build tree.  This commit adds an
optional 'force' argument to allow conversion even when this rule is
violated.
2009-09-22 16:16:56 -04:00
Bill Hoffman fe57e7252f Can not use cmakedefine in kwsys because bootstrap of cmake does not support it. 2009-09-22 15:59:26 -04:00
Bill Hoffman 472966ed5f Can not use cmakedefine in kwsys because bootstrap of cmake does not support it. 2009-09-22 15:58:13 -04:00
Bill Hoffman e7601ca600 Put a flag in that will stop system tools from deleting system environment memory on exit, as it can cause gcov to crash the programs. 2009-09-22 14:56:33 -04:00
Alexander Neundorf 03d032b637 Rescan dependencies also if CMakeDirectoryInformation.cmake has changed.
If CMakeDirectoryInformation.cmake is newer than depend.internal the include
directories may have changed, so dependencies need to be scanned again.
Ok by Brad.

Alex
2009-09-22 14:40:23 -04:00
Brad King 9b6c3d0782 Optimize KWSys SystemTools::FileExists on Windows
We optimize this method by using the GetFileAttributesExA native Windows
API to check for file existence when possible.  For real Windows builds
we always use it.  For Cygwin we use cygwin_conv_to_win32_path to get a
native Windows path if possible and otherwise fall back to 'access'.

Cygwin-to-Windows path conversion and cache by Wojciech Migda.
See issue #8826.
2009-09-22 13:02:20 -04:00
KWSys Robot ca29998943 KWSys Nightly Date Stamp 2009-09-22 00:01:03 -04:00
Zach Mullen 4342e37d63 More SLURM experimentation (ctest batch mode) 2009-09-21 15:29:34 -04:00
Zach Mullen a4c6f178fe Fixed a slurm batch argument identifier. 2009-09-21 14:58:30 -04:00
Zach Mullen 87b4c66ca8 Need to quote args when generating batch scripts from ctest 2009-09-21 14:21:41 -04:00
Zach Mullen e4293b4b38 Re-enabled failing tests; fixed ctest_build output to be consistent in the error condition across different make programs so that these tests would pass. 2009-09-21 13:40:40 -04:00
Bill Hoffman 43499b1ecb Fix Bug #8332, add support for .pch files for Xcode. 2009-09-21 13:18:45 -04:00
Bill Hoffman 441cd9ce0b Fix Bug #8928, add support for .xib files for Xcode. 2009-09-21 13:15:11 -04:00
KWSys Robot 004f9931a9 KWSys Nightly Date Stamp 2009-09-21 00:01:04 -04:00
KWSys Robot 2396ff9889 KWSys Nightly Date Stamp 2009-09-20 00:01:18 -04:00
Alexander Neundorf 864e2670d6 Minor optimization in dependency checking.
When reading the depend.internal file, check only once for every depender
whether it exists, instead of repeatedly in a loop for each dependee. Within
that function it can only change of the depender is removed. This is taken
care of.
This reduces the number of access() calls in kdelibs/khtml from 180000 to
90000 (i.e. 50%), and reduces the time for that (without the actual
scanning) from 0.3 s to 0.21 s on my system.

Alex
2009-09-19 13:02:12 -04:00
Brad King d4cfb77ffe Remove cmGlobalXCode21Generator subclass
This subclass of cmGlobalXCodeGenerator only provided two virtual method
overrides, and it made construction of the Xcode generator instance
complicated.  This commit removes it and replaces the virtual methods
with tests of the Xcode version.  The change removes duplicate code.
2009-09-19 12:00:09 -04:00
Brad King 180c60a86f Fix check for -isysroot on OS X
Previously we checked for this flag by parsing the version number of GCC
out of 'gcc --version', but this is not reliable because the format can
vary greatly.  Now we run 'gcc -v --help' and look for '-isysroot' in
the list of options.

We also now store the result on a per-language basis in the per-compiler
info file "CMake<LANG>Compiler.cmake".  This is necessary to make it
accessible from try-compile projects so that they generate correctly.
2009-09-19 10:14:31 -04:00
KWSys Robot 5ea5ca3c88 KWSys Nightly Date Stamp 2009-09-19 00:01:41 -04:00
Bill Hoffman e7d75864d1 Only do the OSX arch stuff on OSX. 2009-09-18 15:16:33 -04:00
Bill Hoffman 58818d5168 Add detection of gcc versions that do not support isysroot option and do not use it for them. 2009-09-18 14:22:20 -04:00
Bill Hoffman 311eb30672 Fix the build for version 2.5 of Xcode. 2009-09-18 10:28:28 -04:00
KWSys Robot b872d09ea2 KWSys Nightly Date Stamp 2009-09-18 00:01:06 -04:00
Bill Hoffman 6362d4c743 Fix case where no archs are found on older macs. 2009-09-17 16:09:52 -04:00
Bill Hoffman ea282284d5 Fix for bug #9466. Change the implementation of OSX arch lists. If no ARCHs are specified by the user then no flags are set. We no longer use CMAKE_OSX_ARCHITECTURES_DEFAULT. 2009-09-17 11:53:02 -04:00
Bill Hoffman 8e8c9b7242 Bug #9430, recognize the FR flag 2009-09-17 09:18:21 -04:00
Brad King c87a35a326 Do not call CollapseFullPath for PDB file names
Some vendor tools convert PDB file names given on the command line to
lower-case before creating the file.  When CMake places a mixed-case PDB
file name into the build system, the file does not exist the first time
and it is written with mixed case.  After the first build though the
native tool has created a lower-case version of the file.  If CMake does
CollapseFullPath again, the file exists so the actual-case lookup gets
the lower-case name.  This causes the build files to change so the
project rebuilds.

The solution is to avoid calling CollapseFullPath for files generated by
the build.  In the case of PDB files we already construct them from
paths that have been collapsed, so we can just skip the call altogether.
See issue #9350.
2009-09-17 08:42:31 -04:00
Brad King ef8434284f Remove old check for duplicate subdirectories
In cmMakefile::AddSubDirectory we were checking for addition of the same
source directory multiple times.  However, the check code was incorrect
because it compared pointers instetad of pointed-to strings.  Since the
check was written, a better check was added right after it to enforce
unique binary directories (in which case duplicate sources are fine).
This commit simply removes the old-style check code.
2009-09-17 08:25:33 -04:00
KWSys Robot ab64fba44f KWSys Nightly Date Stamp 2009-09-17 00:01:03 -04:00
Bill Hoffman bf9a561cfa Fix typo in name 2009-09-16 21:02:57 -04:00
Alexander Neundorf 298de4374b Major improvement of the generated targets in Eclipse.
Before this change all targets were displayed in the top level directory of
the project. Now the targets are displayed in the correct directory.
The targets "clean" and "all" are now created in every subdirectory.
Also now the targets for just compiling one file, preprocessing one file,
assembling one file are are created for Eclipse.
Additionally all targets get a prefix now in eclipse, so that they are
sorted in a way which makes sense (global targets first, then executable and
libraries, then object files, then preprocessed, then assembly). Also
this prefix gives the user a hint what the target is, i.e. whether it's a
library or an executable or something else.

Alex
2009-09-16 18:01:23 -04:00
Brad King 6e8aeba415 Teach configure_file to handle directory names
This commit teaches configure_file how to handle directories for input
and output.  It is an error if the input is a directory.  If the output
is a directory we put the configured copy of the input file in it with
the same name.  See issue #9537.
2009-09-16 15:09:42 -04:00
Brad King 700cdf393a Teach configure_file to handle relative paths
The configure_file() command now converts relative output paths to full
paths using the current binary directory.  Input relative paths were
already converted using the current source directory, but this behavior
was not previously documented.
2009-09-16 15:09:29 -04:00
Brad King dda0da8b9e Fix typo in cmConfigureFileCommand ivar name
Rename 'OuputFile' to 'OutputFile'.
2009-09-16 15:09:19 -04:00
Alexander Neundorf 9d967ed47b Put compiler defined macros into eclipse project files
Now gcc is queried also for the builtin definitions, and they are then added
to the .cproject file. This should make the preprocessor highlighting in
eclipse work better (#9272)
Patch mostly from Miguel.

Alex
2009-09-16 14:37:21 -04:00
Bill Hoffman 932dac93b7 Fix uninitialized errors. 2009-09-16 11:49:09 -04:00
Brad King 2006e4a405 Generate proper Intel Fortran project version
The Intel Visual Fortran compiler plugin for MS Visual Studio may be one
of several versions of the Intel compiler.  This commit teaches CMake to
detect the plugin version and set the version number in .vfproj files.
See issue #9169.
2009-09-16 11:44:50 -04:00
Brad King 09e398fa9f Create VS generator GetRegistryBase method
This method returns the registry key

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<version>

A protected GetIDEVersion method retrieves the version-specific part of
the key name.
2009-09-16 11:44:08 -04:00
Brad King 24861459b5 Initialize directory scope with closure of parent
The commit "Improve dynamic variable scope implementation" optimized
function scopes using an efficient parent scope pointer.  However, the
parent scope used to initialize a new directory might not exist later
(like add_subdirectory called inside a function of the parent scope).
This caused CMake to crash when following the dangling pointer to the
original parent scope.

We fix the problem in this commit by always computing the closure of the
parent scope at directory initialization time so that no parent scope
pointer is needed.  See issue #9538.
2009-09-16 09:51:47 -04:00
KWSys Robot 2c8e929a70 KWSys Nightly Date Stamp 2009-09-16 00:01:21 -04:00
KWSys Robot 842098defc KWSys Nightly Date Stamp 2009-09-15 00:01:03 -04:00
Bill Hoffman 77dfbd49b4 Fix for bug #8969, pick a better default version for VS, and make it easier to add new versions of VS to look for. 2009-09-14 22:16:43 -04:00
Bill Hoffman 899f11f919 Fix for bug# 5373, include CMake verison in generated docs. 2009-09-14 20:54:22 -04:00
Bill Hoffman 0a8532c3a0 Bug #8356, add support for image types in Xcode files. 2009-09-14 15:20:15 -04:00
Bill Hoffman 324f51cfc8 Fix for bug #8807, add support for CMAKE_EXE_LINKER_FLAGS_(config) to Xcode generator. 2009-09-14 14:59:28 -04:00
Bill Hoffman c83591e818 Fix for Bug #9190, -U did not work on case insensitive file systems because of call to glob convert to regex that expected to work with files. 2009-09-14 13:45:40 -04:00
Bill Hoffman 14715ce813 Clarify documentation for if. 2009-09-14 13:42:04 -04:00
Zach Mullen 243bbae954 Removed fork-and-continue option from ctest generated batch script entries 2009-09-14 11:23:20 -04:00
Bill Hoffman 6a9a958591 Fix open solaris build issue with concept checking that breaks std vector for a class of itself. Bug #9523. 2009-09-14 10:31:38 -04:00
KWSys Robot c32ad6ce32 KWSys Nightly Date Stamp 2009-09-14 00:01:10 -04:00
KWSys Robot ab3d48a008 KWSys Nightly Date Stamp 2009-09-13 00:01:03 -04:00
Brad King bcbb4626a3 Avoid shadowing std::vector member
The cmProcess::Buffer class derives from std::vector.  We were using
local variable 'data' in the GetLine method but this name shadowed a
member of vector with GNU.  This renames it to 'text'.
2009-09-12 10:20:00 -04:00
KWSys Robot 054be74f8d KWSys Nightly Date Stamp 2009-09-12 00:01:03 -04:00
Bill Hoffman 63a7d85249 Fix for bug#9442, ctest crash if CTEST_SOURCE_DIRECTORY was not set. 2009-09-11 17:15:02 -04:00
Brad King 8c24c1dcc3 Fix new CTest output handling for no newline
When we clear the buffer for an output pipe after returning the last
partial line (without a newline) we need to set the partial line range
to empty.  Otherwise the buffer object is left in an inconsistent state.
2009-09-11 16:20:24 -04:00
Bill Hoffman 8a690289c2 Add label summary times to ctest default output. Also, remove parallel time output. Add flag to disable label summary. 2009-09-11 13:34:35 -04:00
Brad King 6a7eae7184 Rewrite CTest child output handling
This commit fixes cmCTestRunTest and cmProcess to more efficiently
handle child output.  We now use the buffer for each child output pipe
to hold at most a partial line plus one new block of data at a time.
All complete lines are scanned in-place, and then only the partial line
at the end of the buffer is moved back to the beginning before appending
new data.

We also simplify the cmProcess interface by making GetNextOutputLine the
only method that needs to be called while the process is running.  This
simplifies cmCTestRunTest so that CheckOutput can be called until it
returns false when the process is done.
2009-09-11 12:26:41 -04:00
Brad King b6c26cded2 Initialize cmCTestRunTest instances robustly
All instances of this class need a cmCTestTestHandler, so we now require
one to construct it.  The instance also provides the cmCTest instance
too.
2009-09-11 10:09:48 -04:00
Brad King 74b79d3b39 Remove barely-used cmCacheManager::AddCacheEntry
The commit "Remove barely-used cmMakefile::AddCacheDefinition" removed
all but one use of the cmCacheManager method 'bool' overload.  This
commit removes the other use and the entire method, thus reducing code
duplication.
2009-09-11 10:04:10 -04:00
Brad King 7a409fd573 Fix option() interpretation of non-boolean values
The commit "Remove barely-used cmMakefile::AddCacheDefinition" broke
option() calls that pass a non-boolean default value.  We restore the
old behavior by always coercing the value to 'ON' or 'OFF'.
2009-09-11 10:03:59 -04:00
Brad King b41a548d86 Add parentheses around '&&' between '||' for gcc
The GNU compiler warns about possible operator precedence mistakes and
asks for explicit parentheses (-Wparentheses).  We add the parentheses
to silence the warning.  This also fixes one real logic error in the
find_package() implementation by correcting expression evaluation order.
2009-09-11 08:18:15 -04:00
KWSys Robot e0df0495e5 KWSys Nightly Date Stamp 2009-09-11 00:01:04 -04:00
Brad King ee2b446c95 Create CMake Policy CMP0015 to fix set(CACHE)
The set(CACHE) and option() commands should always expose the cache
value.  Previously we failed to expose the value when it was already set
if a local variable definition hid it.  When set to NEW, this policy
tells the commands to always remove the local variable definition to
expose the cache value.  See issue #9008.
2009-09-10 16:59:45 -04:00
Brad King afbe088309 Remove barely-used cmMakefile::AddCacheDefinition
The boolean overload of this method was used only to implement option().
We re-implement option() in terms of the main method and removes the
now-unused signature.  This removes some duplicate code that had already
fallen behind on changes (it was not removing the local definition
instead of setting it).
2009-09-10 16:59:36 -04:00
Alexander Neundorf 6097c04c4d sync target generation with the CodeBlocks generator
Basically the code is now a copy of the one from the CodeBlocks generator,
maybe this could move into a common helper function somewhere:
-only insert GLOBAL targets from the toplevel directory
-don't insert the edit_cache target if it calls ccmake, since this doesn't
work in the output tab of Eclipse
-add the /fast targets

Alex
2009-09-10 13:49:51 -04:00
Alexander Neundorf 10f39d8c80 As in the Eclipse generator: don't insert the edit_cache target if it is ccmake, since this doesn't work in the output tab of the IDE 2009-09-10 13:44:02 -04:00
Zach Mullen c57fb18920 Added some ctest batch capabilities 2009-09-10 11:18:05 -04:00
Zach Mullen 4b4e801eba BUG: Fixed segfault and bad reporting if a ctest executable could not be found. Also added some batch testing code that is not yet complete. 2009-09-10 11:16:08 -04:00
KWSys Robot 55e4ac5ad1 KWSys Nightly Date Stamp 2009-09-10 00:01:03 -04:00
KWSys Robot 4678c619ce KWSys Nightly Date Stamp 2009-09-09 00:01:05 -04:00
Zach Mullen a516040579 ENH: ctest now writes time cost data to a file after a test set is run, and uses these time costs to schedule the processes the next time ctest is run in that build tree. 2009-09-08 17:10:35 -04:00
Zach Mullen 6727834a8c BUG: Fixed extraneous newlines from ctest process output 2009-09-08 14:48:23 -04:00
Zach Mullen 39e5f9d963 ENH: Replaced the EXPENSIVE test property with a COST test property taking a floating point value. Tests are now started in descending order of their cost, which defaults to 0 if none is specified. 2009-09-08 13:39:13 -04:00
Zach Mullen a02ef56401 BUG: Fixed issue where ctest would hang if a process terminated with output in its buffers but no newline 2009-09-08 10:16:16 -04:00
Zach Mullen 384f4d1f3f Fixed warning 2009-09-08 09:12:44 -04:00
KWSys Robot 5252ef4862 KWSys Nightly Date Stamp 2009-09-08 00:01:04 -04:00
Zach Mullen 5fb958fde9 ENH: Added ctest test options PROCESSORS and RUN_SERIAL. These allow specification of resource allocation for given tests running with the ctest -j N option. RUN_SERIAL ensures that a given test does not run in parallel with any other test. Also forced appending of "..." to the longest test name in ctest. 2009-09-07 10:26:17 -04:00
Brad King 4e16813f63 Put custom commands in topological order for VS 10
Visual Studio 10 uses MSBuild to drive the build.  Custom commands
appear in MSBuild files inside CustomBuild elements, which appear inside
ItemGroup elements.  The Outputs and AdditionalInputs elements of each
CustomBuild element are evaluated according to timestamps on disk.

MSBuild does not use inputs/outputs to order CustomBuild steps within a
single ItemGroup or across multiple ItemGroup elements.  Instead we must
put only unrelated CustomBuild elements in a single ItemGroup and order
the item groups from top to bottom using a topological order of the
custom command dependency graph.

This fixes CustomCommand and ExternalProject test failures, so we remove
the expectation of these failures.
2009-09-07 10:12:18 -04:00
Brad King 4224513cce Save source dependencies from custom command trace
In each target we trace dependencies among custom commands to pull in
all source files and build rules necessary to complete the target.  This
commit teaches cmTarget to save the inter-source dependencies found
during its analysis.  Later this can be used by generators that need to
topologically order custom command rules.
2009-09-07 10:11:43 -04:00
Brad King 355511ade9 Do Windows command line escapes for VS 10 too
Until now the VS 10 generator did no Windows command-line escaping and
just did XML escapes.  This commit teaches the generator to use the same
command-line escape addition code used by other generators.  The script
construction method cmLocalVisualStudioGenerator::ConstructScript need
not do XML escapes.  Each VS generator version adds the XML escapes
necessary for that version.
2009-09-07 10:11:20 -04:00
KWSys Robot f143dc2af2 KWSys Nightly Date Stamp 2009-09-07 00:01:04 -04:00
Alexander Neundorf 21179a2ade Try to fix the failing new StringFileTest on HP-UX
It seems that
while(i=file.get(), file)
iterates one character too much on HP-UX, let's see whether
while(file.get(c))
works, at least this is given as example on http://h30097.www3.hp.com/cplus/ifstream_3c__std.htm

Alex
2009-09-06 13:24:56 -04:00
Alexander Neundorf 91fec6d89c fix #9316: when converting binary data to hex, also print the leading 0's
Alex
2009-09-06 09:49:58 -04:00
Alexander Neundorf d78e051f46 Improve the algorithm which skips targets so they are not added to the codeblocks GUI.
-add all global targets from CMAKE_BINARY_DIR to the menu, but not from the subdirs
-add all utility targets to the menu, except the Nightly/Experimental/Continuous-"sub"targets as e.

Alex
2009-09-06 05:43:51 -04:00
KWSys Robot c858146872 KWSys Nightly Date Stamp 2009-09-06 00:01:06 -04:00
KWSys Robot 7959d76755 KWSys Nightly Date Stamp 2009-09-05 00:01:06 -04:00
Bill Hoffman cdb966532b Fix memory and process leak in ctest_run_script. 2009-09-04 17:01:47 -04:00
Clinton Stimpson 0b49e4ad1e fix focus fighting between search field and cache value editors 2009-09-04 16:43:07 -04:00
David Cole 68b8332088 Increase curl submit timeout. A submit will timeout if there are 120 seconds of very little activity. 30 seconds was too short. 2009-09-04 14:00:26 -04:00
Zach Mullen 5517e17bf9 Fixed ctest output processing. Should now display output as it occurs, as well as be able to consume multiple lines if they exist within the timeout. 2009-09-04 13:50:06 -04:00
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
KWSys Robot fdc0d9777c KWSys Nightly Date Stamp 2009-08-27 00:01:06 -04:00
Zach Mullen 8ffd8d0a03 ENH: refactored ctest. All testing is now parallel. If no -j option is specified, defaults to a MP level of 1 (non parallel) 2009-08-26 12:09:06 -04:00
KWSys Robot ef54a8b7b7 KWSys Nightly Date Stamp 2009-08-26 00:01:03 -04:00
KWSys Robot c8f87419f8 KWSys Nightly Date Stamp 2009-08-25 00:01:07 -04:00
Brad King 8aaf3cebeb Factor implicit link info addition into methods
In cmComputeLinkInformation::Compute we add implicit link information
from languages other than the linker language to the end of the link
line.  This factors out that code into separate methods to improve
readability and organization.
2009-08-24 13:15:47 -04:00
Brad King fd62a7cac4 Create GLOBAL_DEPENDS_NO_CYCLES property
This global property disallows cycles in the inter-target dependency
graph even among STATIC libraries.  See issue #9444.
2009-08-24 09:54:27 -04:00
KWSys Robot 40ddd53543 KWSys Nightly Date Stamp 2009-08-24 00:01:03 -04:00
KWSys Robot 88b47fe855 KWSys Nightly Date Stamp 2009-08-23 00:01:04 -04:00
KWSys Robot 96b71fe566 KWSys Nightly Date Stamp 2009-08-22 00:01:03 -04:00
KWSys Robot 8f84ec9ad7 KWSys Nightly Date Stamp 2009-08-21 00:01:03 -04:00
Brad King 5a4797ad80 Document CMAKE_<LANG>_COMPILER_LOADED variable 2009-08-20 16:21:48 -04:00
Zach Mullen 8c6aa445a2 Fixed line length over 80 2009-08-20 09:46:43 -04:00
KWSys Robot 4c77eb5e38 KWSys Nightly Date Stamp 2009-08-20 00:01:04 -04:00
Zach Mullen a2ef34d344 Fixed overwriting of a previous change set 2009-08-19 09:24:55 -04:00
Zach Mullen b9daa192af ENH: Refactored CTest test execution code into an object 2009-08-19 08:58:36 -04:00
KWSys Robot d8ecd02a7a KWSys Nightly Date Stamp 2009-08-19 00:01:04 -04:00
Bill Hoffman c02c8c287c Add test times to log file as well as the stdout. 2009-08-18 14:03:50 -04:00
Bill Hoffman 3c34d0440c If labels are found on the tests, then print a time summary for all the tests run with each label. 2009-08-18 13:34:05 -04:00
KWSys Robot 154a35c7bc KWSys Nightly Date Stamp 2009-08-18 00:01:06 -04:00
KWSys Robot 5137cc4a05 KWSys Nightly Date Stamp 2009-08-17 00:01:04 -04:00
KWSys Robot 47796c5cb9 KWSys Nightly Date Stamp 2009-08-16 00:01:06 -04:00
KWSys Robot 890fd2a17d KWSys Nightly Date Stamp 2009-08-15 00:01:03 -04:00
KWSys Robot c538a726b2 KWSys Nightly Date Stamp 2009-08-14 00:01:10 -04:00
KWSys Robot 2f8f4fae55 KWSys Nightly Date Stamp 2009-08-13 00:01:03 -04:00
Brad King dd2cf7388b Fix classification of externals in svn status
CTest runs 'svn status' to identify modified and conflicting files in
the working directory.  This commit fixes the interpretation of the 'X'
status, which corresponds to svn eXternals.  This status should be
ignored rather than treated as a local modification.
2009-08-12 08:06:57 -04:00
KWSys Robot 29f50a1f7d KWSys Nightly Date Stamp 2009-08-12 00:01:04 -04:00
Bill Hoffman a696fe8183 Output total time when using -j N 2009-08-11 22:02:49 -04:00
Bill Hoffman a86df0251f Fix failing test on release build for VS 10 cmSystemTools::GetLineFromStream crashes if the stream is not open in that case. 2009-08-11 16:25:56 -04:00
Brad King d2e1f2b4d6 Introduce "generator expressions" to add_test()
This introduces a new syntax called "generator expressions" to the test
COMMAND option of the add_test(NAME) command mode.  These expressions
have a syntax like $<TARGET_FILE:mytarget> and are evaluated during
build system generation.  This syntax allows per-configuration target
output files to be referenced in test commands and arguments.
2009-08-11 09:54:56 -04:00
Brad King 463b3f03bd Create cmTarget DLL query methods
We creates methods IsDLLPlatform() and HasImportLibrary().  The former
returns true on Windows.  The latter returns whether the target has a
DLL import library.  It is true on Windows for shared libraries and
executables with exports.
2009-08-11 09:07:42 -04:00
Brad King 0bc050677f Record backtrace for every add_test command
We teach cmTest to hold a backtrace for the add_test command that
created it.  This will be used later to report context for errors at
generate time.
2009-08-11 09:07:28 -04:00
KWSys Robot 6e3c6a1a80 KWSys Nightly Date Stamp 2009-08-11 00:01:04 -04:00
Clinton Stimpson e50903248f ENH: Patch from Alexander Neundorf to remove "KDevelop3" from list of generators. "KDevelop3 - Unix Makefiles" should be used instead. 2009-08-10 14:32:08 -04:00
Clinton Stimpson 37805ff81c ENH: Allow edit on single click. Fixes #9393. Also fix row heights to be consistent. 2009-08-10 13:25:22 -04:00
Brad King 821247ef4d Cleanup test property script code generation
We teach cmTestGenerator::GenerateScriptConfigs to use the general
cmLocalGenerator::EscapeForCMake method to write escaped test property
values into test scripts.  This eliminates the previous hand-coded
escaping implementation.
2009-08-10 09:07:59 -04:00
KWSys Robot cf6634fe2a KWSys Nightly Date Stamp 2009-08-10 00:01:05 -04:00
KWSys Robot ecf4f13acb KWSys Nightly Date Stamp 2009-08-09 00:01:02 -04:00
KWSys Robot 55d10489a0 KWSys Nightly Date Stamp 2009-08-08 00:01:04 -04:00
KWSys Robot 2eb438c020 KWSys Nightly Date Stamp 2009-08-07 00:01:02 -04:00
Dave Partyka 9e7a3d7ece COMP: attempt to fix more 'hidden by' warnings. 2009-08-06 19:01:13 -04:00
KWSys Robot deb0db9af8 KWSys Nightly Date Stamp 2009-08-06 00:01:03 -04:00
Bill Hoffman 7b36fd637c Allow for static libraries to depend on other targets so that the MSBuild runs build things in the correct order 2009-08-05 10:45:10 -04:00
Brad King 87442aefb0 Remove WXDialog source code
The QtDialog is our supported cross-platform GUI, so the WXDialog source
is no longer needed.
2009-08-05 10:15:30 -04:00
Brad King 32869ea381 Remove FLTKDialog source code
The QtDialog is our supported cross-platform GUI, so the FLTKDialog
source is no longer needed.
2009-08-05 10:13:18 -04:00
Brad King be24db77d0 Fix find_package for cmake-gui registry entry
The find_package commands looks at the "WhereBuild" registry entries
created by CMakeSetup and cmake-gui hoping that the project was recently
built.  CMakeSetup created WhereBuild1..WhereBuild10 but cmake-gui
creates WhereBuild0-WhereBuild9.

This fixes find_package to look at WhereBuild0 so that the most recently
configured project can be found.  It is important in the case that the
package to be found was the last one configured in cmake-gui but the
current project that is finding it is configured from the command line.
2009-08-05 09:56:02 -04:00
KWSys Robot b592154bfd KWSys Nightly Date Stamp 2009-08-05 00:01:06 -04:00
Ken Martin 410b8ebae1 ENH: minor cleanup of test 2009-08-04 15:41:57 -04:00
Brad King 80c947b397 No /fast targets in try_compile project mode
The try_compile command builds the cmTryCompileExec executable using the
cmTryCompileExec/fast target with Makefile generators in order to save
time since dependencies are not needed.  However, in project mode the
command builds an entire source tree that may have dependencies.
Therefore we can use the /fast target approach only in one-source mode.
2009-08-04 14:37:46 -04:00
Ken Martin 39e0e04416 ENH: change to CDASH 2009-08-04 13:16:30 -04:00
KWSys Robot 346a5b2d46 KWSys Nightly Date Stamp 2009-08-04 00:01:03 -04:00
Brad King 73de2362dd Fix recursive try_compile calls
When building an entire source tree with try_compile instead of just a
single source file, it is possible that the CMakeLists.txt file in the
try-compiled project invokes try_compile.  This commit fixes propagation
of language-initialization results from the outer-most project into any
number of try-compile levels.
2009-08-03 13:37:36 -04:00
KWSys Robot 8049b50398 KWSys Nightly Date Stamp 2009-08-03 00:01:04 -04:00
KWSys Robot a166e1baec KWSys Nightly Date Stamp 2009-08-02 00:01:05 -04:00
KWSys Robot 196cc7ec95 KWSys Nightly Date Stamp 2009-08-01 00:01:07 -04:00
Alexander Neundorf e5dd49c5f8 DOCS: fix typo (#9231)
Alex
2009-07-31 16:11:28 -04:00
Brad King a48f29c904 Set current directory variables in CTest scripts
The commit "Fix get_filename_component ABSOLUTE mode" broke the code

  get_filename_component(cwd . ABSOLUTE)

because CTest scripts did not make cmMakefile::GetCurrentDirectory()
available.  This commit fixes the problem by setting the proper
information on CTest script instances of cmMakefile.

This also makes CMAKE_CURRENT_SOURCE_DIR and CMAKE_CURRENT_BINARY_DIR
available to CTest scripts.  They are set to the working directory at
script startup.
2009-07-31 09:19:19 -04:00
Brad King 36bb624907 Fix installation when built by CMake 2.4
CMake 2.4 generates old-style cmake_install.cmake code including calls
to the file(INSTALL) command with the COMPONENTS argument.  We need to
set CMAKE_INSTALL_SELF_2_4 for the whole install tree to prevent the
command from complaining in this special case.  Previously this was
needed only in the QtDialog directory, but now it is needed in the
entire tree.
2009-07-31 08:27:36 -04:00
Alexander Neundorf 121df27fa2 DOCS: fix typo (see #9308)
Alex
2009-07-31 06:22:18 -04:00
KWSys Robot 8783f8d078 KWSys Nightly Date Stamp 2009-07-31 00:01:03 -04:00
Brad King fcab87c9f8 Do not always propagate linker language preference
The commit "Consider link dependencies for link language" taught CMake
to propagate linker language preference from languages compiled into
libraries linked by a target.  It turns out this should only be done for
some languages, such as C++, because normally the language of the
program entry point (main) should be used.

We introduce variable CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES to tell
CMake whether a language should propagate its linker preference across
targets.  Currently it is true only for C++.
2009-07-30 10:59:37 -04:00
Brad King fd633b33cf Refactor target linker language selection
This factors the decision logic out of cmTarget::ComputeLinkClosure into
dedicated class cmTargetSelectLinker.  We replace several local
variables with a single object instance, and organize code into methods.
2009-07-30 10:59:25 -04:00
KWSys Robot ace4d5d31d STYLE: Nightly Date Stamp 2009-07-30 00:01:05 -04:00
Brad King 76eb733f3a Separate Xcode flag escaping code from defines
Generalize the core Xcode generator preprocessor flag escaping code to
be useful for escaping all flags.
2009-07-29 16:40:07 -04:00
Brad King 8ab2548d6c Re-order cmGlobalXCodeGenerator implementation
This defines class cmGlobalXCodeGenerator::BuildObjectListOrString early
in the source file so it can be used in more places.
2009-07-29 16:39:45 -04:00
Brad King 5b85a581a8 ENH: Separate option mapping from VS generators
Split cmVisualStudioGeneratorOptions core functionality out into a
base class cmIDEOptions.  It will be useful for other generators.
2009-07-29 11:29:08 -04:00
Brad King e339f3133f ENH: Separate VS flag table type
Move the cmVS7FlagTable type out of the VS generators and rename it to
cmIDEFlagTable.  It will be useful for other generators.
2009-07-29 11:28:55 -04:00
KWSys Robot 797f91bc0b STYLE: Nightly Date Stamp 2009-07-29 00:01:03 -04:00
Bill Hoffman b590e1dfae ENH: remove code duplication and use cmVisualStudioGeneratorOptions for all versions of vs 7 and greater. 2009-07-28 14:30:15 -04:00
Brad King e9d7ebb3ec BUG: Do not double-initialize local generators
All global generator CreateLocalGenerator methods automatically
initialize the local generator instances with SetGlobalGenerator.  In
several places we were calling SetGlobalGenerator again after receiving
the return value from CreateLocalGenerator.  The double-initializations
leaked the resources allocated by the first call to SetGlobalGenerator.
This fix removes the unnecessary calls.
2009-07-28 10:47:02 -04:00
Brad King 57057ee595 BUG: Do not filter non-library implicit link items
We list implicit link items of languages linked into a target but filter
them by the implicit libraries known to be passed by the main linker
language.  Implicit link flags like "-z..." should not be filtered out
because they are not libraries.
2009-07-28 08:36:17 -04:00
Brad King 855d07f80e BUG: Always pass linker flags untouched
In cmComputeLinkInformation we recognize link options that look like
library file names, but pass flags starting in '-' through untouched.
This fixes the ordering of the check to recognize '-' flags first in
case the rest of the option looks like a library file name, as in the
case of "-l:libfoo.a".
2009-07-28 08:08:00 -04:00
Brad King 06a1e35d8a BUG: Do not recognize ':' in a library name
In cmComputeLinkInformation we construct regular expressions to
recognize library file names.  This fixes the expressions to not allow a
colon (':') in the file name so that "-l:libfoo.a" is left alone.
2009-07-28 08:07:52 -04:00
KWSys Robot 87c3e1662c STYLE: Nightly Date Stamp 2009-07-28 00:01:06 -04:00
Brad King cf1225b9af BUG: Enable large files only if <cstdio> works
Some AIX/gcc version combinations the <cstdio> header breaks when large
file support is enabled.  See this GCC issue for details:

  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20366

We work around the problem by enhancing the configuration check for
large file support to include <cstdio> when available.  This will cause
LFS to be disabled when the above problem occurs.
2009-07-27 16:45:15 -04:00
Bill Hoffman 40850e7f1f ENH: add test times and a total time to the output of command line ctest 2009-07-27 14:17:38 -04:00
Brad King 0de8be8b49 ENH: Link runtime libraries of all languages
This adds implicit libraries and search directories for languages linked
into a target other than the linker language to its link line.  For
example, when linking an executable containing both C++ and Fortran code
the C++ linker is used but we need to add the Fortran libraries.

The variables

  CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES
  CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES

contain the implicit libraries and directories for each language.
Entries for the linker language are known to be implicit in the
generated link line.  Entries for other languages that do not appear in
the known implicit set are listed explicitly at the end of the link
line.
2009-07-27 12:43:17 -04:00
KWSys Robot 4c0a142d3d STYLE: Nightly Date Stamp 2009-07-27 00:01:07 -04:00
Dave Partyka 1d158cffca ENH: try and see if using string.append instead of += will make valgrind not complaing that JoinPath is leaking. 2009-07-26 01:01:05 -04:00
KWSys Robot de83a83b8c STYLE: Nightly Date Stamp 2009-07-26 00:01:04 -04:00
KWSys Robot d0a2ff5d6e STYLE: Nightly Date Stamp 2009-07-25 00:01:04 -04:00
Brad King 3e5543c8bc BUG: Keep variable_watch() commands in memory
The "Keep only FinalPass commands in memory" commit caused instances of
this command to be deleted after the InitialPass.  Even though the
variable_watch command does not have a final pass, it does need to stay
alive because it owns the callback information.
2009-07-24 16:53:07 -04:00
David Cole 5bea9620dc BUG: Additional fix necessary for issue #8481 so that Xcode builds do not write files into the source tree. Also add a test that runs last to check for local modifications in CMake_SOURCE_DIR based on whether 'cvs -q -n up -dP' output is empty. Test fails on dashboard runs when there are local modifications. Test passes on non-dashboard runs with local modifications so that CMake developers may have mods when running the test locally. 2009-07-24 15:58:23 -04:00
Brad King 71c0e1417b ENH: Keep only FinalPass commands in memory
In cmMakefile we save all invoked commands so that FinalPass can be
called on them later.  Most commands have no final pass, so we should
keep only the few that do.
2009-07-24 13:31:34 -04:00
Mathieu Malaterre 961f9f583f COMP: Fix compilation of VTK on debian/sparc (sparc is a CPU not an OS) 2009-07-24 12:15:41 -04:00
KWSys Robot 2ec179dec8 STYLE: Nightly Date Stamp 2009-07-24 00:01:04 -04:00
Brad King 07ea19ad1f ENH: Implicit link info for C, CXX, and Fortran
This teaches CMake to detect implicit link information for C, C++, and
Fortran compilers.  We detect the implicit linker search directories and
implicit linker options for UNIX-like environments using verbose output
from compiler front-ends.  We store results in new variables called

  CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES
  CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES

The implicit libraries can contain linker flags as well as library
names.
2009-07-23 10:07:25 -04:00
Brad King f10c258167 BUG: Fix get_filename_component ABSOLUTE mode
This teaches the command to recognize full windows paths when built on
UNIX.  CollapseFullPath knows when the input path is relative better
than FileIsFullPath because the latter is only meant for paths from the
host platform.
2009-07-23 08:10:02 -04:00
KWSys Robot f5ce03ed59 STYLE: Nightly Date Stamp 2009-07-23 00:01:06 -04:00
Brad King fd10589995 ENH: Improve dynamic variable scope implementation
Previously each new variable scope (subdirectory or function call) in
the CMake language created a complete copy of the key->value definition
map.  This avoids the copy using transitive lookups up the scope stack.
Results of queries answered by parents are stored locally to maintain
locality of reference.

The class cmDefinitions replaces cmMakefile::DefinitionsMap, and is
aware of its enclosing scope.  Each scope stores only the definitions
set (or unset!) inside it relative to the enclosing scope.
2009-07-22 14:22:45 -04:00
David Cole c64b1456b6 BUG: Fix typo pointed out by Monsieur Francois Bertel. Merci, Francois. 2009-07-22 12:06:52 -04:00
David Cole 17d707254d BUG: Fix issue #8481 - generate Xcode projects such that breakpoints may be used from the Xcode debugger without adjusting any settings within the Xcode GUI first... Thanks to Doug Gregor for the patch. 2009-07-22 11:14:23 -04:00
KWSys Robot 7328a38480 STYLE: Nightly Date Stamp 2009-07-22 00:01:03 -04:00
Brad King 04b834f1b4 BUG: Disable color makefile inside try-compile
Generated makefiles for try-compile projects should never use color
output.  On MSYS the color escapes end up in the try-compile output text
because there is no way to identify whether the output is going to a
color-capable terminal.  Instead we should just always skip color for
try-compile projects.
2009-07-21 11:58:43 -04:00
KWSys Robot 0303589fd8 STYLE: Nightly Date Stamp 2009-07-21 00:01:04 -04:00
KWSys Robot 1b0b6b56e4 STYLE: Nightly Date Stamp 2009-07-20 00:01:04 -04:00
Bill Hoffman a5b06dcbb6 ENH: fix warning 2009-07-19 13:40:38 -04:00
KWSys Robot 7f0a5700a6 STYLE: Nightly Date Stamp 2009-07-19 00:01:04 -04:00
KWSys Robot cff19fc2dc STYLE: Nightly Date Stamp 2009-07-18 00:01:04 -04:00
Bill Hoffman eb5d0a7f61 ENH: fix warning 2009-07-17 16:15:11 -04:00
Clinton Stimpson df9c3b1a68 ENH: Edit button label for new changes dialog. 2009-07-17 14:51:31 -04:00
Clinton Stimpson 17acf0a310 ENH: Add a "Show my changes" to the Tools menu.
Changes by the user are recorded and when requested, it shows
      -D arguments for commandline or contents for a cache file.
2009-07-17 14:38:36 -04:00
Bill Hoffman 3250cb3d3b ENH: compute the max test name width based on the length of the tests 2009-07-17 10:06:38 -04:00
Bill Hoffman 300514fd25 ENH: make sure GUIDs for filters are cached 2009-07-17 10:05:54 -04:00
KWSys Robot 1be805609c STYLE: Nightly Date Stamp 2009-07-17 00:01:05 -04:00
KWSys Robot 611c120ad6 STYLE: Nightly Date Stamp 2009-07-16 00:01:04 -04:00
KWSys Robot ae9bff8e20 STYLE: Nightly Date Stamp 2009-07-15 00:01:02 -04:00
Clinton Stimpson 8289d0ed6e BUG: Don't let Qt suppress error dialogs. Add call to SetErrorMode(0);
See #9258.
2009-07-14 19:34:50 -04:00
Bill Hoffman 019252be80 ENH: fix vsexternal test on vs 71 2009-07-14 16:06:58 -04:00
Bill Hoffman 3d1c12b802 ENH: remove INCLUDE_EXTERNAL_MSPROJECT name hack, and use target properties instead, fix VXExternalInclude test for VS10 2009-07-14 14:16:46 -04:00
Brad King b23b1800a5 ENH: Teach separate_arguments() to parse commands
This adds UNIX_COMMAND and WINDOWS_COMMAND modes to the command.
These modes parse unix- and windows-style command lines.
2009-07-14 10:15:47 -04:00
Brad King 7a907f87f8 STYLE: Factor cmComputeLinkInformation constructor
This factors some code out of the constructor into a new method
cmComputeLinkInformation::LoadImplicitLinkInfo for readability.
2009-07-14 10:14:52 -04:00
Brad King d60608c858 STYLE: Factor CollectOriginalDirectories code
This factors code out of cmOrderDirectories::CollectOriginalDirectories
into cmOrderDirectories::AddOriginalDirectories.  Later a new call will
be added, and this is more readable anyway.
2009-07-14 10:14:41 -04:00
KWSys Robot 4d2dd55b9c STYLE: Nightly Date Stamp 2009-07-14 00:01:10 -04:00
Brad King b3e8fd3e9b BUG: Parse escapes in single-quoted unix arguments
This fixes KWSys's unix-style command-line parsing to interpret
backslash escapes inside single-quoted strings.
2009-07-13 17:35:08 -04:00
Brad King 57e14a4f97 COMP: Include <malloc.h> for 'free' on QNX 2009-07-13 17:08:38 -04:00
Bill Hoffman 11d42b3e8f ENH: almost all tests passing in vs 10, commit fixes preprocess and starts vs external project 2009-07-13 16:58:24 -04:00
Brad King 724275b266 COMP: Include <stdlib.h> for 'free' 2009-07-13 16:46:53 -04:00
Brad King 3dd6f36d45 ENH: Add cmSystemTools::ParseUnixCommandLine
This method is a C++ wrapper around the KWSys System library function to
parse unix-style command lines.
2009-07-13 16:22:48 -04:00
Brad King 18e639d48a ENH: Provide unix-sytle command line parsing
Add System_Parse_CommandForUnix to the KWSys System interface as a
utility to parse a unix-style command line.  Move the existing
implementation out of ProcessUNIX.  Add a flags argument reserved for
future use in providing additional behavior.
2009-07-13 16:22:14 -04:00
KWSys Robot 44eeda9a04 STYLE: Nightly Date Stamp 2009-07-13 00:01:04 -04:00
Alexander Neundorf 7048373296 STYLE: don't load CMakeDetermineSystem and CMakeSystemSpecific directly from
cmCTestScriptHandler, but have it load the new script CTestScriptMode.cmake
-> that makes it more flexible, also add a simple test that the system name
has been determined correctly

Alex
2009-07-12 04:51:51 -04:00
KWSys Robot 2a750cacd6 STYLE: Nightly Date Stamp 2009-07-12 00:01:03 -04:00
Alexander Neundorf 46f99c6565 STYLE: move the code for writing the initial cache into its own separate
function, makes the long ProcessHandler() a little bit shorter

Alex
2009-07-11 16:30:18 -04:00
Alexander Neundorf a605bd5225 STYLE: rename InitCache to InitialCache, since it contains the contents for
the initial cache and is not e.g. a flag which shows whether the cache
should be initialized

Alex
2009-07-11 16:27:28 -04:00
Brad King f888a0efaf ENH: Export and import link interface languages
Now that languages are part of the link interface of a target we need to
export/import the information.  A new IMPORTED_LINK_INTERFACE_LANGUAGES
property and per-config IMPORTED_LINK_INTERFACE_LANGUAGES_<CONFIG>
property specify the information for imported targets.  The export() and
install(EXPORT) commands automatically set the properties.
2009-07-11 10:12:05 -04:00
Bill Hoffman 28b1912aa3 ENH: add group support and fix borland error 2009-07-11 00:05:20 -04:00
KWSys Robot 2e22b70aa2 STYLE: Nightly Date Stamp 2009-07-11 00:01:04 -04:00
Brad King a232dbe8d2 BUG: Fix Xcode linker language
Xcode does not seem to support direct requests for using the linker for
a particular language.  It always infers the linker using the languages
in the source files.  When no user source files compile with target's
linker language we add one to help Xcode pick the linker.

A typical use case is when a C executable links to a C++ archive.  The
executable has no C++ source files but we need to use the C++ linker.
2009-07-10 16:51:44 -04:00
Brad King bb2228ea1a ENH: Update LINKER_LANGUAGE and HAS_CXX docs
This updates the documentation of these properties to account for the
new automatic linker language computation.
2009-07-10 13:53:48 -04:00
Brad King 19792bf30e ENH: Consider link dependencies for link language
This teaches cmTarget to account for the languages compiled into link
dependencies when determining the linker language for its target.

We list the languages compiled into a static archive in its link
interface.  Any target linking to it knows that the runtime libraries
for the static archive's languages must be available at link time.  For
now this affects only the linker language selection, but later it will
allow CMake to automatically list the language runtime libraries.
2009-07-10 13:53:28 -04:00
Brad King ea00bb990b COMP: Fix cmCTestHG for old HP compiler
The compiler does not have a fully compliant std::string.
2009-07-10 13:08:54 -04:00
Bill Hoffman a4dff91c35 ENH: change so rules show up in GUI, must be windows path 2009-07-10 12:26:39 -04:00
Brad King d4d467dbd5 ENH: Teach CTest to handle Mercurial repositories
This creates cmCTestHG to drive CTest Update handling on hg-based work
trees.  Currently we always update to the head of the remote tracking
branch (hg pull), so the nightly start time is ignored for Nightly
builds.  A later change will address this.

See issue #7879.  Patch from Emmanuel Christophe.  I modified the patch
slightly for code style, to finish up some parsing details, and to fix
the test.
2009-07-10 11:08:05 -04:00
Brad King c0e8c0f5aa ENH: New OutputParser::Process() signature
This overload accepts a null-terminated string instead of requiring a
length.  It is useful to pass some fake process output before and after
the real process output.
2009-07-10 11:07:27 -04:00
Bill Hoffman 5c4208f50e ENH: only 5 failing tests for VS 10 2009-07-10 09:12:39 -04:00
Brad King 3199db4794 STYLE: Nightly Date Stamp 2009-07-10 00:01:06 -04:00
Brad King 5692fa2ecb COMP: More KWSys SharedForward pointer const-ness
This adds another cast to avoid pointer conversion warnings.
Unfortunately C does not recognize implicit conversions that add
cv-qualifiers as well as C++ does.
2009-07-09 14:15:35 -04:00
Brad King d2e94dfc63 STYLE: Nightly Date Stamp 2009-07-09 00:01:04 -04:00
David Cole 02c9633433 COMP: Eliminate "conversion may change sign of result" warnings by using size_t where appropriate. (Missed one warning with last commit: add a cast to md5_word_t.) 2009-07-08 16:18:19 -04:00
David Cole 80d32d96f3 COMP: Eliminate "conversion may change sign of result" warnings by using size_t where appropriate. 2009-07-08 16:15:21 -04:00
Brad King 6028f3a4c7 COMP: Fix KWSys SharedForward sign conversion
This uses size_t where necessary to avoid size_t/int conversion
warnings.
2009-07-08 15:09:16 -04:00
Brad King 4c0bbe3828 COMP: Fix KWSys SharedForward pointer const-ness
This adds const-ness and casts where necessary to avoid pointer
conversion warnings.
2009-07-08 15:09:10 -04:00
Brad King 99e432508e BUG: Use link language for target name computation
The commit "Do not compute link language for LOCATION" was wrong.  The
variables

  CMAKE_STATIC_LIBRARY_PREFIX_Java
  CMAKE_STATIC_LIBRARY_SUFFIX_Java

are used for building Java .jar files.  This commit re-enables the
feature and documents the variables:

  CMAKE_EXECUTABLE_SUFFIX_<LANG>
  CMAKE_IMPORT_LIBRARY_PREFIX_<LANG>
  CMAKE_IMPORT_LIBRARY_SUFFIX_<LANG>
  CMAKE_SHARED_LIBRARY_PREFIX_<LANG>
  CMAKE_SHARED_LIBRARY_SUFFIX_<LANG>
  CMAKE_SHARED_MODULE_PREFIX_<LANG>
  CMAKE_SHARED_MODULE_SUFFIX_<LANG>
  CMAKE_STATIC_LIBRARY_PREFIX_<LANG>
  CMAKE_STATIC_LIBRARY_SUFFIX_<LANG>

Instead of making separate, repetitive entries for the _<LANG> variable
documentation, we just mention the per-language name in the text of the
platform-wide variable documentation.  Internally we keep undocumented
definitions of these properties to satisfy CMAKE_STRICT mode.
2009-07-08 14:33:08 -04:00
Brad King 173448d988 ENH: Pass config to cmTarget::GetLinkerLanguage
This passes the build configuration to most GetLinkerLanguage calls.  In
the future the linker language will account for targets linked in each
configuration.
2009-07-08 13:04:04 -04:00
Brad King a3a046643a ENH: Pass config to cmTarget RPATH install methods
This passes the build configuration to cmTarget methods IsChrpathUsed
and NeedRelinkBeforeInstall.  Later these methods will use the value.
2009-07-08 13:03:47 -04:00
Brad King 6ef56f7778 ENH: Use fixed header file type mapping for Xcode
This simplifies computation of the lastKnownFileType attribute for
header files in Xcode projects.  We now use a fixed mapping from
header file extension to attribute value.  The value is just a hint to
the Xcode editor, so computing the target linker language is overkill.
2009-07-08 13:03:34 -04:00
Brad King 2b5d97419f ENH: Do not compute link language for LOCATION
The LOCATION property requires the full file name of a target to be
computed.  Previously we computed the linker language for a target to
look up variables such as CMAKE_SHARED_LIBRARY_SUFFIX_<LANG>.  This led
to locating all the source files immediately instead of delaying the
search to generation time.  In the future even more computation will be
needed to get the linker language, so it is better to avoid it.

The _<LANG> versions of these variables are undocumented, not set in any
platform file we provide, and do not produce hits in google.  This
change just removes the unused feature outright.
2009-07-08 13:03:22 -04:00
Brad King 7c67524dfa ENH: Introduce cmTarget::LinkImplementation API
The new method centralizes loops that process raw OriginalLinkLibraries
to extract the link implementation (libraries linked into the target)
for each configuration.  Results are computed on demand and then cached.
This simplifies link interface computation because the default case
trivially copies the link implementation.
2009-07-08 12:04:48 -04:00
Brad King aef8fe509b COMP: Pimplize cmTarget ImportInfo and OutputInfo
These member structures are accessed only in the cmTarget implementation
so they do not need to be defined in the header.  This cleanup also aids
Visual Studio 6 in compiling them.
2009-07-08 08:31:30 -04:00
Brad King bb9c0af7cc STYLE: Nightly Date Stamp 2009-07-08 00:01:05 -04:00
Alexander Neundorf c0ad998619 ENH: get the build type specific location
Alex
2009-07-07 14:02:22 -04:00
Brad King 2247aca9cf BUG: Do not recompute link interfaces
The config-to-interface map in cmTarget should use case-insensitive
configuration names.  The change avoids repeating work if the given
configuration has a different case than one already computed.
2009-07-07 11:30:36 -04:00
Brad King afbd595e85 BUG: Fix CMP0003 wrong-config link dir support
This fixes a dumb logic error introduced by the centralization of link
interface computation.  It prevented link directories from alternate
configurations from getting listed by the OLD behavior of CMP0003 for
targets linked as transitive dependencies.
2009-07-07 10:57:02 -04:00
Brad King 94a4a614ca STYLE: Fix comment on cmTarget::LinkInterface
The comment had a typo and was longer than necessary.
2009-07-07 10:56:51 -04:00
Brad King 34f78ee552 ENH: Simplify cmTarget link interface storage
This makes the LinkInterface struct a member of cmTarget, pimplizes the
config-to-interface map, and stores interface instances by value.
2009-07-07 09:45:29 -04:00
Brad King a608467180 ENH: Simpler cmTarget::GetLinkerLanguage signature
This method previously required the global generator to be passed, but
that was left from before cmTarget had its Makefile member.  Now the
global generator can be retrieved automatically, so we can drop the
method argument.
2009-07-07 07:44:12 -04:00
Brad King 6ec20cc3f9 STYLE: Nightly Date Stamp 2009-07-07 00:01:06 -04:00
Brad King 06b0a692f4 ENH: Centralize default link interface computation
When LINK_INTERFACE_LIBRARIES is not set we use the link implementation
to implicitly define the link interface.  These changes centralize the
decision so that all linkable targets internally have a link interface.
2009-07-06 16:25:20 -04:00
Brad King 26df00f83a ENH: Move CMP0004 check into cmTarget
This moves code implementing policy CMP0004 into cmTarget::CheckCMP0004.
The implementation is slightly simpler and can be re-used outside of
cmComputeLinkDepends.
2009-07-06 16:24:45 -04:00
Brad King 82a8c6b0c7 ENH: Exception safe link interface computation
This fixes cmTarget::GetLinkInterface to compute and return the link
interface in an exception-safe manner.  We manage the link interface
returned by cmTarget::ComputeLinkInterface using auto_ptr.
2009-07-06 16:24:32 -04:00
Brad King 2b85fcdd7d STYLE: Nightly Date Stamp 2009-07-06 00:01:04 -04:00
Brad King 43c8dbb8d1 STYLE: Nightly Date Stamp 2009-07-05 00:01:03 -04:00
Brad King d870df5502 STYLE: Nightly Date Stamp 2009-07-04 00:01:03 -04:00
Brad King bde145a212 ENH: Pass config to cmTarget::GetDirectory()
This teaches the makefile generators to always pass the configuration
name to the cmTarget::GetDirectory method.  Later this will allow
per-configuration target output directories, and it cleans up use of the
current API.
2009-07-03 10:34:10 -04:00
Brad King 275c21d351 ENH: Refactor target output dir computation
This creates cmTarget::GetOutputInfo to compute, cache, and lookup
target output directory information on a per-configuration basis.  It
avoids re-computing the information every time it is needed.
2009-07-03 10:33:59 -04:00
Brad King 43669f0ef2 BUG: Avoid cmTarget::GetDirectory for utilities
Since utility targets have no main output files like executables or
libraries, they do not define an output directory.  This removes a call
to cmTarget::GetDirectory from cmLocalVisualStudio{6,7}Generator for
such targets.
2009-07-03 10:33:49 -04:00
Brad King 44021718a6 STYLE: Replace large if() with named boolean
In cmLocalVisualStudio{6,7}Generator this replaces a large if() test
with a re-usable result stored in a boolean variable named accordingly.
2009-07-03 10:33:34 -04:00
Brad King 11d1063452 ENH: Create cmMakefileTargetGenerator::ConfigName
This member stores the build configuration for which Makefiles are being
generated.  It saves repeated lookup of the equivalent member from
cmLocalUnixMakefileGenerator3, making code shorter and more readable.
2009-07-03 08:41:10 -04:00
Brad King 789eaf157c ENH: Cleanup per-config target install generation
This cleans up cmInstallTargetGenerator's code that computes the build
tree location of a target under each configuration.
2009-07-03 08:40:28 -04:00
Brad King 7c05c7bd89 STYLE: Nightly Date Stamp 2009-07-03 00:01:04 -04:00
Brad King 5b51ad580b ENH: Reports "Passed" for WILL_FAIL tests
Previously tests marked with WILL_FAIL have been reported by CTest as

  ...............***Failed  - supposed to fail

when they correctly failed.  Now we just report ".....Passed" because
there is no reason to draw attention to something that works as
expected.
2009-07-02 16:13:55 -04:00
Brad King 2247153110 BUG: Do not generate "global" Xcode config
Xcode 2.0 and below supported only one configuration, but 2.1 and above
support multiple configurations.  In projects for the latter version we
have been generating a "global" set of buildSettings for each target in
addition to the per-configuration settings.  These global settings are
not used by Xcode 2.1 and above, so we should not generate them.
2009-07-02 14:14:03 -04:00
Brad King 6bd9d5ab8a ENH: Simplify Xcode CreateBuildSettings method
The cmGlobalXCodeGenerator::CreateBuildSettings had the three arguments
productName, productType, and fileType that returned information used by only
one of the call sites.  This change refactors that information into separate
methods named accordingly.
2009-07-02 14:13:46 -04:00
Brad King f952ead857 ENH: Use logical target names in Xcode projects
Previously we named Xcode targets using the output file name from one of the
configurations.  This is not very friendly, especially because it changes with
CMAKE_BUILD_TYPE.  Instead we should use the original logical target names for
the Xcode target names.  This is also consistent with the way the other IDE
generators work.
2009-07-02 14:13:12 -04:00
Brad King 767b82a6c8 STYLE: Nightly Date Stamp 2009-07-02 00:01:09 -04:00
Brad King 57e4ca3709 STYLE: Nightly Date Stamp 2009-07-01 00:01:06 -04:00
Brad King df4e6c85fa STYLE: Fix line-too-long style violation. 2009-06-30 09:10:57 -04:00
Brad King 0e5df2a7bc BUG: Fix documentation of CMAKE_CFG_INTDIR
The documentation of this variable was out-dated and misleading.
See issue #9219.
2009-06-30 09:05:26 -04:00
Brad King fa3b66fcd2 STYLE: Nightly Date Stamp 2009-06-30 00:01:02 -04:00
Alexander Neundorf c4f2e42881 COMP: don't use vector::at(), this doesn't seem to exist everyhwere
(http://www.cdash.org/CDash/viewBuildError.php?buildid=366375)

Alex
2009-06-29 14:27:45 -04:00
Brad King f33a27abd6 ENH: Generate native Xcode 3.0 and 3.1 projects
CMake previously generated Xcode project files labeled as 2.4-compatible
by recent versions of Xcode (3.0 and 3.1).  It is better to generate
native Xcode 3.0 and 3.1 projects.  In particular, this can improve
build times by using the "Build independent targets in parallel"
feature.

Patch from Doug Gregor.  See issue #9216.
2009-06-29 13:02:05 -04:00
Brad King d78ef9a6cd STYLE: Nightly Date Stamp 2009-06-29 00:01:02 -04:00
Bill Hoffman 1d59cc7da6 ENH: add rest of lib check 2009-06-28 09:46:25 -04:00
Bill Hoffman 07eb80d910 ENH: fix line length 2009-06-28 08:59:56 -04:00
Alexander Neundorf b1e1dc6465 STYLE: document #cmakedefine01 (see #9189 , there's also a test for it in
Tests/Complex/ )

Alex
2009-06-28 08:06:52 -04:00
Alexander Neundorf 1651c6f37c STYLE: don't print the section name "SingleItem" if the documentation for
just a single item is printed

Alex
2009-06-28 08:05:22 -04:00
Alexander Neundorf 45652bc20b ENH: create a "Virtual Folder" in CodeBlocks, which contains all the cmake
files of the project, i.e. there is now a "CMake Files" folder additionally
to the "Sources", "Headers" and "Others" folders which already existed.
Patch by Daniel Teske.

Alex
2009-06-28 04:58:27 -04:00
Alexander Neundorf 42270c86b0 ENH: also support nmake and msvc for use with CodeBlocks under Windows,
patch by Daniel Teske

Alex
2009-06-28 04:30:11 -04:00
Brad King ee7bcee8e8 STYLE: Nightly Date Stamp 2009-06-28 00:01:01 -04:00
Alexander Neundorf e03c366466 STYLE: document CMAKE_SKIP_INSTALL_ALL_DEPENDENCY variable
Alex
2009-06-27 11:17:37 -04:00
Brad King 6f2aab1b8e STYLE: Nightly Date Stamp 2009-06-27 00:01:03 -04:00
Bill Hoffman 798024bebf ENH: fix line length issues 2009-06-26 11:50:09 -04:00
Bill Hoffman ec10b44d1e ENH: do not create a desktop link for CMakeSetup 2009-06-26 10:18:11 -04:00
Bill Hoffman 8747e109a6 ENH: remove debug print 2009-06-26 00:07:23 -04:00
Brad King a385364f78 STYLE: Nightly Date Stamp 2009-06-26 00:01:06 -04:00
Bill Hoffman b6d022f853 ENH: add obj file support and remove a warning 2009-06-25 22:53:02 -04:00
Bill Hoffman 7491f52992 ENH: first pass at VS 10, can bootstrap CMake, but many tests still fail 2009-06-25 16:41:57 -04:00
Bill Hoffman 953439f738 ENH: add reminder comment 2009-06-25 16:39:10 -04:00
Bill Hoffman 736d8c1a0c ENH: set an upload speed limit for ctest 2009-06-25 16:38:47 -04:00
Brad King cd83f1979d ENH: Cleanup make progress rule generation code
This cleans up the Makefile generator's progress rule code.  Instead of
keeping every cmMakefileTargetGenerator instance alive to generate
progress, we keep only the information necessary in a single table.
This approach keeps most of the code in cmGlobalUnixMakefileGenerator3,
thus simplifying its public interface.
2009-06-25 09:58:51 -04:00
Brad King b9a98ef65b STYLE: Remove unused variable 2009-06-25 09:43:19 -04:00
Brad King e61b49b71f STYLE: Nightly Date Stamp 2009-06-25 00:01:04 -04:00
Clinton Stimpson 33f7717536 ENH: Save/restore splitter sizes. Fixes #9070. 2009-06-24 16:50:52 -04:00
Brad King b64aadc5b0 ENH: Remove unused cmSystemTools::RemoveEscapes
The RemoveEscapes method is no longer used anywhere.  All uses of it
have been replaced by a real lexer.  We can remove the method.
2009-06-24 15:09:50 -04:00
Brad King 4266d54adb ENH: Mention cycles in target_link_libraries docs
This documents CMake's support for cycles in the dependency graph of
STATIC libraries.
2009-06-24 13:24:50 -04:00
Brad King f74b876a58 ENH: Clarify COMPILE_DEFINITIONS separator in docs
The COMPILE_DEFINITIONS properties are semicolon-separated lists.
Make this clear in the documentation.  See issue #9199.
2009-06-24 09:36:29 -04:00
Brad King 340b175852 STYLE: Nightly Date Stamp 2009-06-24 00:01:04 -04:00
Brad King 66953c78a9 BUG: Fix CVS update parsing for TortoiseCVS
The TortoiseCVS version of cvs.exe includes the '.exe' in cvs update
messages for files removed from the repository.  This change accounts
for it in the regular expressions that match such lines.  Now removed
files are properly reported by ctest_update() when using TortoiseCVS.
2009-06-23 09:06:13 -04:00
Brad King 13f519f747 STYLE: Nightly Date Stamp 2009-06-23 00:01:04 -04:00
Brad King d3679610c6 COMP: Quiet aggressive Borland warnings in KWSys
This disables Borland warning 8027 while compiling KWSys source files.
It provides no useful information.
2009-06-22 14:19:22 -04:00
Brad King d445275ed0 COMP: Remove useless variable assignment
This removes an assignment whose result is never used, thus quieting a
warning from Borland.
2009-06-22 14:19:17 -04:00
Brad King d05a2baf6c STYLE: Nightly Date Stamp 2009-06-22 00:01:03 -04:00
Brad King aa75ccefbe STYLE: Nightly Date Stamp 2009-06-21 00:01:03 -04:00
Brad King 18da042859 STYLE: Nightly Date Stamp 2009-06-20 00:01:02 -04:00
Brad King 1beb41a898 STYLE: Nightly Date Stamp 2009-06-19 00:01:37 -04:00
Brad King 3437b1342f STYLE: Nightly Date Stamp 2009-06-18 00:01:04 -04:00
Brad King 36366beb62 ENH: Improve CMP0012 doc and message formatting
This fixes the CMP0012 description to have a one-line summary in the
'brief' section and the rest of the explanation in the 'full' section.
It makes the warning message shorter and improves formatting of the
policy documentation, especially in the HTML pages.  The convention is
already used by all other policies.
2009-06-17 14:18:14 -04:00
Brad King 3c856405e4 ENH: Improve format of if() command messages
Errors and warnings from the if() command always display the argument
list given to the command followed by an explanation of the problem.
This moves the argument list into a pre-formatted block and follows it
with a paragraph-form explanation.  The result looks cleaner.
2009-06-17 14:18:08 -04:00
Brad King c790b1fabb ENH: Create CMP0013 to disallow duplicate dirs
In CMake 2.6.3 and below we silently accepted duplicate build
directories whose build files would then conflict.  At first this was
considured purely a bug that confused beginners but would not be used in
a real project.  In CMake 2.6.4 we explicitly made it an error.

However, some real projects took advantage of this as a "feature" and
got lucky that the subtle build errors it can cause did not occur.
Therefore we need a policy to deal with the case more gracefully.
See issue #9173.
2009-06-17 13:40:09 -04:00
Brad King f61f8e5383 STYLE: Nightly Date Stamp 2009-06-17 00:01:03 -04:00
Brad King 962bbbec95 BUG: Create an exe's implib output dir for VS 6
VS 6 forgets to create the output directory for an executable's import
library in case the exe dllexport-s symbols.  We work around this VS bug
by creating a pre-link event on the executable target to make the
directory.
2009-06-16 11:57:23 -04:00
Brad King 5129c23cba ENH: Refactor VS 6 build event generation
In cmLocalVisualStudio6Generator we generate pre-build, pre-link, and
post-build events into project files.  This refactors the generation
code for the three event types into a private EventWriter class to avoid
duplicate code.
2009-06-16 11:57:18 -04:00
Brad King 66189b0b79 ENH: Create exe implib dir in VS pre-link rule
This moves creation of an executable's import library directory in VS
projects from the pre-build step to the pre-link step.  It makes sense
to create the directory at the last moment.
2009-06-16 11:44:19 -04:00
Brad King 764ac9803d ENH: Generalize exe implib dir creation for VS
In VS 7,8,9 executable targets we generate a build event to create the
output directory for the import library in case the executable marks
symbols with dllexport (VS forgets to create this directory).  This
generalizes computation of the custom command line to support future use
with other VS versions.
2009-06-16 11:44:07 -04:00
Brad King 0f490cf025 STYLE: Nightly Date Stamp 2009-06-16 00:01:04 -04:00
Brad King 8fcde75e88 ENH: Simplify docs args for define_property
This teaches the define_property command signature to accept multiple
arguments after the BRIEF_DOCS and FULL_DOCS keywords.  We append the
arguments together, making specification of long documentation easier.
2009-06-15 16:12:27 -04:00
Bill Hoffman 0e85c8b6a1 STYLE: fix warning 2009-06-15 14:22:13 -04:00
Bill Hoffman 15ad6db170 BUG: fix crash when running ctest coverage for VTK 2009-06-15 13:51:07 -04:00
Ken Martin 3dadbdf3fd COMP: fix line length 2009-06-15 12:33:21 -04:00
Brad King f4b3bdc6be BUG: Create an exe's implib output dir for VS
If an executable marks symbols with __declspec(dllexport) then VS
creates an import library for it.  However, it forgets to create the
directory that will contain the import library if it is different from
the location of the executable.  We work around this VS bug by creating
a pre-build event on the executable target to make the directory.
2009-06-15 10:55:21 -04:00
Brad King d30923d631 STYLE: Nightly Date Stamp 2009-06-15 00:01:05 -04:00
Brad King 8cade78bea STYLE: Nightly Date Stamp 2009-06-14 00:01:01 -04:00
Brad King 70f6f173bd STYLE: Nightly Date Stamp 2009-06-13 00:01:04 -04:00
Brad King 219626a2be COMP: Do not compile VMS-specific code on non-VMS
This helps avoid fixing VMS-specific code for non-VMS compilers where it
isn't needed anyway.
2009-06-12 15:44:50 -04:00
Brad King 4a9dd4aad4 ENH: Refactor VS 7,8,9 build event generation
In cmLocalVisualStudio7Generator we generate pre-build, pre-link, and
post-build events into project files.  This refactors the generation
code for the three event types into a private EventWriter class to avoid
duplicate code.
2009-06-12 15:28:48 -04:00
Francois Bertel 17daa9398a COMP:Fixed warning with gcc 4.3.3: passing argument 1 of kwsysProcessSetVMSFeature discards qualifiers from pointer target type. 2009-06-12 13:33:35 -04:00
Ken Martin 133a778e2d ENH: clean up some help text 2009-06-12 13:25:50 -04:00
Ken Martin f50cf4f60d ENH: warning fix 2009-06-12 11:10:26 -04:00
Brad King e02d66e89e COMP: Block warnings in Borland system headers
In Release builds the Borland compiler warns about code in its own
system headers.  This blocks the warnings by disabling them where the
headers are included.
2009-06-12 11:05:02 -04:00
Brad King f5a86a83d3 ENH: Use KWSys String strcasecmp to parse Fortran
This replaces the Fortran dependency parser source's custom strcasecmp
implementation with one from KWSys String.  It removes duplicate code
and avoids a Borland warning about inlining functions with 'while'.
2009-06-12 10:46:25 -04:00
Brad King 74c385e702 COMP: Avoid double-initialization in KWSys String
The KWSys String implementation of strcasecmp initialized 'result'
immediately before assigning to it.  Borland produces a warning in this
case, so this commit removes the extra initialization.
2009-06-12 10:46:16 -04:00
Brad King 590a0c809e COMP: Remove useless assignment in Fortran lexer
The generated Fortran dependency scanning lexer includes an assignment
to a local variable that is unused.  Borland warns, so we remove the
assignment.
2009-06-12 10:46:03 -04:00
Ken Martin a73071ca17 ENH: modified the if command to address bug 9123 some 2009-06-12 10:07:05 -04:00
Brad King 7e03edf1df STYLE: Nightly Date Stamp 2009-06-12 00:01:02 -04:00
Bill Hoffman 8446a48054 ENH: use .exe on vms 2009-06-11 15:25:48 -04:00
Brad King 0d31c3aafb BUG: Do not create empty build-tree RPATH
The fix for issue #9130 appends ':' to the end of the build-tree RPATH
unconditionally.  This changes the fix to add ':' only when the RPATH is
not empty so that we do not create a build-tree RPATH with just ':'.  An
empty RPATH produces no string at all, so there is no chance of merging
with a symbol name anyway.
2009-06-11 14:57:47 -04:00
Brad King 8f5af6172a ENH: Disable the xmlrpc drop method by default
We've chosen to drop our default dependence on xmlrpc.  Thus we disable
the corresponding CTest submission method and remove the sources for
building xmlrpc locally.  Users can re-enable the method by setting the
CTEST_USE_XMLRPC option to use a system-installed xmlrpc library.
2009-06-11 11:24:56 -04:00
Brad King f0ab852000 COMP: Fix build with system-installed expat 2.0.1
In cmXMLParser::ReportXmlParseError we were accidentally passing a value
of type 'XML_Parser*' to expat methods instead of 'XML_Parser'.  It was
not caught because XML_Parser was just 'void*' in the cmexpat version.
Newer system-installed expat versions catch the error because XML_Parser
is now a pointer to a real type.  This correct the type.
2009-06-11 09:03:56 -04:00
Brad King 60bfa0ad3f STYLE: Nightly Date Stamp 2009-06-11 00:01:03 -04:00
Brad King d6dd3e91a4 BUG: Do not mangle symbols when editing RPATHs
In ELF binaries the .dynstr string table is used both for the RPATH
string and for program symbols.  If a symbol name happens to match the
end of the build-tree RPATH string the linker is allowed to merge the
symbols.

We must not allow this when the RPATH string will be replaced during
installation because it will mangle the symbol.  Therefore we always pad
the end of the build-tree RPATH with ':' if it will be replaced.  Tools
tend not to use ':' at the end of symbol names, so it is unlikely to
conflict.  See issue #9130.
2009-06-10 14:11:40 -04:00
Brad King 42c4a1d71f ENH: Document variable CMAKE_NO_BUILTIN_CHRPATH
This adds documentation for the variable which was previously missing.
See issue #9130.
2009-06-10 14:11:20 -04:00
Brad King 41b0f92c6a ENH: Enable basic OpenVMS platform support
This adds the Modules/Platform/OpenVMS.cmake platform file for OpenVMS.
We just use Unix-like rules to work with the GNV compiler front-end.

A problem with process execution currently prevents CMake link scripts
from working, so we avoid using them.
2009-06-10 13:04:04 -04:00
Brad King c8795101a4 ENH: Skip 'SHELL = /bin/sh' in Makefiles on VMS
This shell does not exist on VMS, so we leave it out.
2009-06-10 13:03:37 -04:00
Brad King 516add4d58 ENH: On VMS use _dir and _tmp, not .dir and .tmp
The VMS posix path emulation does not handle multiple '.' characters in
file names in all cases.  This avoids adding extra '.'s to file and
directory names for target directories and generated files.
2009-06-10 13:03:11 -04:00
Brad King fc537f05ba ENH: Teach KWSys SystemTools about VMS paths
This teaches ConvertToUnixSlashes to convert VMS paths into posix-style
paths.  We also set the DECC$FILENAME_UNIX_ONLY feature so the process
always sees posix-style paths on disk.
2009-06-10 13:02:48 -04:00
Brad King b5394e9600 BUG: Avoid std::unique algorithm on VMS
The Compaq compiler's std::unique algorithm followed by deletion of the
extra elements seems to crash.  For now we'll accept the duplicate
dependencies on this platform.
2009-06-10 13:02:18 -04:00
Brad King 312ca9670f ENH: Teach KWSys Process basic VMS support
This achieves basic process execution on OpenVMS.  We use work-arounds
for different fork()/exec() behavior and a lack of select().

VMS emulates fork/exec using setjmp/longjmp to evaluate the child and
parent return cases from fork.  Therefore both must be invoked from the
same function.

Since select() works only for sockets we use the BeOS-style polling
implementation.  However, non-blocking reads on empty pipes cannot be
distinguished easily from the last read on a closed pipe.  Therefore we
identify end of data by an empty read after the child terminates.
2009-06-10 11:48:34 -04:00
Brad King 1eec4fe6ad BUG: Fix non-select process impl without timeout
This avoids use of an uninitialized value in the KWSys ProcessUNIX
polling implementation when no timeout is given.
2009-06-10 11:46:21 -04:00
Brad King 776e21d1c7 COMP: Avoid String.c inclusion by Compaq templates
The Compaq compiler (on VMS) includes 'String.c' in source files that
use the stl string while looking for template definitions.  This was the
true cause of double-inclusion of the 'kwsysPrivate.h' header.  We work
around the problem by conditionally compiling the entire source file on
a condition only true when really building the source.
2009-06-10 11:46:06 -04:00
Brad King 7a839be972 STYLE: Nightly Date Stamp 2009-06-10 00:01:34 -04:00
Bill Hoffman fc9e6c6e5c STYLE: suppress warnings for borland 2009-06-09 15:58:52 -04:00
Bill Hoffman 89b431e8ac STYLE: suppress warnings for borland 2009-06-09 15:44:46 -04:00
Bill Hoffman b81f09e341 STYLE: suppress warnings for borland 2009-06-09 15:18:51 -04:00
Brad King 0dc49a840e STYLE: Nightly Date Stamp 2009-06-09 00:01:08 -04:00
Brad King fc025061ca STYLE: Nightly Date Stamp 2009-06-08 00:01:02 -04:00
Brad King 4c6945630c STYLE: Nightly Date Stamp 2009-06-07 00:01:03 -04:00
Brad King 43cd8555cc STYLE: Nightly Date Stamp 2009-06-06 00:01:02 -04:00
Dave Partyka cbc1938ee3 COMP: Hopefully fix hashmap on VS6, Thanks Brad K! 2009-06-05 14:59:47 -04:00
Bill Hoffman 0de79d4b2d ENH: fix warning on borland 2009-06-05 13:17:01 -04:00
Bill Hoffman fdff8eb300 ENH: move PutEnv to SystemTools 2009-06-05 12:01:30 -04:00
Brad King d5f8020391 STYLE: Nightly Date Stamp 2009-06-05 00:01:04 -04:00
Brad King 36288f41b5 STYLE: Nightly Date Stamp 2009-06-04 00:01:03 -04:00
Brad King d2b108150f BUG: Recognize .so shared libraries on HP-UX
HP-UX uses both .sl and .so as extensions for shared libraries.  This
teaches CMake to recognize .so shared libraries so they are treated
properly during link dependency analysis.
2009-06-03 15:08:30 -04:00
Brad King 1d3320f126 STYLE: Nightly Date Stamp 2009-06-03 00:01:04 -04:00
Brad King a8893fd64a STYLE: Nightly Date Stamp 2009-06-02 00:01:10 -04:00
Brad King 0067c3eb80 STYLE: Nightly Date Stamp 2009-06-01 00:01:02 -04:00
Brad King a193331016 STYLE: Nightly Date Stamp 2009-05-31 00:01:07 -04:00
Brad King 3f6aa94161 STYLE: Nightly Date Stamp 2009-05-30 00:01:02 -04:00
Brad King 2222148ce1 STYLE: Nightly Date Stamp 2009-05-29 00:01:03 -04:00
Brad King 6fcaaf46c4 STYLE: Nightly Date Stamp 2009-05-28 00:01:02 -04:00
Bill Hoffman bd1e91a460 BUG: fix for bug #8153 add purify suppression file and fix output to not be one big line 2009-05-27 11:14:08 -04:00
Bill Hoffman ca68d116e0 ENH: fix for building with VS 2010 make/nmake 2009-05-27 11:10:43 -04:00
Brad King b745f4457e STYLE: Nightly Date Stamp 2009-05-27 00:01:06 -04:00
Brad King 143bbaa2a9 STYLE: Nightly Date Stamp 2009-05-26 00:01:07 -04:00
Brad King 23f918d303 STYLE: Nightly Date Stamp 2009-05-25 00:01:07 -04:00
Brad King f56890f0dc STYLE: Nightly Date Stamp 2009-05-24 00:01:32 -04:00
Brad King 378aeaad58 STYLE: Nightly Date Stamp 2009-05-23 00:01:06 -04:00
Brad King 8f9b3c49ed STYLE: Nightly Date Stamp 2009-05-22 00:01:03 -04:00
Brad King 814858de7b STYLE: Nightly Date Stamp 2009-05-21 00:01:18 -04:00
Bill Hoffman 5634ca02f4 ENH: make this work for older versions of OSX 2009-05-20 09:50:20 -04:00
Brad King da21a4c4fb STYLE: Nightly Date Stamp 2009-05-20 00:01:08 -04:00
Bill Hoffman bb7230cc96 ENH: revert back because it does not build on older macs for now 2009-05-19 21:50:19 -04:00
Bill Hoffman 46a20bbd4c ENH: remove warning 2009-05-19 16:56:47 -04:00
Bill Hoffman 4220e7c62c ENH: make this build on other machines besides the mac 2009-05-19 16:46:24 -04:00
Bill Hoffman ee3d395fde ENH: fix system info for mac 2009-05-19 16:35:57 -04:00
Bill Hoffman d3d33a3549 ENH: fix system info for mac 2009-05-19 16:35:13 -04:00
Bill Hoffman 9c2dcf4836 BUG: fix for #0009051 CMake does not pass CMAKE_OSX_SYSROOT and CMAKE_OSX_DEPLOYMENT_TARGET when running TRY_COMPILE 2009-05-19 11:25:28 -04:00
Brad King 831ca4f57c STYLE: Nightly Date Stamp 2009-05-19 00:01:14 -04:00
Alexander Neundorf 97516244f5 STYLE: fix docs: it must replace "find_path" instead of "FIND_PATH" with
"find_file", otherwise the docs talk about find_path() instead of find_file
(patch from  Michael Wild, #9047)

Alex
2009-05-18 15:27:33 -04:00
Brad King 55c4cbbae9 BUG: Parse more bzr xml output encodings
The BZR xml output plugin can use some encodings that are not recognized
by expat, which leads to "Error parsing bzr log xml: unknown encoding".
This works around the problem by giving expat a mapping, and adds a
test.  Patch from Tom Vercauteren.  See issue #6857.
2009-05-18 10:34:35 -04:00
Brad King a40bca5398 STYLE: Nightly Date Stamp 2009-05-18 00:01:08 -04:00
Brad King 1eaa47dc16 STYLE: Nightly Date Stamp 2009-05-17 00:01:02 -04:00
Brad King 97d2606fc1 STYLE: Nightly Date Stamp 2009-05-16 00:01:02 -04:00
Brad King 2bb13f2ca5 ENH: Remove CTest public.kitware.com drop default
Previously CTest would drop dashboard submissions at public.kitware.com
on the PublicDashboard project if there was no configuration.  The
server no longer supports forwarding to cdash.org, so there is no point
in this default.  Furthermore, there should be no default at all because
it could leak information about proprietary projects that are not
configured correctly.
2009-05-15 15:39:43 -04:00
Brad King 6d357676d9 STYLE: Nightly Date Stamp 2009-05-15 00:01:03 -04:00
Brad King a524e07152 ENH: Teach CTest to handle Bazaar repositories
This creates cmCTestBZR to drive CTest Update handling on bzr-based work
trees.  Currently we always update to the head of the remote tracking
branch (bzr pull), so the nightly start time is ignored for Nightly
builds.  A later change will address this.  Patch from Tom Vercauteren.
See issue #6857.
2009-05-14 16:13:52 -04:00
Brad King ee43a12178 ENH: Make CMAKE_<LANG>_SIZEOF_DATA_PTR public
The variable was previously documented for internal-use only.  This
officially documents it for general use by projects.
2009-05-14 09:27:32 -04:00
Brad King 248bdadd94 STYLE: Simplify and document VMS workarounds
The kwsysPrivate header double-inclusion check hits a false positive on
VMS for an undetermined reason.  This simplifies the workaround and
documents it.
2009-05-14 09:27:02 -04:00
Brad King 317b3a0ef8 STYLE: Remove trailing whitespace 2009-05-14 09:26:47 -04:00
Brad King 66a92954ee STYLE: Nightly Date Stamp 2009-05-14 00:01:04 -04:00
Bill Hoffman 0a7ec1a4b6 BUG: fix for #9014, FATAL_ERROR not ending loops 2009-05-13 11:08:29 -04:00
Brad King cecfce23a5 BUG: Fix removal of read-only directories
Read-only directories must be given write permission before we can
remove files and subdirectories from them.
2009-05-13 10:30:33 -04:00
Brad King 39c7fc97f0 STYLE: Nightly Date Stamp 2009-05-13 00:01:07 -04:00
Brad King b3269b089c STYLE: Nightly Date Stamp 2009-05-12 00:01:09 -04:00
Brad King a045bd4c0d COMP: Avoid operator precedence warning
GCC warns that parens should be used for nested and/or operators.
2009-05-11 13:58:19 -04:00
Brad King 80c66c05e7 STYLE: Nightly Date Stamp 2009-05-11 00:01:05 -04:00
Alexander Neundorf ad194e659f STYLE: cacheStart is used only locally in the if-branch
Alex
2009-05-10 16:07:34 -04:00
Alexander Neundorf 2ab4e7df81 BUG: don't report changed compiler variables if the path to the compiler
differs only e.g. a double slash somewhere instead only one slash as
directory separator (#8890)

Alex
2009-05-10 05:29:10 -04:00
Brad King f114e68f7a STYLE: Nightly Date Stamp 2009-05-10 00:01:17 -04:00
Alexander Neundorf fdd93f0cbe STYLE: document CMAKE_INCLUDE_CURRENT_DIR
Alex
2009-05-09 17:25:21 -04:00
Brad King 9a3c5338fb STYLE: Nightly Date Stamp 2009-05-09 00:01:06 -04:00
Brad King 55e91d3e46 STYLE: Nightly Date Stamp 2009-05-08 00:01:02 -04:00
Bill Hoffman d2bfac93f3 ENH: add docs for command line ctest 2009-05-07 18:22:54 -04:00
Bill Hoffman 00c253847a BUG: 8898 fix date in ctest nightly time 2009-05-07 18:20:42 -04:00
Brad King 028c52841a STYLE: Nightly Date Stamp 2009-05-07 00:01:13 -04:00
Brad King c2cb8a213c STYLE: Nightly Date Stamp 2009-05-06 00:01:05 -04:00
Brad King e9f2c6f7d7 STYLE: Nightly Date Stamp 2009-05-05 00:01:03 -04:00
Brad King 1ce218afd3 STYLE: Nightly Date Stamp 2009-05-04 00:01:03 -04:00
Brad King 783a6cadc8 STYLE: Nightly Date Stamp 2009-05-03 00:01:03 -04:00
Brad King d8b1717492 STYLE: Nightly Date Stamp 2009-05-02 00:01:04 -04:00
Brad King 392b38cef7 ENH: Remove cmTarget internal type arguments
Internally cmTarget was passing the target type in several name
computation signatures to support computation of both shared and static
library names for one target.  We no longer need to compute both names,
so this change simplifies the internals by using the GetType method and
dropping the type from method signatures.
2009-05-01 10:39:44 -04:00
Brad King bcb9a479db ENH: Remove cmTarget::GetExecutableCleanNames
This method was redundant with GetExecutableNames.
2009-05-01 10:39:28 -04:00
Brad King 430cc2b4b7 ENH: Always imply CLEAN_DIRECT_OUTPUT target prop
This property was left from before CMake always linked using full path
library names for targets it builds.  In order to safely link with
"-lfoo" we needed to avoid having both shared and static libraries in
the build tree for targets that switch on BUILD_SHARED_LIBS.  This meant
cleaning both shared and static names before creating the library, which
led to the creation of CLEAN_DIRECT_OUTPUT to disable the behavior.

Now that we always link with a full path we do not need to clean old
library names left from an alternate setting of BUILD_SHARED_LIBS.  This
change removes the CLEAN_DIRECT_OUTPUT property and instead uses its
behavior always.  It removes some complexity from cmTarget internally.
2009-05-01 10:38:35 -04:00
Brad King 2740db5ede ENH: Allow more specification of target file names
This creates target properties ARCHIVE_OUTPUT_NAME, LIBRARY_OUTPUT_NAME,
and RUNTIME_OUTPUT_NAME, and per-configuration equivalent properties
ARCHIVE_OUTPUT_NAME_<CONFIG>, LIBRARY_OUTPUT_NAME_<CONFIG>, and
RUNTIME_OUTPUT_NAME_<CONFIG>.  They allow specification of target output
file names on a per-type, per-configuration basis.  For example, a .dll
and its .lib import library may have different base names.

For consistency and to avoid ambiguity, the old <CONFIG>_OUTPUT_NAME
property is now also available as OUTPUT_NAME_<CONFIG>.

See issue #8920.
2009-05-01 09:45:43 -04:00
Brad King 617eb981d4 ENH: Refactor target output file type computation
This creates method cmTarget::GetOutputTargetType to compute the output
file type 'ARCHIVE', 'LIBRARY', or 'RUNTIME' from the platform and
target type.  It factors out logic from the target output directory
computation code for later re-use.
2009-05-01 09:45:19 -04:00
Brad King 5f7ea11f97 STYLE: Nightly Date Stamp 2009-05-01 00:01:02 -04:00
Brad King 7159bacdd9 STYLE: Nightly Date Stamp 2009-04-30 00:01:10 -04:00
Brad King 01c669e643 COMP: Avoid unused arg warnings in cmFileCommand
The default cmFileCopier::ReportCopy implementation is empty, so we
should leave out the argument names.
2009-04-29 14:50:28 -04:00
Brad King 7b527a6585 BUG: Remove '-d<now' from 'cvs log' commands
When CTest runs 'cvs log' to get revision information for updated files,
we were passing '-d<now'.  The option seems useless since revisions
cannot be created in the future, and can lose revisions if the client
machine clock is behind the server.
2009-04-29 14:20:40 -04:00
Brad King d91c5b1a07 COMP: Fix nested class member access
Nested classes have no special access to other members of their
enclosing class.  In cmFileCopier the nested class MatchRule must use
MatchProperties, so we grant friendship to it.
2009-04-29 13:57:19 -04:00
Brad King 222abaad5b COMP: Fix non-virtual destructor warning
This gives cmFileCopier a virtual destructor since it has virtual
methods.  While we never actually delete through a base pointer (or
dynamically at all), the compiler doesn't know and warns anyway.
2009-04-29 13:33:05 -04:00
Brad King c58ca24286 ENH: Create file(COPY) command signature
The file(INSTALL) command has long been undocumented and used only to
implement install() scripts.  We now document it and provide a similar
file(COPY) signature which is useful in general-purpose scripts.  It
provides the capabilities of install(DIRECTORY) and install(FILES) but
operates immediately instead of contributing to install scripts.
2009-04-29 13:13:29 -04:00
Brad King b6cb117346 ENH: Teach file(INSTALL) relative paths
This teaches the undocumented file(INSTALL) command to deal with
relative paths.  Relative input file paths are evaluated with respect to
the current source directory.  Relative output file paths are evaluated
with respect to the current binary directory.

While this command is currently used only in cmake_install.cmake scripts
(in -P script mode), this cleans up its interface in preparation for a
documented signature.
2009-04-29 13:13:08 -04:00
Brad King 6aaa7d45bf ENH: Refactor file(INSTALL) implementation
The undocumented file(INSTALL) is implemented by a cmFileInstaller class
inside cmFileCommand.  This refactors the class to split out code not
specific to installation into a cmFileCopier base class.
2009-04-29 13:12:58 -04:00
Brad King 97263b6cdd ENH: Send all file installations through one path
This creates a single cmFileInstaller method to dispatch installation of
symlinks, directories, and files.  The change removes duplicate tests of
input file type and makes the decision more consistent.
2009-04-29 08:47:13 -04:00
Brad King bc6eec18dc ENH: Better error on file perm or time failure
This improves the error message produced during installation when CMake
cannot set file modification time or permissions.
2009-04-29 08:47:04 -04:00
Brad King f180a834bf BUG: Error when install dir cannot be created
This teaches the undocumented file(INSTALL) command to report an error
when it cannot create the destination directory.
2009-04-29 08:46:56 -04:00
Brad King dc0621ba5a ENH: Simplify CMAKE_INSTALL_ALWAYS implementation
This simplifies cmFileInstaller internally by storing the 'always' mark
as an instance variable instead of passing it through all method
signatures.
2009-04-29 08:46:36 -04:00
Brad King 8d685184f3 ENH: Simplify construction of cmFileInstaller
This cleans up the cmFileInstaller constructor signature.
2009-04-29 08:46:21 -04:00
Brad King 77f85db5d7 STYLE: Nightly Date Stamp 2009-04-29 00:01:04 -04:00
Brad King 03d8b8ad57 BUG: Fix required permissions check again
While copying a directory the destination must have owner rwx
permissions.  This corrects our check, this time with correct operator
precedence using parenthesis.
2009-04-28 08:19:44 -04:00
Brad King 9384790d04 STYLE: Nightly Date Stamp 2009-04-28 00:01:03 -04:00
Brad King da993b64ce ENH: Remove unused PROPERTIES from file(INSTALL)
The undocumented file(INSTALL) command used to support a PROPERTIES
option, but no install code still uses it.  This removes the option.
2009-04-27 13:20:57 -04:00
Brad King 0178268901 BUG: Fix required permissions check for dir copy
While copying a directory the destination must have owner rwx
permissions.  This corrects our check.
2009-04-27 13:20:47 -04:00
Brad King e128583cb4 STYLE: Nightly Date Stamp 2009-04-27 00:01:02 -04:00
Brad King 861cd084f3 STYLE: Nightly Date Stamp 2009-04-26 00:01:03 -04:00
Brad King 79fb689e2e STYLE: Nightly Date Stamp 2009-04-25 00:01:05 -04:00
Bill Hoffman ae95f656f3 ENH: vms fix 2009-04-24 11:44:42 -04:00
Brad King 708d1cf1ee ENH: Support more preprocessor values in VS6
Previously we rejected all preprocessor definition values containing
spaces for the VS6 IDE generator.  In fact VS6 does support spaces but
not in combination with '"', '$', or ';', and only if we use the sytnax
'-DNAME="value with spaces"' instead of '-D"NAME=value with spaces"'.
Now we support all definition values that do not have one of these
invalid pairs.  See issue #8779.
2009-04-24 11:18:06 -04:00
Brad King 70b2f59c3f STYLE: Nightly Date Stamp 2009-04-24 00:01:04 -04:00
Bill Hoffman 7fc99c94d4 ENH: check in almost building VMS stuff with VMSBuild directory since the bootstrap script will not work on VMS 2009-04-23 11:09:47 -04:00
Brad King f353df7ffc STYLE: Nightly Date Stamp 2009-04-23 00:01:05 -04:00
Brad King e8e3080ebe COMP: Fix class reference for HP aCC 2009-04-22 10:22:25 -04:00
Brad King 9c17cbeb44 ENH: Teach CTest to handle git repositories
This creates cmCTestGIT to drive CTest Update handling on git-based work
trees.  Currently we always update to the head of the remote tracking
branch (git pull), so the nightly start time is ignored for Nightly
builds.  A later change will address this.  See issue #6994.
2009-04-22 09:19:06 -04:00
Brad King d25289ad92 ENH: Factor global-VC parts out of cmCTestSVN
This factors parts of the svn update implementation that are useful for
any globally-versioning vcs tool into cmCTestGlobalVC.  It will allow
the code to be shared among the support classes for most vcs tools.
2009-04-22 09:18:19 -04:00
Brad King efe07c4e0a COMP: Fix calls to superclass methods for Borland
The superclass of cmSystemTools is cmsys::SystemTools, which should be
referencable by just SystemTools from inside the class.  Borland C++
does not seem to support this, so we use cmSystemTools instead.
2009-04-22 09:11:06 -04:00
Brad King b1005a0e5e STYLE: Nightly Date Stamp 2009-04-22 00:01:11 -04:00
Alexander Neundorf ce6849f057 ENH: also recognize rxvt-256color as a color terminal (#8913, patch from Deewiant)
Alex
2009-04-21 18:23:02 -04:00
Brad King 13e454f8d3 BUG: Avoid infinite loop at directory tree root
The system tools GetParentDirectory method no longer removes the root
path component.  This fixes cmSystemTools::FileExistsInParentDirectories
to not infinitely loop at when GetParentDirectory stops at the root.
2009-04-21 11:37:09 -04:00
Brad King 714d2fc04b ENH: Remove obscure method from KWSys SystemTools
This removes SystemTools::FileExistsInParentDirectories from KWSys since
it is a special-purpose method that is not generally useful.
2009-04-21 11:36:59 -04:00
Brad King 7bb8678fc6 STYLE: Nightly Date Stamp 2009-04-21 00:01:06 -04:00
Brad King 20f4fdee33 BUG: Fix SystemTools::IsSubDirectory on bad input
When SystemTools::GetParentDirectory was fixed to never remove the root
path component from a full path we violated an assumption made by
IsSubDirectory that eventually GetParentDirectory returns an empty
string.  This led to an infinite loop if the potential parent directory
is empty, so we explicitly avoid that case.
2009-04-20 08:42:05 -04:00
Brad King 102697e5d0 STYLE: Nightly Date Stamp 2009-04-20 00:01:09 -04:00
Alexander Neundorf bc9703b695 STYLE: fix typos in the docs
Alex
2009-04-19 12:48:30 -04:00
Brad King 289ce0b80a STYLE: Nightly Date Stamp 2009-04-19 00:01:03 -04:00
Brad King 7929462a39 STYLE: Nightly Date Stamp 2009-04-18 00:01:14 -04:00
Bill Hoffman be7824c369 ENH: make sure CTEST_CURL_OPTIONS work from script mode 2009-04-17 14:44:01 -04:00
Brad King 3e0db72aaa STYLE: Nightly Date Stamp 2009-04-17 00:01:04 -04:00
Clinton Stimpson a17bf54af7 BUG: Path lengths in combo box for binary directory was forcing a minimum size
on the main window.  Fixed that.
2009-04-16 12:25:15 -04:00
Brad King 0d5b456c29 STYLE: Nightly Date Stamp 2009-04-16 00:01:10 -04:00
Brad King 3824f54c17 BUG: Replace brittle GetParentDirectory impl
The previous change to this method broke cases where the input path does
not exist.  The SystemTools::GetParentDirectory method is redundant with
the more robust SystemTools::GetFilenamePath.  This replaces its
implementation to just call GetFilenamePath.
2009-04-15 13:03:33 -04:00
Brad King 1ed7f381f1 COMP: Fix BOOL to bool conversion warning
The cmSystemTools::RenameFile method returns type bool, but its
implementation on Windows returns the result of an API function that
returns BOOL.  This change avoids the compiler warning.
2009-04-15 11:00:03 -04:00
Yumin Yuan f3035ff78d BUG: SystemTools::GetParentDirectory() will crash if "/" is passed in as argement. Valid check is added to make sure the input argment exists, and if "/" is passed in, empty string will be returned. 2009-04-15 10:45:29 -04:00
Brad King aba3d56c92 ENH: Create command line api "cmake -E rename"
This extends the "-E" command line mode with a "rename old new"
signature.  The new command atomically renames a file or directory
within a single disk volume.
2009-04-15 09:58:33 -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 d3363beb2f ENH: Move RenameFile to cmSystemTools
This moves the cmGeneratedFileStream::RenameFile method implementation
into cmSystemTools.  It works only within a single filesystem volume,
but is atomic when the operating system permits.
2009-04-15 09:57:57 -04:00
Brad King 6218a1a786 STYLE: Nightly Date Stamp 2009-04-15 00:01:09 -04:00
Brad King 19d11e2a1f ENH: Skip KWSys name maros in case of identity
All KWSys C symbol names begin with the KWSYS_NAMESPACE defined at
configuration time.  For ease of editing we write canonical names with
the prefix 'kwsys' and use macros to map them to the configured prefix
at preprocessing time.  In the case of standalone KWSys, the prefix is
'kwsys', so the macros were previously defined to their own names.

We now skip defining the macros in the identity case so that the final
symbol names are never themselves macros.  This will allow the symbols
to be further transformed behind the scenes to help linkers in special
cases on some platforms.
2009-04-14 09:35:56 -04:00
Brad King 286a136adb STYLE: Nightly Date Stamp 2009-04-14 00:01:04 -04:00
Brad King 172d07fca9 STYLE: Nightly Date Stamp 2009-04-13 00:01:15 -04:00
Brad King 9a884dd3f4 STYLE: Nightly Date Stamp 2009-04-12 00:01:04 -04:00
Bill Hoffman 682e15184a ENH: remove warning and improve message 2009-04-11 09:29:27 -04:00
Brad King c723625f6a STYLE: Nightly Date Stamp 2009-04-11 00:01:04 -04:00
Bill Hoffman d75513c9fa ENH: remove cerr call 2009-04-10 13:00:27 -04:00
Bill Hoffman 4ec691a9d1 ENH: add ability to control ssl cert checking 2009-04-10 12:15:03 -04:00
Brad King 3c0e239346 STYLE: Nightly Date Stamp 2009-04-10 00:01:09 -04:00
Brad King dfd95e100d STYLE: Nightly Date Stamp 2009-04-09 00:01:02 -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 5886d10334 BUG: Fix imported target config guess
When an IMPORTED target provides no generic configuration and no match
for a desired configuration then we choose any available configuration.
This change corrects the choice when the first listed available
configuration does not really have a location.
2009-04-08 16:28:55 -04:00
Brad King d72743928e STYLE: Nightly Date Stamp 2009-04-08 00:01:05 -04:00
David Cole f6828c391d BUG: Fix invalid array access discovered during investigation of issue #7832. 2009-04-07 15:13:07 -04:00
Brad King 36e9a6ed81 STYLE: Nightly Date Stamp 2009-04-07 00:01:06 -04:00
Brad King ae284cc5c8 BUG: Fix parsing of linux 2.6 /proc/meminfo format
Previously KWSys SystemInformation parsed this file assuming a strict
order and set of fields, but the order is not reliable.  This
generalizes the implementation to support any order and extra fields.
2009-04-06 14:55:54 -04:00
Brad King 85bffd3eeb BUG: Lookup transitive link deps in depender scope
The transitive link dependencies of a linked target must be followed in
its own scope, not in the scope of the original target that depends on
it.  This is necessary since imported targets do not have global scope.
See issue #8843.
2009-04-06 11:10:37 -04:00
Mathieu Malaterre c9949f97a7 BUG: comment out faulty seekp which make kwsys::*stringstream fails on platform with no std::*stringstream implementation 2009-04-06 03:39:42 -04:00
Brad King 7855f988d4 STYLE: Nightly Date Stamp 2009-04-06 00:01:08 -04:00
Mathieu Malaterre 1ab71112c2 ENH: hopefully seekp is the call making kwsys::stringstream behaves oddly on sunos 2009-04-05 06:55:52 -04:00
Brad King 434bd99dc7 STYLE: Nightly Date Stamp 2009-04-05 00:01:12 -04:00
Brad King 4a8d3019cd STYLE: Nightly Date Stamp 2009-04-04 00:01:08 -04:00
David Cole 42c033ccd6 BUG: Fix issue #8759 - add support for setting dmg volume name and compression type by CPack variables. Also add custom .DS_Store and background image support. Thanks to Mike Arthur for the patches. 2009-04-03 13:12:53 -04:00
David Cole 601764feed BUG: Fix documentation deficiency noted in issue #7885. Thanks to Philip Lowman for the gist of the patch. 2009-04-03 11:41:33 -04:00
Brad King 17ea632e93 STYLE: Nightly Date Stamp 2009-04-03 00:01:04 -04:00
Mathieu Malaterre 31c4a269b0 ENH: trying to reproduce issue on sunos 2009-04-02 06:12:53 -04:00
Brad King fd7656f7c3 STYLE: Nightly Date Stamp 2009-04-02 00:01:04 -04:00
Brad King 5982224a73 ENH: Clarify VERBATIM option documentation
The previous wording of the VERBATIM option documentation in the
add_custom_command and add_custom_target commands was confusing.  It
could be interpreted as the opposite of what the option means (no
escaping instead of escaping).  This clarifies the documentation to
explicitly state that it escapes.
2009-04-01 10:31:41 -04:00
Brad King 475e1d78cb STYLE: Nightly Date Stamp 2009-04-01 00:01:08 -04:00
Bill Hoffman 4c3718d7b6 ENH: use 0 not FALSE 2009-03-31 15:30:36 -04:00
Bill Hoffman 1f0835b5eb ENH: add submit via cp mode 2009-03-31 15:24:50 -04:00
Brad King 6f4554982d STYLE: Nightly Date Stamp 2009-03-31 00:01:04 -04:00
Clinton Stimpson 79a3644e80 BUG: Fix inconsistency with lowercase drive letters on Windows. 2009-03-30 16:34:28 -04:00
Clinton Stimpson 39f2d825fc ENH: Add version info to about dialog, including Qt version. 2009-03-30 10:56:43 -04:00
Mathieu Malaterre 3a34b35dec COMP: missing string.h header for strlen. 2009-03-30 08:27:44 -04:00
Brad King 31d03e8399 ENH: Document scope of add_custom_command outputs
This explicitly states the scope of add_custom_command rules in
the documentation of add_custom_command and add_custom_target.
See issue #8815.
2009-03-30 08:27:28 -04:00
Mathieu Malaterre 318bfab8c1 ENH: remote debugging of sunos 2009-03-30 04:10:37 -04:00
Brad King 1bd0b15145 STYLE: Nightly Date Stamp 2009-03-30 00:01:04 -04:00
Brad King 3489950746 STYLE: Nightly Date Stamp 2009-03-29 00:01:05 -04:00
Bill Hoffman fb24a4c881 STYLE: fix line lenght 2009-03-28 13:02:29 -04:00
Brad King 7e8ad26e5a STYLE: Nightly Date Stamp 2009-03-28 00:01:04 -04:00
Bill Hoffman 17f327b5da BUG: fix for #8686 add some more compiler flags 2009-03-27 12:33:17 -04:00
Bill Hoffman a9bda84ba8 ENH: LIBPATH is not required for cl to work 2009-03-27 11:18:58 -04:00
Brad King 27598a53c9 STYLE: Nightly Date Stamp 2009-03-27 00:01:05 -04:00
Clinton Stimpson ff09eacf5c BUG: Don't return checkable flag for item when in the middle of configure/generate. 2009-03-26 11:42:37 -04:00
Brad King 9b41f200ad STYLE: Nightly Date Stamp 2009-03-26 00:01:07 -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 5efdefbc27 STYLE: Nightly Date Stamp 2009-03-25 00:01:06 -04:00
Brad King db4390ea7c STYLE: Nightly Date Stamp 2009-03-24 00:01:03 -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 10a91d8467 STYLE: Nightly Date Stamp 2009-03-23 00:01:35 -04:00
Brad King acabe5debb STYLE: Nightly Date Stamp 2009-03-22 00:01:04 -04:00
Brad King 8f5a4c431c STYLE: Nightly Date Stamp 2009-03-21 00:01:03 -04:00
Brad King d66436e2e4 BUG: Fix return value of ctest_update
The CTest version control refactoring broke the value returned for the
ctest_update command's RETURN_VALUE argument.  The value is supposed to
be the number of files updated, but the refactoring accidentally made it
the number of locally modified files after the update.
2009-03-20 14:19:56 -04:00
Brad King 1ce28d1db8 STYLE: Nightly Date Stamp 2009-03-20 00:01:05 -04:00
Francois Bertel ad4a2fd697 COMP:Fixed warnings with gcc 4.3.2. 2009-03-19 22:48:05 -04:00
Francois Bertel 1a13469a26 COMP:Try to fix error on HP. 2009-03-19 11:48:50 -04:00
Brad King 6d02ee34c9 ENH: Mention CMAKE_* variables in RPATH properties
The RPATH target properties are initialized by CMAKE_<prop> variables at
target creation time.  This notes the feature in the property
documentation.  It is already noted in the variable documentation.
2009-03-19 10:53:51 -04:00
Francois Bertel c8f9ee6b74 COMP:try to fix error on qnx-V3.3.5-gcc_ntox86. 2009-03-19 10:03:36 -04:00
Francois Bertel a638a2f8a0 COMP:Fixed warnings. 2009-03-19 09:20:40 -04:00
Francois Bertel 675b76d931 COMP:Fixed VS 64-bit warning C4267 line 432 of RegularExpression.cxx 2009-03-19 09:09:33 -04:00
Brad King b74c0a03e5 STYLE: Nightly Date Stamp 2009-03-19 00:01:07 -04:00
Francois Bertel 431c456cf5 COMP:Fixed warnings. 2009-03-18 08:50:55 -04:00
Francois Bertel 1fb58e3bf4 STYLE:Empty commit just add information about rev 1.15: the reason is that long is 64-bit on gcc on Linux because it uses the LP64 data model whereas long is 32-bit on VS 64-bit because it uses the LLP64 model (ref: http://en.wikipedia.org/wiki/64-bit#64-bit_data_models ) 2009-03-18 07:57:28 -04:00
Francois Bertel 489df7836e COMP:Fix warning on VS 64bit. Don't why gcc 4.3.2 didn't catch this one on a 64bit machine with -Wconversion on. 2009-03-18 07:32:12 -04:00
Brad King 4066abc7f3 STYLE: Nightly Date Stamp 2009-03-18 00:01:03 -04:00
Brad King b59d0a4d13 BUG: Allow more shell ops in custom commands
This extends the set of common shell operators to include "||", "&&",
"1>", and "2>".  See issue #6868.
2009-03-17 15:11:33 -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
Francois Bertel ee00616289 COMP:Fixed warnings. 2009-03-17 10:48:24 -04:00
Brad King 94853b493a STYLE: Nightly Date Stamp 2009-03-17 00:01:07 -04:00
Francois Bertel 257937f2bd COMP:Try to fix compile error with qnx gcc. 2009-03-16 17:38:17 -04:00
Francois Bertel d0b32b42a1 COMP:Fixed gcc 4.3.2 warning with -O1 and above: ignoring return value of read'), declared with attribute warn_unused_result 2009-03-16 17:13:14 -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 49dec94f54 STYLE: Separate unrelated logic
This separates unrelated uses of a library-type switch into separate
switches.  An upcoming commit will conditionally enter one of the
switches.
2009-03-16 16:55:53 -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 741ae600c4 ENH: Factor out makefile progress rule commands
This factors duplicate progress rule code into a common method.
2009-03-16 16:22:13 -04:00
Francois Bertel 7b9b56d80e COMP:Fixed warnings. 2009-03-16 15:02:25 -04:00
Brad King 921f3a1ac2 BUG: Do not automatically set HEADER_FILE_ONLY
Long ago the native build system generators needed HEADER_FILE_ONLY to
be set on header files to stop them from building.  The modern
generators correctly handle headers without the help of this property.
This removes automatic setting of the property so that it can be used
reliably as an indicator of project author intention.  It fixes VS IDE
project files to show header files normally instead of excluded (broken
by the fix for issue #7845).
2009-03-16 14:30:24 -04:00
Brad King 147d6f3101 ENH: Remove unused code from cmMakeDepend
This class is the old-style dependency scanner.  It is needed only to
implement the output_required_files command.  This change removes some
code not needed for that purpose, including a reference to the
HEADER_FILE_ONLY property.
2009-03-16 14:30: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 606e6ff9cd ENH: Refactor storage of test command lines
We used to separate the command executable from its argument vector.
It is simpler to just store the whole command line in one vector.
2009-03-16 10:42:40 -04:00
Brad King 66d69f864a ENH: Refactor generation of CTestTestfile content
This moves code which generates ADD_TEST and SET_TESTS_PROPERTIES calls
into CTestTestfile.cmake files out of cmLocalGenerator and into a
cmTestGenerator class.  This will allow more advanced generation without
cluttering cmLocalGenerator.  The cmTestGenerator class derives from
cmScriptGenerator to get support for per-configuration script
generation (not yet enabled).
2009-03-16 10:40:46 -04:00
Brad King e67f5138b8 ENH: Refactor cmInstallGenerator for re-use
A new cmScriptGenerator base class factors out the non-install-specific
part of cmInstallGenerator.  This will be useful for other generators
that want per-configuration functionality.
2009-03-16 10:39:56 -04:00
Brad King e30835345a STYLE: Nightly Date Stamp 2009-03-16 00:01:05 -04:00
Brad King fa325c1fdc STYLE: Nightly Date Stamp 2009-03-15 00:01:08 -04:00
Brad King e4eb90c875 STYLE: Nightly Date Stamp 2009-03-14 00:01:05 -04:00
Alexander Neundorf f40f867be6 ENH: don't enforce VERBOSE Makefiles, but set the env. var VERBOSE to 1 in
when make is executed from within Eclipse. This way when building from the
command line one can build also in non-verbose mode.

Alex
2009-03-13 17:04:57 -04:00
Alexander Neundorf cbb7a509e8 ENH: when using the Eclipse project generator, run gcc so that it tells us
its system include directories. These are catched in CMakeSystemSpecificInformation.cmake
(only with the Eclipse generator) and then written by the Eclipse generator
in the Eclipse project file. This way Eclipse can find the standard headers
(#7585)
Not sure CMakeSystemSpecificInformation.cmake is the best place to do this.

Alex
2009-03-13 16:52:58 -04:00
Alexander Neundorf 4a23e05237 STYLE: add line breaks to the documentation for CMAKE_MATCH_(0..9),
otherwise one might miss this information

Alex
2009-03-13 14:58:13 -04:00
Brad King 5cde305b99 BUG: Document internal cache property MODIFIED
All cmake-defined properties should be documented, even if they are
internal.  This fixes the DocTest when CMAKE_STRICT is enabled.
2009-03-13 10:53:53 -04:00
Brad King 5e49dc4346 BUG: Fix cache properties for CMAKE_STRICT build
All cmPropertyMap instances must have CMakeInstance set.  This teaches
cmCacheManager to set it on cache entries.
2009-03-13 10:53:47 -04:00
Brad King c6d0043e2a STYLE: Nightly Date Stamp 2009-03-13 00:01:06 -04:00
Alexander Neundorf 3fe6b3ce37 BUG: fix #8704, sometimes crash if include_directories() is called with a whitespace string
Alex
2009-03-12 19:24:27 -04:00
Alexander Neundorf 5174fbd390 STYLE: document NONE for disabling any languages, slightly change wording of
the rest of the documentation, so it is more similar to ENABLE_LANGUAGE() (#8718)

Alex
2009-03-12 18:43:17 -04:00
Bill Hoffman 0a65ee8d95 ENH: allow for https submission if ctest is built with a curl that supports it 2009-03-12 14:54:00 -04:00
Brad King d96e7e0e5a COMP: Do not use void returns
VS 6 does not support the C++ void returns feature.  This removes an
accidental use of it.
2009-03-12 13:11:48 -04:00
Clinton Stimpson c54f47635c ENH: Add support for showing combo box for choosing from a list of strings that a cache property can have. 2009-03-12 11:19:27 -04:00
Brad King dd7b48c9c3 ENH: Define STRINGS cache entry property
This property defines a list of values for a cache entry of type STRING.
A CMake GUI may optionally use a drop-down selection widget for the
entry instead of a generic text entry field.  We do not enforce that the
value of the entry match one of the strings listed.
2009-03-12 10:52:40 -04:00
Brad King 1b43bea91c ENH: Refactor cache entry writing and reading
This factors out duplicated code into reusable methods, thus simplifying
writing and reading of cache entry help strings, keys, values, and
properties.
2009-03-12 10:49:05 -04:00
Brad King 0460e31e67 STYLE: Nightly Date Stamp 2009-03-12 00:01:07 -04:00
Brad King 589b4265a6 BUG: Do not produce empty coverage log files
This moves the filtering of source files to before the production of
coverage log files in order to avoid producing a CoverageLog-*.xml file
for 100 filtered-out files.  The change greatly reduces the number of
submitted coverage files when using label filters.
2009-03-11 13:31:40 -04:00
Brad King 5bc17136a3 BUG: Do not carry over file list between coverage
When performing multiple ctest_coverage() commands in a single CTest
instance we need to clear the list of CoverageLog-*.xml files for
submission.  Otherwise if the current coverage run produces fewer log
files than the previous run CTest will attempt to submit non-existing
files.
2009-03-11 13:31:33 -04:00
Brad King f3e713ba65 BUG: Avoid duplicate CTest coverage submission
This teaches ctest_coverage() to remove any existing CoverageLog-*.xml
when it creates new coverage results.  Otherwise the next ctest_submit()
may submit old coverage log files which unnecessarily.
2009-03-11 12:03:47 -04:00
Brad King b4997c3020 STYLE: Nightly Date Stamp 2009-03-11 00:01:03 -04:00
Alexander Neundorf 5700deb16a ENH: only check for the existance of a header file if:
-the original file is a C/C++ implementation file
-the header file is not already part of the sources

Alex
2009-03-10 17:34:18 -04:00
Brad King 32258b44bc ENH: Document CACHE entry properties
This adds a property documentation section for CACHE properties.
We document the ADVANCED, HELPSTRING, TYPE, and VALUE properties.
2009-03-10 11:11:15 -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
Brad King ca9fb4826f ENH: Use cmPropertyMap for cache properties
This re-implements cache entry property storage in cmCacheManager to use
cmPropertyMap so it can share the standard property implementation.
2009-03-10 11:10:42 -04:00
Brad King effd6d6e0b STYLE: Nightly Date Stamp 2009-03-10 00:01:05 -04:00
Brad King 21fc04efaf BUG: Fix get_property result for bad property
When a property does not exist we are supposed to return an empty value.
Previously if a property did not exist we just left the value of the
output variable unchanged.  This teaches CMake to remove the definition
of the output variable in this case.
2009-03-09 17:57:12 -04:00
Brad King 1d96c943e0 ENH: Efficiently filter CTest coverage by label
This teaches CTest to process coverage information only for object files
in targets containing labels of interest.  This change also improves
loading of global coverage information by globbing only in each target
support directory instead of the entire build tree.
2009-03-09 12:19:56 -04:00
Brad King a86e81c358 ENH: Generate a central list of target directories
This generalizes the previous CMakeFiles/LabelFiles.txt created at the
top of the build tree to a CMakeFiles/TargetDirectories.txt file.  It
lists the target support directories for all targets in the project.
Labels can still be loaded by looking for Labels.txt files in each
target directory.
2009-03-09 12:19:27 -04:00
Brad King b9323d2dd6 STYLE: Nightly Date Stamp 2009-03-09 00:01:04 -04:00
Alexander Neundorf 363c4e422d ENH: automatically add headers of implementation file to the codeblocks project file
Alex
2009-03-08 15:33:58 -04:00
Brad King 038827c5da STYLE: Nightly Date Stamp 2009-03-08 00:01:03 -05:00
Brad King 55760e9994 STYLE: Nightly Date Stamp 2009-03-07 00:01:04 -05:00
Brad King b04c37c700 BUG: Fix message(SEND_ERROR) to continue
During testing of the new message() signatures I mistakenly concluded
that SEND_ERROR stops processing.  The corresponding commit enforced
this wrong behavior.  This restores the correct behavior and fixes the
documentation accordingly.
2009-03-06 12:06:43 -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 62702551db BUG: Fix man-page preformatted text paragraphing
Man page preformatted text needs an extra newline after the ending
marker to create a paragraph break.  This bug was introduced by the
patch from issue #7797 to place explicit ".nf" and ".fi" markers around
preformatted blocks.
2009-03-06 10:01:14 -05:00
Brad King 2123b432d9 ENH: Teach file(REMOVE) how to use relative paths
This teaches the command to interpret relative paths with respect to the
location of the invoking CMakeLists.txt file.  The convention is already
used by most commands and won't change the behavior in script mode.
2009-03-06 09:14:57 -05:00
Brad King 73bea67fd3 STYLE: Nightly Date Stamp 2009-03-06 00:01:03 -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 83f39ba41b STYLE: Remove unused cmake::CacheVersionMatches
This remove the method completely since nothing uses it.
2009-03-05 13:57:10 -05:00
Brad King dcd1c5cd8a BUG: Initialize ctest_coverage command ivar
This initializes the LabelsMentioned ivar in cmCTestCoverageCommand.
2009-03-05 10:17:42 -05:00
Brad King 46c3541392 STYLE: Nightly Date Stamp 2009-03-05 00:01:04 -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 d35651fb6c ENH: Extend GG::Build method for pre-parsed args
This adds an argument to the cmGlobalGenerator::Build method to pass a
vector of arguments for the native build tool programatically.
2009-03-04 15:38:47 -05:00
Bill Hoffman e7f16fcb1b BUG: make sure error condition is reset before loading scripts 2009-03-04 11:24:57 -05:00
Brad King c0e0180f28 STYLE: Nightly Date Stamp 2009-03-04 00:01:02 -05:00
Brad King 123e9618b1 STYLE: Nightly Date Stamp 2009-03-03 00:01:02 -05:00
Brad King 82e9291629 BUG: Avoid encoding invalid XML chars in CTest
CTest encodes test and tool output in XML for dashboard submission.
This fixes the XML encoding implementation to not encode an invalid
character and instead put a human-readable tag in its place.
See issue #8647.
2009-03-02 16:27:50 -05:00
Brad King ed5e4d8be2 BUG: Gracefully handle broken version symlinks
This teaches the helper commands 'cmake -E cmake_symlink_executable' and
'cmake -E cmake_symlink_library' to remove broken symlinks before
creating a symlink and report an error when the symlink cannot be
created.  See issue #8654.
2009-03-02 16:02:19 -05:00
Brad King 91a8569648 ENH: Teach ctest_coverage to filter with LABELS
This teaches ctest_coverage() to report only coverage of files labeled
with at least one label given by a new LABELS option.
2009-03-02 15:33:18 -05:00
Brad King 3078fef81c BUG: Fix coverage label reports for Bullseye
This teaches CTest to report Labels elements in the Coverage.xml file
for Bullseye coverage results.
2009-03-02 15:33:03 -05:00
Brad King c4596605df BUG: Fix coverage handler initialization
This resets coverage handler internal state on initialization so that
multiple coverage runs are independent.
2009-03-02 15:32:59 -05:00
Brad King 3838ec7d9f BUG: Hack for issue #8647 2009-03-02 09:59:14 -05:00
Brad King 1e6b109fed STYLE: Nightly Date Stamp 2009-03-02 00:01:05 -05:00
Brad King 8ddec12021 STYLE: Nightly Date Stamp 2009-03-01 00:01:06 -05:00
Brad King de3a686a62 STYLE: Nightly Date Stamp 2009-02-28 00:01:08 -05:00
Bill Hoffman 3043ddf144 BUG: #8611 add pass fail reasons into log file 2009-02-27 16:28:07 -05:00
Brad King b41c8fe23e BUG: Pass shared library export symbol in DEFINES
The <target>_EXPORTS macro defined for object files when built in a
shared library <target> should be put in the <DEFINES> make rule
replacement and not <FLAGS>.  Also, it should honor the platform
variable CMAKE_<LANG>_DEFINE_FLAG.  See issue #8107.
2009-02-27 12:59:52 -05:00
Brad King 1d3308156e ENH: Enforce unique binary directories
The second argument of add_subdirectory must name a unique binary
directory or the build files will clobber each other.  This enforces
uniqueness with an error message.
2009-02-27 11:23:14 -05:00
Brad King 99b37665c9 STYLE: Nightly Date Stamp 2009-02-27 00:01:02 -05:00
Brad King 3829be4ca6 ENH: Refactor initial checkout into cmCTestVC
This adds cmCTestVC::InitialCheckout and uses it in cmCTestUpdateHandler
to run the initial checkout command.  The new implementation logs the
command in the update log consistently with the rest of the new update
implementation.
2009-02-26 09:22:32 -05:00
Brad King 8c3290b4a3 BUG: Use new include dir suppresson for all gens
This fixes CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES to be used for all
generators instead of just those that construct their own compiler
command lines directly.  See issue #8598.
2009-02-26 09:16:16 -05:00
Brad King 3498a8c668 ENH: Simplify reverse cmLocalGenerator::Convert
It does not make sense to call the reverse Convert signature (for remote
paths corresponding to CMake-managed directories) with NONE or FULL
since they have no path.  Patch from Modestas Vainius.  See issue #7779.
2009-02-26 08:49:10 -05:00
Brad King 338d37ee5a STYLE: Nightly Date Stamp 2009-02-26 00:01:04 -05:00
Brad King 7dbacb94f4 COMP: Fix cmCTestVC member access for HP compiler
The HP C++ compiler needs some help to allow access to some member
classes of cmCTestVC.
2009-02-25 15:45:14 -05:00
Brad King 80282b749f ENH: Rewrite CTest Update implementation
This adds a new VCS update implementation to the cmCTestVC hierarchy and
removes it from cmCTestUpdateHandler.  The new implementation has the
following advantages:

  - Factorized implementation instead of monolithic function
  - Logs vcs tool output as it is parsed (less memory, inline messages)
  - Uses one global svn log instead of one log per file
  - Reports changes on cvs branches (instead of latest trunk change)
  - Generates simpler Update.xml (only one Directory element per dir)

Shared components of the new implementation appear in cmCTestVC and may
be re-used by subclasses for other VCS tools in the future.
2009-02-25 14:42:45 -05:00
Brad King cb788e8f6d ENH: Re-enable system include dir suppression
This creates variable CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES to
specify implicit include directories on a per-language basis.  This
replaces the previous platform-wide variable.  It is necessary to
avoid explicit specification of -I/usr/include on some compilers
(such as HP aCC) because:

  1.) It may break ordering among system include directories defined
      internally by the compiler, thus getting wrong system headers.
  2.) It tells the compiler to treat the system include directory
      as a user include directory, enabling warnings in the headers.

See issue #8598.
2009-02-25 11:44:46 -05:00
Brad King 261600bd09 COMP: Fix cmCTestVC char[]->string Borland warning
The Borland compiler warns about returning a char[] from a function with
return type std::string without an explicit construction.
2009-02-25 09:20:26 -05:00
Brad King 8c88787b8b STYLE: Nightly Date Stamp 2009-02-25 00:01:19 -05:00
Bill Hoffman 3b73cdc89f ENH: add a CDash measured value showing the reason for passed and failed tests based on regular expressions 2009-02-24 17:23:51 -05:00
Brad King b5db18e723 ENH: Added cmXMLParser::FindAttribute method
This method will help subclasses look for element attributes in their
StartElement methods.
2009-02-24 15:43:49 -05:00
Brad King d033f0d2d1 ENH: Allow cmXMLParser subclasses to report errors
This tells cmXMLParser to report error messages through virtual method
cmXMLParser::ReportError so that subclasses can override the default
report.
2009-02-24 15:43:37 -05:00
Brad King 506e745c37 ENH: Teach cmCTestSVN to load repo/tree relation
This teaches cmCTestSVN::NoteNewRevision to save the repository URL
checked out in the work tree, the repository root, and the path below
the root to reach the full URL.
2009-02-24 15:43:25 -05:00
Brad King 3f4064f7ac ENH: Add cmCTest::DecodeURL method
This new method decodes the "percent-encoding" used in URL syntax.
2009-02-24 15:43:06 -05:00
Brad King 39f8b91125 BUG: Remove implicit include dir suppression
We used to suppress generation of -I/usr/include (and on OSX also
-I/usr/local/include).  This behavior seems to cause more trouble than
it's worth, so I'm removing it until someone encounters the original
problem it fixed.  See issue #8598.
2009-02-24 15:37:09 -05:00
Brad King 66f2edbe63 BUG: Fix Fortran implicit dependency include path
The previous change to Source/cmDependsFortran.cxx while refactoring
implicit dependency scanning configuration rules completely broke
loading of the include file search path while scanning Fortran
dependencies.  This adds the line that should have been added during the
previous change to load the include path correctly.
2009-02-24 14:32:25 -05:00
Brad King de3dedb4ea ENH: Factor out VCS work tree revision checks
This moves checks of the work tree revision before and after update from
cmCTestUpdateHandler::ProcessHandler into the cmCTestVC hierarchy.
2009-02-24 12:52:36 -05:00
Brad King d76bc78a12 ENH: Factor out nightly start time computation
Move generation of the nightly start time string from
cmCTestUpdateHandler::ProcessHandler into cmCTestVC.
2009-02-24 12:50:48 -05:00
Brad King fdd0d2a32b ENH: Factor out svn work tree cleanup
This removes work tree cleanup from cmCTestUpdateHandler and adds an
interface for it in cmCTestVC with an implementation in cmCTestSVN.
2009-02-24 12:50:15 -05:00
Brad King 4e4f2a3a10 ENH: Create cmCTestVC::RunChild and parse helpers
This method will help VCS tool subclasses run child processes and log
the output while parsing it.
2009-02-24 12:49:57 -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 a79f8cd4c1 ENH: Refactor install(DIRECTORY) argument parsing
We previously used several booleans with at most one set to true at a
time to track argument parsing state.  This refactors it to use one
enumeration.
2009-02-24 11:41:00 -05:00
Brad King 5a7ac0def1 COMP: cmProcessTools::OutputParser virtual dtor
This class has virtual methods and therefore should have a virtual
destructor.
2009-02-24 11:08:38 -05:00
Brad King 1936499250 ENH: Create cmProcessTools to parse child output
This class provides a RunProcess method to run a child process and send
its output to an abstract parsing interface.  This also provides a
simple line parser and logger implementing the parsing interface.
2009-02-24 10:40:18 -05:00
Brad King 6bdc2b5d99 ENH: Add cmCTestCVS and cmCTestSVN
These cmCTestVC subclasses will implement interaction with CVS and SVN
tools.
2009-02-24 10:39:55 -05:00
Brad King 1b8ea27bd1 ENH: Create cmCTestVC for VCS interaction
This creates cmCTestVC, the base for a forthcoming class hierarchy to
interact with version control systems.
2009-02-24 10:39:28 -05:00
David Cole 60a46ca76e STYLE: Fix line length violation. 2009-02-24 09:34:03 -05:00
Brad King 0d66aa3915 ENH: Factor out VCS tool detection
In cmCTestUpdateHandler, this factors out version control tool detection
from the monolithic cmCTestUpdateHandler::ProcessHandler to separate
methods.  This also places priority on detection of the tool managing
the source tree since using any other tool will cause errors.
2009-02-24 09:09:43 -05:00
Brad King 844df75676 ENH: Factor out initial checkout method
This moves the initial checkout code from the monolithic
cmCTestUpdateHandler::ProcessHandler to a separate method
cmCTestUpdateHandler::InitialCheckout.
2009-02-24 09:09:14 -05:00
Brad King 0458da3ba9 STYLE: Nightly Date Stamp 2009-02-24 00:01:07 -05:00
Brad King a6c0784489 ENH: Refactor quoting of VCS tool command
Previously we pre-quoted the command line tool path.  This avoids it by
quoting the command everywhere it is used, thus preserving access to the
original, unquoted command.
2009-02-23 15:59:39 -05:00
David Cole c148714b82 ENH: Add license file presentation to the Drag-N-Drop dmg file CPack generator. Fixes issue #8442. Thanks to Clinton Stimpson for the patch. 2009-02-23 13:25:18 -05:00
Brad King 9185f36b06 STYLE: Nightly Date Stamp 2009-02-23 00:01:08 -05:00
Brad King 089896ae0a STYLE: Nightly Date Stamp 2009-02-22 00:01:06 -05:00