summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcallum <none@none>2009-11-18 21:15:44 -0800
committercallum <none@none>2009-11-18 21:15:44 -0800
commit4419e367bcbe8c1b248e88eab8096f0b8ac4707c (patch)
tree9539d6f09d1114c437086ae4977ffee260096cee
parent778005a350308d51f114ece74b4e7f3e7af3d37e (diff)
Add support for removing the Windows specific drag/drop code
from the codebase via a new CMake file (DragDrop.cmake).
-rw-r--r--indra/cmake/DragDrop.cmake25
-rw-r--r--indra/llwindow/CMakeLists.txt1
-rw-r--r--indra/llwindow/lldragdropwin32.cpp7
-rw-r--r--indra/llwindow/lldragdropwin32.h29
-rw-r--r--indra/newview/CMakeLists.txt1
5 files changed, 59 insertions, 4 deletions
diff --git a/indra/cmake/DragDrop.cmake b/indra/cmake/DragDrop.cmake
new file mode 100644
index 0000000000..a2d7df1312
--- /dev/null
+++ b/indra/cmake/DragDrop.cmake
@@ -0,0 +1,25 @@
+# -*- cmake -*-
+
+if (VIEWER)
+
+ OPTION (OS_DRAG_DROP
+ "Build the viewer with OS level drag and drop turned on or off"
+ OFF)
+
+ if (OS_DRAG_DROP)
+
+ if (WINDOWS)
+ add_definitions(-DLL_OS_DRAGDROP_ENABLED=1)
+ endif (WINDOWS)
+
+ if (DARWIN)
+ add_definitions(-DLL_OS_DRAGDROP_ENABLED=0)
+ endif (DARWIN)
+
+ if (LINUX)
+ add_definitions(-DLL_OS_DRAGDROP_ENABLED=0)
+ endif (LINUX)
+
+ endif (OS_DRAG_DROP)
+
+endif (VIEWER)
diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt
index b4a3f74451..77c6fa57b6 100644
--- a/indra/llwindow/CMakeLists.txt
+++ b/indra/llwindow/CMakeLists.txt
@@ -12,6 +12,7 @@ project(llwindow)
include(00-Common)
include(DirectX)
+include(DragDrop)
include(LLCommon)
include(LLImage)
include(LLMath)
diff --git a/indra/llwindow/lldragdropwin32.cpp b/indra/llwindow/lldragdropwin32.cpp
index aac68e71af..471c88675d 100644
--- a/indra/llwindow/lldragdropwin32.cpp
+++ b/indra/llwindow/lldragdropwin32.cpp
@@ -32,6 +32,8 @@
#if LL_WINDOWS
+#if LL_OS_DRAGDROP_ENABLED
+
#include "linden_common.h"
#include "llwindowwin32.h"
@@ -272,4 +274,7 @@ void LLDragDropWin32::reset()
OleUninitialize();
}
-#endif
+#endif // LL_OS_DRAGDROP_ENABLED
+
+#endif // LL_WINDOWS
+
diff --git a/indra/llwindow/lldragdropwin32.h b/indra/llwindow/lldragdropwin32.h
index 624f4ad24b..26c8e4aeff 100644
--- a/indra/llwindow/lldragdropwin32.h
+++ b/indra/llwindow/lldragdropwin32.h
@@ -30,11 +30,13 @@
* $/LicenseInfo$
*/
+#if LL_WINDOWS
+
+#if LL_OS_DRAGDROP_ENABLED
+
#ifndef LL_LLDRAGDROP32_H
#define LL_LLDRAGDROP32_H
-#if LL_WINDOWS
-
#include <windows.h>
#include <ole2.h>
@@ -51,7 +53,28 @@ class LLDragDropWin32
IDropTarget* mDropTarget;
HWND mDropWindowHandle;
};
+#endif // LL_LLDRAGDROP32_H
-#endif // LL_WINDOWS
+#else // LL_OS_DRAGDROP_ENABLED
+#ifndef LL_LLDRAGDROP32_H
+#define LL_LLDRAGDROP32_H
+
+#include <windows.h>
+#include <ole2.h>
+
+// imposter class that does nothing
+class LLDragDropWin32
+{
+ public:
+ LLDragDropWin32() {};
+ ~LLDragDropWin32() {};
+
+ bool init( HWND hWnd ) { return false; };
+ void reset() { };
+};
#endif // LL_LLDRAGDROP32_H
+
+#endif // LL_OS_DRAGDROP_ENABLED
+
+#endif // LL_WINDOWS
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index b129bca1f3..352e9a9382 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -7,6 +7,7 @@ include(Boost)
include(BuildVersion)
include(DBusGlib)
include(DirectX)
+include(DragDrop)
include(ELFIO)
include(FMOD)
include(OPENAL)