[CMake] can not import target external lib before being build
Stéphane Ancelot
sancelot at numalliance.com
Thu Sep 12 03:54:55 EDT 2019
Hi,
I am using this cmake snippet in order to build an external library
# ------ QGLViewer ----------
set(QGLVIEWER_FILES
${CMAKE_BINARY_DIR}/libQGLViewer-2.7.1/QGLViewer/qglviewer.h)
get_target_property (QT_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION)
add_custom_command(OUTPUT ${QGLVIEWER_FILES}
COMMAND tar xzf
"${CMAKE_CURRENT_SOURCE_DIR}/libQGLViewer-2.7.1.tar.gz" --strip 1
COMMAND ${QT_QMAKE_EXECUTABLE} -o QMakefile
COMMAND make -f QMakefile
# COMMAND ${CMAKE_COMMAND} -E touch ${LIBFOO_TAR_HEADERS}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/libQGLViewer-2.7.1"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/libQGLViewer-2.7.1.tar.gz"
COMMENT "Unpacking libQGLViewer-2.7.1.tar.gz"
VERBATIM
)
add_custom_target(qglviewer_untar DEPENDS ${QGLVIEWER_FILES})
add_library(qglviewer SHARED IMPORTED)
add_dependencies(qglviewer qglviewer_untar)
# link qglviewer
set_target_properties(qglviewer PROPERTIES
IMPORTED_LOCATION
"${CMAKE_CURRENT_BINARY_DIR}/libQGLViewer-2.7.1/QGLViewer/libQGLViewer-qt5.so"
INTERFACE_INCLUDE_DIRECTORIES
"${CMAKE_CURRENT_BINARY_DIR}/libQGLViewer-2.7.1")
Unfortunately, cmake replies with the next error when configuring :
CMake Error in API_COLLISION/CMakeLists.txt:
Imported target "qglviewer" includes non-existent path
"/tmp/OK/BASE_SILFAX_SAFETY/build/API_COLLISION/libQGLViewer-2.7.1"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
CMake Error in API_COLLISION/CMakeLists.txt:
Imported target "qglviewer" includes non-existent path
"/tmp/OK/BASE_SILFAX_SAFETY/build/API_COLLISION/libQGLViewer-2.7.1"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190912/b0a858d1/attachment.html>
More information about the CMake
mailing list