[CMake] Linker Include Path
Matthias Schweinoch
matthias.schweinoch at gmx.de
Fri Oct 28 15:03:11 EDT 2011
Sorry, never mind: Problem has resolved itself. The linker error was due
to some other dependency.
On 28/10/11 20:44, Matthias Schweinoch wrote:
> Hi all,
>
>
> I'm using cmake (2.8.5) to build a set of C++ libraries. I have a
> project directory structure which is basically organized like this:
>
>
> package/component/CMakeLists.txt
> package/component/inc/foo.hpp
> package/component/src/foo.cpp
>
>
> Boiled down, my CMakeLists.txt for this component looks like this:
>
>
> SET(HEADERS inc/foo.hpp)
> SET(SOURCES src/foo.cpp)
> SET(LIBS whatever)
> INCLUDE_DIRECTORIES(inc)
> ADD_LIBRARY(MyLib ${HEADERS} ${SOURCES})
> TARGET_LINK_LIBRARIES(MyLib ${LIBRARIES})
>
>
> This has worked fine for me. Now, however, I would like to add another
> subdirectory to the src tree (this has organizational reasons),
> resulting in something like this:
>
>
> package/component/CMakeLists.txt
> package/component/inc/foo.hpp
> package/component/src/foo.cpp
> package/component/src/xyz/xyz.cpp
>
>
> I modified the SOURCES assignment in my CMakeLists.txt like so:
>
>
> SET(SOURCES src/foo.cpp src/xyz/xyz.cpp)
>
>
> While this does compile, it does not link. I assume that this is
> because the xyz.o is put in
>
>
> CURRENT_BINARY_OUTPUT/xyz/xyz.o
>
>
> and the linker does not include that subdirectory. If I move the
> source file up by one level (i.e. into the src directory), everything
> compiles and links just fine, but that's not really an acceptable
> solution. Is there some (portable) way to tell CMake to include the
> xyz output path so that xyz.o is found at link time?
>
>
>
> Thanks in advance for your help!
>
>
> Matthias
> --
>
> 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
>
More information about the CMake
mailing list