forked from OSchip/llvm-project
122 lines
2.4 KiB
CMake
122 lines
2.4 KiB
CMake
set(SOURCES
|
|
ARCMigrate.cpp
|
|
BuildSystem.cpp
|
|
CIndex.cpp
|
|
CIndexCXX.cpp
|
|
CIndexCodeCompletion.cpp
|
|
CIndexDiagnostic.cpp
|
|
CIndexHigh.cpp
|
|
CIndexInclusionStack.cpp
|
|
CIndexUSRs.cpp
|
|
CIndexer.cpp
|
|
CXComment.cpp
|
|
CXCursor.cpp
|
|
CXCompilationDatabase.cpp
|
|
CXLoadedDiagnostic.cpp
|
|
CXSourceLocation.cpp
|
|
CXStoredDiagnostic.cpp
|
|
CXString.cpp
|
|
CXType.cpp
|
|
IndexBody.cpp
|
|
IndexDecl.cpp
|
|
IndexTypeSourceInfo.cpp
|
|
Indexing.cpp
|
|
IndexingContext.cpp
|
|
|
|
ADDITIONAL_HEADERS
|
|
CIndexDiagnostic.h
|
|
CIndexer.h
|
|
CXCursor.h
|
|
CXLoadedDiagnostic.h
|
|
CXSourceLocation.h
|
|
CXString.h
|
|
CXTranslationUnit.h
|
|
CXType.h
|
|
Index_Internal.h
|
|
IndexingContext.h
|
|
../../include/clang-c/Index.h
|
|
)
|
|
|
|
set(LIBS
|
|
clangAST
|
|
clangBasic
|
|
clangFrontend
|
|
clangIndex
|
|
clangLex
|
|
clangSema
|
|
clangTooling
|
|
)
|
|
|
|
if (CLANG_ENABLE_ARCMT)
|
|
list(APPEND LIBS clangARCMigrate)
|
|
endif ()
|
|
|
|
find_library(DL_LIBRARY_PATH dl)
|
|
if (DL_LIBRARY_PATH)
|
|
list(APPEND LIBS dl)
|
|
endif()
|
|
|
|
option(LIBCLANG_BUILD_STATIC
|
|
"Build libclang as a static library (in addition to a shared one)" OFF)
|
|
|
|
set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libclang.exports)
|
|
|
|
if(MSVC)
|
|
# Avoid LNK4197 not to spceify libclang.def here.
|
|
# Each functions is exported as "dllexport" in include/clang-c.
|
|
# KB835326
|
|
set(LLVM_EXPORTED_SYMBOL_FILE)
|
|
endif()
|
|
|
|
if( LLVM_ENABLE_PIC )
|
|
set(ENABLE_SHARED SHARED)
|
|
endif()
|
|
|
|
if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32)
|
|
set(ENABLE_STATIC STATIC)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
set(output_name "libclang")
|
|
else()
|
|
set(output_name "clang")
|
|
endif()
|
|
|
|
add_clang_library(libclang ${ENABLE_SHARED} ${ENABLE_STATIC}
|
|
OUTPUT_NAME ${output_name}
|
|
${SOURCES}
|
|
DEPENDS clang-headers
|
|
|
|
LINK_LIBS
|
|
${LIBS}
|
|
|
|
LINK_COMPONENTS
|
|
Core
|
|
Support
|
|
)
|
|
|
|
if(ENABLE_SHARED)
|
|
if(WIN32)
|
|
set_target_properties(libclang
|
|
PROPERTIES
|
|
VERSION ${LIBCLANG_LIBRARY_VERSION}
|
|
DEFINE_SYMBOL _CINDEX_LIB_)
|
|
else()
|
|
set_target_properties(libclang
|
|
PROPERTIES
|
|
VERSION ${LIBCLANG_LIBRARY_VERSION}
|
|
DEFINE_SYMBOL _CINDEX_LIB_)
|
|
endif()
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
set(LIBCLANG_LINK_FLAGS " -Wl,-compatibility_version -Wl,1")
|
|
if (DEFINED ${LLVM_SUBMIT_VERSION})
|
|
set(LIBCLANG_LINK_FLAGS
|
|
"${LIBCLANG_LINK_FLAGS} -Wl,-current_version -Wl,${LLVM_SUBMIT_VERSION}.${LLVM_SUBMIT_SUBVERSION}")
|
|
endif()
|
|
|
|
set_property(TARGET libclang APPEND_STRING PROPERTY
|
|
LINK_FLAGS ${LIBCLANG_LINK_FLAGS})
|
|
endif()
|
|
endif()
|