diff --git a/cmake/PROJECT_NAMEConfig.cmake.in.in b/cmake/PROJECT_NAMEConfig.cmake.in.in
index 92c8207c189bb9474452261f6a70f39963d264a9..17f556a0a4ccb2a1c6d14d46e586098add652361 100644
--- a/cmake/PROJECT_NAMEConfig.cmake.in.in
+++ b/cmake/PROJECT_NAMEConfig.cmake.in.in
@@ -41,7 +41,11 @@ FIND_LIBRARY(@PROJECT_NAME@_LIBRARY @PROJECT_NAME@
 set(@PROJECT_NAME@_VERSION "@@PROJECT_NAME@_SOVERSION@")
 set(@PROJECT_NAME@_INCLUDE_DIRS @@PROJECT_NAME@_INCLUDE_DIRS@)
 set(@PROJECT_NAME@_LIBRARY_DIRS @@PROJECT_NAME@_LIBRARY_DIRS@)
-set(@PROJECT_NAME@_LIBRARIES ${@PROJECT_NAME@_LIBRARY} @@PROJECT_NAME@_LIBRARIES@)
+if(@@PROJECT_NAME@_HAS_LIBRARY@)
+  set(@PROJECT_NAME@_LIBRARIES ${@PROJECT_NAME@_LIBRARY} @@PROJECT_NAME@_LIBRARIES@)
+else()
+  set(@PROJECT_NAME@_LIBRARIES @@PROJECT_NAME@_LIBRARIES@)
+endif()
 set(@PROJECT_NAME@_CXX_FLAGS "@@PROJECT_NAME@_CXX_FLAGS@")
 set(@PROJECT_NAME@_LINKER_FLAGS "@@PROJECT_NAME@_LINKER_FLAGS@ @@PROJECT_NAME@_LINK_FLAGS@")
 set(@PROJECT_NAME@_LINK_FLAGS "@@PROJECT_NAME@_LINKER_FLAGS@ @@PROJECT_NAME@_LINK_FLAGS@")
diff --git a/cmake/create_cmake_config_files.cmake b/cmake/create_cmake_config_files.cmake
index 5a8ce377cb1ef4f77598913493897a149a26b7aa..44b5a9e2c0fa2f4d0de86c22685103227d669164 100644
--- a/cmake/create_cmake_config_files.cmake
+++ b/cmake/create_cmake_config_files.cmake
@@ -61,6 +61,12 @@ foreach(DEPENDENCY ${${PROJECT_NAME}_PUBLIC_DEPENDENCIES})
     string(APPEND ${PROJECT_NAME}_PUBLIC_DEPENDENCIES_L "find_package(${DEPENDENCY} REQUIRED)\n")
 endforeach()
 
+if(TARGET ${PROJECT_NAME})
+  set(${PROJECT_NAME}_HAS_LIBRARY 1)
+else()
+  set(${PROJECT_NAME}_HAS_LIBRARY 0)
+endif()
+
 # we have nested @-statements, so we have to parse twice:
 
 # create the cmake find_package configuration file