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?
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.
>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