|  | # Get sources | 
|  | file(GLOB LIBCXX_SOURCES ../src/*.cpp) | 
|  | if(WIN32) | 
|  | file(GLOB LIBCXX_WIN32_SOURCES ../src/support/win32/*.cpp) | 
|  | list(APPEND LIBCXX_SOURCES ${LIBCXX_WIN32_SOURCES}) | 
|  | endif() | 
|  |  | 
|  | # Add all the headers to the project for IDEs. | 
|  | if (MSVC_IDE OR XCODE) | 
|  | file(GLOB_RECURSE LIBCXX_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/../include/*) | 
|  | if(WIN32) | 
|  | file( GLOB LIBCXX_WIN32_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/../include/support/win32/*.h) | 
|  | list(APPEND LIBCXX_HEADERS ${LIBCXX_WIN32_HEADERS}) | 
|  | endif() | 
|  | # Force them all into the headers dir on MSVC, otherwise they end up at | 
|  | # project scope because they don't have extensions. | 
|  | if (MSVC_IDE) | 
|  | source_group("Header Files" FILES ${LIBCXX_HEADERS}) | 
|  | endif() | 
|  | endif() | 
|  |  | 
|  | if (LIBCXX_ENABLE_SHARED) | 
|  | add_library(cxx SHARED | 
|  | ${LIBCXX_SOURCES} | 
|  | ${LIBCXX_HEADERS} | 
|  | ) | 
|  | else() | 
|  | add_library(cxx STATIC | 
|  | ${LIBCXX_SOURCES} | 
|  | ${LIBCXX_HEADERS} | 
|  | ) | 
|  | endif() | 
|  |  | 
|  | # Generate library list. | 
|  | append_if(libraries LIBCXX_HAS_PTHREAD_LIB pthread) | 
|  | append_if(libraries LIBCXX_HAS_C_LIB c) | 
|  | append_if(libraries LIBCXX_HAS_M_LIB m) | 
|  | append_if(libraries LIBCXX_HAS_RT_LIB rt) | 
|  | append_if(libraries LIBCXX_HAS_GCC_S_LIB gcc_s) | 
|  |  | 
|  | target_link_libraries(cxx ${libraries}) | 
|  |  | 
|  | # Setup flags. | 
|  | append_if(compile_flags LIBCXX_HAS_FPIC_FLAG -fPIC) | 
|  | append_if(link_flags LIBCXX_HAS_NODEFAULTLIBS_FLAG -nodefaultlibs) | 
|  |  | 
|  | set_target_properties(cxx | 
|  | PROPERTIES | 
|  | COMPILE_FLAGS "${compile_flags}" | 
|  | LINK_FLAGS    "${link_flags}" | 
|  | OUTPUT_NAME   "c++" | 
|  | VERSION       "1.0" | 
|  | SOVERSION     "1" | 
|  | ) | 
|  |  | 
|  | install(TARGETS cxx | 
|  | LIBRARY DESTINATION lib | 
|  | ARCHIVE DESTINATION lib | 
|  | ) | 
|  |  | 
|  | install(DIRECTORY ../include/ | 
|  | DESTINATION include/c++/v1 | 
|  | FILES_MATCHING | 
|  | PATTERN "*" | 
|  | PATTERN ".svn" EXCLUDE | 
|  | ) |