Add Darwin dylib versioning support to libclang when build with CMake.

llvm-svn: 110062
This commit is contained in:
Douglas Gregor 2010-08-02 20:52:32 +00:00
parent d9a30af25b
commit b1cf1ca19a
1 changed files with 13 additions and 8 deletions

View File

@ -31,17 +31,22 @@ add_clang_library(libclang
)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# FIXME: Deal with LLVM_SUBMIT_VERSION?
# dylib versioning information
# FIXME: Is there a more CMake-ish way to handle this?
set(LIBCLANG_VERSION 1
CACHE STRING "Version number of the libclang library")
set(LIBCLANG_SUBVERSION 0
CACHE STRING "Minor version number of the libclang library")
set(LIBCLANG_LINK_FLAGS
"-Wl,-current_version -Wl,${LIBCLANG_VERSION}.${LIBCLANG_SUBVERSION} -Wl,-compatibility_version -Wl,1")
set(LIBCLANG_LINK_FLAGS
"${LIBCLANG_LINK_FLAGS} -avoid-version -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000")
# FIXME: This uses a special darwin-specific exports file in order to
# get underscore-prefixed names. It would be better to have build rules
# which know how to produce a darwin-suitable exports file from the
# regular exports file.
set_target_properties(libclang
PROPERTIES
LINK_FLAGS "-avoid-version -Wl,-exported_symbols_list -Wl,${CMAKE_CURRENT_SOURCE_DIR}/libclang.darwin.exports -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000"
INSTALL_NAME_DIR "@executable_path/../lib"
)
LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
INSTALL_NAME_DIR "@executable_path/../lib")
endif()
if(MSVC)