[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