[Lldb-commits] [lldb] r202724 - Build liblldb.dll in Windows

Deepak Panickal deepak at codeplay.com
Mon Mar 3 07:50:36 PST 2014


Author: panickal
Date: Mon Mar  3 09:50:36 2014
New Revision: 202724

URL: http://llvm.org/viewvc/llvm-project?rev=202724&view=rev
Log:
Build liblldb.dll in Windows

Modified:
    lldb/trunk/include/lldb/API/SBDefines.h
    lldb/trunk/include/lldb/Host/HostGetOpt.h
    lldb/trunk/include/lldb/lldb-defines.h
    lldb/trunk/source/CMakeLists.txt
    lldb/trunk/source/Host/windows/CMakeLists.txt
    lldb/trunk/tools/driver/CMakeLists.txt

Modified: lldb/trunk/include/lldb/API/SBDefines.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/API/SBDefines.h?rev=202724&r1=202723&r2=202724&view=diff
==============================================================================
--- lldb/trunk/include/lldb/API/SBDefines.h (original)
+++ lldb/trunk/include/lldb/API/SBDefines.h Mon Mar  3 09:50:36 2014
@@ -21,62 +21,65 @@
 #include "lldb/lldb-types.h"
 #include "lldb/lldb-versioning.h"
 
-// Forward Declarations
+#ifdef SWIG
+#define LLDB_API
+#endif
 
+// Forward Declarations
 namespace lldb {
 
-class SBAddress;
-class SBBlock;
-class SBBreakpoint;
-class SBBreakpointLocation;
-class SBBroadcaster;
-class SBCommand;
-class SBCommandInterpreter;
-class SBCommandPluginInterface;
-class SBCommandReturnObject;
-class SBCommunication;
-class SBCompileUnit;
-class SBData;
-class SBDebugger;
-class SBDeclaration;
-class SBError;
-class SBEvent;
-class SBEventList;
-class SBExpressionOptions;
-class SBFileSpec;
-class SBFileSpecList;
-class SBFrame;
-class SBFunction;
-class SBHostOS;
-class SBInstruction;
-class SBInstructionList;
-class SBLineEntry;
-class SBListener;
-class SBModule;
-class SBModuleSpec;
-class SBModuleSpecList;
-class SBProcess;
-class SBSourceManager;
-class SBStream;
-class SBStringList;
-class SBSymbol;
-class SBSymbolContext;
-class SBSymbolContextList;
-class SBTarget;
-class SBThread;
-class SBType;
-class SBTypeCategory;
-class SBTypeFilter;
-class SBTypeFormat;
-class SBTypeNameSpecifier;
-class SBTypeSummary;
+class LLDB_API SBAddress;
+class LLDB_API SBBlock;
+class LLDB_API SBBreakpoint;
+class LLDB_API SBBreakpointLocation;
+class LLDB_API SBBroadcaster;
+class LLDB_API SBCommand;
+class LLDB_API SBCommandInterpreter;
+class LLDB_API SBCommandPluginInterface;
+class LLDB_API SBCommandReturnObject;
+class LLDB_API SBCommunication;
+class LLDB_API SBCompileUnit;
+class LLDB_API SBData;
+class LLDB_API SBDebugger;
+class LLDB_API SBDeclaration;
+class LLDB_API SBError;
+class LLDB_API SBEvent;
+class LLDB_API SBEventList;
+class LLDB_API SBExpressionOptions;
+class LLDB_API SBFileSpec;
+class LLDB_API SBFileSpecList;
+class LLDB_API SBFrame;
+class LLDB_API SBFunction;
+class LLDB_API SBHostOS;
+class LLDB_API SBInstruction;
+class LLDB_API SBInstructionList;
+class LLDB_API SBLineEntry;
+class LLDB_API SBListener;
+class LLDB_API SBModule;
+class LLDB_API SBModuleSpec;
+class LLDB_API SBModuleSpecList;
+class LLDB_API SBProcess;
+class LLDB_API SBSourceManager;
+class LLDB_API SBStream;
+class LLDB_API SBStringList;
+class LLDB_API SBSymbol;
+class LLDB_API SBSymbolContext;
+class LLDB_API SBSymbolContextList;
+class LLDB_API SBTarget;
+class LLDB_API SBThread;
+class LLDB_API SBType;
+class LLDB_API SBTypeCategory;
+class LLDB_API SBTypeFilter;
+class LLDB_API SBTypeFormat;
+class LLDB_API SBTypeNameSpecifier;
+class LLDB_API SBTypeSummary;
 #ifndef LLDB_DISABLE_PYTHON
-class SBTypeSynthetic;    
+class LLDB_API SBTypeSynthetic;
 #endif
-class SBTypeList;
-class SBValue;
-class SBValueList;
-class SBWatchpoint;
+class LLDB_API SBTypeList;
+class LLDB_API SBValue;
+class LLDB_API SBValueList;
+class LLDB_API SBWatchpoint;
 
 }
 

