forked from OSchip/llvm-project
libclang: Add static build support for Windows
Differential Revision: https://reviews.llvm.org/D75068
This commit is contained in:
parent
67aed1469b
commit
6fb80d9383
|
@ -18,14 +18,23 @@
|
|||
|
||||
LLVM_CLANG_C_EXTERN_C_BEGIN
|
||||
|
||||
/* MSVC DLL import/export. */
|
||||
#ifdef _MSC_VER
|
||||
#ifdef _CINDEX_LIB_
|
||||
#define CINDEX_LINKAGE __declspec(dllexport)
|
||||
#else
|
||||
#define CINDEX_LINKAGE __declspec(dllimport)
|
||||
/* Windows DLL import/export. */
|
||||
#ifndef CINDEX_NO_EXPORTS
|
||||
#define CINDEX_EXPORTS
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
#ifdef CINDEX_EXPORTS
|
||||
#ifdef _CINDEX_LIB_
|
||||
#define CINDEX_LINKAGE __declspec(dllexport)
|
||||
#else
|
||||
#define CINDEX_LINKAGE __declspec(dllimport)
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
#elif defined(CINDEX_EXPORTS) && defined(__GNUC__)
|
||||
#define CINDEX_LINKAGE __attribute__((visibility("default")))
|
||||
#endif
|
||||
|
||||
#ifndef CINDEX_LINKAGE
|
||||
#define CINDEX_LINKAGE
|
||||
#endif
|
||||
|
||||
|
|
|
@ -77,14 +77,18 @@ if(MSVC)
|
|||
set(LLVM_EXPORTED_SYMBOL_FILE)
|
||||
endif()
|
||||
|
||||
if(LLVM_ENABLE_PIC OR WIN32)
|
||||
if(LLVM_ENABLE_PIC OR NOT LIBCLANG_BUILD_STATIC)
|
||||
set(ENABLE_SHARED SHARED)
|
||||
endif()
|
||||
|
||||
if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32)
|
||||
if(NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC)
|
||||
set(ENABLE_STATIC STATIC)
|
||||
endif()
|
||||
|
||||
if (WIN32 AND ENABLE_SHARED AND ENABLE_STATIC)
|
||||
unset(ENABLE_STATIC)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(output_name "libclang")
|
||||
else()
|
||||
|
@ -113,6 +117,14 @@ add_clang_library(libclang ${ENABLE_SHARED} ${ENABLE_STATIC} INSTALL_WITH_TOOLCH
|
|||
Support
|
||||
)
|
||||
|
||||
if(ENABLE_STATIC)
|
||||
foreach(name libclang obj.libclang libclang_static)
|
||||
if (TARGET ${name})
|
||||
target_compile_definitions(${name} PUBLIC CINDEX_NO_EXPORTS)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(ENABLE_SHARED)
|
||||
if(WIN32)
|
||||
set_target_properties(libclang
|
||||
|
|
Loading…
Reference in New Issue