Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions sources/libClangSharp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
include(GenerateExportHeader)

set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(SOURCES
CIndexDiagnostic.cpp
ClangSharp.cpp
Expand Down Expand Up @@ -40,16 +46,27 @@ else()
endif()

target_include_directories(ClangSharp PRIVATE ${CLANG_INCLUDE_DIRS})

set_target_properties(ClangSharp PROPERTIES
PREFIX lib
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION}
)

generate_export_header(ClangSharp
EXPORT_MACRO_NAME "CLANGSHARP_LINKAGE"
EXPORT_FILE_NAME ClangSharp_export.h
)

set_property(TARGET ClangSharp APPEND PROPERTY
PUBLIC_HEADER ClangSharp.h "${CMAKE_CURRENT_BINARY_DIR}/ClangSharp_export.h"
)

include(GNUInstallDirs)

install(TARGETS ClangSharp
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT development
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT development
)
18 changes: 4 additions & 14 deletions sources/libClangSharp/ClangSharp.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,12 @@
#include <clang/AST/StmtObjC.h>
#include <clang/AST/VTableBuilder.h>
#include <clang/Basic/Specifiers.h>
#include <clang-c/ExternC.h>
#include <clang-c/Index.h>

#pragma warning(pop)

#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C
#endif

#ifdef _MSC_VER
// We always export functions on Windows as this library
// isn't meant to be consumed by other native code
#define CLANGSHARP_LINKAGE EXTERN_C __declspec(dllexport)
#else
// Not necessary outside MSVC
#define CLANGSHARP_LINKAGE EXTERN_C
#endif
#include "ClangSharp_export.h"

enum CX_AtomicOperatorKind {
CX_AO_Invalid,
Expand Down Expand Up @@ -220,6 +208,7 @@ struct CX_TemplateName {
CXTranslationUnit tu;
};

LLVM_CLANG_C_EXTERN_C_BEGIN
CLANGSHARP_LINKAGE CXCursor clangsharp_Cursor_getArgument(CXCursor C, unsigned i);

CLANGSHARP_LINKAGE CXType clangsharp_Cursor_getArgumentType(CXCursor C);
Expand Down Expand Up @@ -839,5 +828,6 @@ CLANGSHARP_LINKAGE CX_TypeClass clangsharp_Type_getTypeClass(CXType CT);
CLANGSHARP_LINKAGE CXCursor clangsharp_Type_getUnderlyingExpr(CXType CT);

CLANGSHARP_LINKAGE CXType clangsharp_Type_getUnderlyingType(CXType CT);
LLVM_CLANG_C_EXTERN_C_END

#endif