[CMAKE]
[reactos.git] / subsystems / win32 / win32k / CMakeLists.txt
index 0654d67..6de96b5 100644 (file)
@@ -1,17 +1,31 @@
 
+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
@@ -34,12 +48,15 @@ list(APPEND SOURCE
     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
@@ -48,10 +65,8 @@ list(APPEND SOURCE
     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
@@ -126,6 +141,7 @@ list(APPEND SOURCE
     objects/font.c
     objects/freetype.c
     objects/gdibatch.c
+       objects/gdidbg.c
     objects/gdiobj.c
     objects/icm.c
     objects/line.c
@@ -145,14 +161,7 @@ list(APPEND SOURCE
     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
@@ -169,23 +178,24 @@ else()
 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_livecd_target(win32k reactos/system32)
\ No newline at end of file
+add_dependencies(win32k gendib_generated subsystem_napi)
+add_cab_target(win32k 1)
+add_importlib_target(win32k.spec)
+
+add_library(win32ksys sys-stubs.S)