* Reorganize the whole ReactOS codebase into a new layout. Discussing it will only...
[reactos.git] / reactos / win32ss / CMakeLists.txt
1
2 set(USE_DIBLIB FALSE)
3
4 add_subdirectory(drivers)
5 add_subdirectory(gdi/diblib)
6 add_subdirectory(gdi/gdi32)
7 add_subdirectory(reactx)
8 add_subdirectory(user/user32)
9 add_subdirectory(user/win32csr)
10
11 spec2def(win32k.sys win32k.spec ADD_IMPORTLIB)
12
13 include_directories(
14 .
15 include
16 ${REACTOS_SOURCE_DIR}/ntoskrnl/include
17 ${REACTOS_SOURCE_DIR}/lib/3rdparty/freetype/include
18 ${REACTOS_SOURCE_DIR}/include/reactos/subsys
19 ${REACTOS_SOURCE_DIR}/include/reactos/drivers)
20
21 add_definitions(
22 -DLANGPACK
23 -D_WIN32K_)
24
25 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/gdi/dib)
26
27 list(APPEND GENDIB_FILES
28 ${CMAKE_CURRENT_BINARY_DIR}/gdi/dib/dib8gen.c
29 ${CMAKE_CURRENT_BINARY_DIR}/gdi/dib/dib16gen.c
30 ${CMAKE_CURRENT_BINARY_DIR}/gdi/dib/dib32gen.c)
31
32 add_custom_command(
33 OUTPUT ${GENDIB_FILES}
34 COMMAND native-gendib ${CMAKE_CURRENT_BINARY_DIR}/gdi/dib
35 DEPENDS native-gendib)
36
37 list(APPEND SOURCE
38 gdi/dib/alphablend.c
39 gdi/dib/dib1bpp.c
40 gdi/dib/dib4bpp.c
41 gdi/dib/dib8bpp.c
42 gdi/dib/dib16bpp.c
43 gdi/dib/dib24bpp.c
44 gdi/dib/dib32bpp.c
45 gdi/dib/floodfill.c
46 gdi/dib/stretchblt.c
47 gdi/eng/alphablend.c
48 gdi/eng/bitblt.c
49 gdi/eng/engbrush.c
50 gdi/eng/engevent.c
51 gdi/eng/clip.c
52 gdi/eng/debug.c
53 gdi/eng/device.c
54 gdi/eng/driverobj.c
55 gdi/eng/error.c
56 gdi/eng/float.c
57 gdi/eng/gradient.c
58 gdi/eng/lineto.c
59 gdi/eng/ldevobj.c
60 gdi/eng/mapping.c
61 gdi/eng/mem.c
62 gdi/eng/engmisc.c
63 gdi/eng/mouse.c
64 gdi/eng/paint.c
65 gdi/eng/pdevobj.c
66 gdi/eng/perfcnt.c
67 gdi/eng/rlecomp.c
68 gdi/eng/semaphor.c
69 gdi/eng/sort.c
70 gdi/eng/string.c
71 gdi/eng/stretchblt.c
72 gdi/eng/surface.c
73 gdi/eng/transblt.c
74 gdi/eng/engwindow.c
75 gdi/eng/xlate.c
76 user/ntuser/main.c
77 user/ntuser/misc/file.c
78 user/ntuser/misc/math.c
79 user/ntuser/misc/rtlstr.c
80 user/ntuser/misc/copy.c
81 user/ntuser/misc/registry.c
82 user/ntuser/misc/usrheap.c
83 reactx/ntddraw/ddraw.c
84 reactx/ntddraw/dd.c
85 reactx/ntddraw/ddsurf.c
86 reactx/ntddraw/d3d.c
87 reactx/ntddraw/dvp.c
88 reactx/ntddraw/mocomp.c
89 reactx/ntddraw/eng.c
90 reactx/ntddraw/dxeng.c
91 user/ntuser/accelerator.c
92 user/ntuser/callback.c
93 user/ntuser/callproc.c
94 user/ntuser/caret.c
95 user/ntuser/class.c
96 user/ntuser/clipboard.c
97 user/ntuser/csr.c
98 user/ntuser/cursoricon.c
99 user/ntuser/defwnd.c
100 user/ntuser/desktop.c
101 user/ntuser/display.c
102 user/ntuser/event.c
103 user/ntuser/focus.c
104 user/ntuser/guicheck.c
105 user/ntuser/hook.c
106 user/ntuser/hotkey.c
107 user/ntuser/input.c
108 user/ntuser/keyboard.c
109 user/ntuser/kbdlayout.c
110 user/ntuser/menu.c
111 user/ntuser/message.c
112 user/ntuser/metric.c
113 user/ntuser/misc.c
114 user/ntuser/monitor.c
115 user/ntuser/mouse.c
116 user/ntuser/msgqueue.c
117 user/ntuser/ntstubs.c
118 user/ntuser/ntuser.c
119 user/ntuser/painting.c
120 user/ntuser/prop.c
121 user/ntuser/scrollbar.c
122 user/ntuser/session.c
123 user/ntuser/simplecall.c
124 user/ntuser/sysparams.c
125 user/ntuser/timer.c
126 user/ntuser/useratom.c
127 user/ntuser/vis.c
128 user/ntuser/windc.c
129 user/ntuser/window.c
130 user/ntuser/winpos.c
131 user/ntuser/winsta.c
132 user/ntuser/object.c
133 gdi/ntgdi/arc.c
134 gdi/ntgdi/bezier.c
135 gdi/ntgdi/bitblt.c
136 gdi/ntgdi/bitmaps.c
137 gdi/ntgdi/brush.c
138 gdi/ntgdi/cliprgn.c
139 gdi/ntgdi/coord.c
140 gdi/ntgdi/dcattr.c
141 gdi/ntgdi/dclife.c
142 gdi/ntgdi/dcobjs.c
143 gdi/ntgdi/dcstate.c
144 gdi/ntgdi/dcutil.c
145 gdi/ntgdi/device.c
146 gdi/ntgdi/dibobj.c
147 gdi/ntgdi/drawing.c
148 gdi/ntgdi/fillshap.c
149 gdi/ntgdi/font.c
150 gdi/ntgdi/freetype.c
151 gdi/ntgdi/gdibatch.c
152 gdi/ntgdi/gdidbg.c
153 gdi/ntgdi/gdiobj.c
154 gdi/ntgdi/gdipool.c
155 gdi/ntgdi/icm.c
156 gdi/ntgdi/line.c
157 gdi/ntgdi/metafile.c
158 gdi/ntgdi/palette.c
159 gdi/ntgdi/path.c
160 gdi/ntgdi/pen.c
161 gdi/ntgdi/polyfill.c
162 gdi/ntgdi/print.c
163 gdi/ntgdi/rect.c
164 gdi/ntgdi/region.c
165 gdi/ntgdi/stockobj.c
166 gdi/ntgdi/text.c
167 gdi/ntgdi/wingl.c
168 gdi/ntgdi/xformobj.c
169 gdi/eng/stubs.c
170 gdi/eng/umpdstubs.c
171 win32k.rc)
172
173 if(USE_DIBLIB)
174 add_definitions(-D_USE_DIBLIB_)
175 list(APPEND SOURCE
176 gdi/dib/dib_new.c
177 gdi/eng/bitblt_new.c)
178 else()
179 list(APPEND SOURCE
180 gdi/dib/dib.c
181 gdi/eng/copybits.c
182 ${GENDIB_FILES})
183 endif()
184
185 if(ARCH MATCHES i386)
186 list(APPEND SOURCE
187 gdi/dib/i386/dib24bpp_hline.s
188 gdi/dib/i386/dib32bpp_hline.s
189 gdi/dib/i386/dib32bpp_colorfill.s
190 gdi/eng/i386/floatobj.S
191 user/ntuser/misc/i386/cos_asm.s
192 user/ntuser/misc/i386/sin_asm.s
193 user/ntuser/misc/i386/atan2_asm.s
194 user/ntuser/misc/i386/floor_asm.s
195 user/ntuser/misc/i386/ceil_asm.s)
196 else()
197 list(APPEND SOURCE
198 gdi/dib/dib24bppc.c
199 gdi/dib/dib32bppc.c)
200 endif()
201
202 add_library(win32k SHARED
203 ${CMAKE_CURRENT_BINARY_DIR}/win32k.def
204 ${SOURCE})
205
206 set_module_type(win32k kernelmodedriver)
207
208 target_link_libraries(win32k
209 ${PSEH_LIB}
210 dxguid
211 libcntpr)
212
213 if(USE_DIBLIB)
214 target_link_libraries(win32k diblib)
215 endif()
216
217 add_importlibs(win32k ntoskrnl hal ftfd)
218 add_pch(win32k pch.h)
219 add_cd_file(TARGET win32k DESTINATION reactos/system32 FOR all)
220
221 add_library(win32ksys sys-stubs.S)
222 set_source_files_properties(sys-stubs.S PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/w32ksvc.h)