Skip to content

Commit a31e0ce

Browse files
committed
Fix defining the macro in cmake to control c++ symbol visibility for libclang on windows
1 parent d552f0c commit a31e0ce

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

clang/tools/libclang/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,11 @@ if(ENABLE_SHARED)
166166
set_target_properties(libclang
167167
PROPERTIES
168168
VERSION ${LIBCLANG_LIBRARY_VERSION}
169-
DEFINE_SYMBOL _CINDEX_LIB_ DEFINE_SYMBOL CLANG_EXPORTS)
169+
DEFINE_SYMBOL _CINDEX_LIB_)
170+
# Avoid declaring clang c++ symbols that are statically linked into libclang as dllimport'ed.
171+
# If llvm/libclang-cpp dll is also being built for windows clang c++ symbols will still be
172+
# implicitly be exported from libclang.
173+
target_compile_definitions(libclang PRIVATE CLANG_BUILD_STATIC)
170174
elseif(APPLE)
171175
set(LIBCLANG_LINK_FLAGS " -Wl,-compatibility_version -Wl,1")
172176
set(LIBCLANG_LINK_FLAGS "${LIBCLANG_LINK_FLAGS} -Wl,-current_version -Wl,${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}")

0 commit comments

Comments
 (0)