Remove the separate libobjcxx.

If we don't find a separate dynamically linkable C++ runtime, then
depend on the C++ standard library implementation.
main
David Chisnall 8 years ago
parent 82b3abf93e
commit fefb333b01

@ -73,7 +73,7 @@ set(libobjc_HDRS
objc/slot.h
)
set(libobjcxx_CXX_SRCS objcxx_eh.cc)
set(libobjc_CXX_SRCS objcxx_eh.cc)
# For release builds, we disable spamming the terminal with warnings about
# selector type mismatches
@ -187,31 +187,16 @@ if (ENABLE_OBJCXX)
test_cxx_runtime
CMAKE_FLAGS "-DCXX_RUNTIME=${CXX_RUNTIME}")
message(STATUS "Is runtime useable? ${USERUNTIME}")
if (${FORCE_LIBOBJCXX} OR NOT ${USERUNTIME})
message(STATUS "Forcing build of stand-alone libobjcxx")
add_library(objcxx SHARED ${libobjcxx_CXX_SRCS})
set_target_properties(objcxx PROPERTIES
LINKER_LANGUAGE C
SOVERSION ${libobjc_VERSION}
)
target_link_libraries(objcxx ${CXX_RUNTIME})
set(CXX_RUNTIME "")
list(APPEND INSTALL_TARGETS objcxx)
if (NOT ${USERUNTIME})
message(STATUS "libobjc will depend on C++ standard library")
else ()
set(libobjc_CXX_SRCS ${libobjcxx_CXX_SRCS})
# We don't want to link the STL implementation (e.g. libstdc++) if
# we have a separate C++ runtime.
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
target_link_libraries(objc ${CXX_RUNTIME})
endif ()
else ()
message(STATUS "No C++ runtime library found")
add_library(objcxx SHARED ${libobjcxx_CXX_SRCS})
set_target_properties(objcxx PROPERTIES
LINKER_LANGUAGE C
SOVERSION ${libobjc_VERSION}
)
set(CXX_RUNTIME "")
list(APPEND INSTALL_TARGETS objcxx)
message(STATUS "libobjc will depend on C++ standard library")
endif ()
endif (ENABLE_OBJCXX)
@ -248,8 +233,7 @@ endif ()
# Explicitly link the C++ runtime and libgc if we are compiling with gc support.
target_link_libraries(objc ${CXX_RUNTIME})
# Explicitly link libgc if we are compiling with gc support.
if (LIBGC)
target_link_libraries(objc ${LIBGC})
endif ()

Loading…
Cancel
Save