
add_subdirectory(win32u_xpsp2)
add_subdirectory(win32u_2k3sp2)
add_subdirectory(win32u_vista)

add_definitions(-D_DLL -D__USE_CRTIMP)
include_directories(${REACTOS_SOURCE_DIR}/win32ss/include ../gditools)

list(APPEND SOURCE
    ntdd/NtGdiDdCreateDirectDrawObject.c
    ntdd/NtGdiDdDeleteDirectDrawObject.c
    #ntdd/NtGdiDdQueryDirectDrawObject.c

    ntgdi/NtGdiArcInternal.c
    ntgdi/NtGdiBitBlt.c
    ntgdi/NtGdiCombineRgn.c
    ntgdi/NtGdiCreateBitmap.c
    ntgdi/NtGdiCreateCompatibleBitmap.c
    ntgdi/NtGdiCreateCompatibleDC.c
    ntgdi/NtGdiCreateDIBSection.c
    ntgdi/NtGdiDeleteObjectApp.c
    ntgdi/NtGdiDoPalette.c
    ntgdi/NtGdiEngCreatePalette.c
    ntgdi/NtGdiEnumFontOpen.c
    ntgdi/NtGdiExcludeClipRect.c
    ntgdi/NtGdiExtSelectClipRgn.c
    ntgdi/NtGdiExtTextOutW.c
    #ntgdi/NtGdiFlushUserBatch.c
    ntgdi/NtGdiGetBitmapBits.c
    ntgdi/NtGdiGetDIBitsInternal.c
    #ntgdi/NtGdiGetFontResourceInfoInternalW.c
    ntgdi/NtGdiGetRandomRgn.c
    ntgdi/NtGdiGetStockObject.c
    ntgdi/NtGdiIntersectClipRect.c
    ntgdi/NtGdiLineTo.c
    ntgdi/NtGdiOffsetClipRgn.c
    ntgdi/NtGdiPolyPolyDraw.c
    ntgdi/NtGdiRestoreDC.c
    ntgdi/NtGdiSaveDC.c
    ntgdi/NtGdiSelectBitmap.c
    ntgdi/NtGdiSelectBrush.c
    ntgdi/NtGdiSelectFont.c
    ntgdi/NtGdiSelectPen.c
    ntgdi/NtGdiSetBitmapBits.c
    ntgdi/NtGdiSetDIBitsToDeviceInternal.c
    ntgdi/NtGdiSetPixel.c
    ntgdi/NtGdiTransformPoints.c

#    ntuser/NtUserCallHwnd.c
#    ntuser/NtUserCallHwndLock.c
#    ntuser/NtUserCallHwndOpt.c
#    ntuser/NtUserCallHwndParam.c
#    ntuser/NtUserCallHwndParamLock.c
#    ntuser/NtUserCallNoParam.c
#    ntuser/NtUserCallOneParam.c
    ntuser/NtUserConvertMemHandle.c
    ntuser/NtUserCountClipboardFormats.c
    ntuser/NtUserCreateAcceleratorTable.c
    ntuser/NtUserCreateWindowEx.c
#    ntuser/NtUserEnumDisplayMonitors.c
    ntuser/NtUserEnumDisplaySettings.c
    ntuser/NtUserFindExistingCursorIcon.c
    ntuser/NtUserGetAsyncKeyState.c
    ntuser/NtUserGetClassInfo.c
    ntuser/NtUserGetCursorInfo.c
#    ntuser/NtUserGetIconInfo.c
    ntuser/NtUserGetKeyboardLayoutName.c
    ntuser/NtUserGetThreadState.c
    ntuser/NtUserGetTitleBarInfo.c
    ntuser/NtUserProcessConnect.c
    ntuser/NtUserRedrawWindow.c
    ntuser/NtUserScrollDC.c
    ntuser/NtUserSelectPalette.c
    ntuser/NtUserSetTimer.c
    ntuser/NtUserSystemParametersInfo.c
    ntuser/NtUserToUnicodeEx.c
    ntuser/NtUserUpdatePerUserSystemParameters.c

    #osver.c
    )

list(APPEND PCH_SKIP_SOURCE
    testlist.c)

add_executable(win32u_apitest
    ${SOURCE}
    ${PCH_SKIP_SOURCE}
    dlihook.c
    win32knt.rc)

target_link_libraries(win32u_apitest ${PSEH_LIB} gditools)
set_module_type(win32u_apitest win32cui)
add_importlibs(win32u_apitest
    gdi32
    user32
    shell32
    advapi32
    msvcrt
    kernel32
    ntdll)
add_delay_importlibs(win32u_apitest win32u imm32)
add_dependencies(win32u_apitest xdk)
add_pch(win32u_apitest win32nt.h "${PCH_SKIP_SOURCE}")
add_rostests_file(TARGET win32u_apitest)
