aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llwindow/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/llwindow/CMakeLists.txt')
-rw-r--r--linden/indra/llwindow/CMakeLists.txt147
1 files changed, 147 insertions, 0 deletions
diff --git a/linden/indra/llwindow/CMakeLists.txt b/linden/indra/llwindow/CMakeLists.txt
new file mode 100644
index 0000000..95e315f
--- /dev/null
+++ b/linden/indra/llwindow/CMakeLists.txt
@@ -0,0 +1,147 @@
1# -*- cmake -*-
2#
3# Compared to other libraries, compiling this one is a mess. The
4# reason is that we have several source files that have two different
5# sets of behaviour, depending on whether they're intended to be part
6# of the viewer or the map server.
7#
8# Unfortunately, the affected code is a rat's nest of #ifdefs, so it's
9# easier to play compilation tricks than to actually fix the problem.
10
11project(llwindow)
12
13include(00-Common)
14include(DirectX)
15include(LLCommon)
16include(LLImage)
17include(LLMath)
18include(LLRender)
19include(LLVFS)
20include(LLWindow)
21include(LLXML)
22include(Mozlib)
23include(UI)
24
25include_directories(
26 ${LLCOMMON_INCLUDE_DIRS}
27 ${LLIMAGE_INCLUDE_DIRS}
28 ${LLMATH_INCLUDE_DIRS}
29 ${LLRENDER_INCLUDE_DIRS}
30 ${LLVFS_INCLUDE_DIRS}
31 ${LLWINDOW_INCLUDE_DIRS}
32 ${LLXML_INCLUDE_DIRS}
33 )
34
35set(llwindow_SOURCE_FILES
36 llkeyboard.cpp
37 llwindowheadless.cpp
38 )
39
40set(llwindows_HEADER_FILES
41 CMakeLists.txt
42
43 llkeyboard.h
44 llwindowheadless.h
45 )
46
47set(viewer_SOURCE_FILES
48 llwindow.cpp
49 )
50
51set(viewer_HEADER_FILES
52 llwindow.h
53 llpreeditor.h
54 llmousehandler.h
55 )
56
57if (DARWIN)
58 list(APPEND llwindow_SOURCE_FILES
59 llkeyboardmacosx.cpp
60 llwindowmacosx.cpp
61 llwindowmacosx-objc.mm
62 )
63 list(APPEND llwindow_HEADER_FILES
64 llkeyboardmacosx.h
65 llwindowmacosx.h
66 llwindowmacosx-objc.h
67 )
68
69 # We use a bunch of deprecated system APIs.
70 set_source_files_properties(
71 llkeyboardmacosx.cpp
72 llwindowmacosx.cpp
73 PROPERTIES
74 COMPILE_FLAGS "-Wno-deprecated-declarations -fpascal-strings"
75 )
76endif (DARWIN)
77
78if (LINUX)
79 list(APPEND viewer_SOURCE_FILES
80 llkeyboardsdl.cpp
81 llwindowsdl.cpp
82 )
83 list(APPEND viewer_HEADER_FILES
84 llkeyboardsdl.h
85 llwindowsdl.h
86 )
87endif (LINUX)
88
89if (WINDOWS)
90 list(APPEND llwindow_SOURCE_FILES
91 llwindowwin32.cpp
92 lldxhardware.cpp
93 llkeyboardwin32.cpp
94 )
95 list(APPEND llwindow_HEADER_FILES
96 llwindowwin32.h
97 lldxhardware.h
98 llkeyboardwin32.h
99 )
100endif (WINDOWS)
101
102if (SOLARIS)
103 list(APPEND llwindow_SOURCE_FILES
104 llwindowsolaris.cpp
105 )
106 list(APPEND llwindow_HEADER_FILES
107 llwindowsolaris.h
108 )
109endif (SOLARIS)
110
111set_source_files_properties(${llwindow_HEADER_FILES}
112 PROPERTIES HEADER_FILE_ONLY TRUE)
113
114if (SERVER AND NOT WINDOWS AND NOT DARWIN)
115 set(server_SOURCE_FILES
116 llwindowmesaheadless.cpp
117 )
118 set(server_HEADER_FILES
119 llwindowmesaheadless.h
120 )
121 copy_server_sources(
122 llwindow
123 )
124
125
126 set_source_files_properties(
127 ${server_SOURCE_FILES}
128 PROPERTIES
129 COMPILE_FLAGS "-DLL_MESA=1 -DLL_MESA_HEADLESS=1"
130 )
131 add_library (llwindowheadless
132 ${llwindow_SOURCE_FILES}
133 ${server_SOURCE_FILES}
134 )
135endif (SERVER AND NOT WINDOWS AND NOT DARWIN)
136
137if (llwindow_HEADER_FILES)
138 list(APPEND llwindow_SOURCE_FILES ${llwindow_HEADER_FILES})
139endif (llwindow_HEADER_FILES)
140 list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES})
141
142if (VIEWER)
143 add_library (llwindow
144 ${llwindow_SOURCE_FILES}
145 ${viewer_SOURCE_FILES}
146 )
147endif (VIEWER)