Modified: lldb/trunk/include/lldb/Host/HostGetOpt.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/HostGetOpt.h?rev=202724&r1=202723&r2=202724&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Host/HostGetOpt.h (original)
+++ lldb/trunk/include/lldb/Host/HostGetOpt.h Mon Mar  3 09:50:36 2014
@@ -15,6 +15,6 @@
 
 #else
 
-#include <lldb/Host/windows/GetOptInc.h>
+#include <lldb/Host/windows/getopt/GetOptInc.h>
 
 #endif

Modified: lldb/trunk/include/lldb/lldb-defines.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-defines.h?rev=202724&r1=202723&r2=202724&view=diff
==============================================================================
--- lldb/trunk/include/lldb/lldb-defines.h (original)
+++ lldb/trunk/include/lldb/lldb-defines.h Mon Mar  3 09:50:36 2014
@@ -11,6 +11,7 @@
 #define LLDB_lldb_defines_h_
 
 #include "lldb/lldb-types.h"
+#include "lldb/lldb-dll-export.h"
 
 #if !defined(UINT32_MAX)
     #define UINT32_MAX 4294967295U

Modified: lldb/trunk/source/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/CMakeLists.txt?rev=202724&r1=202723&r2=202724&view=diff
==============================================================================
--- lldb/trunk/source/CMakeLists.txt (original)
+++ lldb/trunk/source/CMakeLists.txt Mon Mar  3 09:50:36 2014
@@ -14,7 +14,11 @@ include_directories(
   )
 endif ()
 
-add_subdirectory(API)
+# Need to export the API in the liblldb.dll for Windows
+# The lldbAPI source files are added directly in liblldb
+if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows" )
+  add_subdirectory(API)
+endif ()
 add_subdirectory(Breakpoint)
 add_subdirectory(Commands)
 add_subdirectory(Core)
