[libcxx-commits] [libcxx] 6de59ca - [libc++] Introduce LIBCXX_LIBRARY_VERSION

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Tue May 17 05:36:30 PDT 2022


Author: Louis Dionne
Date: 2022-05-17T08:36:19-04:00
New Revision: 6de59ca417b491c5ca2ab189aaae83e62369695a

URL: https://github.com/llvm/llvm-project/commit/6de59ca417b491c5ca2ab189aaae83e62369695a
DIFF: https://github.com/llvm/llvm-project/commit/6de59ca417b491c5ca2ab189aaae83e62369695a.diff

LOG: [libc++] Introduce LIBCXX_LIBRARY_VERSION

This allows controlling the current_version linker property on Apple
platforms.

Differential Revision: https://reviews.llvm.org/D125686

Added: 
    

Modified: 
    libcxx/CMakeLists.txt
    libcxx/src/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index 1202a627f2a35..2b2c42cf8ff6e 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -177,7 +177,14 @@ if (LIBCXX_ABI_UNSTABLE)
 else()
   set(abi_version "1")
 endif()
-set(LIBCXX_ABI_VERSION "${abi_version}" CACHE STRING "ABI version of libc++. Can be either 1 or 2, where 2 is currently the unstable ABI. Defaults to 1 unless LIBCXX_ABI_UNSTABLE is specified, in which case this is 2.")
+set(LIBCXX_ABI_VERSION "${abi_version}" CACHE STRING
+  "ABI version of libc++. Can be either 1 or 2, where 2 is currently the unstable ABI.
+   Defaults to 1 unless LIBCXX_ABI_UNSTABLE is specified, in which case this is 2.")
+set(LIBCXX_LIBRARY_VERSION "${LIBCXX_ABI_VERSION}.0" CACHE STRING
+  "Version of libc++. This will be reflected in the name of the shared library produced.
+   For example, -DLIBCXX_LIBRARY_VERSION=x.y will result in the library being named
+   libc++.x.y.dylib, along with the usual symlinks pointing to that. On Apple platforms,
+   this also controls the linker's 'current_version' property.")
 set(LIBCXX_ABI_NAMESPACE "__${LIBCXX_ABI_VERSION}" CACHE STRING "The inline ABI namespace used by libc++. It defaults to __n where `n` is the current ABI version.")
 if (NOT LIBCXX_ABI_NAMESPACE MATCHES "__.*")
   message(FATAL_ERROR "LIBCXX_ABI_NAMESPACE must be a reserved identifier.")

diff  --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
index 25aa4450e1e7e..962f6f54e28f2 100644
--- a/libcxx/src/CMakeLists.txt
+++ b/libcxx/src/CMakeLists.txt
@@ -211,7 +211,7 @@ if (LIBCXX_ENABLE_SHARED)
       COMPILE_FLAGS "${LIBCXX_COMPILE_FLAGS}"
       LINK_FLAGS    "${LIBCXX_LINK_FLAGS}"
       OUTPUT_NAME   "c++"
-      VERSION       "${LIBCXX_ABI_VERSION}.0"
+      VERSION       "${LIBCXX_LIBRARY_VERSION}"
       SOVERSION     "${LIBCXX_ABI_VERSION}"
       DEFINE_SYMBOL ""
   )


        


More information about the libcxx-commits mailing list