[Lldb-commits] [lldb] b2a162e - [lldb] Remove the requirement for windows clients to specify -DIMPORT_LIBLLDB
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Wed Jan 19 03:50:07 PST 2022
Author: Pavel Labath
Date: 2022-01-19T12:49:47+01:00
New Revision: b2a162e63bd735742fa22ed8d2465095db386bad
URL: https://github.com/llvm/llvm-project/commit/b2a162e63bd735742fa22ed8d2465095db386bad
DIFF: https://github.com/llvm/llvm-project/commit/b2a162e63bd735742fa22ed8d2465095db386bad.diff
LOG: [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
Added:
Modified:
lldb/include/lldb/API/SBDefines.h
lldb/include/lldb/lldb-defines.h
lldb/source/API/CMakeLists.txt
lldb/tools/driver/CMakeLists.txt
lldb/tools/lldb-vscode/CMakeLists.txt
Removed:
################################################################################
diff --git a/lldb/include/lldb/API/SBDefines.h b/lldb/include/lldb/API/SBDefines.h
index 3ab10ad8e0619..d0ee09368d029 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 4bf01c3f86c61..339071bbfc318 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 e75cce3ecb070..46307b487a547 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 c31863b205caa..c93cd171b92b4 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 4745d50bb2739..b68a4f3f67ab9 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 ()
More information about the lldb-commits
mailing list