+spec2def(win32k.sys win32k.spec)
+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)
-include_directories(.)
-include_directories(include)
-include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include)
-include_directories(${REACTOS_SOURCE_DIR}/lib/3rdparty/freetype/include)
-include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys)
-include_directories(${REACTOS_SOURCE_DIR}/include/reactos/drivers)
+add_definitions(
+ -DLANGPACK
+ -D_WIN32K_)
-add_definitions(-DLANGPACK)
-add_definitions(-D_WIN32K_)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/dib)
+
+list(APPEND GENDIB_FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/dib/dib8gen.c
+ ${CMAKE_CURRENT_BINARY_DIR}/dib/dib16gen.c
+ ${CMAKE_CURRENT_BINARY_DIR}/dib/dib32gen.c)
+
+add_custom_command(
+ OUTPUT ${GENDIB_FILES}
+ COMMAND native-gendib ${CMAKE_CURRENT_BINARY_DIR}/dib)
list(APPEND SOURCE
+ dib/alphablend.c
dib/dib1bpp.c
dib/dib4bpp.c
dib/dib8bpp.c
eng/float.c
eng/gradient.c
eng/lineto.c
+ eng/ldevobj.c
eng/mapping.c
eng/mem.c
eng/engmisc.c
eng/mouse.c
eng/paint.c
+ eng/pdevobj.c
eng/perfcnt.c
+ eng/rlecomp.c
eng/semaphor.c
eng/sort.c
eng/string.c
eng/transblt.c
eng/engwindow.c
eng/xlate.c
- ldr/loader.c
main/dllmain.c
misc/driver.c
- misc/err.c
misc/file.c
misc/math.c
misc/rtlstr.c
objects/font.c
objects/freetype.c
objects/gdibatch.c
+ objects/gdidbg.c
objects/gdiobj.c
objects/icm.c
objects/line.c
stubs/umpdstubs.c
win32k.rc)
-list(APPEND GENDIB_GENERATED
- ${CMAKE_CURRENT_BINARY_DIR}/dib/dib8gen.c
- ${CMAKE_CURRENT_BINARY_DIR}/dib/dib16gen.c
- ${CMAKE_CURRENT_BINARY_DIR}/dib/dib32gen.c)
-
-set_source_files_properties(${GENDIB_GENERATED} PROPERTIES GENERATED TRUE)
-
-list(APPEND SOURCE ${GENDIB_GENERATED})
+list(APPEND SOURCE ${GENDIB_FILES})
if(ARCH MATCHES i386)
list(APPEND SOURCE
list(APPEND SOURCE
dib/dib24bppc.c
dib/dib32bppc.c)
-endif(ARCH MATCHES i386)
+endif()
add_library(win32k SHARED
${CMAKE_CURRENT_BINARY_DIR}/win32k_pch.h.gch
+ ${CMAKE_CURRENT_BINARY_DIR}/win32k.def
${SOURCE})
-set_target_properties(win32k PROPERTIES LINK_FLAGS "-Wl,-entry,_DriverEntry@8 -Wl,--image-base,0x00010000 -Wl,--subsystem,native" SUFFIX ".sys")
+set_module_type(win32k kernelmodedriver)
target_link_libraries(win32k
- ${CMAKE_CURRENT_SOURCE_DIR}/win32k_i386.def
- pseh
- -lntoskrnl
- -lhal
- -lftfd
+ ${PSEH_LIB}
dxguid
libcntpr)
+add_importlibs(win32k ntoskrnl hal ftfd)
add_pch(win32k ${CMAKE_CURRENT_SOURCE_DIR}/pch.h ${SOURCE})
-add_dependencies(win32k psdk gendib_generated bugcodes subsystem_napi buildno_header)
+add_dependencies(win32k gendib_generated subsystem_napi)
+add_cab_target(win32k 1)
+add_importlib_target(win32k.spec)
+
+add_library(win32ksys sys-stubs.S)