Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
Compiler and project file changes in latest SVN.
mandrav:
Compiler is now *not* using makefilegenerator.cpp for commands generation, as it was the culprit for the discovered slow times before actual compilation started.
A separate class has been created to generate build commands, which is *much* faster.
I 've tested it for 4 days now and seems to work fine. it even builds C::B, so I guess it really is working ;).
But if you encounter any unusual issues while building your projects, take a look at the actual command line to verify it is correct.
--------------
"GNU make" build method is now obsolete. You can't select it. It is automatically used *only* for projects that are using custom makefiles.
The actual commands to build a project/target/file using a custom makefile are now user-customizable and can be set per-project or per-target. The relevant options have been added in the project build options dialog.
--------------
The project file version has been pumped to 1.2 because some default values have changed. By "default values" I mean the values of elements that are missing from the project file.
Specifically:
[*] PCH mode now defaults for PCH to be created in the object output directory.
[*] "Build this target with ALL" now defaults to "no" (so "targets" now resemble MSVC "configurations").
[/list]
Hooks to upgrade older project file versions are in-place so you shouldn't notice any problems...
Also, project saving has undergone some optimizations to only save almost only what's different from the default values.
killerbot:
Great, any changes (next to those other project changes) with respect to "http://forums.codeblocks.org/index.php/topic,1478.0.html" (otherwise I still need to file it). :P
Urxae:
--- Quote from: mandrav on November 28, 2005, 04:07:09 pm ---PCH mode now defaults for PCH to be created in the object output directory.
--- End quote ---
I saw this change in the Subversion logs and was just about to start a topic asking why this change was made. Guess I'll ask here.
My problem: doesn't this break code like
--- Code: ---#include "precompiled_header.h"
--- End code ---
when said file is indeed in the same directory?
And when I say "break", I mean: does it still use the precompiled header? Wouldn't it find the actual header first?
lesnewell:
--- Quote from: Urxae on November 28, 2005, 04:32:52 pm ---I saw this change in the Subversion logs and was just about to start a topic asking why this change was made. Guess I'll ask here.
My problem: doesn't this break code like
--- Code: ---#include "precompiled_header.h"
--- End code ---
when said file is indeed in the same directory?
And when I say "break", I mean: does it still use the precompiled header? Wouldn't it find the actual header first?
--- End quote ---
It shouldn't. The compiler looks for the pch first. If it can't find it or if the pch is incorrect then it uses the header file.
Urxae:
--- Quote from: lesnewell on November 28, 2005, 04:42:41 pm ---
--- Quote from: Urxae on November 28, 2005, 04:32:52 pm ---I saw this change in the Subversion logs and was just about to start a topic asking why this change was made. Guess I'll ask here.
My problem: doesn't this break code like
--- Code: ---#include "precompiled_header.h"
--- End code ---
when said file is indeed in the same directory?
And when I say "break", I mean: does it still use the precompiled header? Wouldn't it find the actual header first?
--- End quote ---
It shouldn't. The compiler looks for the pch first. If it can't find it or if the pch is incorrect then it uses the header file.
--- End quote ---
Yes it does: it first looks in the current directory for the pch, doesn't find it (since it's in the object dir), then looks for the header and finds it.
Basically, it uses this algorithm:
--- Code: ---for each directory in search path ('.' is first if the file is #included "like_this")
if (pch present) return pch
if (header present) return header
--- End code ---
Since the current directory is put in front of all other paths when using "" to #include a file, it looks there first even if the object dir (with the pch in it) is the first entry in the include paths given on the command line.
Unless I'm missing something and there's a command-line option to put a path in the "" lookup phase. (And C::B uses this when pchs are put in the object dir)
Navigation
[0] Message Index
[#] Next page
Go to full version