On 12/05/2011 03:17 PM, Brad King wrote:
On 12/4/2011 12:49 PM, Stephen Kelly wrote:
I've pushed the branch to my gitorious clone again.
https://gitorious.org/~steveire/cmake/steveires-cmake
Hi,
I'm revisiting this now that CMake 2.8.7 is out.
I've force pushed my branch:
https://gitorious.org/~steveire/cmake/steveires-cmake/commits/target-include-directories
For context, the branch as it was on December 4th is preserved here:
https://gitorious.org/~steveire/cmake/steveires-cmake/commits/target-include-directories-old
Thanks. Why do you maintain a special std::vector<std::string> member
to hold the INCLUDE_DIRECTORIES target property?
Mostly to simplify the implementation so that I don't need to serialize
and de-serialize in multiple places. I also figured it must be faster to
serialize and deserialize over const char * all the time in the multiple
places that is needed.
I think the property
can be stored just like any other property during configuration. Then
the generators can use ExpandListArguments.
Would that mean that every generator would have to ensure that the
includes were unique etc?
Initialization from the
directory property value can just be added to cmTarget::SetMakefile:
this->SetPropertyDefault("INCLUDE_DIRECTORIES", 0);
I tried this (also removing this->IncludeDirectories = makefileIncludes;
from the same function), and it makes the tests fail. This doesn't
surprise me, as as far as I knew and read from the code,
SetPropertyDefault is for initializing a property with the content of
the property with the same name with a "CMAKE_" prefix.
If I've understood what you meant here, please expand.
The directory-level IncludeDirectories vector can probably also go
away in favor of a normal directory property if things are properly
refactored.
The top two commits need to be reviewed and have real fixes decided and
written for them. Should the memoization be removed?
I have removed the last two commits from the branch and added a separate
commit to remove the memoization.
Once again, the tests all pass for me. However, I have only tested with
the "Unix Makefile" generator. The other generators (eg for Windows,
Mac?) likely do not work.
How can this feature now be moved forward? Do I need to convince someone
to volunteer to port the other generators? Should I just file a bug for
porting the other generators and wait (possibly making the feature bitrot)?
Thanks,
Steve.
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers