Do not use CMAKE_THREAD_LIBS_INIT as linker flag Don't pick up libdispatch if available. Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt @@ -5,7 +5,6 @@ project(libobjc) enable_language(ASM) set(CMAKE_C_FLAGS_DEBUG "-g -O0 -fno-inline ${CMAKE_C_FLAGS_DEBUG}") -set(CMAKE_C_FLAGS_RELEASE "-O3 ${CMAKE_C_FLAGS_RELEASE}") set(CMAKE_C_FLAGS "-std=gnu99 ${CMAKE_C_FLAGS}") set(libobjc_VERSION 4.6) @@ -237,12 +236,8 @@ endif (ENABLE_OBJCXX) # Currently, we actually need pthreads, but we should use the platform's native # threading implementation (we do for everything except thread-local storage) -set(CMAKE_THREAD_PREFER_PTHREAD) -include(FindThreads) -set(objc_LINK_FLAGS "${objc_LINK_FLAGS} ${CMAKE_THREAD_LIBS_INIT}") +find_package(Threads REQUIRED) - - add_library(objc SHARED ${libobjc_C_SRCS} ${libobjc_ASM_SRCS} ${libobjc_OBJC_SRCS} ${libobjc_CXX_SRCS}) set_target_properties(objc PROPERTIES @@ -265,6 +260,9 @@ if (BUILD_STATIC_LIBOBJC) endif () +if (CMAKE_THREAD_LIBS_INIT) + target_link_libraries(objc ${CMAKE_THREAD_LIBS_INIT}) +endif () # Explicitly link the C++ runtime and libgc if we are compiling with gc support. target_link_libraries(objc ${CXX_RUNTIME}) @@ -272,12 +270,6 @@ if (LIBGC) target_link_libraries(objc ${LIBGC}) endif () -# Link libdispatch if available (we'll miss symbols for toydispatch otherwise) -find_library(LIBDISPATCH dispatch) -if (LIBDISPATCH) - target_link_libraries(objc ${LIBDISPATCH}) -endif () - # Make weak symbols work on OS X if (APPLE) set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS @@ -285,6 +277,11 @@ if (APPLE) set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -Wl,-undefined,dynamic_lookup") set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -Wl,-undefined,dynamic_lookup") endif () + +if (NOT CMAKE_INSTALL_LIBDIR) + set(CMAKE_INSTALL_LIBDIR lib) +endif () + # # Installation