Re: [cmake-developers] Canonical include pathes within ninja files

2012-06-07 Thread Peter Kümmel

On 07.06.2012 20:44, Claus Klein wrote:

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$


No, that looks like a bug.



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.


Thanks, will have a look at it later, currently I try to fix the dep problem :)

Peter







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.txt2011-05-10 06:13:29 +
+++ examples/properties/CMakeLists.txt2012-06-07 18:00:26 +
@@ -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



--

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


Re: [cmake-developers] Canonical include pathes within ninja files

2012-06-07 Thread Claus Klein
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    allclaus-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::ostringstreamIt include a test with realpath, but this is disabled for now.

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 ++++ examples/properties/CMakeLists.txt	2012-06-07 18:00:26 +@@ -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) //RegardsClaus On 07.06.2012, at 12:15, Claus Klein wrote:Hi Peter,I would like to know your opinion about Canonical path'sWhile 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 pathnamehttp://www.kernel.org/doc/man-pages/online/pages/man3/realpath.3.htmlNow 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.) //RegardsClaus Klein --Powered by www.kitware.comVisit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.htmlPlease keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQFollow 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

[cmake-developers] Canonical include pathes within ninja files

2012-06-07 Thread Claus Klein
Hi Peter,I would like to know your opinion about Canonical path'sWhile 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 pathnamehttp://www.kernel.org/doc/man-pages/online/pages/man3/realpath.3.htmlNow 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.) //RegardsClaus Klein 

pathTricks.cpp
Description: Binary data
--

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