Commit Graph

662 Commits

Author SHA1 Message Date
Alex Neundorf 71c29d11b3 Fix bootstrap test with automoc
Alex
2011-08-17 17:08:50 +02:00
Alex Neundorf 126c6ead77 Add the cmake module required currently for automoc
Alex
2011-08-14 15:58:00 +02:00
Alex Neundorf d1c0a5fce6 Start implementing skeleton for automoc in cmake
Alex
2011-08-14 15:45:13 +02:00
Alex Neundorf 7690edffd9 Replace cmake::GetScriptMode() with GetWorkingMode()
GetWorkingMode() returns a new enum WorkingMode, which is one of
NORMAL_MODE, SCRIPT_MODE and FIND_PACKAGE_MODE.

Alex
2011-08-09 16:32:45 +02:00
Alex Neundorf a65011baf1 Start work on automoc: add empty cmQtAutomoc class
Alex
2011-08-07 12:02:46 +02:00
David Cole 2444d6f55e Merge topic 'split-stdout-stderr'
a343bc1 RunSingleCommand: Avoid assignment in condition
642f100 RunSingleCommand: Add a OUTPUT_NORMAL flag.
856a9e4 RunSingleCommand: Replace verbose boolean with enum
4096066 RunSingleCommand: Fix indentation
2011-08-02 15:09:57 -04:00
Johan Björk 642f10066a RunSingleCommand: Add a OUTPUT_NORMAL flag.
OUTPUT_NORMAL does no processing of the output streams, it just passes
them through the same streams as they were received on.
2011-07-28 10:43:09 -04:00
Johan Björk 856a9e499f RunSingleCommand: Replace verbose boolean with enum
No behaviour change, this prepares for adding a flag to skip the merging
of output streams.
2011-07-28 10:42:03 -04:00
Brad King 119dce33d3 Merge topic 'SetPropertyAppendString'
9dbba1b Fix #12342: Add APPEND_STRING option to set_property()
2011-07-26 14:57:32 -04:00
Alex Neundorf 9dbba1b464 Fix #12342: Add APPEND_STRING option to set_property()
set_property() has APPEND, which creates a list. E.g. when
appending to COMPILE_FLAGS a string is needed, not a list.
With the APPEND_STRING option the value is append as string,
not as list.

Alex
2011-07-15 20:57:33 +02:00
Alex Neundorf e4f603b698 Implement find-package mode of cmake
In find-package mode, cmake executes Modules/CMakeFindPackage.cmake,
which calls find_package(), and this is then evaluated in cmake.cxx,
which prints an appropriate message to stdout, so it can be used
e.g. in a normal Makefile:

$ /opt/cmake-HEAD/bin/cmake --find-package -DNAME=JPEG
 -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=EXIST
JPEG found.
$ /opt/cmake-HEAD/bin/cmake --find-package -DNAME=JPEG
 -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=COMPILE

$ /opt/cmake-HEAD/bin/cmake --find-package -DNAME=JPEG
 -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=LINK
-rdynamic -ljpeg

Alex
2011-07-02 23:14:28 +02:00
Alex Neundorf a91d662f46 Add find-package mode, which does nothing yet
-add command line argument --find-package and handle it,
 i.e. call an empty function cmake::FindPackage()
-add basic help

Alex
2011-07-02 17:50:05 +02:00
Matej Hribernik aed92ccea6 Add VisualStudio 9 and 10 generators for Itanium platform 2011-06-20 08:31:13 -04:00
Brad King cc214c68dd Merge topic 'MoreGraphVizFeatures'
08fa5dd Also generate dependers-graphviz files.
4f96a76 GRAPHVIZ_IGNORE_TARGETS is now a list of regular expressions
5698ad2 Make it possible to exlude external libs from dot files
2011-04-19 14:07:36 -04:00
Brad King 0506e37499 Merge topic 'cleanup-unused-variable-check'
a4335a6 Fix unused cache warning after multiple configure iterations
a75ebe3 Refine unused cache variable warning
2011-03-31 13:22:54 -04:00
Brad King a4335a621e Fix unused cache warning after multiple configure iterations
The curses dialog (ccmake) allows variables to be specified on the
command line.  If any of these variables is used during any configure
iteration or during generate we must not warn about it.

