================ @@ -230,11 +230,22 @@ else() endif() set(LIBCXX_SUPPORTED_ABI_LIBRARIES none libcxxabi system-libcxxabi libcxxrt libstdc++ libsupc++ vcruntime) -set(LIBCXX_CXX_ABI "${LIBCXX_DEFAULT_ABI_LIBRARY}" CACHE STRING "Specify C++ ABI library to use. Supported values are ${LIBCXX_SUPPORTED_ABI_LIBRARIES}.") -if (NOT "${LIBCXX_CXX_ABI}" IN_LIST LIBCXX_SUPPORTED_ABI_LIBRARIES) - message(FATAL_ERROR "Unsupported C++ ABI library: '${LIBCXX_CXX_ABI}'. Supported values are ${LIBCXX_SUPPORTED_ABI_LIBRARIES}.") -endif() - +set(LIBCXX_CXX_ABI "${LIBCXX_DEFAULT_ABI_LIBRARY}" CACHE STRING + "Specify the C++ ABI library to use for the shared and the static libc++ libraries. Supported values are ${LIBCXX_SUPPORTED_ABI_LIBRARIES}. + This CMake option also supports \"consumption specifiers\", which specify how the selected ABI library should be consumed by + libc++. The supported specifiers are: + - `shared`: The selected ABI library should be used as a shared library. + - `static`: The selected ABI library should be used as a static library. + - `merged`: The selected ABI library should be a static library whose object files will be merged directly into the produced libc++ library. + + A consumption specifier is provided by appending it to the name of the library, such as `LIBCXX_CXX_ABI=merged-libcxxabi`. + If no consumption specifier is provided, the libc++ shared library will default to using a shared ABI library, and the + libc++ static library will default to using a static ABI library.") +set(LIBCXX_ABILIB_FOR_SHARED "${LIBCXX_CXX_ABI}" CACHE STRING "C++ ABI library to use for the shared libc++ library.") +set(LIBCXX_ABILIB_FOR_STATIC "${LIBCXX_CXX_ABI}" CACHE STRING "C++ ABI library to use for the static libc++ library.") ---------------- petrhosek wrote:
I agree about `LIBCXX_CXX_ABI` being confusing and if you plan to follow up with renaming `LIBCXX_CXX_ABI` to `LIBCXX_ABILIB` then I think the chosen naming scheme makes sense. https://github.com/llvm/llvm-project/pull/112978 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits