[cmake-developers] target_include_directories branch in stage
Stephen Kelly
steveire at gmail.com
Sun Jan 29 11:44:41 EST 2012
David Cole wrote:
> OK... nearly complete now. Please review, then reply and tell me if
> you object to any of the 7 commits in this topic branch.
No objections. They all seem fine.
> Steve, I've
> preserved your authorship for most of these commits, but have
> significantly re-written some of them.
The 3 following 073bc421620e25fef6389b0d8b71cfad8ca79786 (CMake: Eliminate
cmMakefile::IncludeDirectories) seem to have been substantially re-written.
I'm not sure what is the appropriate way to deal with commits like that, but
whatever you choose for the author line is fine.
>
> I've pushed again (force-pushed, please delete previous checkouts of
> this branch) to github:
>
> https://github.com/dlrdave/CMake/commits/tgt-inc-dirs-vs-xcode
> https://github.com/dlrdave/CMake/commit/0a45e239
>
> I've verified all tests pass on Mac with Unix Makefiles, Mac with
> Xcode, Windows with VS10 and Windows with VS6. I'm confident we will
> have minimal dashboard issues when merging this to 'next'.
Great. Thanks for all of your efforts.
> What remains to be done:
> - need ExpandVariablesInString calls for the target properties, too...
> at
> the same point, or is there a better time to call it?
Are you asking whether cmMakefile::ExpandVariables() should do something
like (sort-of pseudocode):
foreach(Target target, this->Targets)
{
const char *includeDirs = target->GetProperty("INCLUDE_DIRECTORIES");
if (includeDirs)
{
std::string dirs = includeDirs;
this->ExpandVariablesInString(dirs, true, true);
target->SetProperty("INCLUDE_DIRECTORIES", dirs.c_str());
}
}
I don't know enough about when ExpandVariables is supposed to be called etc,
but it seems like a sensible place to do it is always called at the correct
point.
However, it starts to look like ExpandVariablesInString should be API
elsewhere in CMake (cmSystemTools). It's not a very important point though
and doesn't necessarily need to be solved with this branch.
> - avoid duplicates in "cmMakeDepend::SetMakefile"?
Considering that it used to call
this->Makefile->GetIncludeDirectories();
which does preserve uniqueness, I think it makes sense to do so with the
ported code too.
> - double-check with Alex about the changes in cmake::FindPackage --
> Alex?
> - fully remove cmMakefile::GetIncludeDirectories since it has no
> more callers - update documentation for include_directories and the
> INCLUDE_DIRECTORIES property
I have updated my branch on gitorious with an attempt at documenting the
change (commit 8acd1c07ff299ea823837ba6268b43db92ac81f2).
Thanks,
Steve.
More information about the cmake-developers
mailing list