The Qt dialog (cmake-gui) allows variables to be added and removed in
the GUI interactively.  If a variable is added, removed, and then added
again we must still warn if it is unused.
2011-03-24 09:45:33 -04:00
Brad King a75ebe3ea4 Refine unused cache variable warning
List all unused variables in one warning.  Cleanup implementation to run
the check exactly once at the end of generation.
2011-03-24 09:45:33 -04:00
Brad King 6250c7324f Merge topic 'fix-2828-more-info-in-script-mode'
a58ace6 Fix KWStyle line-too-long complaint (#2828)
106958c Add CMAKE_ARGC and CMAKE_ARGV0..N-1 variables (#2828)
94d1684 Add CMAKE_SCRIPT_MODE_FILE variable (#2828)
2011-02-22 14:32:48 -05:00
Brad King cc5bbed52a Merge topic 'fix-10704-manifest-no-vs10'
fbca267 VS: Only use /MANIFEST if hasManifest is true (#11216)
98b448e VS2010: Fixed GenerateManifest flag (#10704)
2011-02-22 14:31:55 -05:00
Brad King 45efcc8fa6 Merge topic 'disallow-funny-path-names'
8704525 Reject directory names containing '=' (#11689)
2011-02-22 14:31:07 -05:00
David Cole fbca267331 VS: Only use /MANIFEST if hasManifest is true (#11216)
Thanks to Jrg Riedel for the patch.
2011-02-09 13:01:31 -05:00
Alex Neundorf 08fa5ddb1c Also generate dependers-graphviz files.
With this commit, the --graphviz option now also generates dot files
which show which other targets depend on some target.
So, now there is
* a global dot-file which shows all targets and dependencies
* a dot file which shows on what a target Foo depends
* a dot file which shows which other targets depend on Foo

Alex
2011-02-06 18:34:48 +01:00
David Cole 1019d82727 Documentation: Sync two differing copies of -E docs (#10446)
Alphabetize both lists. Put platform-specific docs in both places too.
2011-02-04 11:45:26 -05:00
David Cole a58ace68ce Fix KWStyle line-too-long complaint (#2828) 2011-02-04 10:38:22 -05:00
David Cole 106958c047 Add CMAKE_ARGC and CMAKE_ARGV0..N-1 variables (#2828)
For now, these variables are only available in -P script mode.
2011-02-02 21:19:01 -05:00
David Cole 94d1684a8f Add CMAKE_SCRIPT_MODE_FILE variable (#2828)
New CMake variable is set when processing a -P script file,
but not when configuring a project.
2011-02-02 18:18:14 -05:00
Brad King dd2f81491e Merge branch 'dev/add_test-working-directory' into dev/strict-mode
Conflicts:
	Tests/CMakeLists.txt
2011-01-27 14:39:55 -05:00
Brad King 8704525f20 Reject directory names containing '=' (#11689)
Some characters are not well-supported by native build systems.  Reject
paths containing such characters before even trying to configure a
project.
2011-01-14 10:03:22 -05:00
Ben Boeckel 8354413463 Add method to unwatch a manual variable 2011-01-13 17:58:04 -05:00
Ben Boeckel 8ed3c85c47 Give a better message for unused variables 2011-01-13 17:56:18 -05:00
Brad King ad25a968b9 Merge branch 'ImprovedDotSupport2' into dev/strict-mode
Conflicts:
	Source/cmake.cxx
2010-12-17 10:32:01 -05:00
Brad King 9bcaff02ff Merge branch 'cmake-guiRememberAdvancedCheckbox' into dev/strict-mode
Conflicts:
	Source/QtDialog/CMakeSetupDialog.cxx
2010-12-17 10:31:19 -05:00
Bill Hoffman cddcad5102 Fix incremental linking for VS2010 with nmake or make.
VS2010 deprecated /INCREMENTAL:YES.  This change makes
/INCREMENTAL the flag to use for incremental linking with
VS2010.
2010-12-09 13:32:48 -05:00
Ben Boeckel 88cd4c1e92 Use 'CMake Warning' versus 'warning' for CDash 2010-12-07 14:40:21 -05:00
David Cole 5b00b2a201 Merge topic 'dev/fix-cache-variable-parsing-ambiguity'
8b143fa Condense parsing of cache entries
122ebf1 Support manual cache entries
90abc3a Use cmCacheManager to load entries from the cache
6fe8624 Fix parsing of cache variables without a type
2010-11-23 16:12:24 -05:00
Ben Boeckel 8b143fab66 Condense parsing of cache entries
If a cache line is being parsed, it shouldn't matter whether it has a
type or not; just parse it however possible.
2010-11-22 15:45:30 -05:00
Ben Boeckel 447a04c31c Don't warn during configure when doing everything
This prevents warnings from being generated after configure *and* after
generation if both are going to be run anyways.
2010-11-15 11:03:48 -05:00
Ben Boeckel c18c977ce8 When checking for variables, specify a reason
Allow reasons to begiven for checking for unused variables.
2010-11-15 10:32:15 -05:00
Alex Neundorf 84ce612c65 Move the code for generating dot-files into separate class cmGraphVizWriter
Alex
2010-11-09 21:37:51 +01:00
Alex Neundorf a60b09927d Generate separate dot files for each target, and a big one with everything.
The big all-in-one file is basically unusable for e.g. kdelibs, it contains
around 1000 nodes and the created image is huuuuge !
Too big actually to be displayable or viewable or comprehensable.

Alex
2010-10-31 17:40:46 +01:00
Alex Neundorf 487bd571d5 Properly insert all targets, also those which don't link to anything.
Alex
2010-10-31 16:23:40 +01:00
Alex Neundorf de2b2bf9ef Move the code for collecting targets and libraries into separate functions
Found bug: targets which don't link to anything don't get inserted in
the dot file.

Alex
2010-10-31 15:58:18 +01:00
Alex Neundorf f7d56df39e Remove trailing whitespace and minor formatting changes for the dot-code
Alex
2010-10-31 14:46:09 +01:00
Ben Boeckel a267b99cd6 Fix line lengths 2010-10-06 15:00:52 -04:00
Brad King dacc47853d Merge topic 'vs-project-groups'
fd3249e New USE_FOLDERS property OFF by default. (#3796)
2010-10-05 15:31:49 -04:00
Ben Boeckel 5aa535bdcb Add argument to arg parsing to not set directories
Argument parsing sets the source/build directories, but they may have
been (meaningfully) set before hand. Let's not overwrite them.
2010-10-05 13:44:28 -04:00
David Cole fd3249e11a New USE_FOLDERS property OFF by default. (#3796)
Visual Studio Express editions do not support solution folders,
so default behavior should be as if USE_FOLDERS global property
is OFF.

Also, allow folder names to be the same as target names: internally,
use a prefix to distinguish folder GUIDs from target GUIDs. Add
a target and folder with the same name in the ExternalProject
test to exercise this code.

For CMake itself, provide a new option CMAKE_USE_FOLDERS that
defaults to ON so that Visual Studio users get a nicely organized
CMake project. Express edition users will have to turn off the
CMAKE_USE_FOLDERS option in order to build CMake in the VS Express
IDE.
2010-10-02 14:31:02 -04:00
Ben Boeckel fe56002a16 Fix long lines for KWStyle 2010-09-23 10:14:37 -04:00
Ben Boeckel 33c63b19ab Add a method to put a watch for variables 2010-09-22 12:46:16 -04:00
Bill Hoffman 775697d5f5 Add a delay after untar on windows to make external project work on windows 7
OK, on windows 7 after we untar some files,
sometimes we can not rename the directory after
the untar is done. This breaks the external project
untar and rename code.  So, by default we will wait
1/10th of a second after the untar.  If CMAKE_UNTAR_DELAY
is set in the env, its value will be used instead of 100.
2010-09-21 10:04:04 -04:00
Ben Boeckel f117423336 Fix line lengths to be no more than 78 2010-09-16 11:49:58 -04:00
Brad King 28edb70a9e Merge topic 'vs-project-groups'
e6ac0aa Add FOLDER target property, for IDEs (#3796)
2010-09-08 11:08:05 -04:00
David Cole e6ac0aacf6 Add FOLDER target property, for IDEs (#3796)
This work was started from a patch by Thomas Schiffer.
Thanks, Thomas!

See the newly added documentation of the FOLDER target
property for details.

Also added global properties, USE_FOLDERS and
PREDEFINED_TARGETS_FOLDER. See new docs here, too.

By default, the FOLDER target property is used to organize
targets into folders in IDEs that have support for such
organization.

This commit adds "solution folder" support to the Visual
Studio generators. Currently works with versions 7 through
10.

Also, use the new FOLDER property in the ExternalProject
test and in the CMake project itself.
2010-09-03 13:53:22 -04:00
Ben Boeckel 439877f620 Be consistent with single and double quotes 2010-09-02 12:14:06 -04:00
Ben Boeckel b94812072a Change logic of flag to turn off cli unused checks
Since we default to checking unused cli variables, make the flag turn
off the checks.
2010-09-02 11:38:00 -04:00
Ben Boeckel d784e6af4d Run the unused variables check on the final pass 2010-09-02 11:29:05 -04:00
Ben Boeckel 9efc05722e VariableWatch is not available when bootstrapping 2010-09-02 09:10:52 -04:00
Ben Boeckel 2e78224509 Add a missing comma to the warning message 2010-09-01 13:09:08 -04:00
Ben Boeckel 74997000c8 Add a flag to warn about system files 2010-09-01 13:09:08 -04:00
Ben Boeckel fff9f6d6f7 Rename flags again and use variablewatch for cli 2010-09-01 13:09:08 -04:00
Ben Boeckel 636e6c4ef7 Default to marking things as used
If we don't then:

    cmake --warn-unused --warn-unused-all

acts differently than:

    cmake --warn-unused-all --warn-unused
2010-09-01 13:08:15 -04:00
Ben Boeckel 4ff03402fc Rename find-unused to warn-unused 2010-09-01 13:08:14 -04:00
Ben Boeckel d7999e9b29 Rename strict-mode to warn-uninitialized 2010-09-01 13:08:14 -04:00
Ben Boeckel d3e8eb5041 Add flags to detect unused variables 2010-09-01 13:08:14 -04:00
Bill Hoffman f794d589a4 Make --strict-mode option, and integrate with cmake-gui 2010-09-01 13:08:14 -04:00
Kai Wasserbäch 9203e9187e Fix spelling errors reported by Lintian.
During a Lintian run on the binary packages of CMake in Debian I was
notified of many spelling mistakes.
2010-07-13 09:41:37 -04:00
Brad King 71cefc35c0 Merge branch 'script-mode-keep-makeflags' 2010-06-22 09:59:20 -04:00
David Cole 616462ce45 Use full path file names to express dependencies.
This is especially important for the Visual Studio 10
generator and its quirky current working directory
behavior.

Also, emit more information about exactly what files are
out of date when cmakeCheckStampFile returns false.
2010-06-21 11:53:48 -04:00
Brad King 0a7c551bf6 Preserve ENV{MAKEFLAGS} in CMake script mode
Commit 02f7cfbc (Need to remove the MAKEFLAGS when cmake starts,
2003-05-13) removed the MAKEFLAGS environment variable when CMake starts
to prevent try_compile() from inheriting "make -i".  This is unnecessary
in script mode (cmake -P).  Instead remove the variable only when
configuring a project.
2010-06-21 10:50:11 -04:00
Brad King 5b5372059c Enable extra CodeBlocks generator on Cygwin
This generator builds correctly on Cygwin so it should be enabled.
Change based on patch from issue #10122.
2010-01-13 12:58:08 -05:00
David Cole 474cf519a0 Fix mem leak reported by valgrind. 2009-12-28 13:44:38 -05:00
Alexander Neundorf a1614caf37 disable cmake's verbose output in the Eclipse and KDevelop generators
The Eclipse and KDevelop generators set the VERBOSE environment variable to
TRUE in the project files, because they must be able to "see" the full
command lines and errors, otherwise they can't parse the errors. But the
VERBOSE env.var. also enables cmakes own verbose output, which can be quite
long. This commit introduces an environment variable CMAKE_NO_VERBOSE, which
when set disables cmake's verbose output also when VERBOSE is set. This
env.var is now set by both the Eclipse and the KDevelop generators.

Alex
2009-12-23 13:51:46 -05:00
Brad King 1d91bc64aa Remove unused DumpDocumentation code
The DumpDocumentation executable and some supporting code and tests were
completely unused by CMake.  Generation of documentation is done by the
individual executables with --help* options.  In this commit we simply
remove the unused code, executable, and test.
2009-12-08 09:38:36 -05:00
Zach Mullen b4ed21c305 Removed duplicated documentation entry. 2009-11-09 14:08:17 -05:00
Bill Hoffman aae8dca797 fix line length error 2009-11-08 10:25:42 -05:00
Bill Hoffman dd09d88065 Add JOM support and clean up some of the tar -E stuff 2009-11-05 15:00:15 -05:00
Brad King 50759a9ed3 WIP: VS 10 Win64 generator
See issue #9754.
2009-10-22 08:24:11 -04:00
Brad King 9a88bc8c4b Use copies for versioned names on Windows
Versioned UNIX libraries and executables produce multiple names for a
single target using one of

  cmake -E cmake_symlink_library
  cmake -E cmake_symlink_executable

to create symlinks to the real file for the extra names.  However, when
cross-compiling from Windows to Linux we cannot create symlinks.  This
commit teaches CMake to make copies instead of symbolic links when
running on windows.  While this approach does not produce exactly what
Linux wants to see, at least the build will complete and the binary will
run on the target system.  See issue #9171.
2009-10-21 13:12:21 -04:00
Brad King 22cbfefb76 Factor out "cmake -E cmake_symlink_*" code
We factor the implementation of

   cmake -E cmake_symlink_library
   cmake -E cmake_symlink_executable

out of cmake::ExecuteCMakeCommand into methods

   cmake::SymlinkLibrary
   cmake::SymlinkExecutable

plus a helper method cmake::SymlinkInternal.
2009-10-21 13:10:24 -04:00
Brad King 24bf97440f REALLY fix color check for dependency scanning
The commit "Really fix color check for dependency scanning" disabled
color unless "make COLOR=ON" is specified.  This restores the previous
default behavior when CMAKE_COLOR_MAKEFILE is ON while retaining the
previous commit's fix.  See issue #9680.
2009-10-08 14:54:19 -04:00
Brad King dfa3b4f145 Really fix color check for dependency scanning
The commit "Fix color check for dependency scanning" was meant to
disable color if CMAKE_COLOR_MAKEFILE was off.  It did remove use of the
activation option '--color' but it failed to make the default false when
the option was missing.  This commit corrects that.  See issue #9680.
2009-10-08 14:45:25 -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 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
Bill Hoffman bf9a561cfa Fix typo in name 2009-09-16 21:02:57 -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 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
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 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
Bill Hoffman 1554265aa6 Remove CMakeSetup. Long live cmake-gui, start building Qt now. 2009-09-03 17:01:07 -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 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
Alexander Neundorf e5dd49c5f8 DOCS: fix typo (#9231)
Alex
2009-07-31 16:11:28 -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
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
Alexander Neundorf bc9703b695 STYLE: fix typos in the docs
Alex
2009-04-19 12:48:30 -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 493f88ce55 ENH: Allow projects to disable per-rule echo lines
This creates global property RULE_MESSAGES which can be set to disbale
per-rule progress and action reporting.  On Windows, these reports may
cause a noticable delay due to the cost of starting extra processes.
This feature will allow scripted builds to avoid the cost since they do
not need detailed information anyway.  This replaces the RULE_PROGRESS
property created earlier as it is more complete.  See issue #8726.
2009-03-16 16:55:58 -04:00
Brad King 2f651c2e59 ENH: Allow projects to disable per-rule progress
This creates global property RULE_PROGRESS which can be set to disbale
per-rule progress reporting.  On Windows, progress reports may cause a
noticable delay due to the cost of starting an extra process.  This
feature will allow scripted builds to avoid the cost since they do not
need detailed progress anyway.  See issue #8726.
2009-03-16 16:22:19 -04:00
Brad King 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 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 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 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 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 b604b98c56 ENH: Define RULE_LAUNCH_* properties
This defines global, directory, and target properties
RULE_LAUNCH_COMPILE, RULE_LAUNCH_LINK, and RULE_LAUNCH_CUSTOM.  Their
values specify 'launcher' command lines which are prefixed to compile,
link, and custom build rules by Makefile generators.
2009-02-10 08:51:15 -05:00
Brad King f35c0c2a17 BUG: Fix OS X FW symlink byproduct dependencies
When testing whether to re-run CMake, a byproduct may be a symlink.  If
so, the existence of the link is important rather than the link's
target.  See issue #8465.
2009-02-06 11:49:00 -05:00
Brad King 2282748907 BUG: Fix OS X AppBundle/FW byproducts dependencies
App Bundle and Framework directories, symlinks, and Info.plist files we
create during generation are byproducts, not outputs.  We should re-run
CMake only when they are missing, not when they are old.
See issue #8465.
2009-02-06 11:18:56 -05:00
Brad King 7d6a5e097f ENH: More robust property lookup
This teaches cmMakefile::GetProperty and cmake::GetProperty methods to
return NULL when the property name is NULL, making them more robust and
consistent with the behavior of cmTarget::GetProperty.
2009-02-02 13:27:30 -05:00
Bill Hoffman f6cb5c39bd BUG: fix for #8418 -E chdir should return fail of dir does not exist 2009-01-29 14:31:45 -05:00
David Cole 16f35e189e COMP: Fix the ExternalProject test for Visual Studio 6. Visual Studio 6 *.dsp files cannot have hyphens in them. Add utility function GetVS6TargetName to replace hyphens with underscores when generating *.dsp file names. Use the function everywhere necessary in the VS6 generators. And, a workaround: VS6 uses ".\Debug" (for example) as an "$(IntDir)" value - strip any leading ".\" when processing a --config argument in the cmake --build handling code. 2008-12-09 16:07:10 -05:00
Bill Hoffman 3fc5ca34f9 ENH: fix bootstrap test and warning 2008-10-15 15:13:06 -04:00
Bill Hoffman 1777bb502a BUG: 4244, add a --build option to cmake that can build projects configured by CMake 2008-10-15 13:56:07 -04:00
Bill Hoffman 05f908e08c BUG: fix for 6280, -E time was not sending back return value 2008-10-01 16:16:43 -04:00
Bill Hoffman ecf312ccc8 STYLE: fix line length stuff for KWStyle 2008-10-01 09:04:27 -04:00
Brad King 434a99bbeb ENH: Teach find_library to find OpenBSD-style libs
OpenBSD shared libraries use a ".so.<major>.<minor>" extension and do
not have a symlink with just a ".so" extension.  Its "ld" is capable of
finding the library with the best version.  This change adds support for
finding such libraries.  See issue #3470.
2008-09-22 11:08:17 -04:00
Brad King 3c5cf1bb8c ENH: Allow a custom list of debug configurations
Create a DEBUG_CONFIGURATIONS global property as a way for projects to
specify which configuration names are considered to be 'debug'
configurations.
2008-09-04 17:34:25 -04:00
Brad King 92a51377a1 BUG: Fix unsetting of global properties
The set_property command unsets a property if it is given no value.  In
the case of GLOBAL properties, the cmake::SetProperty method would
replace a NULL value with "NOTFOUND".  Instead it should be left as NULL
so that the property is unset as expected.  Once it is unset the
get_cmake_property command will still report NOTFOUND while the
get_property command will return the empty string as documented.
2008-09-04 13:15:08 -04:00
Bill Hoffman 1bda46564e BUG: 7448 fix crash in ccmake when compiler is changed 2008-08-19 13:31:21 -04:00
Bill Hoffman 45b9a2d575 BUG: fix for 7426 bad check for cpack 2008-07-31 13:36:53 -04:00
Bill Hoffman 6f31b0dfbd ENH: add a --trace option 2008-07-31 10:33:25 -04:00
David Cole 17452105cd BUG: Fix issue #7088 - do not emit error messages when attempts to run Visual Studio macros fail. You can still get the error output as messages if you want using --debug-output from the cmake command line. 2008-07-30 15:26:34 -04:00
Brad King dd1ee6975f ENH: Do not auto-create out-dated cache variables
- We used to always put LIBRARY_OUTPUT_PATH and EXECUTABLE_OUTPUT_PATH
    in the cache if the project did not.
  - In CMake 2.6 these variables should no longer be used.
  - Now add them only if CMAKE_BACKWARDS_COMPATIBILITY is also cached.
  - This happens only when CMP0001 is set to OLD or WARN or if
    the user or project sets it.  In any case compatibility is needed.
  - Reported by Miguel A. Figueroa-Villanueva and Philip Lowman.
2008-07-03 13:55:33 -04:00
Bill Hoffman 08b95e9cd8 BUG: fix for bug 7222 manifest:no not working for makefiles 2008-06-20 16:25:02 -04:00
Bill Hoffman 101337c63e ENH: support large object file lists with incremental visual studio linking 2008-06-18 13:28:24 -04:00
Bill Hoffman 5b5cd07d8d ENH: add an enabled language property 2008-06-17 13:13:21 -04:00
Brad King e77f5cfaed ENH: Whenever CMake re-runs from inside the VS IDE inform the user why. 2008-06-08 11:41:24 -04:00
Alexander Neundorf 96525cf3c3 BUG: make "cmake -Wno-dev ../srcdir" work, advancing i had the effect that
the argument after -Wno-dev was skipped, which happened to be the source
directory, and so the current working directory was assumed as source
directory, although it was the build directory (maybe this didn't have an
effect if there was already a CMakeCache.txt in the build dir)

Alex
2008-05-12 16:54:43 -04:00
Brad King 1381aab4b7 BUG: Remove check for files written by file(WRITE) being loaded.
- CMake 1.8 and below did not do the check but could get in
    infinite loops due to the local generate step.
  - CMake 2.0 added the check but failed to perform it in directories
    with no targets (see bug #678).
  - CMake 2.2 removed the local generate which fixed the problem but
    did not remove the check.
  - Between CMake 2.4 and 2.6.0rc6 the check was fixed to work even
    when no targets appear in a directory (see bug #6923).
  - Bottom line: the check is no longer needed.
2008-04-30 13:42:40 -04:00
Bill Hoffman 45ce11a075 ENH: install the mac application bundle into /Applications directly with no enclosing folder 2008-04-04 16:02:50 -04:00
Alexander Neundorf 6292341841 ENH: make it possible to disable debug output again
Alex
2008-04-02 17:29:25 -04:00
Bill Hoffman cae34d2df3 ENH: try to fix mac symlinks to the executable 2008-03-28 14:29:29 -04:00
Bill Hoffman 7dcfdf5005 BUG: fix install problem on make and allow symlinks to cmake bin directory 2008-03-27 17:05:11 -04:00
Bill Hoffman b487030bd9 ENH: clean up annoying output from rc tool in VS9 2008-03-26 22:34:27 -04:00
Bill Hoffman 6d0845f2f8 ENH: make sure -Wno-dev sticks so make rebuild_cache will work 2008-03-22 10:24:06 -04:00
Brad King 36c37a60b0 ENH: Clarify end of (dev) warnings to explicitly state they are meant for project developers. 2008-03-20 10:11:52 -04:00
Bill Hoffman f12ea8bd32 ENH: move the clear to before things are added to the maps 2008-03-13 15:34:17 -04:00
Brad King 3e997c9fc8 ENH: Make (dev) warnings show note about -Wno-dev option. Fix -Wdev and -Wno-dev options to not be mistaken for the source directory specification. 2008-03-13 15:06:35 -04:00
Brad King f7f03347a6 ENH: Improve new error/warning message generation
- Add cmListFileBacktrace to record stack traces
  - Move main IssueMessage method to the cmake class instance
    (make the backtrace an explicit argument)
  - Change cmMakefile::IssueMessage to construct a backtrace
    and call the cmake instance version
  - Record a backtrace at the point a target is created
    (useful later for messages issued by generators)
2008-03-13 13:48:57 -04:00
Ken Martin 73df9a5cd4 ENH: change CMP_ to CMP 2008-03-13 11:38:46 -04:00
Bill Hoffman 8bf388109d ENH: make sure properties are re-set on each configure 2008-03-12 17:02:30 -04:00
Bill Hoffman fc26c1459c ENH: add ability to suppress dev warnings to gui code 2008-03-11 22:50:35 -04:00
Brad King fdf169be3a BUG: Fixes to VS8/VS9 project regeneration rules
- ZERO_CHECK should check all stamps in case
    of parallel build (fixes complex test failure)
  - ZERO_CHECK should not appear when
    CMAKE_SUPPRESS_REGENERATION is on (fixes bug 6490)
2008-03-11 17:25:49 -04:00
Bill Hoffman a547ff61cd ENH: add a way to suppress the new policy warnings, still need ccmake and gui's 2008-03-11 15:17:58 -04:00
Brad King 46bf0347a3 ENH: Finish creating, documenting, and enforcing policy CMP_0002. 2008-03-07 16:36:57 -05:00
Brad King 5233b75a77 ENH: Improve handling of old-style compatibility.
- Remove CMP_0001 (no slash in target name) and restore
    old CMAKE_BACKWARDS_COMPATIBILITY check for it
  - Replace all checks of CMAKE_BACKWARDS_COMPATIBILITY
    with cmLocalGenerator::NeedBackwardsCompatibility calls
  - Create new CMP_0001 to determine whether or not
    CMAKE_BACKWARDS_COMPATIBILITY is used.
    (old = use, new = ignore)
  - Show CMAKE_BACKWARDS_COMPATIBILITY in cache only when
    CMP_0001 is set to OLD or WARN
  - Update documentation of cmake_policy and cmake_minimum_required
    to indicate their relationship and the 2.4 version boundary
  - When no cmake policy version is set in top level makefile
    implicitly call cmake_policy(VERSION 2.4) which restores
    CMAKE_BACKWARDS_COMPATIBILITY and other 2.4 compatibility
  - Fix tests MakeClean and Preprocess to call
    cmake_policy(VERSION 2.6) because they depend on new policies
2008-03-07 15:30:35 -05:00
Ken Martin 55eede4b13 ENH: clean up some policy stuff and interactions with CMAKE_BACKWARDS_COMPATIBILITY and CMAKE_MINIMUM_REQUIRED 2008-03-07 11:43:47 -05:00
Ken Martin cd4d2acbe6 ENH: more policy changes 2008-03-04 14:51:25 -05:00
Ken Martin d47a5951ed ENH: add --help-policies and --help-policy command line options 2008-03-04 09:16:33 -05:00
Ken Martin d49ef18f8a ENH: add first cut and policies still need to add the doc support 2008-03-01 15:20:35 -05:00
Bill Hoffman 0dd276a311 ENH: remove CMAKE_PREFIX so changing it does not rebuild all 2008-02-18 13:03:40 -05:00
Brad King 1c0595c73f ENH: Add global property ALLOW_DUPLICATE_CUSTOM_TARGETS to help existing projects that depend on having duplicate custom targets. It is allowed only for Makefile generators. See bug#6348. 2008-02-14 16:42:29 -05:00
Bill Hoffman 3fa087c8ab ENH: fix make edit_cache for cmake-gui 2008-02-12 09:49:42 -05:00
Brad King 2e2f9b4be3 ENH: Add global computed property IN_TRY_COMPILE. 2008-02-11 17:00:36 -05:00
Brad King 523ddedac5 ENH: Analyze inter-target dependencies to safely fix cycles
- Cycles may be formed among static libraries
  - Native build system should not have cycles in target deps
  - Create cmComputeTargetDepends to analyze dependencies
  - Identify conneced components and use them to fix deps
  - Diagnose cycles containing non-STATIC targets
  - Add debug mode property GLOBAL_DEPENDS_DEBUG_MODE
  - Use results in cmGlobalGenerator as target direct depends
2008-02-05 23:10:41 -05:00
Brad King 847c8403fe BUG: Added TARGET_ARCHIVES_MAY_BE_SHARED_LIBS global property to help compute proper rpath information on AIX when shared libraries have names like "libfoo.a". 2008-02-04 15:22:10 -05:00
Brad King 02b1767e42 BUG: Make cmake -E remove_directory work when directory is not present. 2008-01-24 14:37:48 -05:00
Brad King b28c2625c7 COMP: Fix build during bootstrap on MSys. 2008-01-20 13:36:13 -05:00
Ken Martin 7c473d4828 BUG: fix bugs 5539 (progress going beyond 100% when new files are added) and 5889 (tests are not found in some cases when using add_subdirectory to .. etc) 2008-01-18 10:25:25 -05:00
Brad King caca9b8065 ENH: Add AppendProperty methods for use by C++ code in CMake. Simplify implementation of SET_PROPERTY command by using them. 2008-01-17 18:13:55 -05:00
Brad King 34c04d6d02 ENH: Added partial implementation of recognizing per-configration properties. 2008-01-15 10:49:59 -05:00
Bill Hoffman 45a4ddd85c BUG: fix resource file with a full path 2008-01-03 07:28:12 -05:00
Bill Hoffman 603cd2ab6a ENH: fix new incremental link stuff to work with nmake @ files 2008-01-02 09:32:29 -05:00
Bill Hoffman ada4252c56 ENH: remove warning 2008-01-01 17:19:11 -05:00
Bill Hoffman b479c6a8a9 ENH: add ability to have manifest files and incremental linking with make and nmake 2008-01-01 15:13:41 -05:00
Brad King d83b4cd255 ENH: Add a depends check step to custom targets. Add support for the IMPLICIT_DEPENDS feature of custom commands when building in custom targets. Convert multiple-output pair checks to be per-target instead of global. 2007-12-21 12:22:12 -05:00
Brad King 73704ede42 ENH: Enabled color printing of "Scanning dependencies of target ..." message. 2007-12-19 17:15:41 -05:00
Brad King de96fd1df9 ENH: Moved dependency integrity check from CheckBuildSystem over to a per-target UpdateDependencies step. This greatly reduces the startup time for make processes and allows individual targets to be built without a global dependency check. 2007-12-19 16:36:30 -05:00
Brad King 9ccba7c391 ENH: Improved speed of cmake::CheckBuildSystem when checking build system outputs versus dependencies. Instead of doing an O(m*n) comparison of every pair, just locate the oldest output and the newest input and compare them which is now O(m+n). 2007-12-19 11:51:30 -05:00
Bill Hoffman 58f671bb1c ENH: add support for vs 9 win64 2007-12-17 14:43:11 -05:00
Brad King 99dfcc05ef STYLE: Fixed line-too-long. 2007-12-15 14:13:14 -05:00
Brad King 6db2c473e2 COMP: Add missing return value from Bill's change. 2007-12-13 18:30:53 -05:00
Brad King 9f61e2a235 ENH: Centralized and globalized computation of CMake program locations. This eliminates startup paths that failed to produce this information. 2007-12-13 17:56:50 -05:00
Brad King ebc036bbda BUG: Fixed typo introduced by previous commit. 2007-12-13 17:39:53 -05:00
Bill Hoffman fd33bf93a5 ENH: fix for bug 6102, allow users to change the compiler 2007-12-13 15:54:29 -05:00
Bill Hoffman 5050706ae3 ENH: add a touch -E command to cmake 2007-12-04 16:03:19 -05:00
Ken Martin f4b1c3880b ENH: add functions and raise scope 2007-12-03 13:35:41 -05:00
Brad King 678bccc64b COMP: Do not build VS-specific code when generators are not included. 2007-11-19 14:22:38 -05:00
Brad King 3b59c7b97a ENH: Added call to StopBuild VS macro when projects fail to regenerate during a build. 2007-11-19 13:45:16 -05:00
David Cole 867de7fc67 ENH: Add ability to call Visual Studio macros from CMake. Add a CMake Visual Studio macro to reload a solution file automatically if CMake makes changes to .sln files or .vcproj files. Add code to call the macro automatically for any running Visual Studio instances with the .sln file open at the end of the Visual Studio Generate call. Only call the macro if some .sln or .vcproj file changed during Generate. Also, add handling for REG_EXPAND_SZ type to SystemTools::ReadRegistryValue - returned string has environment variable references expanded. 2007-11-16 07:01:58 -05:00
Brad King a546ba7ed4 BUG: Fix messages for time stamp file recreation. 2007-11-12 16:58:05 -05:00
Brad King 34c882a9f8 ENH: Allow VS 7 project Rebuild and Solution Rebuild to work without re-running CMake for every project during the rebuild. 2007-11-10 08:15:13 -05:00
Ken Martin 433a914910 ENH: different way of testing properties 2007-11-06 14:16:00 -05:00
Brad King f410f8578e COMP: Fix warnings on 64-bit Mac OS X build. Patch from issue #3697. 2007-11-05 14:34:36 -05:00
Ken Martin 29c9f1bc2b BUG: fix bad set property code in cmake 2007-10-30 10:57:09 -04:00
Ken Martin f72d666a7b ENH: add ability to get documentaiton of a property from a script 2007-10-24 14:43:10 -04:00
Ken Martin 6cdf032505 ENH: change to make the documentation class more generic, about halfway there, also provides secitons for Variables now 2007-10-22 12:49:09 -04:00
Bill Hoffman 5c4eadba23 ENH: add docs for variables 2007-10-18 09:10:42 -04:00
Ken Martin b63ff2fb6f ENH: minor doc cleanups and an example of documenting a variable 2007-10-15 14:50:18 -04:00
Ken Martin 35e13b11f3 BUG: revert doc changes since VS7 cannot compile them, will implement them in a different manner 2007-10-09 14:35:25 -04:00
Ken Martin 18ce24c748 ENH: make documentation entries actually store their data 2007-10-09 09:55:42 -04:00
Bill Hoffman 9cbb998737 ENH: add support for vs 2008 beta 2 2007-09-17 15:21:47 -04:00
Brad King 54a470dd03 BUG: Fix path to CMake executables when run from bootstrap build. 2007-08-31 09:09:41 -04:00
Bill Hoffman 8b07c96090 ENH: fix memory leak 2007-08-10 11:15:19 -04:00
Alexander Neundorf 8d7b502337 ENH: add global properties for collecting enabled/disabled features during
the cmake run and add macros print_enabled/disabled_features() and
set_feature_info(), so projects can get a nice overview at the end of the
cmake run what has been found and what hasn't
FIND_PACKAGE() automatically adds the packages to these global properties,
except when used with QUIET
Maybe this can also be useful for packagers to find out dependencies of
projects.

Alex
2007-08-07 15:41:57 -04:00
Alexander Neundorf 2246e0336d BUG: also offer the extra generators in CMakeSetup
Alex
2007-08-01 14:58:55 -04:00
Alexander Neundorf f7f522e61a ENH: add Eclipse CDT4 generator, patch from Miguel A. Figueroa-Villanueva
Alex
2007-08-01 09:18:50 -04:00
Alexander Neundorf d6a0c330bc ENH: deb generator can now generate deb packages
-remove the unscriptable commands also from the cpack cmake
-use CPACK_PACKAGE_CONTACT in CMakeCPack.cmake, it's used in the nsis and
the deb generator
-make set_properties() scriptable
-use a non-const char array for adding the python modules

Alex
2007-07-27 08:59:59 -04:00
Alexander Neundorf a39aff52a0 ENH: add an empty debian package generator, Mathieu volunteered to fill it
:-)

Alex
2007-07-25 10:57:33 -04:00