From 8435bf93757b5fe1b11ac8a3149d18649a6f4086 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Fri, 25 Feb 2011 19:24:02 +0000 Subject: [PATCH] CMake: add version information into the clang executable and libclang shared library. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126502 91177308-0d34-0410-b5e6-96231b3b80d8 --- CMakeLists.txt | 10 ++++++++++ tools/driver/CMakeLists.txt | 3 +++ tools/libclang/CMakeLists.txt | 14 ++++++-------- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a5306fcb9a..b1ab11de72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,6 +234,16 @@ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ add_definitions( -D_GNU_SOURCE -DHAVE_CLANG_CONFIG_H ) +# Clang version information +set(CLANG_EXECUTABLE_VERSION + "${CLANG_VERSION_MAJOR}.${CLANG_VERSION_MINOR}" CACHE STRING + "Version number that will be placed into the clang executable, in the form XX.YY") +set(LIBCLANG_LIBRARY_VERSION + "${CLANG_VERSION_MAJOR}.${CLANG_VERSION_MINOR}" CACHE STRING + "Version number that will be placed into the libclang library , in the form XX.YY") +mark_as_advanced(CLANG_EXECUTABLE_VERSION LIBCLANG_LIBRARY_VERSION) + + option(CLANG_BUILD_EXAMPLES "Build CLANG example programs." OFF) if(CLANG_BUILD_EXAMPLES) add_subdirectory(examples) diff --git a/tools/driver/CMakeLists.txt b/tools/driver/CMakeLists.txt index 5694d3f5b4..552e7a5344 100644 --- a/tools/driver/CMakeLists.txt +++ b/tools/driver/CMakeLists.txt @@ -33,6 +33,8 @@ add_clang_executable(clang cc1as_main.cpp ) +set_target_properties(clang PROPERTIES VERSION ${CLANG_EXECUTABLE_VERSION}) + if(UNIX) set(CLANGXX_LINK_OR_COPY create_symlink) else() @@ -47,6 +49,7 @@ add_custom_target(clang++ ALL "${clang_pp}" DEPENDS clang) set_target_properties(clang++ PROPERTIES FOLDER "Clang executables") + set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${clang_pp}) diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt index da72f5a02d..11759eefb6 100644 --- a/tools/libclang/CMakeLists.txt +++ b/tools/libclang/CMakeLists.txt @@ -30,15 +30,10 @@ add_clang_library(libclang ) if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - # 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") + # Darwin-specific linker flags + set(LIBCLANG_LINK_FLAGS "-Wl,-compatibility_version -Wl,1") + set(LIBCLANG_LINK_FLAGS "${LIBCLANG_LINK_FLAGS} -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000") @@ -48,6 +43,9 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") INSTALL_NAME_DIR "@executable_path/../lib") endif() +# Versioning information +set_target_properties(libclang PROPERTIES VERSION ${LIBCLANG_LIBRARY_VERSION}) + if(MSVC) # windows.h doesn't compile with /Za get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS) -- 2.40.0