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.

Attachment: NinjaRuleFilesCleanup.patch
Description: Binary data


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

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

--

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

Reply via email to