summaryrefslogtreecommitdiffstats
path: root/libcxx
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2014-12-29 12:15:47 +0000
committerChandler Carruth <chandlerc@gmail.com>2014-12-29 12:15:47 +0000
commit64be05a87321216adf9cf34ac1dad8670af54870 (patch)
tree238526232fc186aec540c75ed1eb730bcfbdb4ea /libcxx
parent24e9773fc5b5955f8b010db357fee096432dc367 (diff)
downloadbcm5719-llvm-64be05a87321216adf9cf34ac1dad8670af54870.tar.gz
bcm5719-llvm-64be05a87321216adf9cf34ac1dad8670af54870.zip
[cmake/multilib] Teach libc++'s CMake build to support multilib libdir
suffixes like 'lib64' or 'lib32'. This support is currently very rhudimentary. We define a variable LIBCXX_LIBDIR_SUFFIX. In a standalone build of libc++ this can be directly set as a cached variable to control the multilib suffix used. When building libc++ within a larger LLVM build, it is hard wired to whatever LLVM libdir suffix has been selected. If this doesn't work for someone, just let me know. I'm happy to change it. This is essentially new functionality for libc++ so I don't expect it to have any impact for folks until they start setting these variables. However, I know libc++ is built in a diverse set of environments so just let me know if this causes you any problems. llvm-svn: 224926
Diffstat (limited to 'libcxx')
-rw-r--r--libcxx/CMakeLists.txt11
-rw-r--r--libcxx/lib/CMakeLists.txt4
2 files changed, 11 insertions, 4 deletions
diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index 6995011910e..99a4a33f5f3 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -27,7 +27,15 @@ MACRO_ENSURE_OUT_OF_SOURCE_BUILD(
)
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+ set(LIBCXX_LIBDIR_SUFFIX "" CACHE STRING
+ "Define suffix of library directory name (32/64)")
+
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
+ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
+
set(LIBCXX_BUILT_STANDALONE 1)
+else()
+ set(LIBCXX_LIBDIR_SUFFIX ${LLVM_LIBDIR_SUFFIX})
endif()
#===============================================================================
@@ -90,11 +98,10 @@ get_target_triple(LIBCXX_TARGET_TRIPLE
)
set(LIBCXX_TARGET_TRIPLE ${LIBCXX_TARGET_TRIPLE} CACHE STRING "Target triple.")
-
set(LIBCXX_COMPILER ${CMAKE_CXX_COMPILER})
set(LIBCXX_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(LIBCXX_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
-set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib)
+set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
# Declare libc++ configuration variables.
# They are intended for use as follows:
diff --git a/libcxx/lib/CMakeLists.txt b/libcxx/lib/CMakeLists.txt
index 12e9f4ad643..02c80d9d4e9 100644
--- a/libcxx/lib/CMakeLists.txt
+++ b/libcxx/lib/CMakeLists.txt
@@ -104,6 +104,6 @@ set_target_properties(cxx
)
install(TARGETS cxx
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+ LIBRARY DESTINATION lib${LIBCXX_LIBDIR_SUFFIX}
+ ARCHIVE DESTINATION lib${LIBCXX_LIBDIR_SUFFIX}
)
OpenPOWER on IntegriCloud