summaryrefslogtreecommitdiff
path: root/indra/llwindow/CMakeLists.txt
diff options
context:
space:
mode:
authorBryan O'Sullivan <bos@lindenlab.com>2008-06-02 21:14:31 +0000
committerBryan O'Sullivan <bos@lindenlab.com>2008-06-02 21:14:31 +0000
commit9db949eec327df4173fde3de934a87bedb0db13c (patch)
treeaeffa0f0e68b1d2ceb74d460cbbd22652c9cd159 /indra/llwindow/CMakeLists.txt
parent419e13d0acaabf5e1e02e9b64a07648bce822b2f (diff)
svn merge -r88066:88786 svn+ssh://svn.lindenlab.com/svn/linden/branches/cmake-9-merge
dataserver-is-deprecated for-fucks-sake-whats-with-these-commit-markers
Diffstat (limited to 'indra/llwindow/CMakeLists.txt')
-rw-r--r--indra/llwindow/CMakeLists.txt163
1 files changed, 163 insertions, 0 deletions
diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt
new file mode 100644
index 0000000000..acfeb6484f
--- /dev/null
+++ b/indra/llwindow/CMakeLists.txt
@@ -0,0 +1,163 @@
+# -*- cmake -*-
+#
+# Compared to other libraries, compiling this one is a mess. The
+# reason is that we have several source files that have two different
+# sets of behaviour, depending on whether they're intended to be part
+# of the viewer or the map server.
+#
+# Unfortunately, the affected code is a rat's nest of #ifdefs, so it's
+# easier to play compilation tricks than to actually fix the problem.
+
+project(llwindow)
+
+include(00-Common)
+include(DirectX)
+include(LLCommon)
+include(LLImage)
+include(LLMath)
+include(LLRender)
+include(LLVFS)
+include(LLWindow)
+include(LLXML)
+include(Mozlib)
+include(UI)
+
+include_directories(
+ ${LLCOMMON_INCLUDE_DIRS}
+ ${LLIMAGE_INCLUDE_DIRS}
+ ${LLMATH_INCLUDE_DIRS}
+ ${LLRENDER_INCLUDE_DIRS}
+ ${LLVFS_INCLUDE_DIRS}
+ ${LLWINDOW_INCLUDE_DIRS}
+ ${LLXML_INCLUDE_DIRS}
+ )
+
+set(llwindow_SOURCE_FILES
+ llkeyboard.cpp
+ llwindowheadless.cpp
+ )
+
+set(llwindows_HEADER_FILES
+ CMakeLists.txt
+
+ llkeyboard.h
+ llwindowheadless.h
+ )
+
+set(viewer_SOURCE_FILES
+ llgl.cpp
+ llwindow.cpp
+ )
+
+set(viewer_HEADER_FILES
+ llgl.h
+ llwindow.h
+ llglheaders.h
+ llglstates.h
+ llgltypes.h
+ llpreeditor.h
+ llmousehandler.h
+ )
+
+if (DARWIN)
+ list(APPEND llwindow_SOURCE_FILES
+ llkeyboardmacosx.cpp
+ llwindowmacosx.cpp
+ llwindowmacosx-objc.mm
+ )
+ list(APPEND llwindow_HEADER_FILES
+ llkeyboardmacosx.h
+ llwindowmacosx.h
+ llwindowmacosx-objc.h
+ )
+
+ # We use a bunch of deprecated system APIs.
+ set_source_files_properties(
+ llkeyboardmacosx.cpp
+ llwindowmacosx.cpp
+ PROPERTIES
+ COMPILE_FLAGS "-Wno-deprecated-declarations -fpascal-strings"
+ )
+endif (DARWIN)
+
+if (LINUX)
+ list(APPEND viewer_SOURCE_FILES
+ llkeyboardsdl.cpp
+ llwindowsdl.cpp
+ )
+ list(APPEND viewer_HEADER_FILES
+ llkeyboardsdl.h
+ llwindowsdl.h
+ )
+endif (LINUX)
+
+if (WINDOWS)
+ list(APPEND llwindow_SOURCE_FILES
+ llwindowwin32.cpp
+ lldxhardware.cpp
+ llkeyboardwin32.cpp
+ )
+ list(APPEND llwindow_HEADER_FILES
+ llwindowwin32.h
+ lldxhardware.h
+ llkeyboardwin32.h
+ )
+endif (WINDOWS)
+
+if (SOLARIS)
+ list(APPEND llwindow_SOURCE_FILES
+ llwindowsolaris.cpp
+ )
+ list(APPEND llwindow_HEADER_FILES
+ llwindowsolaris.h
+ )
+endif (SOLARIS)
+
+set_source_files_properties(${llwindow_HEADER_FILES}
+ PROPERTIES HEADER_FILE_ONLY TRUE)
+
+if (SERVER AND NOT WINDOWS AND NOT DARWIN)
+ set(server_SOURCE_FILES
+ llwindowmesaheadless.cpp
+ )
+ set(server_HEADER_FILES
+ llwindowmesaheadless.h
+ )
+ set(copied_SOURCES
+ llgl
+ llwindow
+ )
+
+ foreach (PREFIX ${copied_SOURCES})
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PREFIX}_server.cpp
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${PREFIX}.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/${PREFIX}_server.cpp
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${PREFIX}.cpp
+ )
+ list(APPEND server_SOURCE_FILES ${PREFIX}_server.cpp)
+ endforeach (PREFIX ${copied_SOURCES})
+
+ set_source_files_properties(
+ ${server_SOURCE_FILES}
+ PROPERTIES
+ COMPILE_FLAGS "-DLL_MESA=1 -DLL_MESA_HEADLESS=1"
+ )
+ add_library (llwindowheadless
+ ${llwindow_SOURCE_FILES}
+ ${server_SOURCE_FILES}
+ )
+endif (SERVER AND NOT WINDOWS AND NOT DARWIN)
+
+if (llwindow_HEADER_FILES)
+ list(APPEND llwindow_SOURCE_FILES ${llwindow_HEADER_FILES})
+endif (llwindow_HEADER_FILES)
+ list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES})
+
+if (VIEWER)
+ add_library (llwindow
+ ${llwindow_SOURCE_FILES}
+ ${viewer_SOURCE_FILES}
+ )
+endif (VIEWER)