[cmake-developers] Canonical include pathes within ninja files
Claus Klein
claus.klein at arcormail.de
Thu Jun 7 14:44:52 EDT 2012
Hi Peter,
It seem not so important, but is it wanted that ninja generator
creates relative targets to PROJECT_BINARY_DIR?
claus-kleins-macbook-pro:Example clausklein$ ninja -t query Hello/
libHello.a
Hello/libHello.a:
input: CXX_STATIC_LIBRARY_LINKER
Hello/CMakeFiles/Hello.dir/hello.o
outputs:
Demo/CMakeFiles/helloDemo.dir/demo.o
Demo/CMakeFiles/helloDemo.dir/demo_b.o
Demo/helloDemo
Hello
libHello.a
all
claus-kleins-macbook-pro:Example clausklein$
The phony targes are OK, but all libs, obj, deps, and exe files use
relative paths.
I had problems in eclipse with relative paths, you should know.
It works as expected on shell.
This patch fix the ninja call without path and prevents the use of
std::ostringstream
It include a test with realpath, but this is disabled for now.
My other question about the not normalized include paths below could I
solve.
I had simply to change the CMakeLists.txt of a subproject:
claus-kleins-macbook-pro:LMX clausklein$ bzr diff examples/properties/
CMakeLists.txt
=== modified file 'examples/properties/CMakeLists.txt'
--- examples/properties/CMakeLists.txt 2011-05-10 06:13:29 +0000
+++ examples/properties/CMakeLists.txt 2012-06-07 18:00:26 +0000
@@ -6,7 +6,8 @@
set(LIBLMX Lmx)
#FIXME find_library(LIBLMX Lmx ../../supporting-software/lib)
-include_directories(../../supporting-software/include)
+#XXX include_directories(../../supporting-software/include)
+include_directories(${PRJECT_DIR}/supporting-software/include)
# Tell CMake to build an executable
add_executable(testlmx properties.2.2.2-test.cpp properties.
2.2.2.cpp PropertyExtensions.cpp PropertyParser.cpp)
//Regards
Claus
On 07.06.2012, at 12:15, Claus Klein wrote:
> Hi Peter,
>
> I would like to know your opinion about Canonical path's
>
> While testing with ninja generator, I found same rules with non
> Canonical include pathes.
>
> a simple example from my test program:
>
> "/tmp/some/deep/application/folder/../configuration/instance/../
> instance/myfile.cfg"
> "/tmp/some/deep/application/configuration/instance/myfile.cfg"
> realpath -> /private/tmp/some/deep/application/configuration/
> instance/myfile.cfg (which does not yet exists!)
>
> see man realpath -- returns the canonicalized absolute pathname
> http://www.kernel.org/doc/man-pages/online/pages/man3/realpath.3.html
>
> Now the real questions:
>
> 1.) How can this done in a portable make insight cmake?
> I know only boost!
>
> 2.) And should it done?
> IMO yes! (It would be more clear and faster when we generate
> canonical path entries.)
>
>
> //Regards
> Claus Klein
>
>
> <pathTricks.cpp>
> --
>
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120607/f5a6d3b8/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: NinjaRuleFilesCleanup.patch
Type: application/octet-stream
Size: 5489 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120607/f5a6d3b8/attachment-0002.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120607/f5a6d3b8/attachment-0001.html>
More information about the cmake-developers
mailing list