From 6d3b803d2b0e4bf8703bbfa51a67f378d6bd59f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo.delrieu@tanker.io>
Date: Tue, 19 Nov 2019 14:58:59 +0100
Subject: [PATCH] only build one target, use BUILD_SHARED_LIBS where
 appropriate

[Retrieved from:
https://github.com/docopt/docopt.cpp/commit/6d3b803d2b0e4bf8703bbfa51a67f378d6bd59f6]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 CMakeLists.txt | 39 ++++++---------------------------------
 1 file changed, 6 insertions(+), 33 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index feff32e..14c3420 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,33 +34,15 @@ set(docopt_HEADERS
 #============================================================================
 # Compile targets
 #============================================================================
-if(MSVC OR XCODE)
-    # MSVC requires __declspec() attributes, which are achieved via the 
-    # DOCOPT_DLL and DOCOPT_EXPORTS macros below. Since those macros are only
-    # defined when building a shared library, we must build the shared and
-    # static libraries completely separately.
-    # Xcode does not support libraries with only object files as sources.
-    # See https://cmake.org/cmake/help/v3.0/command/add_library.html?highlight=add_library
-    add_library(docopt SHARED ${docopt_SOURCES} ${docopt_HEADERS})
-    add_library(docopt_s STATIC ${docopt_SOURCES} ${docopt_HEADERS})
-else()
-    # If not using MSVC or Xcode, we will create an intermediate object target
-    # to avoid compiling the source code twice.
-    add_library(docopt_o OBJECT ${docopt_SOURCES} ${docopt_HEADERS})
-    set_target_properties(docopt_o PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
-
-    add_library(docopt SHARED $<TARGET_OBJECTS:docopt_o>)
-	set_target_properties(docopt PROPERTIES
-			VERSION ${PROJECT_VERSION}
-			SOVERSION ${PROJECT_VERSION_MAJOR}
-			)
-    add_library(docopt_s STATIC $<TARGET_OBJECTS:docopt_o>)
-endif()
+add_library(docopt ${docopt_SOURCES} ${docopt_HEADERS})
+set_target_properties(docopt PROPERTIES
+  VERSION ${PROJECT_VERSION}
+  SOVERSION ${PROJECT_VERSION_MAJOR}
+)
 
 target_include_directories(docopt PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}> $<INSTALL_INTERFACE:include/docopt>)
-target_include_directories(docopt_s PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}> $<INSTALL_INTERFACE:include/docopt>)
 
-if(MSVC)
+if(MSVC AND BUILD_SHARED_LIBS)
     # DOCOPT_DLL: Must be specified when building *and* when using the DLL.
     #             That's what the "PUBLIC" means.
     # DOCOPT_EXPORTS: Must use __declspec(dllexport) when building the DLL.
@@ -69,11 +51,6 @@ if(MSVC)
                                       PRIVATE DOCOPT_EXPORTS)
 endif()
 
-if(NOT MSVC)
-	set_target_properties(docopt PROPERTIES OUTPUT_NAME docopt)
-	set_target_properties(docopt_s PROPERTIES OUTPUT_NAME docopt)
-endif()
-
 if(USE_BOOST_REGEX)
 	add_definitions("-DDOCTOPT_USE_BOOST_REGEX")
 	# This is needed on Linux, where linking a static library into docopt.so
@@ -82,9 +59,6 @@ if(USE_BOOST_REGEX)
     find_package(Boost 1.53 REQUIRED COMPONENTS regex)
     include_directories(${Boost_INCLUDE_DIRS})
     target_link_libraries(docopt ${Boost_LIBRARIES})
-	if(WITH_STATIC)
-		target_link_libraries(docopt_s ${Boost_LIBRARIES})
-	endif()
 endif()
 
 #============================================================================
@@ -120,7 +94,6 @@ set(export_name "docopt-targets")
 install(TARGETS docopt EXPORT ${export_name} DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 # Development package
-install(TARGETS docopt_s EXPORT ${export_name} DESTINATION ${CMAKE_INSTALL_LIBDIR})
 install(FILES ${docopt_HEADERS} DESTINATION include/docopt)
 
 # CMake Package
