blob: d8065cdcfe976fd09e71070f178b967e264a0c20 [file] [log] [blame]
Michael J. Spencerf5799be2010-12-10 19:47:54 +00001# Get sources
2file(GLOB_RECURSE sources ../src/*.cpp)
3
4# Add all the headers to the project for IDEs.
5if (MSVC_IDE OR XCODE)
6 file(GLOB_RECURSE headers ../include/*)
7 # Force them all into the headers dir on MSVC, otherwise they end up at
8 # project scope because they don't have extensions.
9 if (MSVC_IDE)
10 source_group("Header Files" FILES ${headers})
11 endif()
12endif()
13
14if (LIBCXX_ENABLE_SHARED)
15 add_library(cxx SHARED
16 ${sources}
17 ${headers}
18 )
19else()
20 add_library(cxx STATIC
21 ${sources}
22 ${headers}
23 )
24endif()
25
26# Generate library list.
27append_if(libraries LIBCXX_HAS_PTHREAD_LIB pthread)
28append_if(libraries LIBCXX_HAS_C_LIB c)
29append_if(libraries LIBCXX_HAS_M_LIB m)
Howard Hinnantcf762002011-05-24 12:54:00 +000030append_if(libraries LIBCXX_HAS_RT_LIB rt)
Michael J. Spencerf5799be2010-12-10 19:47:54 +000031append_if(libraries LIBCXX_HAS_GCC_S_LIB gcc_s)
32
33target_link_libraries(cxx ${libraries})
34
35# Setup flags.
36append_if(compile_flags LIBCXX_HAS_FPIC_FLAG -fPIC)
37append_if(link_flags LIBCXX_HAS_NODEFAULTLIBS_FLAG -nodefaultlibs)
38
39set_target_properties(cxx
40 PROPERTIES
41 COMPILE_FLAGS "${compile_flags}"
42 LINK_FLAGS "${link_flags}"
43 OUTPUT_NAME "c++"
44 VERSION "1.0"
45 SOVERSION "1"
46 )
47
48install(TARGETS cxx
49 LIBRARY DESTINATION lib
50 ARCHIVE DESTINATION lib
51 )
52
53install(DIRECTORY ../include/
54 DESTINATION include/c++/v1
55 FILES_MATCHING
Howard Hinnant3145a942011-03-03 01:59:23 +000056 PATTERN "*"
Howard Hinnant01533ed2011-03-02 17:29:46 +000057 PATTERN ".svn" EXCLUDE
Michael J. Spencerf5799be2010-12-10 19:47:54 +000058 )