fix(lib): allow hiding symbols

This commit is contained in:
ObserverOfTime 2024-03-14 11:01:11 +02:00 committed by Amaan Qureshi
parent 4b12eab927
commit 4bbaee2f56
3 changed files with 8 additions and 2 deletions

View file

@ -1341,7 +1341,9 @@ impl Generator {
add_line!(self, "");
}
add_line!(self, "#ifdef _WIN32");
add_line!(self, "#ifdef TREE_SITTER_HIDE_SYMBOLS");
add_line!(self, "#define TS_PUBLIC");
add_line!(self, "#elif defined(_WIN32)");
add_line!(self, "#define TS_PUBLIC __declspec(dllexport)");
add_line!(self, "#else");
add_line!(

View file

@ -1,9 +1,11 @@
#ifndef TREE_SITTER_API_H_
#define TREE_SITTER_API_H_
#ifndef TREE_SITTER_HIDE_SYMBOLS
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC visibility push(default)
#endif
#endif
#ifdef __cplusplus
extern "C" {
@ -1255,8 +1257,10 @@ void ts_set_allocator(
}
#endif
#ifndef TREE_SITTER_HIDE_SYMBOLS
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC visibility pop
#endif
#endif
#endif // TREE_SITTER_API_H_

View file

@ -9,7 +9,7 @@ extern "C" {
#include <stdio.h>
#include <stdlib.h>
#ifdef _WIN32
#if defined(TREE_SITTER_HIDDEN_SYMBOLS) || defined(_WIN32)
#define TS_PUBLIC
#else
#define TS_PUBLIC __attribute__((visibility("default")))