blob: 9fd731d001370df4feca5964960fdbd75eb92d8c [file] [log] [blame]
Michael J. Spencer09476212010-09-13 23:54:41 +00001set(LLVM_USED_LIBS
Argyrios Kyrtzidis7fbd97f2011-07-09 20:00:58 +00002 clangARCMigrate
Michael J. Spencer09476212010-09-13 23:54:41 +00003 clangFrontend
4 clangDriver
5 clangSerialization
6 clangIndex
7 clangSema
8 clangAST
9 clangLex
10 clangBasic)
11
12set( LLVM_LINK_COMPONENTS
Peter Collingbourne8f5cf742011-02-19 23:03:58 +000013 support
Michael J. Spencer09476212010-09-13 23:54:41 +000014 mc
Michael J. Spencer09476212010-09-13 23:54:41 +000015 )
16
Oscar Fuentes72216102011-03-13 15:10:24 +000017set(SOURCES
Argyrios Kyrtzidis7fbd97f2011-07-09 20:00:58 +000018 ARCMigrate.cpp
Ted Kremenek0ec2cca2010-01-05 19:32:54 +000019 CIndex.cpp
Ted Kremenekae9e2212010-08-27 21:34:58 +000020 CIndexCXX.cpp
Ted Kremenek9cd9f6d2010-01-05 22:06:45 +000021 CIndexCodeCompletion.cpp
Douglas Gregor4f9c3762010-01-28 00:27:43 +000022 CIndexDiagnostic.cpp
Ted Kremenek0b86e3a2010-01-26 19:31:51 +000023 CIndexInclusionStack.cpp
Ted Kremenek9cd9f6d2010-01-05 22:06:45 +000024 CIndexUSRs.cpp
Ted Kremenek0ec2cca2010-01-05 19:32:54 +000025 CIndexer.cpp
Ted Kremenek87553c42010-01-15 20:35:54 +000026 CXCursor.cpp
Ted Kremenek4b4f3692010-11-16 01:56:27 +000027 CXString.cpp
Ted Kremeneka5940822010-08-26 01:42:22 +000028 CXType.cpp
Douglas Gregor4db30232010-02-18 04:01:41 +000029 ../../include/clang-c/Index.h
Argyrios Kyrtzidis7fbd97f2011-07-09 20:00:58 +000030 ../../include/clang-c/ARCMigrate.h
Oscar Fuentes72216102011-03-13 15:10:24 +000031 )
Douglas Gregor43bc1a72009-09-25 06:35:15 +000032
Oscar Fuentes72216102011-03-13 15:10:24 +000033if( LLVM_ENABLE_PIC )
34 set(SHARED_LIBRARY TRUE)
35 add_clang_library(libclang ${SOURCES})
Douglas Gregorb1cf1ca2010-08-02 20:52:32 +000036
Daniel Dunbard5a2a072010-04-30 21:51:10 +000037 set_target_properties(libclang
Douglas Gregor43bc1a72009-09-25 06:35:15 +000038 PROPERTIES
Oscar Fuentes87eb5152011-04-10 02:29:27 +000039 OUTPUT_NAME "libclang"
Oscar Fuentes72216102011-03-13 15:10:24 +000040 VERSION ${LIBCLANG_LIBRARY_VERSION}
41 DEFINE_SYMBOL _CINDEX_LIB_)
42
43 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
Oscar Fuentesa29f7b22011-03-14 14:32:16 +000044 set(LIBCLANG_LINK_FLAGS
45 "-Wl,-compatibility_version -Wl,1 -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000")
Oscar Fuentes72216102011-03-13 15:10:24 +000046 set_target_properties(libclang
47 PROPERTIES
48 LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
49 INSTALL_NAME_DIR "@executable_path/../lib")
50 endif()
51
52 if(MSVC)
53 # windows.h doesn't compile with /Za
54 get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS)
55 string(REPLACE "/Za" "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
56 set_target_properties(libclang PROPERTIES
57 COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
58 endif()
59
60 set(LIBCLANG_STATIC_TARGET_NAME libclang_static)
61else()
62 set(LIBCLANG_STATIC_TARGET_NAME libclang)
Douglas Gregor43bc1a72009-09-25 06:35:15 +000063endif()
Douglas Gregor629f4812009-10-05 22:25:29 +000064
Oscar Fuentes72216102011-03-13 15:10:24 +000065if( NOT BUILD_SHARED_LIBS AND NOT WIN32 )
66 add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
Douglas Gregorbe8705b2011-02-25 19:24:02 +000067
Oscar Fuentes72216102011-03-13 15:10:24 +000068 set_target_properties(${LIBCLANG_STATIC_TARGET_NAME}
69 PROPERTIES
Oscar Fuentes87eb5152011-04-10 02:29:27 +000070 OUTPUT_NAME "libclang")
Oscar Fuentes72216102011-03-13 15:10:24 +000071endif()