summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/modules/AddClang.cmake8
-rw-r--r--include/clang-c/Platform.h14
-rw-r--r--tools/libclang/CMakeLists.txt6
3 files changed, 19 insertions, 9 deletions
diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
index e657059744..de58491c63 100644
--- a/cmake/modules/AddClang.cmake
+++ b/cmake/modules/AddClang.cmake
@@ -44,7 +44,7 @@ endmacro()
macro(add_clang_library name)
cmake_parse_arguments(ARG
- "SHARED"
+ "SHARED;STATIC"
""
"ADDITIONAL_HEADERS"
${ARGN})
@@ -83,7 +83,11 @@ macro(add_clang_library name)
if(ARG_SHARED)
set(ARG_ENABLE_SHARED SHARED)
endif()
- llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS} ${srcs})
+ if(ARG_STATIC)
+ set(ARG_ENABLE_STATIC STATIC)
+ endif()
+
+ llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_ENABLE_STATIC} ${ARG_UNPARSED_ARGUMENTS} ${srcs})
if(TARGET ${name})
target_link_libraries(${name} INTERFACE ${LLVM_COMMON_LIBS})
diff --git a/include/clang-c/Platform.h b/include/clang-c/Platform.h
index e2a4dccbda..717ca6d88d 100644
--- a/include/clang-c/Platform.h
+++ b/include/clang-c/Platform.h
@@ -19,14 +19,16 @@ extern "C" {
#endif
/* MSVC DLL import/export. */
-#ifdef _MSC_VER
- #ifdef _CINDEX_LIB_
- #define CINDEX_LINKAGE __declspec(dllexport)
+#ifndef CINDEX_LINKAGE
+ #ifdef _MSC_VER
+ #ifdef _CINDEX_LIB_
+ #define CINDEX_LINKAGE __declspec(dllexport)
+ #else
+ #define CINDEX_LINKAGE __declspec(dllimport)
+ #endif
#else
- #define CINDEX_LINKAGE __declspec(dllimport)
+ #define CINDEX_LINKAGE
#endif
-#else
- #define CINDEX_LINKAGE
#endif
#ifdef __GNUC__
diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
index 2dd6703076..c21eb220c0 100644
--- a/tools/libclang/CMakeLists.txt
+++ b/tools/libclang/CMakeLists.txt
@@ -74,7 +74,7 @@ if( LLVM_ENABLE_PIC )
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()
@@ -118,6 +118,10 @@ if(ENABLE_SHARED)
endif()
endif()
+if (LIBCLANG_BUILD_STATIC)
+ add_definitions(-DCINDEX_LINKAGE=)
+endif()
+
if(INTERNAL_INSTALL_PREFIX)
set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
else()