[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.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@171316 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0f7941c..663467e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -40,6 +40,9 @@
 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 @@
   )
 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 @@
       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 @@
     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 ()