@@ -28,7 +32,6 @@ add_subdirectory(Target)
 add_subdirectory(Utility)
 
 set( LLDB_USED_LIBS
-  lldbAPI
   lldbBreakpoint
   lldbCommands
   lldbDataFormatters
@@ -77,6 +80,14 @@ set( LLDB_USED_LIBS
   lldbPluginOSPython
   )
 
+# Need to export the API in the liblldb.dll for Windows
+# The lldbAPI source files are added directly in liblldb
+if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows" )
+  list(APPEND LLDB_USED_LIBS
+    lldbAPI
+    )
+endif ()
+
 # Windows-only libraries
 if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
   list(APPEND LLDB_USED_LIBS
@@ -171,29 +182,102 @@ set( LLVM_LINK_COMPONENTS
   option
   )
 
-set_source_files_properties(${LLDB_BINARY_DIR}/scripts/LLDBWrapPython.cpp PROPERTIES GENERATED 1)
 
-if(NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
-  set(SHARED_LIBRARY 1)
+if ( NOT LLDB_DISABLE_PYTHON )
+  set_source_files_properties(${LLDB_BINARY_DIR}/scripts/LLDBWrapPython.cpp PROPERTIES GENERATED 1)
+  set(LLDB_WRAP_PYTHON ${LLDB_BINARY_DIR}/scripts/LLDBWrapPython.cpp)
 endif()
+set(SHARED_LIBRARY 1)
 
-if(NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
-  set(LLDB_WRAP_PYTHON ${LLDB_BINARY_DIR}/scripts/LLDBWrapPython.cpp)
+if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
+add_definitions( -DEXPORT_LIBLLDB )
 endif()
 
+# Need to export the API in the liblldb.dll for Windows
+# The lldbAPI source files are added directly in liblldb
+if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
+add_lldb_library(liblldb
+  lldb.cpp
+  lldb-log.cpp
+  API/SBAddress.cpp
+  API/SBBlock.cpp
+  API/SBBreakpoint.cpp
+  API/SBBreakpointLocation.cpp
+  API/SBBroadcaster.cpp
+  API/SBCommandInterpreter.cpp
+  API/SBCommandReturnObject.cpp
+  API/SBCommunication.cpp
+  API/SBCompileUnit.cpp
+  API/SBData.cpp
+  API/SBDebugger.cpp
+  API/SBDeclaration.cpp
+  API/SBError.cpp
+  API/SBEvent.cpp
+  API/SBExpressionOptions.cpp
+  API/SBFileSpec.cpp
+  API/SBFileSpecList.cpp
+  API/SBFrame.cpp
+  API/SBFunction.cpp
+  API/SBHostOS.cpp
+  API/SBInstruction.cpp
+  API/SBInstructionList.cpp
+  API/SBLineEntry.cpp
+  API/SBListener.cpp
+  API/SBModule.cpp
+  API/SBModuleSpec.cpp
+  API/SBPlatform.cpp
+  API/SBProcess.cpp
+  API/SBQueue.cpp
+  API/SBQueueItem.cpp
+  API/SBSection.cpp
+  API/SBSourceManager.cpp
+  API/SBStream.cpp
+  API/SBStringList.cpp
+  API/SBSymbol.cpp
+  API/SBSymbolContext.cpp
+  API/SBSymbolContextList.cpp
+  API/SBTarget.cpp
+  API/SBThread.cpp
+  API/SBType.cpp
+  API/SBTypeCategory.cpp
+  API/SBTypeFilter.cpp
+  API/SBTypeFormat.cpp
+  API/SBTypeNameSpecifier.cpp
+  API/SBTypeSummary.cpp
+  API/SBTypeSynthetic.cpp
+  API/SBValue.cpp
+  API/SBValueList.cpp
+  API/SBWatchpoint.cpp
+  Host/Windows/getopt/GetOptInc.cpp
+  ${LLDB_WRAP_PYTHON}
+  ${LLDB_VERS_GENERATED_FILE}
+  )
+else ()
 add_lldb_library(liblldb
   lldb.cpp
   lldb-log.cpp
   ${LLDB_WRAP_PYTHON}
   ${LLDB_VERS_GENERATED_FILE}
   )
+endif ()
+
+if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
+set_target_properties(liblldb
+  PROPERTIES
+  OUTPUT_NAME liblldb
+  VERSION ${LLDB_VERSION}
+  )
+else()
 set_target_properties(liblldb
   PROPERTIES
   OUTPUT_NAME lldb
   VERSION ${LLDB_VERSION}
   )
+endif()
+
 if (LLDB_WRAP_PYTHON OR LLDB_VERS_GENERATED_FILE)
   add_dependencies(liblldb
+    swig_wrapper
     ${LLDB_WRAP_PYTHON}
     ${LLDB_VERS_GENERATED_FILE}
     )

Modified: lldb/trunk/source/Host/windows/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/windows/CMakeLists.txt?rev=202724&r1=202723&r2=202724&view=diff
==============================================================================
--- lldb/trunk/source/Host/windows/CMakeLists.txt (original)
+++ lldb/trunk/source/Host/windows/CMakeLists.txt Mon Mar  3 09:50:36 2014
@@ -7,5 +7,4 @@ add_lldb_library(lldbHostWindows
   Condition.cpp
   Windows.cpp
   EditLineWin.cpp
-  GetOptInc.cpp
   )

Modified: lldb/trunk/tools/driver/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/driver/CMakeLists.txt?rev=202724&r1=202723&r2=202724&view=diff
==============================================================================
--- lldb/trunk/tools/driver/CMakeLists.txt (original)
+++ lldb/trunk/tools/driver/CMakeLists.txt Mon Mar  3 09:50:36 2014
@@ -4,6 +4,10 @@ add_lldb_executable(lldb
   Platform.cpp
   )
 
+if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
+add_definitions( -DIMPORT_LIBLLDB )
+endif()
+
 target_link_libraries(lldb liblldb)
 # TODO: why isn't this done by add_lldb_executable?
 #target_link_libraries(lldb ${LLDB_USED_LIBS})





More information about the lldb-commits mailing list