mirror of
https://github.com/reactos/reactos.git
synced 2024-12-16 23:53:28 +08:00
23373acbb9
There is no need to compile our DLLs as shared libraries since we are managing symbols exports and imports through spec files. On my system, this reduces the configure-time by a factor of two.
250 lines
5.8 KiB
CMake
250 lines
5.8 KiB
CMake
|
|
set(USE_DIBLIB FALSE)
|
|
|
|
if(NOT MSVC)
|
|
# HACK: this should be enabled globally!
|
|
add_compile_flags_language("-std=c++11" "CXX")
|
|
endif()
|
|
|
|
# Give WIN32 subsystem its own project.
|
|
PROJECT(WIN32SS)
|
|
|
|
add_subdirectory(drivers)
|
|
|
|
if(USE_DIBLIB)
|
|
add_subdirectory(gdi/diblib)
|
|
endif()
|
|
|
|
add_subdirectory(gdi/gdi32)
|
|
add_subdirectory(printing)
|
|
add_subdirectory(reactx)
|
|
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}/sdk/lib/3rdparty/freetype/include
|
|
${REACTOS_SOURCE_DIR}/sdk/include/reactos/subsys
|
|
${REACTOS_SOURCE_DIR}/sdk/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/pathobj.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/d3dkmt.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/console.c
|
|
user/ntuser/csr.c
|
|
user/ntuser/cursoricon.c
|
|
user/ntuser/dde.c
|
|
user/ntuser/defwnd.c
|
|
user/ntuser/desktop.c
|
|
user/ntuser/display.c
|
|
user/ntuser/draw.c
|
|
user/ntuser/event.c
|
|
user/ntuser/focus.c
|
|
user/ntuser/ghost.c
|
|
user/ntuser/guicheck.c
|
|
user/ntuser/hook.c
|
|
user/ntuser/hotkey.c
|
|
user/ntuser/input.c
|
|
user/ntuser/ime.c
|
|
user/ntuser/keyboard.c
|
|
user/ntuser/kbdlayout.c
|
|
user/ntuser/layered.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/nonclient.c
|
|
user/ntuser/ntstubs.c
|
|
user/ntuser/ntuser.c
|
|
user/ntuser/painting.c
|
|
user/ntuser/prop.c
|
|
user/ntuser/scrollbar.c
|
|
user/ntuser/scrollex.c
|
|
user/ntuser/session.c
|
|
user/ntuser/shutdown.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
|
|
user/rtl/text.c
|
|
gdi/ntgdi/arc.c
|
|
gdi/ntgdi/bezier.c
|
|
gdi/ntgdi/bitblt.c
|
|
gdi/ntgdi/bitmaps.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/init.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
|
|
pch.h)
|
|
|
|
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(ARCH STREQUAL "i386")
|
|
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_asm_files(win32k_asm ${ASM_SOURCE})
|
|
|
|
add_library(win32k MODULE
|
|
${SOURCE}
|
|
gdi/ntgdi/brush.cpp
|
|
${win32k_asm}
|
|
win32k.rc
|
|
${CMAKE_CURRENT_BINARY_DIR}/win32k.def)
|
|
|
|
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 SOURCE)
|
|
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")
|
|
add_dependencies(win32ksys asm) |