Brad King
542b517449
Factor out common custom command generator
...
The Makefile, VS, and Xcode generators previously duplicated some custom
command line generation code. Factor this out into a separate class
cmCustomCommandGenerator shared by all generators.
2010-12-08 17:29:20 -05:00
Brad King
e30a775f68
Improve signature of cmLocalGenerator::GetRealDependency
...
Allow file-level custom command dependencies to be skipped.
2010-12-08 17:14:14 -05:00
Alex Neundorf
a02987a0df
Don't enforce VERBOSE makefiles for the CodeBlocks generator
...
Instead of enforcing verbose makefile, now the generated build command
includes "VERBOSE=1" so the output will be verbose when building in
C::B.
Also removed the now unused setForceVerboseMakefiles().
Alex
2010-11-11 22:06:09 +01:00
Alex Neundorf
7b1421b885
Remove trailing whitespace
...
Alex
2010-11-11 22:02:07 +01:00
David Cole
269a4b876a
Enable calling commands with : in argv[1] ( #9963 )
...
The solution seems hackish, but it works: for
NMake only, prepend a no-op command before each
real command that begins with ".
This is really a work-around for an NMake problem.
When a command begins with ", nmake truncates the
first argument to the command after the first :
in that arg. It has a parsing problem.
Workaround..., hackish..., but it should solve
the issue for #9963 and its related friends.
Also, modify the CustomCommand test to replicate
the problem reported in issue #9963 . Before the
NMake specific code change, the test failed.
Now, it passes. Ahhhhhh.
2010-09-10 17:55:45 -04:00
David Cole
d093abef7e
Fix failing ExternalProject test on Borland dashboards.
...
If there is a .bat or .cmd file used as a custom command
then the Borland Makefiles generator (specifically) requires
using the "call " syntax before the name of the .bat or .cmd
file. This fix applies to all Makefile based generators where
WindowsShell is true.
2010-06-03 13:43:39 -04:00
David Cole
f9c0e13975
Fix warnings in CMake source code.
2009-09-30 11:46:42 -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
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
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
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
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
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
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
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
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
15c52e9891
ENH: Add rule substitutions useful for launchers
...
This defines make rule substitutions <LANGUAGE>, <TARGET_NAME>,
<TARGET_TYPE>, and <OUTPUT>. They will be useful for RULE_LAUNCH_*
property values.
2009-02-10 08:52:07 -05:00
Brad King
b604b98c56
ENH: Define RULE_LAUNCH_* properties
...
This defines global, directory, and target properties
RULE_LAUNCH_COMPILE, RULE_LAUNCH_LINK, and RULE_LAUNCH_CUSTOM. Their
values specify 'launcher' command lines which are prefixed to compile,
link, and custom build rules by Makefile generators.
2009-02-10 08:51:15 -05:00
Brad King
c895d9f2e0
ENH: Give target in which custom commands build
...
This gives the cmTarget instance for which custom command rules are
being generated to cmLocalUnixMakefileGenerator3::AppendCustomCommands.
It will be useful in the future.
2009-02-10 08:50:33 -05:00
Alexander Neundorf
bd92bec66c
STYLE: fix two typos in the comments, patch from Daniel DOT Teske AT Nokia DOT com, QtCreator developer
...
Alex
2009-02-09 16:36:56 -05:00
Brad King
ac9b7ec155
ENH: Refactor custom command rule hashing
...
This simplifies computation of custom command rule hashes to hash
content exactly chosen as the custom commands are generated.
Unfortunately this will change the hashes of existing build trees from
earlier CMake versions, but this is not a big deal. The change is
necessary so that in the future we can make optional adjustments to
custom command lines at generate time without changing the hashes every
time the option is changed.
2009-02-02 13:28:12 -05:00
Brad King
3cf9265fa7
ENH: Refactor passing of max length object dir
...
When computing the maximum length full path to the build directory under
which object files will be placed, pass the actual path instead of just
its length. This will be useful for error message generation.
2008-12-16 09:14:40 -05:00
Brad King
ad44a41a18
ENH: Fix optional use of relative paths.
...
These changes refactor cmLocalGenerator methods Convert and
ConvertToOutputForExisting to support references inside the build tree
using relative paths. After this commit, all tests pass with Makefile
generators when relative paths are enabled by default. See issue #7779 .
2008-10-09 15:30:07 -04:00
Brad King
416bf5730f
ENH: Simplify makefile ref to interactive editor
...
The CMAKE_EDIT_COMMAND make variable need not be constructed with
ConvertToOutputForExisting. The CMAKE_COMMAND variable works fine
without it.
2008-10-09 15:08:53 -04:00
Brad King
934c832cba
BUG: Fix convenience rule working directory
...
We generate convenience rules to build object files, preprocessed
outputs, and assembly outputs of source files individually with make
rules. This removes a redundant working directory change when more than
one target builds the same source file.
2008-10-06 11:04:06 -04:00
Brad King
a1bb7e90ef
ENH: Allow users to specify macro-like #include line transforms for dependency scanning.
...
- Define IMPLICIT_DEPENDS_INCLUDE_TRANSFORM property on targets and directories.
- Make the directory version inherited.
- See issue #6648 .
2008-05-14 11:54:52 -04:00
Brad King
071725a1c1
BUG: Fix generation of some paths into .cmake files in the build tree to escape strings for the CMake language. This fix allows users to put double quotes in the SOVERSION of a shared library.
2008-05-10 18:39:06 -04:00
Brad King
09dd298f63
BUG: Fix logic that loops over multiple output pairs to not loop beyond the vector when there are an odd number of entries.
2008-05-10 18:39:00 -04:00
Brad King
12935b1599
ENH: Light refactoring of implicit dependency scanning configuration implementation.
...
- Move lookup of config variables from cmLocalUnixMakefileGenerator3 to cmDepends hierarchy.
2008-05-08 10:09:14 -04:00
Brad King
55606b155e
BUG: Fix repeated re-scanning of dependencies when the results do not change.
...
- We re-scan deps when DependInfo.cmake is newer than depend.internal
- Therefore depend.internal should not be copy-if-different
2008-05-07 17:25:05 -04:00
Brad King
9631c499dc
BUG: For Watcom WMake use the short path to avoid quoting problems in custom commands with shell redirections.
2008-04-30 15:58:56 -04:00
Bill Hoffman
d1281f5cbc
BUG: the sun make goes into some odd n squared thing with this sccs and rcs stuff for gmake, so I am removing them.
2008-04-10 11:55:49 -04:00
Bill Hoffman
5905d79c8a
ENH: fix for watcom can't use phony
2008-03-25 10:11:48 -04:00
Bill Hoffman
a24ff4e453
ENH: add PHONY targets
2008-03-24 10:26:38 -04:00
Bill Hoffman
dec1221f0b
ENH: exclude borland make as well
2008-03-18 11:51:23 -04:00
Bill Hoffman
cb512cd513
ENH: turn off extra rules for nmake and wmake
2008-03-18 11:28:59 -04:00
Bill Hoffman
813779d962
ENH: try to improve make speed by getting rid of some implicit rules that were still around.
2008-03-18 10:02:31 -04:00
Bill Hoffman
5ab6c0f0ed
ENH: remove abort calls and replace with an IssueMessage INTERANL_ERROR, better to not crash on the end user.
2008-03-12 21:06:32 -04:00
Brad King
b78997d71d
BUG: Fix subtle bug that prevented Makefile generators from rescanning dependencies when a new source file is added but no other sources are touched.
2008-03-11 17:53:54 -04:00
Brad King
9ed4266306
ENH: Cleanup impl of PUBLIC_HEADER, PRIVATE_HEADER, and RESOURCE properties
2008-02-18 16:38:34 -05:00
Brad King
342a32a2c0
BUG: Apply patch from bug #6180 to make CMAKE_ADDITIONAL_MAKE_CLEAN_FILES work for directories.
2008-02-15 11:56:13 -05:00
Brad King
ed76198b84
ENH: Cleanup building of OS X bundle content
...
- Fixes repeated rebuild of bundles by Makefile generators
- Add special rules to copy sources to their
MACOSX_PACKAGE_LOCATION bundle directory
- Remove MacOSX_Content language hack
- Remove EXTRA_CONTENT property
- Remove MACOSX_CONTENT
- Remove corresponding special cases in object names
2008-02-15 11:22:23 -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
6ad79d13dd
BUG: Construction of COMPILE_DEFINITIONS_<CONFIG> property name must use upper-case config name.
2008-01-18 08:35:37 -05:00
Brad King
8d1d5500c8
ENH: Enable use of COMPILE_DEFINITIONS property for Fortran sources.
2008-01-17 19:58:01 -05:00
Brad King
8262ccfd4e
ENH: Create COMPILE_DEFINITIONS property for targets and source files. Create <config>_COMPILE_DEFINITIONS property as per-configuration version. Add Preprocess test to test the feature. Document limitations on Xcode and VS6 generators.
2008-01-14 09:20:58 -05:00
Brad King
b761da39c1
ENH: Patch from Maik to add preprocessor directive handling to Fortran dependency scanning. Also added -fpp flag to Intel Fortran compiler on Windows by default.
2008-01-09 10:30:11 -05:00
Brad King
52eb0ccac7
BUG: Restore old interface of "make foo.o" and "make foo.i" even though object file names now include source extensions. For Java we also need to always remove the source extension (.java -> .class). This fixes the re-opening of bug #6169 .
2008-01-07 16:12:37 -05:00
Brad King
c7de81f9a6
ENH: Make the Fortran compiler id available to cmDependsFortran at scanning and module timestamp copy time.
2008-01-02 11:04:52 -05:00
Brad King
81f6e86f12
ENH: Add per-language clean rule generation to cmake_clean.cmake files to include cmake_clean_<lang>.cmake files generated by dependency scanning. Add Fortran module file and timestamp cleaning rules.
2007-12-28 11:50:14 -05:00
Brad King
430296dc96
ENH: Moved global inter-target dependency analysis and cycle-prevention code up from cmGlobalUnixMakefileGenerator3 to cmGlobalGenerator. Simplified cmGlobalUnixMakefileGenerator3 to use it. Later other generators may be modified to use it also.
2007-12-23 15:03:42 -05:00
Brad King
4d360f7ac5
ENH: Convert cmDepends object interface to scan an entire target at once.
2007-12-22 22:41:42 -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
011d7db6bd
BUG: Fix make depend target in subdirectory Makefile interface.
2007-12-19 17:54:24 -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
891256546b
ENH: Pass target directory to cmDependsFortran scanning instances.
2007-12-19 14:28:46 -05:00
Brad King
872553de7e
ENH: Implemented generation of display for pre-build, pre-link, and post-build custom command comments during the build. This addresses issue #5353 .
2007-12-18 09:50:08 -05:00
Brad King
44f38c9b86
ENH: Fortran include path is the same as C and CXX include paths.
2007-12-17 17:54:43 -05:00
Brad King
cc0386f7ea
BUG: Fixed computation of 'object' name for MACOSX_PACKAGE_LOCATION source files.
2007-11-26 10:01:49 -05:00
Brad King
9f1eea193e
BUG: Dependency scanners should have local generators set always.
2007-10-12 09:32:48 -04:00
David Cole
fa61182de8
ENH: Improvements to the Xcode generator. Build frameworks using native Copy Headers and Copy Bundle Resources phases. Fix bugs: eliminate folders with no names, ensure source files show up in multiple targets, remove empty utility targets from Sources subtrees, ensure that fileRefs only show up once in each grouping folder.
2007-08-14 11:45:15 -04:00
Brad King
d926792066
ENH: Replaced dependency integrity map with an explicit map from object file to source file for each language in each target. This simplifies creation of implicit dependency scanning rules and allows more than one object file in a target to start dependency scanning with the same source file.
2007-08-07 13:57:13 -04:00
Brad King
bffcff4530
ENH: Added warning when an install rule is created from an EXCLUDE_FROM_ALL target. Added a foo/preinstall version of targets that need relinking so that exclude-from-all targets can be manually relinked for installation.
2007-08-03 16:31:08 -04:00
Brad King
ea874415d9
ENH: Moved GetTargetDirectory method up to cmLocalGenerator. This provides a common interface to something that was implemented in most local generators anyway.
2007-08-01 15:25:40 -04:00
Alexander Neundorf
179943bf14
STYLE: move ForceVerboseMakefiles to cmGlobalUnixMakefileGenerator3, so the
...
kdevelop generator doesn't need its own CreateLocalGenerator() anymore
Alex
2007-06-05 16:35:24 -04:00
Brad King
702d785c9a
BUG: Add ./ to custom command executables in the top of the build tree even when the path is generated by target name replacement.
2007-05-23 12:05:05 -04:00
Alexander Neundorf
4878c00905
ENH: add the IMPORT keyword to ADD_EXECUTABLE(), which generates an
...
"imported" executable target. This can then be used e.g. with
ADD_CUSTOM_COMMAND() to generate stuff. It adds a second container for
"imported" targets, and FindTarget() now takes an additional argument bool
useImportedTargets to specify whether you also want to search in the
imported targets or only in the "normal" targets.
Alex
2007-05-22 10:24:59 -04:00
Alexander Neundorf
df8f550029
ENH: add install/strip target for makefile generators if strip was found
...
Alex
2007-05-18 13:43:39 -04:00
Brad King
c25d2bfdd2
ENH: Added testing for custom command line arguments containing all special characters on the US keyboard. Fixed curly brace arguments on borland and % arguments in mingw32-make.
2007-05-17 10:53:18 -04:00
Brad King
142210997f
BUG: Watcom WMake needs empty rule commands even for symbolic targets. This fixes the cmake_force target.
2007-05-16 13:24:17 -04:00
Bill Hoffman
76dd86b410
BUG: fix -D escaped quotes for watcom
2007-05-10 14:43:55 -04:00
Alexander Neundorf
7f11536704
ENH: now target names can be used in add_custom_command() and
...
add_custom_target() as COMMAND, and cmake will recognize them and replace
them with the actual output path of these executables. Also the dependency
will be added automatically. Test included.
ENH: moved TraceVSDependencies() to the end of GlobalGenerator::Configure(),
so it is done now in one central place
Alex
2007-05-09 08:25:45 -04:00
Brad King
fc7c433463
ENH: Added support for import libraries created by executable and module targets. The module import libraries should never be used but some windows compilers always create them for .dll files since there is no distinction from shared libraries on that platform. The executable import libraries may be used to create modules that when loaded bind to symbols from the executables. This is an enhancement related to bug#4210 though not requested by it explicitly.
2007-03-19 10:00:36 -04:00
Brad King
144c605525
BUG: Need to include relative path top information in directory information so that relative path conversion during dependency generation works with the same rules as project generation.
2007-03-16 16:48:27 -04:00
Brad King
1f639ee76c
ENH: Added computation of object file names that are almost always short enough to not exceed the filesystem path length limitation. This is useful when a source file from outside the tree is referenced with a long full path. The object file name previously would contain the entire path which when combined with the build output directory could exceed the filesystem limit. Now CMake recognizes this case and replaces enough of the beginning of the full path to the source file with an md5sum of the replaced portion to make the name fit on disk. This addresses bug#4520.
2007-03-16 10:34:25 -04:00
Brad King
9da6f96d98
BUG: Reverting previous changes related to using an empty string for a relative path to the current directory. Too many places want the . version. Instead we can just convert the . to an empty string in the one place that motiviated the original change.
2007-03-14 16:29:10 -04:00
Brad King
33ee83714d
ENH: Replaced LibraryOutputPath and ExecutableOutputPath variables in Makefile and VS generators to instead ask each target for its output path. This significantly reduces total code size and centralizes previously duplicate code. It is also a step towards bug#2240.
2007-03-08 14:57:28 -05:00
Brad King
ea19994b13
ENH: Ask the target for its own directory in case of bundle instead of directly using ExecutableOutputPath.
2007-03-08 14:15:45 -05:00
Brad King
d65db7c6bb
BUG: Compute HomeRelativeOutputPath following the rules of RelativePathTopBinary by going through the Convert() method. This supports out-of-binary build trees without using relative paths that go outside trees managed by CMake.
2007-03-08 13:19:39 -05:00
Brad King
fd3688fa72
ENH: Fixed recursive make call target escaping for Borland to support SubDirSpaces test.
2007-03-08 13:05:02 -05:00
Brad King
7157743d69
ENH: Updated GetRecursiveMakeCall to use EscapeForShell instead of MAKEFILE conversion. This code is special because it is the only place that a make target name is passed on a command line.
2007-03-08 11:49:30 -05:00
Brad King
00051cf721
ENH: Removed useless method ConvertToMakeTarget and all calls to it. It had a buggy implementation that caused it to do nothing.
2007-03-08 11:10:21 -05:00
Brad King
00b4eeeded
STYLE: Removed unused calls to Convert.
2007-03-08 10:19:25 -05:00
Bill Hoffman
ecbec236b1
ENH: one more pass at paths with spaces and parens
2007-02-28 14:29:26 -05:00
Brad King
6c82483cdb
BUG: Fix for cmake_force target in Borland Makefiles.
2007-02-28 09:33:25 -05:00
Bill Hoffman
5ae48cf852
ENH: add a fix for spaces in the path again...
2007-02-27 13:34:12 -05:00
Bill Hoffman
0ce8c158cc
ENH: fix for spaces in the path and mingw
2007-02-27 12:10:42 -05:00
Bill Hoffman
5647e6e254
ENH: fix parens in the path with spaces in the path
2007-02-21 21:24:17 -05:00
Ken Martin
e7ab8a0e1d
ENH: fixed more bugs with spaces in the path
2007-02-19 14:25:45 -05:00
Ken Martin
314f5f60a0
BUG: fix for spaces in path for nmake
2007-02-19 12:26:32 -05:00
Bill Hoffman
ca0230a33e
ENH: check in initial conv library stuff
2007-02-16 16:12:17 -05:00
Brad King
712345ffc4
BUG: The .pdb file generated for a library or executable should match the real file name used for the target. This addresses bug#3277.
2007-02-01 09:57:24 -05:00
Bill Hoffman
ccb77b65c6
ENH: unify version stuff, get rid of it out of cmake and cmMakefile and only use cmVersion
2006-11-29 15:59:16 -05:00
Brad King
69356d8a7a
BUG: Juse use cmake -E echo instead of the native echo on MinGW makefiles. The echo; hack did not work when running from ctest.
2006-10-13 10:22:45 -04:00
Brad King
f0c79a0030
BUG: Avoid duplicate conversion to output path.
2006-10-10 13:47:50 -04:00
Brad King
7e92f0b4e4
BUG: Hack to make echo command work properly in mingw32-make.
2006-10-05 14:51:20 -04:00
Brad King
406f3554c7
BUG: Fixed display of custom command comments with quotes, dollars, and other special characters in them.
2006-10-04 18:52:29 -04:00
Brad King
28921d907f
BUG: Fixed inclusion of progress.make from subdirectory makefiles.
2006-09-29 09:11:22 -04:00
Brad King
bd6aaef001
BUG: Moved progress.make file into CMakeFiles subdirectory to keep things clean.
2006-09-28 17:21:50 -04:00
Brad King
0b135767d6
BUG: Do not filter system directories for include file dependencies.
2006-09-28 09:49:40 -04:00
Brad King
dd332a00cc
ENH: Re-implemented command line argument shell quoting to support several platforms with one code base.
2006-09-27 13:43:46 -04:00
Brad King
a8426f55e5
COMP: Fix shadowed local variable created by previous cmake_force change.
2006-09-21 17:21:13 -04:00
Brad King
2459ceb076
BUG: Centralized generation of command line arguments in escaped form. This addresses bug#3786 for several platforms.
2006-09-21 15:14:06 -04:00
Brad King
358b947072
BUG: cmake_force needs to be written into build.make as well as Makefile.
2006-09-20 12:13:50 -04:00
Brad King
76f6ea8011
BUG: Fixed ordering of code generated in Makefile and build.make files to make sure .SUFFIXES rule comes as early as possible. Also cleaned up documentation in generated files.
2006-09-08 10:42:14 -04:00
Brad King
fd8236c862
BUG: Patch from Alex to fix name of includecache files to not look like source files.
2006-09-02 10:51:54 -04:00
Brad King
409f70bc91
ENH: Make sure all custom command outputs are up to date before scanning dependencies. This avoids the need to pass a list of generated files to the dependency scanning code and to rescan after the files have been generated. Currently there is no notion of implicit dependencies of the custom commands themselves so this design is safe. We only need to make sure implicit dependencies are up to date before the make process for the /build part of a target is executed because only this process loads them. This is a step towards fixing bug#3658.
2006-08-31 14:09:56 -04:00
Brad King
eef327b944
ENH: Adding install/local global target for Makefile generators. This runs installation only in the current directory and not subdirectories.
2006-08-29 10:03:47 -04:00
Brad King
f826c6c58b
ENH: Centralized generation of targets listed in the help to be done by the code that actually writes the targets.
2006-08-23 09:45:24 -04:00
Brad King
c6f1a11480
BUG: Added object language to list of object files in a local generator's directory. Fixed generation of preprocessing and assembly rules to be done only for C and C++ objects.
2006-08-15 12:00:27 -04:00
Andy Cedilnik
f6b2a42266
BUG: add newline for some versions of make
2006-08-14 14:16:26 -04:00
Brad King
dd37d0652f
ENH: Changed preprocessed source extension to .i and assembly extension to .s for more portability.
2006-08-09 11:43:35 -04:00
Brad King
8c94be3f18
ENH: Added options CMAKE_SKIP_PREPROCESSED_SOURCE_RULES and CMAKE_SKIP_ASSEMBLY_SOURCE_RULES to allow projects to disable generation of .E and .S rules.
2006-08-09 09:56:52 -04:00
Brad King
5cfa1b02ab
ENH: Added generation of rules to manually request preprocessed or generated assembly sources.
2006-08-07 23:25:21 -04:00
Brad King
88702ff442
ENH: Moved GetSourceFileLanguage up to cmLocalGenerator.
2006-08-03 09:26:07 -04:00
Brad King
221b34392b
ENH: Restoring previous change with a fix.
2006-08-02 11:06:32 -04:00
Bill Hoffman
16e73643f3
ENH: undo change that broke borland 5.6 cont
2006-08-01 19:52:12 -04:00
Brad King
fe5a6e9413
ENH: Moved generation of directory-level object convenience rules to a separate method. This will aid generation of more such rules later.
2006-08-01 16:16:21 -04:00
Brad King
ab61137eb1
COMP: Fix and/or disable warnings for Borland 5.6 build.
2006-08-01 11:38:42 -04:00
Ken Martin
ed54b93533
ENH: added progress for subdir all targets and fixed compiler waring
2006-07-12 13:11:27 -04:00
Brad King
9bf5af6e32
ENH: Moved unique object file name computation from cmLocalUnixMakefileGenerator3 up to cmLocalGenerator for use by all generators. Created cmLocalVisualStudioGenerator as superclass for all VS generators. Implemented on-demand unique object file name computation for VS 7 generator to avoid slow compiles when all sources are in subdirectories.
2006-07-11 11:41:38 -04:00
Ken Martin
f1dfa7e78f
BUG: changed to progress to make it more flexible and to no relink targets as often
2006-07-11 09:55:27 -04:00
Andy Cedilnik
9e9653713c
BUG: Make the path change more localized to bundles only
2006-07-06 13:52:02 -04:00
Andy Cedilnik
46febb9a2b
BUG: Revert the change 1.152
2006-07-06 11:35:45 -04:00
Andy Cedilnik
24e6ffae36
BUG: If the source file specified is not in a source tree, do not use full path to the file
2006-07-05 16:27:44 -04:00
Ken Martin
dcbb4e4461
COMP: warning fix
2006-06-27 14:26:35 -04:00
Ken Martin
bec28bb03b
ENH: fix for subdir all target after control c
2006-06-27 10:24:09 -04:00
Brad King
35c3a91bc1
BUG: When using a working directory for the custom command do not convert paths to be relative to the build directory.
2006-06-26 15:27:51 -04:00
Ken Martin
6071052835
ENH: fix linelength
2006-06-15 11:51:51 -04:00
Ken Martin
8e9a6beccc
ENH: centralized locaiton of CMakeFiles setting
2006-06-14 12:28:32 -04:00
Ken Martin
1f1196410a
ENH: fix line length
2006-06-12 15:44:10 -04:00
Brad King
ad9dd6d11c
ENH: Moved generation of the /fast version of GLOBAL_TARGET targets to the proper place in the local generator instead of in the global generator. Also made the install/fast target not depend on the all target.
2006-06-01 14:43:28 -04:00
Brad King
791706a52f
BUG: Added /fast targets in subdirectory makefiles. Removed bogus INSTALL_*/fast targets. Also fixed preinstall/fast target.
2006-06-01 14:09:21 -04:00
Brad King
d3073828f0
BUG: Fix progress when total number of source files is less than 100.
2006-05-30 16:23:24 -04:00
Brad King
ff41664c6b
ENH: Slight improvement in genreation time by recording the setting of CMAKE_COLOR_MAKEFILE in an ivar of each local generator at the beginning of generation. This avoids many repeated table lookups.
2006-05-25 14:16:19 -04:00
Ken Martin
7eba286403
BUG: fix to progress for small projects
2006-05-25 10:55:24 -04:00
Brad King
ec2104cd31
BUG: Updated Makefile dependency scanning to provide a full local generator to the dependency scanner to do proper path conversions. This allows the rules written into the depend.make files to use the same relative path conversion as those written into the build.make files. Several previous changes added more and more information for use by the dependency scanner and it was converging to having the full local generator anyway.
2006-05-25 09:47:30 -04:00
Brad King
15535c3f60
BUG: Fix for spaces in path to build directory with new progress stuff.
2006-05-23 09:58:10 -04:00
Ken Martin
50d058a3a1
ENH: always compile progress
2006-05-23 09:11:46 -04:00
Andy Cedilnik
fd8e45d4a1
ENH: Add simple progress reporting during make
2006-05-15 13:02:28 -04:00
Ken Martin
000bce884d
STYLE: fix line length
2006-05-15 10:19:57 -04:00
Brad King
826d238ebd
BUG: Fix to avoid repeated calls to CollapseFullPath during dependency scanning. This addresses bug#3191.
2006-05-03 10:07:08 -04:00
Ken Martin
4394cc80de
BUG: add a fast version for preinstall
2006-05-02 13:31:56 -04:00
Ken Martin
3023eb7ccb
ENH: Makefile performance improvements
2006-05-02 09:56:42 -04:00
Brad King
a3cd7fd1b5
COMP: Disable color support for bootstrap.
2006-04-26 21:53:21 -04:00
Brad King
a4f9d6a80b
BUG: Default SHELL on windows should not be a hard-coded path.
2006-04-26 21:51:23 -04:00
Brad King
4494c29078
ENH: Enabling color makefile support using cmsysTerminal_cfprintf. Support for color is automatically detected when messages are printed. Also made color scheme more readable on both black and white backgrounds. This option can be enabled by setting CMAKE_COLOR_MAKEFILE to true in the project.
2006-04-26 21:31:39 -04:00
Brad King
cceb8e87f1
BUG: Changed color scheme to be more readable on both white and black backgrounds.
2006-04-20 09:59:22 -04:00
Ken Martin
535acdc7a0
ENH: some performance optimizations
2006-04-11 12:51:20 -04:00
Bill Hoffman
2238e22699
ENH: make sure verbose output is used for kde
2006-04-08 14:15:06 -04:00
Brad King
eb31755eb2
ENH: Implemented VT100 terminal escape sequences. If CMAKE_COLOR_MAKEFILE is set then messages produced by makefiles will be in color if the native tool supports it. This addresses bug#3060.
2006-03-30 15:39:03 -05:00
Andy Cedilnik
d9dd47422b
BUG: Handle spaces in the path
2006-03-28 13:48:02 -05:00
Andy Cedilnik
40272a16bd
ENH: Add support for adding content to bundles
2006-03-28 08:54:01 -05:00
Ken Martin
fdb605dd09
BUG: fix warning
2006-03-15 16:32:40 -05:00
Ken Martin
3d96e52261
STYLE: some m_ to this-> cleanup
2006-03-15 11:02:08 -05:00
Brad King
8e702ac5a8
BUG: Fixed object file name construction to use Convert method for relative path conversion. Also fixed test of result to check explicitly for a full path.
2006-03-14 11:35:37 -05:00
Brad King
c332ff41f1
BUG: Avoid full paths and spaces when constructing object file names.
2006-03-14 10:14:52 -05:00
Brad King
2b316f169c
ENH: Introducing new policy to construct more unique object file names. This should allow multiple sources with the same file name but different FULL paths to be added to a single target.
2006-03-13 15:19:03 -05:00
Bill Hoffman
4c5ba06fa1
ENH: use a cmake script to do the clean step, this allows for large numbers of files to be removed without making the command line too long
2006-03-09 14:30:35 -05:00
Andy Cedilnik
10d1b20790
BUG: Fix problem on Wacom system with global symbolic targets
2006-03-09 09:53:30 -05:00
Brad King
8d9a997beb
ENH: Cleaned up generation of directory-level rules and their support structure. The directorystart rule has been removed in favor of checking the build system in the subdirectory makefile first. The "directory" rule has been renamed "all" since it corresponds to the "all" pass anyway (as against "clean"). Also fixed directory-level rule for preinstall.
2006-03-01 18:54:17 -05:00
Bill Hoffman
2874b35f5c
ENH: try to fix things up for the dashboard
2006-02-23 18:25:07 -05:00
Andy Cedilnik
66ea097554
ENH: Properly handle target dependencies
2006-02-23 17:30:12 -05:00
Andy Cedilnik
32c403f665
ENH: Remove debug
2006-02-23 10:48:35 -05:00
Andy Cedilnik
12dc64c7f5
ENH: Add a notion of a global target
2006-02-23 10:07:24 -05:00
Brad King
537e2b4ed5
ENH: Implemented RPATH specification support. It is documented by the command SET_TARGET_PROPERTIES.
2006-02-16 15:19:00 -05:00
Brad King
60cd72d01c
ENH: Cleaned up generation of symbolic rules. Removed generation of rebuild_cache and similar rules from internal makefiles.
2006-02-15 16:35:16 -05:00
Ken Martin
141ad7645e
ENH: some reorg of the unix makefile generator
2006-02-15 10:34:11 -05:00
Bill Hoffman
347c5f4b46
ENH: add working directory support
2006-02-08 10:58:36 -05:00
Bill Hoffman
185cb0b5bf
ENH: allow for - in the name of targets for nmake
2006-02-06 16:32:09 -05:00
Ken Martin
96d754046a
ENH: more cleanup and removal of old code
2006-01-30 14:25:07 -05:00
Ken Martin
5d35fd4b7e
ENH: cleanup and remove some old code
2006-01-30 13:57:01 -05:00
Bill Hoffman
07ef88c985
ENH: add COMPILE_FLAGS to targets
2006-01-25 08:38:06 -05:00
Bill Hoffman
9891260a6d
ENH: add support for watcom wmake and wcl386
2006-01-17 10:21:45 -05:00
Brad King
8340c0d186
ENH: Further centralized custom command dependency computation. Custom command dependencies in the source tree may now also be specified relative to the source directory.
2006-01-13 20:51:45 -05:00
Brad King
327489ae59
COMP: Removed unused paramter from cmLocalGenerator::OutputLinkLibraries.
2006-01-13 18:33:51 -05:00
Brad King
22c62c9e65
BUG: Sweeping changes to cleanup computation of target names. This should
...
fix many bugs related to target names being computed inconsistently.
- Centralized computation of a target's file name to a method in
cmTarget. Now that global knowledge is always available the
*_CMAKE_PATH cache variables are no longer needed.
- Centralized computation of link library command lines and link
directory search order.
- Moved computation of link directories needed to link CMake targets
to be after evaluation of linking dependencies.
This also removed alot of duplicate code in which each version had its
own bugs.
This commit is surrounded by the tags
CMake-TargetNameCentralization1-pre
and
CMake-TargetNameCentralization1-post
so make the large set of changes easy to identify.
2006-01-13 18:18:32 -05:00
Bill Hoffman
7b1440ab9f
ENH: fix bundles for Mac and Xcode
2006-01-05 09:13:06 -05:00
Bill Hoffman
61e056e2dc
BUG: fix for bug 2533, make foo/foo.o now works and .o files are in the help
2006-01-02 12:36:54 -05:00
Bill Hoffman
9b0a485c75
ENH: fix so verbose is put in the correct place
2005-12-30 21:54:03 -05:00
Bill Hoffman
552842d11f
ENH: make sure -F is not duplicated
2005-12-27 15:33:47 -05:00
Bill Hoffman
79479233d4
ENH: remove warning
2005-12-27 13:03:01 -05:00
Bill Hoffman
452925649a
ENH: add better support for framework linking
2005-12-26 13:14:19 -05:00
Bill Hoffman
f6588b7919
ENH: fix borland make clean targets before build, add new generators for msys and mingw
2005-12-22 16:42:36 -05:00
Brad King
5b95c0a881
BUG: Libraries and executables that are built with version numbers and symlinks should be built by a rule using the real file name. The symlink file names should be rules that just depend on the main rule. This way if a version number changes a target will re-link with the new name and the symlinks will be updated.
2005-12-21 08:46:41 -05:00
Brad King
9f38df7046
COMP: Fix conversion warning.
2005-12-14 10:58:09 -05:00
Brad King
163e3ff56c
ENH: Removed cmMakefile arguments from cmTarget methods because cmTarget has the ivar m_Makefile now. Re-implemented cmLocalUnixMakefileGenerator3::AppendAnyDepend to use the new global knowledge and avoid the need to look at the cache for information about other targets. This should fix problems with custom commands and executables with the OUTPUT_NAME set. Also the <target>_LIBRARY_TYPE cache variable is no longer needed at all and has been removed.
2005-12-14 10:47:33 -05:00
Ken Martin
c3c349109b
ENH: removed TARGET_DIR_PREFIX support and someother fix
2005-12-13 15:14:08 -05:00
Bill Hoffman
92b6c8e742
PERF: apply patch for bug 2575 speeds up depend scanning
2005-12-09 13:58:55 -05:00
Brad King
70b4e1051e
BUG: Fixed support for external object files built by custom commands. Also added a test to keep it working.
2005-11-17 13:49:10 -05:00
Bill Hoffman
08be73fff1
BUG: make the clean target work
2005-10-28 11:02:29 -04:00
Ken Martin
52edb9c483
ENH: fix for bad placement of SILENT target
2005-10-21 15:24:12 -04:00
Ken Martin
8a1f581bd3
BUG: symlink issue
2005-10-21 12:04:26 -04:00
Ken Martin
017af44ca3
BUG: fix bad checkin that had debugging code in it
2005-10-21 11:10:30 -04:00
Ken Martin
4c32cfb3a3
BUG: fix over checking of build system
2005-10-20 16:37:37 -04:00
Ken Martin
b7b902e048
BUG: fix for def files and new local target link lines
2005-10-20 15:03:17 -04:00
Ken Martin
a2d4e15ed3
ENH: missing check_build_system for all target
2005-10-20 14:25:08 -04:00