10000 Merge pull request #56 from chrisdembia/support-xcode · lineCode/docopt.cpp@b8710d7 · GitHub
[go: up one dir, main page]

Skip to content

Commit b8710d7

Browse files
authored
Merge pull request docopt#56 from chrisdembia/support-xcode
Support Xcode by not using CMake object libraries when using Xcode
2 parents 6cc0967 + de8fd43 commit b8710d7

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

CMakeLists.txt

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,20 @@ set(docopt_HEADERS
3939
#============================================================================
4040
# Compile targets
4141
#============================================================================
42-
add_library(docopt_o OBJECT ${docopt_SOURCES} ${docopt_HEADERS})
43-
set_target_properties(docopt_o PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
44-
45-
add_library(docopt SHARED $<TARGET_OBJECTS:docopt_o>)
46-
add_library(docopt_s STATIC $<TARGET_OBJECTS:docopt_o>)
42+
if(XCODE)
43+
# Xcode does not support libraries with only object files as sources.
44+
# See https://cmake.org/cmake/help/v3.0/command/add_library.html?highlight=add_library
45+
add_library(docopt SHARED ${docopt_SOURCES} ${docopt_HEADERS})
46+
add_library(docopt_s STATIC ${docopt_SOURCES} ${docopt_HEADERS})
47+
else()
48+
# If not using Xcode, we will create an intermediate object target to avoid
49+
# compiling the source code twice.
50+
add_library(docopt_o OBJECT ${docopt_SOURCES} ${docopt_HEADERS})
51+
set_target_properties(docopt_o PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
52+
53+
add_library(docopt SHARED $<TARGET_OBJECTS:docopt_o>)
54+
add_library(docopt_s STATIC $<TARGET_OBJECTS:docopt_o>)
55+
endif()
4756

4857
target_include_ 3F16 directories(docopt PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}> $<INSTALL_INTERFACE:include/docopt>)
4958
target_include_directories(docopt_s PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}> $<INSTALL_INTERFACE:include/docopt>)

0 commit comments

Comments
 (0)
0