summaryrefslogtreecommitdiffstats
path: root/libcxx/CMakeLists.txt
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2012-12-31 19:34:21 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2012-12-31 19:34:21 +0000
commitbb8cfd0fec3dcd4be6134350ac1da052473266fe (patch)
treecae32e77ecc2fde23789c62f9e6ea9b573b4929a /libcxx/CMakeLists.txt
parentc48bbe71704606b5c56bbb6cec154c24a4fa051d (diff)
downloadbcm5719-llvm-bb8cfd0fec3dcd4be6134350ac1da052473266fe.tar.gz
bcm5719-llvm-bb8cfd0fec3dcd4be6134350ac1da052473266fe.zip
[CMake] Fix c++ abi library configuration on Linux.
You can now configure from the command line using: -DLIBCXX_CXX_ABI=libsupc++ -DLIBCXX_LIBSUPCXX_INCLUDE_PATHS="path;path Also documents how to build on Linux. llvm-svn: 171316
Diffstat (limited to 'libcxx/CMakeLists.txt')
-rw-r--r--libcxx/CMakeLists.txt15
1 files changed, 11 insertions, 4 deletions
diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index 0f7941c4884..663467e7867 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -40,6 +40,9 @@ option(LIBCXX_ENABLE_CXX0X "Enable -std=c++0x and use of c++0x language features
option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)
set(CXXABIS none libcxxabi libcxxrt libsupc++)
+if (NOT DEFINED LIBCXX_CXX_ABI)
+ set(LIBCXX_CXX_ABI "none")
+endif()
set(LIBCXX_CXX_ABI "${LIBCXX_CXX_ABI}" CACHE STRING
"Specify C++ ABI library to use." FORCE)
set_property(CACHE LIBCXX_CXX_ABI PROPERTY STRINGS "";${CXXABIS})
@@ -63,9 +66,10 @@ get_target_triple(LIBCXX_TARGET_TRIPLE
)
set(LIBCXX_TARGET_TRIPLE ${LIBCXX_TARGET_TRIPLE} CACHE STRING "Target triple.")
-if (${LIBCXX_CXX_ABI} STREQUAL "libsupc++")
- set(LIBCXX_LIBSUPCXX_INCLUDE_PATHS "" CACHE STRINGS
- "Paths to libsupc++ include directories. Separate by system separator")
+if ("${LIBCXX_CXX_ABI}" STREQUAL "libsupc++")
+ set(LIBCXX_LIBSUPCXX_INCLUDE_PATHS "${LIBCXX_LIBSUPCXX_INCLUDE_PATHS}"
+ CACHE STRINGS
+ "Paths to libsupc++ include directories separate by ';'.")
set(LIBCXX_CXX_ABI_LIBRARIES stdc++)
set(LIBCXX_LIBSUPCXX_FILES
cxxabi.h
@@ -75,6 +79,9 @@ if (${LIBCXX_CXX_ABI} STREQUAL "libsupc++")
bits/cxxabi_tweaks.h
bits/cxxabi_forced.h
)
+ # Create include directories.
+ file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/include")
+ file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/include/bits")
set(LIBCXX_LIBSUPCXX_FILE_PATHS)
foreach(path ${LIBCXX_LIBSUPCXX_FILES})
set(found FALSE)
@@ -106,7 +113,7 @@ if (${LIBCXX_CXX_ABI} STREQUAL "libsupc++")
FILES_MATCHING
PATTERN "*"
)
-elseif (${LIBCXX_CXX_ABI} NOT STREQUAL "none")
+elseif (NOT "${LIBCXX_CXX_ABI}" STREQUAL "none")
message(FATAL_ERROR
"Currently only none and libsupc++ are supported for c++ abi.")
endif ()
OpenPOWER on IntegriCloud