[CMake] Re: Linking installed libraries on a "sub" CMakeLists
Matthew Woehlke
mw_triad at users.sourceforge.net
Tue Apr 3 11:21:09 EDT 2007
d0b3rM4n at gmx.net wrote:
> Hi all
>
> I'm using cmake to compile lots of different libs under linux, with add_subdirectory.
> I want to install the libs and headers in a directory ${CMAKE_BINARY_DIR}/dist/lib and ${CMAKE_BINARY_DIR}/dist/include
>
> My root CMakeLists.txt file:
> project(testproject)
>
> add_subdirectory( libA )
> add_subdirectory( libB )
> ...
> add_subdirectory( testApplication )
>
> My libA CMakeLists.txt file:
> ...
> install(TARGETS libA DESTINATION ${TEST_LIB_INSTALL_DIR} )
> install(FILES libA.h DESTINATION ${TEST_INCLUDE_INSTALL_DIR} )
> ...
>
> In my testApplication I want to link againt some libraries and I need the installed header files.
>
> ...
> include_directories ( ${TEST_INCLUDE_INSTALL_DIR} )
> link_directories ( ${TEST_LIB_INSTALL_DIR} )
> ...
> set ( LIBA_LIBRARY ${TEST_LIB_INSTALL_DIR}/liblibA.a )
> target_link_libraries( ${TEST_EXECUTABLE} ${LIBA_LIBRARY} )
> ...
>
> When I call cmake from my project root directory, I get the following error.
> CMake Error: Attempt to add link library "/home/cmaketests/final/dist/lib/liblibA.a" to target "testApplication" which is not built by this project.
> CMake Error: Cannot find source file "/home/cmaketests/final/dist/lib/liblibA.a" for target "testApplication"
Have you tried 'target_link_libraries( ${TEST_EXECUTABLE} libA )'? This
WFM in my own project. I build two libraries (we'll call them 'foo' and
'bar'), in src/foo and src/bar, and have a test suite in src/test. 'bar'
has 'target_link_libraries(bar foo)' and my macro for building test
programs has 'target_link_libraries(${test} foo bar)'.
--
Matthew
Obscurity: +5
More information about the CMake
mailing list