Brad King
9a0b9bc8b7
Optionally pass include directories with response files
...
Create platform option CMAKE_<lang>_USE_RESPONSE_FILE_FOR_INCLUDES to
enable use of response files for passing the list of include directories
to compiler command lines.
2011-03-17 17:56:13 -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
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
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
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
690121f098
BUG: Fix color check for dependency scanning
...
Generation of color rules for dependency scanning messages did not
account for disabling color at generation time. See issue #7814 .
2008-10-15 10:40:57 -04: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
857e2e15dd
ENH: Improved escaping in kwsys/System. Added escape of % for NMake. Added escape of ; for the VS IDE.
2008-01-13 16:36:20 -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
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
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
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
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
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
Brad King
dfb79bea23
STYLE: Removed unused reference to cmMakeDepend.
2007-06-11 12:40:41 -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
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
Bill Hoffman
76dd86b410
BUG: fix -D escaped quotes for watcom
2007-05-10 14:43:55 -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
fd3688fa72
ENH: Fixed recursive make call target escaping for Borland to support SubDirSpaces test.
2007-03-08 13:05:02 -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
Bill Hoffman
ca0230a33e
ENH: check in initial conv library stuff
2007-02-16 16:12:17 -05:00
Bill Hoffman
bd531d3fae
BUG: fix for 4186, kdevelop adding file twice
2007-01-25 15:44:52 -05:00
Brad King
54731fa2c8
ENH: Adding support for # escape in Watcom WMake.
2006-10-25 11:23:04 -04: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
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
019dabc97f
BUG: MSYS makefile shell needs posix paths to executables in some cases and it does not hurt to do it always.
2006-09-28 10:37:19 -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
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
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
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
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
Ken Martin
50d058a3a1
ENH: always compile progress
2006-05-23 09:11:46 -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
Ken Martin
3d96e52261
STYLE: some m_ to this-> cleanup
2006-03-15 11:02:08 -05:00
Bill Hoffman
89e5fc63fe
STYLE: fix line lengths
2006-03-10 13:54:57 -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
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
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
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
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
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
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
Ken Martin
929553a02e
ENH: big cleanup and fix for jump commands
2005-10-20 13:40:28 -04:00
Ken Martin
6b444ee345
BUG: cd into local directory to reduce link line length
2005-10-19 10:03:20 -04:00
Ken Martin
dce07caf0b
ENH: fix warning
2005-08-05 17:07:07 -04:00
Ken Martin
40cd76ab03
ENH: first step to only rebuuilding on flag changes
2005-08-01 10:19:35 -04:00
Ken Martin
ad46c80f7a
ENH: fix warning
2005-07-28 15:24:31 -04:00
Ken Martin
4a98fcd059
ENH: fix some warnings and cleanup some
2005-07-27 12:41:08 -04:00
Ken Martin
33efcc442b
ENH: fix some warnings and cleanup some
2005-07-27 11:36:43 -04:00
Ken Martin
ccc292e4b0
ENH: fix some warnings and cleanup some
2005-07-27 11:33:39 -04:00
Ken Martin
6cc7bca222
ENH: fix some warnings and cleanup some
2005-07-27 11:31:17 -04:00
Ken Martin
f85f919dbc
ENH: reduce the number of files produced still needs a bit more cleanup
2005-07-27 09:49:37 -04:00
Ken Martin
ababb68820
BUG: fix for bootstrap problem
2005-07-06 16:16:12 -04:00
Ken Martin
154a0cd162
ENH: added local help and install targets
2005-06-30 09:53:03 -04:00
Ken Martin
369308ca76
ENH: make LOCATION an computed property of the target and get rid of a bunch of const junk
2005-06-22 09:06:46 -04:00
Ken Martin
e559aa11ac
ENH: added support for forcing recomputation of depends
2005-06-10 10:45:08 -04:00
Ken Martin
c2aa4e7a08
ENH: now also provides obj rules for local Makefiles
2005-06-02 13:41:34 -04:00
Ken Martin
46e5b9afe2
ENH: minor perf improvement
2005-06-01 13:37:49 -04:00
Ken Martin
f79376c1d1
STYLE: add some better comments and remove some unused code
2005-05-31 10:16:28 -04:00
Ken Martin
d7cbf3e1d6
BUG: a fix for constant recomputing of depends
2005-05-25 12:22:32 -04:00
Ken Martin
baeeb40823
ENH: some more cleanup and changes to how custom commands are stored
2005-05-24 14:42:23 -04:00
Ken Martin
60bcce7fa2
ENH: added help target and made custom commands execute in start output directory
2005-05-20 11:01:21 -04:00
Ken Martin
78b5cca6e3
ENH: another step to the next generator still not optimized yet
2005-05-18 13:46:00 -04:00
Ken Martin
8575d2369d
COMP: some warning fixes and cleanup
2005-05-17 14:39:18 -04:00
Ken Martin
61358ac75c
ENH: some more reorg
2005-05-17 11:15:09 -04:00
Ken Martin
8c65179339
ENH: warning fixes and some first steps in cleaning up the convert code
2005-05-13 09:54:30 -04:00
Ken Martin
caf17c123b
ENH: added new generator
2005-05-12 10:49:56 -04:00
Ken Martin
25d6c04add
ENH: another snapshot
2005-05-11 12:44:01 -04:00
Ken Martin
4b1c392c9c
ENH: snapshot
2005-05-11 08:45:16 -04:00
Ken Martin
5fb21a0640
ENH: some more cleanup
2005-05-09 08:53:38 -04:00
Ken Martin
0cb20474d8
ENH: updates
2005-05-06 14:49:38 -04:00
Ken Martin
c2cd47b32c
ENH: backup of work in progress
2005-05-05 12:45:53 -04:00