Author: Andreas Tille <tille@debian.org>
Last-Update: Tue, 05 Jan 2021 12:38:07 +0200
Description: Create shared and static library

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,11 +26,14 @@
 )
 
 add_library(xdf ${SOURCES})
+add_library(xdf_shared SHARED ${SOURCES})
+set_target_properties(xdf_shared PROPERTIES SOVERSION 0)
 
 find_package(pugixml 1.9 QUIET)
 if(TARGET pugixml AND NOT XDF_NO_SYSTEM_PUGIXML)
 	message(STATUS "Using system pugixml")
 	target_link_libraries(xdf PRIVATE pugixml)
+	target_link_libraries(xdf_shared PRIVATE pugixml::shared)
 else()
 	message(STATUS "Using bundled pugixml")
 	target_sources(xdf PRIVATE pugixml/pugixml.cpp)
@@ -39,6 +42,7 @@
 
 target_compile_features(xdf PUBLIC cxx_std_11)
 set_target_properties(xdf PROPERTIES OUTPUT_NAME xdf PUBLIC_HEADER xdf.h)
+set_target_properties(xdf_shared PROPERTIES OUTPUT_NAME xdf PUBLIC_HEADER xdf.h)
 target_include_directories(xdf PUBLIC
 	$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
 	$<INSTALL_INTERFACE:include>
@@ -50,6 +54,12 @@
 	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 	PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
 )
+install(TARGETS xdf_shared
+        EXPORT "${PROJECT_NAME}Config"
+        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+        PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+)
 install(EXPORT "${PROJECT_NAME}Config"
 	COMPONENT ${PROJECT_NAME}
 	NAMESPACE "XDF::"
