View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002389CMakeCMakepublic2005-10-20 08:582006-10-04 14:17
ReporterKen Moreland 
Assigned ToBrad King 
PrioritynormalSeverityfeatureReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0002389: A build without dependency reconfiguration option.
DescriptionWhen make is called (either from the root of the project or a subdirectory) the dependencies determining which files need to be updated can be performed in up to 3 parts.

1. Changes in configuration files (i.e. CMakeLists.txt) are checked to see if the build process has changed. (Performed by CMake.)

2. Check changes in source code files to see if their dependencies have changed. (Performed by CMake.)

3. Check the dependency tree and determine which sources need to be rebuilt. (Performed by the make program.)

All three parts are necessary at some time or another and should be, by default, be performed any time a compile happens. However, in large projects, parts 1 and 2 cause a sizeable delay for small, incremental compiles. For developers making frequent small, incremental changes to the source code (for example during debugging), waiting for parts 1 and 2 can be frustrating.

There should be some build targets in every directory that allow the user to build all the files but skip parts 1 and 2 of the dependency checking. For example, a target called "noconfig" could skip part 1 and one called "nodep" could skip parts 1 and 2. Of course, these targets would be provided "buyer beware" as skipping these parts increases the likelyhood of compiled code becoming out of sync.
TagsNo tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]

-  Notes
(0004766)
Alex Neundorf (developer)
2006-08-27 10:53

Does "make <targetname>/fast" what you want ?
This is available since cmake 2.4.3.
(0004783)
Ken Moreland (reporter)
2006-08-28 12:11

That almost does what I want. I have been using that feature and it works well. Ideally, I could type "make fast" and that would automatically perform a <targetname>/fast build on all default targets.

Right now I have a little program that writes little scripts in my source directory that will call "make <targetname>/fast" on all of the targets for a particular directory. That works pretty good except that it can actually take longer if it ends up building a bunch of non-default targets.

So apart from that minor detail, which is really just laziness on my part for not typing the targetname on the command prompt each time, I'm happy with the fast targets.
(0004784)
Alex Neundorf (developer)
2006-08-28 15:26

A target "fast" is not possible, the name would be too generic I think.
But "all/fast" might be possible.
(0004793)
Brad King (manager)
2006-08-29 09:23

Bug 0003658 is related to this bug.
(0005164)
Bill Hoffman (manager)
2006-10-04 14:17

target/fast is now here.

- Issue History
Date Modified Username Field Change


Copyright © 2000 - 2017 MantisBT Team
Powered by Mantis Bugtracker