--- /dev/null
- list(APPEND SOURCE
+
+add_definitions(-D_KERNEL32_)
+include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys)
+spec2def(kernel32.dll kernel32.spec ADD_IMPORTLIB)
+
+list(APPEND SOURCE
+ client/appcache.c
+ client/atom.c
+ client/compname.c
+ client/debugger.c
+ client/dosdev.c
+ client/dllmain.c
+ client/environ.c
+ client/except.c
+ client/fiber.c
+ client/handle.c
+ client/heapmem.c
+ client/job.c
+ client/loader.c
+ client/path.c
+ client/perfcnt.c
+ client/power.c
+ client/proc.c
+ client/resntfy.c
+ client/session.c
+ client/synch.c
+ client/sysinfo.c
+ client/time.c
+ client/timerqueue.c
+ client/toolhelp.c
+ client/utils.c
+ client/thread.c
+ client/vdm.c
+ client/version.c
+ client/virtmem.c
+ client/vista.c
+ client/console/alias.c
+ client/console/console.c
+ client/console/history.c
+ client/console/readwrite.c
+ client/console/vista.c
+ client/file/backup.c
+ client/file/cnotify.c
+ client/file/copy.c
+ client/file/create.c
+ client/file/delete.c
+ client/file/deviceio.c
+ client/file/dir.c
+ client/file/fileinfo.c
+ client/file/filemap.c
+ client/file/filename.c
+ client/file/find.c
+ client/file/hardlink.c
+ client/file/iocompl.c
+ client/file/lfile.c
+ client/file/lock.c
+ client/file/mailslot.c
+ client/file/move.c
+ client/file/npipe.c
+ client/file/rw.c
+ client/file/tape.c
+ client/file/volume.c
+ wine/actctx.c
+ wine/comm.c
+ wine/lzexpand.c
+ wine/muldiv.c
+ wine/profile.c
+ wine/res.c
+ wine/timezone.c
+ winnls/string/casemap.c
+ winnls/string/collation.c
+ winnls/string/fold.c
+ winnls/string/format_msg.c
+ winnls/string/lang.c
+ winnls/string/lcformat.c
+ winnls/string/lstring.c
+ winnls/string/nls.c
+ winnls/string/sortkey.c
+ kernel32.rc
+ ${CMAKE_CURRENT_BINARY_DIR}/kernel32.def)
+
+if(ARCH STREQUAL "i386")
- list(APPEND SOURCE
++ list(APPEND ASM_SOURCE
+ client/i386/fiber.S
+ client/i386/thread.S)
+elseif(ARCH STREQUAL "amd64")
- add_library(kernel32 SHARED ${SOURCE})
++ list(APPEND ASM_SOURCE
+ client/amd64/fiber.S
+ client/amd64/thread.S)
+endif()
+
++add_asm_files(kernel32_asm ${ASM_SOURCE})
++add_library(kernel32 SHARED ${SOURCE} ${kernel32_asm})
+set_module_type(kernel32 win32dll ENTRYPOINT DllMain 12)
+target_link_libraries(kernel32 wine chkstk ${PSEH_LIB})
+add_importlibs(kernel32 ntdll)
+add_pch(kernel32 k32.h)
+add_dependencies(kernel32 psdk errcodes asm)
+add_cd_file(TARGET kernel32 DESTINATION reactos/system32 FOR all)
--- /dev/null
- win32k.rc)
+
+set(USE_DIBLIB FALSE)
+set(USE_NEW_CURSORICON FALSE)
+
+# Give WIN32 subsystem its own project.
+PROJECT(WIN32SS)
+
+add_subdirectory(drivers)
+
+if(USE_DIBLIB)
+ add_subdirectory(gdi/diblib)
+endif()
+
+if(USE_NEW_CURSORICON)
+ add_definitions(-DNEW_CURSORICON)
+endif()
+
+add_subdirectory(gdi/gdi32)
+add_subdirectory(reactx)
+add_subdirectory(user/consrv)
+add_subdirectory(user/user32)
+add_subdirectory(user/winsrv)
+
+spec2def(win32k.sys win32k.spec ADD_IMPORTLIB)
+
+include_directories(
+ .
+ include
+ ${REACTOS_SOURCE_DIR}/ntoskrnl/include
+ ${REACTOS_SOURCE_DIR}/lib/3rdparty/freetype/include
+ ${REACTOS_SOURCE_DIR}/include/reactos/subsys
+ ${REACTOS_SOURCE_DIR}/include/reactos/drivers)
+
+add_definitions(
+ -DLANGPACK
+ -D_WIN32K_)
+
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/gdi/dib)
+
+list(APPEND GENDIB_FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/gdi/dib/dib8gen.c
+ ${CMAKE_CURRENT_BINARY_DIR}/gdi/dib/dib16gen.c
+ ${CMAKE_CURRENT_BINARY_DIR}/gdi/dib/dib32gen.c)
+
+add_custom_command(
+ OUTPUT ${GENDIB_FILES}
+ COMMAND native-gendib ${CMAKE_CURRENT_BINARY_DIR}/gdi/dib
+ DEPENDS native-gendib)
+
+list(APPEND SOURCE
+ gdi/dib/alphablend.c
+ gdi/dib/dib1bpp.c
+ gdi/dib/dib4bpp.c
+ gdi/dib/dib8bpp.c
+ gdi/dib/dib16bpp.c
+ gdi/dib/dib24bpp.c
+ gdi/dib/dib32bpp.c
+ gdi/dib/floodfill.c
+ gdi/dib/stretchblt.c
+ gdi/eng/alphablend.c
+ gdi/eng/bitblt.c
+ gdi/eng/engbrush.c
+ gdi/eng/engevent.c
+ gdi/eng/clip.c
+ gdi/eng/debug.c
+ gdi/eng/device.c
+ gdi/eng/driverobj.c
+ gdi/eng/error.c
+ gdi/eng/float.c
+ gdi/eng/gradient.c
+ gdi/eng/lineto.c
+ gdi/eng/ldevobj.c
+ gdi/eng/mapping.c
+ gdi/eng/math.c
+ gdi/eng/mem.c
+ gdi/eng/engmisc.c
+ gdi/eng/mouse.c
+ gdi/eng/paint.c
+ gdi/eng/pdevobj.c
+ gdi/eng/perfcnt.c
+ gdi/eng/rlecomp.c
+ gdi/eng/semaphor.c
+ gdi/eng/sort.c
+ gdi/eng/string.c
+ gdi/eng/stretchblt.c
+ gdi/eng/surface.c
+ gdi/eng/transblt.c
+ gdi/eng/engwindow.c
+ gdi/eng/xlateobj.c
+ user/ntuser/main.c
+ user/ntuser/misc/file.c
+ user/ntuser/misc/rtlstr.c
+ user/ntuser/misc/copy.c
+ user/ntuser/misc/registry.c
+ reactx/ntddraw/ddraw.c
+ reactx/ntddraw/dd.c
+ reactx/ntddraw/ddsurf.c
+ reactx/ntddraw/d3d.c
+ reactx/ntddraw/dvp.c
+ reactx/ntddraw/mocomp.c
+ reactx/ntddraw/eng.c
+ reactx/ntddraw/dxeng.c
+ user/ntuser/accelerator.c
+ user/ntuser/callback.c
+ user/ntuser/callproc.c
+ user/ntuser/caret.c
+ user/ntuser/class.c
+ user/ntuser/clipboard.c
+ user/ntuser/defwnd.c
+ user/ntuser/desktop.c
+ user/ntuser/display.c
+ user/ntuser/event.c
+ user/ntuser/focus.c
+ user/ntuser/guicheck.c
+ user/ntuser/hook.c
+ user/ntuser/hotkey.c
+ user/ntuser/input.c
+ user/ntuser/keyboard.c
+ user/ntuser/kbdlayout.c
+ user/ntuser/menu.c
+ user/ntuser/message.c
+ user/ntuser/metric.c
+ user/ntuser/misc.c
+ user/ntuser/monitor.c
+ user/ntuser/mouse.c
+ user/ntuser/msgqueue.c
+ user/ntuser/ntstubs.c
+ user/ntuser/ntuser.c
+ user/ntuser/painting.c
+ user/ntuser/prop.c
+ user/ntuser/scrollbar.c
+ user/ntuser/session.c
+ user/ntuser/simplecall.c
+ user/ntuser/sysparams.c
+ user/ntuser/timer.c
+ user/ntuser/useratom.c
+ user/ntuser/usrheap.c
+ user/ntuser/vis.c
+ user/ntuser/windc.c
+ user/ntuser/window.c
+ user/ntuser/winpos.c
+ user/ntuser/winsta.c
+ user/ntuser/object.c
+ gdi/ntgdi/arc.c
+ gdi/ntgdi/bezier.c
+ gdi/ntgdi/bitblt.c
+ gdi/ntgdi/bitmaps.c
+ gdi/ntgdi/brush.c
+ gdi/ntgdi/cliprgn.c
+ gdi/ntgdi/coord.c
+ gdi/ntgdi/dcattr.c
+ gdi/ntgdi/dclife.c
+ gdi/ntgdi/dcobjs.c
+ gdi/ntgdi/dcstate.c
+ gdi/ntgdi/dcutil.c
+ gdi/ntgdi/device.c
+ gdi/ntgdi/dibobj.c
+ gdi/ntgdi/drawing.c
+ gdi/ntgdi/fillshap.c
+ gdi/ntgdi/font.c
+ gdi/ntgdi/freetype.c
+ gdi/ntgdi/gdibatch.c
+ gdi/ntgdi/gdidbg.c
+ gdi/ntgdi/gdiobj.c
+ gdi/ntgdi/gdipool.c
+ gdi/ntgdi/icm.c
+ gdi/ntgdi/line.c
+ gdi/ntgdi/metafile.c
+ gdi/ntgdi/palette.c
+ gdi/ntgdi/path.c
+ gdi/ntgdi/pen.c
+ gdi/ntgdi/polyfill.c
+ gdi/ntgdi/print.c
+ gdi/ntgdi/rect.c
+ gdi/ntgdi/region.c
+ gdi/ntgdi/stockobj.c
+ gdi/ntgdi/text.c
+ gdi/ntgdi/wingl.c
+ gdi/ntgdi/xformobj.c
+ gdi/eng/stubs.c
+ gdi/eng/umpdstubs.c
- list(APPEND SOURCE
++ win32k.rc
++ ${CMAKE_CURRENT_BINARY_DIR}/win32k.def)
+
+if(USE_DIBLIB)
+ add_definitions(-D_USE_DIBLIB_)
+ list(APPEND SOURCE
+ gdi/dib/dib_new.c
+ gdi/eng/bitblt_new.c)
+else()
+ list(APPEND SOURCE
+ gdi/dib/dib.c
+ gdi/eng/copybits.c
+ ${GENDIB_FILES})
+endif()
+
+if(USE_NEW_CURSORICON)
+ list(APPEND SOURCE user/ntuser/cursoricon_new.c)
+else()
+ list(APPEND SOURCE user/ntuser/cursoricon.c)
+endif()
+
+if(ARCH STREQUAL "i386")
- add_library(win32k SHARED
- ${CMAKE_CURRENT_BINARY_DIR}/win32k.def
- ${SOURCE})
++list(APPEND ASM_SOURCE
+ gdi/dib/i386/dib24bpp_hline.s
+ gdi/dib/i386/dib32bpp_hline.s
+ gdi/dib/i386/dib32bpp_colorfill.s
+ gdi/eng/i386/floatobj.S)
+else()
+list(APPEND SOURCE
+ gdi/dib/dib24bppc.c
+ gdi/dib/dib32bppc.c)
+endif()
+
+if(KDBG)
+ list(APPEND SOURCE
+ gdi/ntgdi/gdikdbgext.c)
+endif()
+
- add_library(win32ksys sys-stubs.S)
++add_asm_files(win32k_asm ${ASM_SOURCE})
++add_library(win32k SHARED ${SOURCE} ${win32k_asm})
+
+set_module_type(win32k kernelmodedriver)
+
+target_link_libraries(win32k
+ ${PSEH_LIB}
+ dxguid
+ libcntpr)
+
+if(USE_DIBLIB)
+ target_link_libraries(win32k diblib)
+endif()
+
+add_importlibs(win32k ntoskrnl hal ftfd)
+add_pch(win32k pch.h)
+add_cd_file(TARGET win32k DESTINATION reactos/system32 FOR all)
+
+set_source_files_properties(sys-stubs.S PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/w32ksvc.h)
++add_asm_files(win32ksys_asm sys-stubs.S)
++add_library(win32ksys ${win32ksys_asm})
++set_target_properties(win32ksys PROPERTIES LINKER_LANGUAGE "C")