I don't see any good reason, why should cmake call itself in another build directory?

If the library is part of the project, than it is added with add_subdirectory in the main CMakeLists.txt file.
If the library is not part of the project, it has to be maintained from outside.

Am I missing something?

Andreas

Am 17.06.2011 11:40, schrieb David Springate:
Hi Andreas,

Thanks for another reply!

My question therefore is:
How can the cmake for MY_APP start the cmake for MY_LIB?

I know how to get my app to link a library, and how to add the include directories for the lib - so that the app can compile - but how can it kick-start the build for MY_LIB so that the library is guaranteed to exist ready to be linked? I don't want to use an external script as I'd have to have one for each platform - going against the point of cmake, surely?

Thanks again for your help so far,

David

On 17 June 2011 10:22, Andreas Naumann <andreas-naum...@gmx.net> wrote:
Hi,

how should cmake find your MY_LIB-directory?
The simplest way, is to add the directory using "add_subdirectory(MY_LIB_DIR ...)"

If the MY_LIB-build directory is somewhere else, in a completely different directory, you should think about your project structure.

Andreas

Am 17.06.2011 11:06, schrieb David Springate:
Hi,

Thanks for the reply - but I think you might have misunderstood my question.

I want to setup CMake so that when I call Cmake like so (for MY_APP):
mkdir build && cd build
cmake .. -G Xcode

that the cmake call will be able to 'know' that it needs MY_LIB, find where the MY_LIB CMakeLists.txt file is, build it, and then continue with the cmake call for MY_APP.

Any ideas?

David

On 17 June 2011 08:18, J.S. van Bethlehem <j.s.van.bethle...@astro.rug.nl> wrote:
Hej David,

>From your description I think all your build script needs to do is:

mkdir build && cd build
cmake ..
make MY_APP

Further, assuming your library also gets build with CMake, you probably have an add_directory(../MY_LIB ../MY_LIB) in your main lists-file (otherwise you should) and then the link_directories() command is not needed. I created sort of a 'standard' machinery for building a list of 'sub-packages' using CMake. It's not well documented and probably still has many issues, but I could mail it to you if you think it may help you get started and if you're interested.

Greetsz,
Jakob

On 06/16/2011 11:54 PM, David Springate wrote:
Hi,

I am new to CMake - and whilst I am immediately impressed with it's relative ease of use - I have a 'noob' question, I'm sure!

I have the following:
A library called MY_LIB that builds with a cmake command (I have created a nice CMakeLists.txt file)
An application called MY_APP that builds a nice application - and even links in MY_LIB using:
link_directories("../MY_LIB")
target_link_libraries(MY_APP MY_LIB)

Now, first of all I know that I'm not supposed to use relative paths.. but we'll call a side issue.. (though I'd be happy to hear the correct way of doing things!) - the real problem that I have is this:

Give than MY_LIB is built using CMake and MY_APP is built using CMake.. how can I setup my build scripts so that I can call CMake once for MY_APP, it'll realise that it needs MY_LIB, which hasn't yet been built, invoke CMake for MY_LIB and then link itself with MY_APP?

I ask because I use libraries heavily to organise my code (and reuse) and would love to switch to CMake for all my building (XCode 4 has forced my hand!) but I can't seem to figure this out.

Please help a newcomer out - any help is greatly appreciated!

Thanks,

David
_______________________________________________
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://www.cmake.org/mailman/listinfo/cmake



--
David Springate
david.spring...@gmail.com
_______________________________________________ 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://www.cmake.org/mailman/listinfo/cmake


_______________________________________________
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://www.cmake.org/mailman/listinfo/cmake



--
David Springate
david.spring...@gmail.com

_______________________________________________
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://www.cmake.org/mailman/listinfo/cmake

Reply via email to