I'm building a dynamic library for other projects to use. To make it easier I'm creating the LibraryConfig.cmake file during the build process. I have successfully managed to get the consumer projects to include the headers of the project, but they fail to link against the library. What am I missing to get the consumer projects to properly link against my library?
Specifically the error looks like: ninja: error: 'My-Dynamic-Lib-NOTFOUND', needed by 'Consumer Project.so', missing and no known rule to make it
# Contents of My-Dynamic-LibConfig.cmake.in
if (NOT @PROJECT_NAME@_FOUND)
set(@PROJECT_NAME@_LIBRARY_DIR "@LIBRARY_INSTALL_LIB_DIR@")
set(PACKAGE_VERSION "@My-Dynamic-Lib_VERSION@")
if (NOT EXISTS "@CMAKE_INSTALL_PREFIX@/include/my-dynamic/MyLib.hpp")
MESSAGE(AUTHOR_WARNING "Failed to find the library header directory.")
endif (NOT EXISTS "@CMAKE_INSTALL_PREFIX@/include/my-dynamic/MyLib.hpp")
if (NOT WIN32)
if (EXISTS "${@PROJECT_NAME@_LIBRARY_DIR}/libmy-dynamic.@DYN_LIB_EXT@")
set(@PROJECT_NAME@_LIBRARIES "${@PROJECT_NAME@_LIBRARY_DIR}/libmy-dynamic.@DYN_LIB_EXT@")
elseif (EXISTS "${@PROJECT_NAME@_LIBRARY_DIR}/libmy-dynamicd.@DYN_LIB_EXT@")
set(@PROJECT_NAME@_LIBRARIES "${@PROJECT_NAME@_LIBRARY_DIR}/libmy-dynamicd.@DYN_LIB_EXT@")
endif (EXISTS "${@PROJECT_NAME@_LIBRARY_DIR}/libmy-dynamic.@DYN_LIB_EXT@")
else ()
if (EXISTS "${@PROJECT_NAME@_LIBRARY_DIR}/my-dynamic.@STA_LIB_EXT@")
set(@PROJECT_NAME@_LIBRARIES "${@PROJECT_NAME@_LIBRARY_DIR}/my-dynamic.@STA_LIB_EXT@")
elseif (EXISTS "${@PROJECT_NAME@_LIBRARY_DIR}/my-dynamicd.@STA_LIB_EXT@")
set(@PROJECT_NAME@_LIBRARIES "${@PROJECT_NAME@_LIBRARY_DIR}/my-dynamicd.@STA_LIB_EXT@")
endif (EXISTS "${@PROJECT_NAME@_LIBRARY_DIR}/my-dynamic.@STA_LIB_EXT@")
endif (NOT WIN32)
add_library(@PROJECT_NAME@ SHARED IMPORTED ${@PROJECT_NAME@_LIBRARIES})
set_target_properties(@PROJECT_NAME@ PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
INTERFACE_LINK_LIBRARIES "${@PROJECT_NAME@_LIBRARIES}"
)
if (@PROJECT_NAME@_LIBRARIES)
set(@PROJECT_NAME@_FOUND TRUE)
else ()
MESSAGE(AUTHOR_WARNING "Failed to find the library.")
set(@PROJECT_NAME@_FOUND FALSE)
endif (@PROJECT_NAME@_LIBRARIES)
unset(@PROJECT_NAME@_LIBRARY_DIR)
endif (NOT @PROJECT_NAME@_FOUND)