From b2a162e63bd735742fa22ed8d2465095db386bad Mon Sep 17 00:00:00 2001 From: Pavel Labath Date: Tue, 18 Jan 2022 16:15:10 +0100 Subject: [PATCH] [lldb] Remove the requirement for windows clients to specify -DIMPORT_LIBLLDB This macro was being used to select the proper import/export annotations on SB classes. Non-windows clients do not have such requirements. Instead introduce a new macro (LLDB_IN_LIBLLDB), which signals that we're compiling liblldb itself (and should use dllexport). The default (no macro) is to use dllimport. I've moved the macro definition to SBDefines.h, since it only makes sense when building the API library. Differential Revision: https://reviews.llvm.org/D117564 --- lldb/include/lldb/API/SBDefines.h | 10 ++++++++++ lldb/include/lldb/lldb-defines.h | 12 ------------ lldb/source/API/CMakeLists.txt | 5 +---- lldb/tools/driver/CMakeLists.txt | 4 ---- lldb/tools/lldb-vscode/CMakeLists.txt | 1 - 5 files changed, 11 insertions(+), 21 deletions(-) diff --git a/lldb/include/lldb/API/SBDefines.h b/lldb/include/lldb/API/SBDefines.h index 3ab10ad..d0ee093 100644 --- a/lldb/include/lldb/API/SBDefines.h +++ b/lldb/include/lldb/API/SBDefines.h @@ -15,6 +15,16 @@ #include "lldb/lldb-types.h" #include "lldb/lldb-versioning.h" +#if defined(_WIN32) +#if defined(LLDB_IN_LIBLLDB) +#define LLDB_API __declspec(dllexport) +#else +#define LLDB_API __declspec(dllimport) +#endif +#else // defined (_WIN32) +#define LLDB_API +#endif + // Forward Declarations namespace lldb { diff --git a/lldb/include/lldb/lldb-defines.h b/lldb/include/lldb/lldb-defines.h index 4bf01c3..339071b 100644 --- a/lldb/include/lldb/lldb-defines.h +++ b/lldb/include/lldb/lldb-defines.h @@ -11,18 +11,6 @@ #include "lldb/lldb-types.h" -#if defined(_WIN32) -#if defined(EXPORT_LIBLLDB) -#define LLDB_API __declspec(dllexport) -#elif defined(IMPORT_LIBLLDB) -#define LLDB_API __declspec(dllimport) -#else -#define LLDB_API -#endif -#else // defined (_WIN32) -#define LLDB_API -#endif - #if !defined(INT32_MAX) #define INT32_MAX 2147483647 #endif diff --git a/lldb/source/API/CMakeLists.txt b/lldb/source/API/CMakeLists.txt index e75cce3..46307b4 100644 --- a/lldb/source/API/CMakeLists.txt +++ b/lldb/source/API/CMakeLists.txt @@ -1,7 +1,3 @@ -if ( CMAKE_SYSTEM_NAME MATCHES "Windows" ) - add_definitions( -DEXPORT_LIBLLDB ) -endif() - get_property(LLDB_ALL_PLUGINS GLOBAL PROPERTY LLDB_PLUGINS) if(LLDB_BUILD_FRAMEWORK) @@ -165,6 +161,7 @@ set_target_properties(liblldb VERSION ${LLDB_VERSION} ) +target_compile_definitions(liblldb PRIVATE LLDB_IN_LIBLLDB) if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows") if (NOT LLDB_EXPORT_ALL_SYMBOLS) # If we're not exporting all symbols, we'll want to explicitly set diff --git a/lldb/tools/driver/CMakeLists.txt b/lldb/tools/driver/CMakeLists.txt index c31863b..c93cd17 100644 --- a/lldb/tools/driver/CMakeLists.txt +++ b/lldb/tools/driver/CMakeLists.txt @@ -23,10 +23,6 @@ add_lldb_tool(lldb Support ) -if ( CMAKE_SYSTEM_NAME MATCHES "Windows" ) - add_definitions( -DIMPORT_LIBLLDB ) -endif() - add_dependencies(lldb LLDBOptionsTableGen ${tablegen_deps} diff --git a/lldb/tools/lldb-vscode/CMakeLists.txt b/lldb/tools/lldb-vscode/CMakeLists.txt index 4745d50..b68a4f3 100644 --- a/lldb/tools/lldb-vscode/CMakeLists.txt +++ b/lldb/tools/lldb-vscode/CMakeLists.txt @@ -1,5 +1,4 @@ if ( CMAKE_SYSTEM_NAME MATCHES "Windows" OR CMAKE_SYSTEM_NAME MATCHES "NetBSD" ) - add_definitions( -DIMPORT_LIBLLDB ) list(APPEND extra_libs lldbHost) endif () -- 2.7.4