mirror of
https://github.com/reactos/reactos.git
synced 2024-12-29 10:35:28 +00:00
878c2f4444
Implement a base security infrastructure with code that sets up a security descriptor for the service that we're going to connect through it. Such service is based upon a desktop and a window station. === DOCUMENTATION REMARKS === The authenticated user, represented by an access token that describes its security context, is the main holder and has ultimate power against the default created desktop and window station objects in USER. The authenticated user in question is the actual logged in user, this is the case when the server is impersonating a client. Administrators on the other hand have some share of power against default desktop but their power in question is extremely limited against the default window station as admins can only just enumerate the available and valid handle stations within a desktop.
255 lines
6 KiB
CMake
255 lines
6 KiB
CMake
|
|
set(USE_DIBLIB FALSE)
|
|
|
|
# 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(gdi/gdi32_vista)
|
|
add_subdirectory(printing)
|
|
add_subdirectory(reactx)
|
|
add_subdirectory(user/user32)
|
|
add_subdirectory(user/winsrv)
|
|
|
|
spec2def(win32k.sys win32k.spec ADD_IMPORTLIB)
|
|
|
|
# embed RTC libs
|
|
if (STACK_PROTECTOR)
|
|
target_sources(libwin32k PRIVATE $<TARGET_OBJECTS:gcc_ssp_win32k>)
|
|
endif()
|
|
|
|
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/mdevobj.c
|
|
gdi/eng/mem.c
|
|
gdi/eng/engmisc.c
|
|
gdi/eng/mouse.c
|
|
gdi/eng/multidisp.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/security.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)
|
|
list(APPEND SOURCE gdi/eng/i386/floatobj.c)
|
|
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)
|