CMakeLists.txt revision 8435bf93757b5fe1b11ac8a3149d18649a6f4086
1ec8605f1d7ec846dbf51047bfd5c56d32d1ff91cArgyrios Kyrtzidisset(SHARED_LIBRARY TRUE)
29fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
39fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisset(LLVM_USED_LIBS
49fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  clangFrontend
59fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  clangDriver
69fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  clangSerialization
79fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  clangIndex
89fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  clangSema
99fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  clangAST
10ec8605f1d7ec846dbf51047bfd5c56d32d1ff91cArgyrios Kyrtzidis  clangLex
119fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  clangBasic)
129fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
139fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisset( LLVM_LINK_COMPONENTS
14ec8605f1d7ec846dbf51047bfd5c56d32d1ff91cArgyrios Kyrtzidis  support
15ec8605f1d7ec846dbf51047bfd5c56d32d1ff91cArgyrios Kyrtzidis  mc
169fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  )
17ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek
189fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisadd_clang_library(libclang
19b3d74da3e1620c9a7a378afb5f244e4987e6713eArgyrios Kyrtzidis  CIndex.cpp
209fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  CIndexCXX.cpp
219fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  CIndexCodeCompletion.cpp
229fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  CIndexDiagnostic.cpp
239fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  CIndexInclusionStack.cpp
249fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  CIndexUSRs.cpp
259fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  CIndexer.cpp
269fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  CXCursor.cpp
279fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  CXString.cpp
289fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  CXType.cpp
299fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  ../../include/clang-c/Index.h
309fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis)
319fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
329fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
339fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  # Darwin-specific linker flags
349fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
359fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  set(LIBCLANG_LINK_FLAGS "-Wl,-compatibility_version -Wl,1")
369fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis                        
379fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  set(LIBCLANG_LINK_FLAGS 
389fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis      "${LIBCLANG_LINK_FLAGS} -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000")
399fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
409fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  set_target_properties(libclang
419fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    PROPERTIES
429fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
439fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    INSTALL_NAME_DIR "@executable_path/../lib")
449fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisendif()
459fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
46769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis# Versioning information
47769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidisset_target_properties(libclang PROPERTIES VERSION ${LIBCLANG_LIBRARY_VERSION})
48769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
499fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisif(MSVC)
509fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  # windows.h doesn't compile with /Za
519fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS)
529fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  string(REPLACE /Za "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
539fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  set_target_properties(libclang PROPERTIES COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
549fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisendif(MSVC)
559fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
569fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisset_target_properties(libclang
579fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  PROPERTIES
589fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  PREFIX ""  # Otherwise we get liblibclang.so
599fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  LINKER_LANGUAGE CXX
609fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  DEFINE_SYMBOL _CINDEX_LIB_)
619fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis