1 2add_subdirectory(load_notifications) 3 4include_directories($<TARGET_FILE_DIR:load_notifications>) 5include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) 6spec2def(ntdll_apitest.exe ntdll_apitest.spec) 7 8list(APPEND SOURCE 9 LdrEnumResources.c 10 load_notifications.c 11 locale.c 12 NtAcceptConnectPort.c 13 NtAdjustPrivilegesToken.c 14 NtAllocateVirtualMemory.c 15 NtApphelpCacheControl.c 16 NtCompareTokens.c 17 NtContinue.c 18 NtCreateFile.c 19 NtCreateKey.c 20 NtCreateThread.c 21 NtDeleteKey.c 22 NtDuplicateObject.c 23 NtDuplicateToken.c 24 NtFreeVirtualMemory.c 25 NtImpersonateAnonymousToken.c 26 NtLoadUnloadKey.c 27 NtMapViewOfSection.c 28 NtMutant.c 29 NtOpenKey.c 30 NtOpenProcessToken.c 31 NtOpenThreadToken.c 32 NtProtectVirtualMemory.c 33 NtQueryInformationFile.c 34 NtQueryInformationProcess.c 35 NtQueryInformationThread.c 36 NtQueryKey.c 37 NtQuerySystemEnvironmentValue.c 38 NtQuerySystemInformation.c 39 NtQueryValueKey.c 40 NtQueryVolumeInformationFile.c 41 NtReadFile.c 42 NtSaveKey.c 43 NtSetInformationFile.c 44 NtSetInformationProcess.c 45 NtSetInformationThread.c 46 NtSetValueKey.c 47 NtSetVolumeInformationFile.c 48 NtUnloadDriver.c 49 NtWriteFile.c 50 probelib.c 51 RtlAllocateHeap.c 52 RtlBitmap.c 53 RtlComputePrivatizedDllName_U.c 54 RtlCopyMappedMemory.c 55 RtlDebugInformation.c 56 RtlDeleteAce.c 57 RtlDetermineDosPathNameType.c 58 RtlDoesFileExists.c 59 RtlDosApplyFileIsolationRedirection_Ustr.c 60 RtlDosPathNameToNtPathName_U.c 61 RtlDosSearchPath_U.c 62 RtlDosSearchPath_Ustr.c 63 RtlFirstFreeAce.c 64 RtlGenerate8dot3Name.c 65 RtlGetFullPathName_U.c 66 RtlGetFullPathName_Ustr.c 67 RtlGetFullPathName_UstrEx.c 68 RtlGetLengthWithoutLastFullDosOrNtPathElement.c 69 RtlGetLengthWithoutTrailingPathSeperators.c 70 RtlGetLongestNtPathLength.c 71 RtlGetNtProductType.c 72 RtlGetUnloadEventTrace.c 73 RtlHandle.c 74 RtlImageDirectoryEntryToData.c 75 RtlImageRvaToVa.c 76 RtlIsNameLegalDOS8Dot3.c 77 RtlMemoryStream.c 78 RtlMultipleAllocateHeap.c 79 RtlNtPathNameToDosPathName.c 80 RtlpApplyLengthFunction.c 81 RtlpEnsureBufferSize.c 82 RtlQueryTimeZoneInfo.c 83 RtlReAllocateHeap.c 84 RtlUnicodeStringToAnsiString.c 85 RtlUnicodeStringToCountedOemString.c 86 RtlUnicodeToOemN.c 87 RtlUpcaseUnicodeStringToCountedOemString.c 88 RtlValidateUnicodeString.c 89 RtlxUnicodeStringToAnsiSize.c 90 RtlxUnicodeStringToOemSize.c 91 StackOverflow.c 92 SystemInfo.c 93 Timer.c) 94 95if(ARCH STREQUAL "i386") 96 add_asm_files(ntdll_apitest_asm i386/NtContinue.S) 97endif() 98 99list(APPEND PCH_SKIP_SOURCE 100 testlist.c) 101 102add_rc_deps(testdata.rc ${CMAKE_CURRENT_BINARY_DIR}/load_notifications/load_notifications.dll) 103 104add_executable(ntdll_apitest 105 ${SOURCE} 106 ${ntdll_apitest_asm} 107 ${PCH_SKIP_SOURCE} 108 testdata.rc 109 ${CMAKE_CURRENT_BINARY_DIR}/ntdll_apitest.def) 110 111target_link_libraries(ntdll_apitest wine uuid ${PSEH_LIB}) 112set_module_type(ntdll_apitest win32cui) 113add_importlibs(ntdll_apitest msvcrt advapi32 kernel32 ntdll) 114add_pch(ntdll_apitest precomp.h "${PCH_SKIP_SOURCE}") 115add_dependencies(ntdll_apitest load_notifications) 116 117if(NOT MSVC) 118 set_source_files_properties(RtlGetFullPathName_UstrEx.c PROPERTIES COMPILE_FLAGS "-Wno-format") 119 120 # Avoid "universal character names are only valid in C++ and C99" error. 121 set_property(TARGET ntdll_apitest PROPERTY C_STANDARD 99) 122endif() 123 124add_rostests_file(TARGET ntdll_apitest) 125add_rostests_file(TARGET ntdll_apitest SUBDIR testdata) 126# These are empty files 127add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/ntdll_apitest.exe.local" SUBDIR testdata) 128add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/shell32.dll" SUBDIR testdata) 129add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/test.dll" SUBDIR testdata) 130add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/ntdlltest.manifest" SUBDIR testdata) 131add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/fil1.txt" SUBDIR testdata) 132 133# Convenience target for running from IDE 134if(MSVC_IDE) 135 set(NTDLL_APITEST_DATADIR $<TARGET_FILE_DIR:ntdll_apitest>/testdata/) 136 add_custom_command(TARGET ntdll_apitest 137 POST_BUILD 138 COMMAND "${CMAKE_COMMAND}" -E make_directory ${NTDLL_APITEST_DATADIR} 139 COMMAND "${CMAKE_COMMAND}" -E copy $<TARGET_FILE:ntdll_apitest> ${NTDLL_APITEST_DATADIR} 140 COMMAND "${CMAKE_COMMAND}" -E copy ntdll_apitest.exe.local ${NTDLL_APITEST_DATADIR} 141 COMMAND "${CMAKE_COMMAND}" -E copy shell32.dll ${NTDLL_APITEST_DATADIR} 142 COMMAND "${CMAKE_COMMAND}" -E copy test.dll ${NTDLL_APITEST_DATADIR} 143 COMMAND "${CMAKE_COMMAND}" -E copy ntdlltest.manifest ${NTDLL_APITEST_DATADIR} 144 COMMAND "${CMAKE_COMMAND}" -E copy fil1.txt ${NTDLL_APITEST_DATADIR} 145 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) 146endif() 147