CMake: Das Verknüpfen mit einer importierten Bibliothek mit Abhängigkeiten schlägt fehl
Ich habe ein Unterverzeichnis mit einer CMakeLists.txt, die eine Bibliothek mit make kompilieren und das Ergebnis als importierte Bibliothek in das übergeordnete Verzeichnis exportieren soll:
set(static_lib ${CMAKE_CURRENT_BINARY_DIR}/lib/mylib.a)
add_custom_command(
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT ${static_lib}
COMMAND make
COMMAND make install PREFIX=${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_target(compile_mylib DEPENDS ${static_lib})
add_library(mylib STATIC IMPORTED)
set_property(TARGET mylib PROPERTY IMPORTED_LOCATION ${static_lib})
add_dependencies(mylib compile_mylib)
Die CMakeLists.txt im übergeordneten Verzeichnis sieht folgendermaßen aus:
add_subdirectory(deps/mylib)
add_executable(mybin source.c)
target_link_libraries(mybin mylib)
Unter OSX funktioniert das einwandfrei - aber wenn ich dasselbe unter Ubuntu kompiliere, scheint es die CMakeLists des Unterverzeichnisses zu ignorieren und beschwert sich:
/usr/bin/ld.bfd.real: cannot find -lmylib
Ich benutze Clang zum Kompilieren.