[CMake] Building third party library as part of CMake project
Nils Gladitz
nilsgladitz at gmail.com
Wed Jun 4 17:41:42 EDT 2014
On 04.06.2014 23:11, Truman Ellis wrote:
> I have a top level CMakeLists.txt file which builds a library called
> Camellia and several executables in subdirectories which link with
> Camellia. I would like to add a third party library called XDMF as a
> dependency for Camellia under Camellia/TPL/Xdmf. Luckily, XDMF is
> already on a CMake build system, but when I use
>
> add_subdirectory(TPL/Xdmf)
>
> and then
>
> add_library(Camellia ${LIB_SOURCES} ${HEADERS})
>
> it builds Camellia in the build/TPL/Xdmf/bin directory rather than
> build as it does without the add_subdirectory(TPL/Xdmf). Why does
> adding a subdirectory change the build directory for Camellia, and how
> do I fix it? Also how do I make sure Camellia is linking with Xdmf
> once I get that figured out?
It shouldn't normally.
The only way I can think of is that TPL/Xdmf/CMakeLists.txt sets
CMAKE_RUNTIME_OUTPUT_DIRECTORY as a cache variable.
e.g. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
"${CMAKE_CURRENT_BINARY_DIR}/bin" CACHE PATH "docstring")
As a regular variable it wouldn't affect targets created in the parent
CMakeLists.txt
Nils
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20140604/85bfaa06/attachment.html>
More information about the CMake
mailing list