2 add_subdirectory(load_notifications)
4 include_directories($<TARGET_FILE_DIR:load_notifications>)
5 include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include)
6 spec2def(ntdll_apitest.exe ntdll_apitest.spec)
16 NtAccessCheckByTypeResultList.c
18 NtAdjustPrivilegesToken.c
19 NtAllocateVirtualMemory.c
20 NtApphelpCacheControl.c
31 NtImpersonateAnonymousToken.c
38 NtProtectVirtualMemory.c
39 NtQueryInformationFile.c
40 NtQueryInformationProcess.c
41 NtQueryInformationThread.c
42 NtQueryInformationToken.c
45 NtQuerySystemEnvironmentValue.c
46 NtQuerySystemInformation.c
48 NtQueryVolumeInformationFile.c
52 NtSetInformationFile.c
53 NtSetInformationProcess.c
54 NtSetInformationThread.c
55 NtSetInformationToken.c
57 NtSetVolumeInformationFile.c
63 RtlComputePrivatizedDllName_U.c
68 RtlDetermineDosPathNameType.c
70 RtlDosApplyFileIsolationRedirection_Ustr.c
71 RtlDosPathNameToNtPathName_U.c
73 RtlDosSearchPath_Ustr.c
75 RtlGenerate8dot3Name.c
76 RtlGetFullPathName_U.c
77 RtlGetFullPathName_Ustr.c
78 RtlGetFullPathName_UstrEx.c
79 RtlGetLengthWithoutLastFullDosOrNtPathElement.c
80 RtlGetLengthWithoutTrailingPathSeperators.c
81 RtlGetLongestNtPathLength.c
84 RtlGetUnloadEventTrace.c
86 RtlImageDirectoryEntryToData.c
88 RtlIsNameLegalDOS8Dot3.c
90 RtlMultipleAllocateHeap.c
91 RtlNtPathNameToDosPathName.c
92 RtlpApplyLengthFunction.c
93 RtlpEnsureBufferSize.c
94 RtlQueryTimeZoneInfo.c
97 RtlUnicodeStringToAnsiString.c
98 RtlUnicodeStringToCountedOemString.c
100 RtlUpcaseUnicodeStringToCountedOemString.c
101 RtlValidateUnicodeString.c
102 RtlxUnicodeStringToAnsiSize.c
103 RtlxUnicodeStringToOemSize.c
110 if(ARCH STREQUAL "i386")
111 add_asm_files(ntdll_apitest_asm i386/NtContinue.S)
112 elseif(ARCH STREQUAL "amd64")
113 add_asm_files(ntdll_apitest_asm amd64/NtContinue.S)
116 list(APPEND PCH_SKIP_SOURCE
119 add_rc_deps(testdata.rc ${CMAKE_CURRENT_BINARY_DIR}/load_notifications/load_notifications.dll)
121 add_executable(ntdll_apitest
126 ${CMAKE_CURRENT_BINARY_DIR}/ntdll_apitest.def)
128 set_target_properties(ntdll_apitest
133 target_link_libraries(ntdll_apitest rtl_test_lib wine uuid ${PSEH_LIB})
134 set_module_type(ntdll_apitest win32cui)
135 add_importlibs(ntdll_apitest msvcrt advapi32 kernel32 ntdll)
136 add_pch(ntdll_apitest precomp.h "${PCH_SKIP_SOURCE}")
137 add_dependencies(ntdll_apitest load_notifications)
140 set_source_files_properties(RtlGetFullPathName_UstrEx.c PROPERTIES COMPILE_FLAGS "-Wno-format")
142 # Avoid "universal character names are only valid in C++ and C99" error.
143 set_property(TARGET ntdll_apitest PROPERTY C_STANDARD 99)
146 add_rostests_file(TARGET ntdll_apitest)
147 add_rostests_file(TARGET ntdll_apitest SUBDIR testdata)
148 # These are empty files
149 add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/ntdll_apitest.exe.local" SUBDIR testdata)
150 add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/shell32.dll" SUBDIR testdata)
151 # add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/test.dll" SUBDIR testdata)
152 add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/ntdlltest.manifest" SUBDIR testdata)
153 add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/fil1.txt" SUBDIR testdata)
155 # Convenience target for running from IDE
157 set(NTDLL_APITEST_DATADIR $<TARGET_FILE_DIR:ntdll_apitest>/testdata/)
158 add_custom_command(TARGET ntdll_apitest
160 COMMAND "${CMAKE_COMMAND}" -E make_directory ${NTDLL_APITEST_DATADIR}
161 COMMAND "${CMAKE_COMMAND}" -E copy $<TARGET_FILE:ntdll_apitest> ${NTDLL_APITEST_DATADIR}
162 COMMAND "${CMAKE_COMMAND}" -E copy ntdll_apitest.exe.local ${NTDLL_APITEST_DATADIR}
163 COMMAND "${CMAKE_COMMAND}" -E copy shell32.dll ${NTDLL_APITEST_DATADIR}
164 COMMAND "${CMAKE_COMMAND}" -E copy test.dll ${NTDLL_APITEST_DATADIR}
165 COMMAND "${CMAKE_COMMAND}" -E copy ntdlltest.manifest ${NTDLL_APITEST_DATADIR}
166 COMMAND "${CMAKE_COMMAND}" -E copy fil1.txt ${NTDLL_APITEST_DATADIR}
167 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})