fork
Configure Feed
Select the types of activity you want to include in your feed.
Reactos
fork
Configure Feed
Select the types of activity you want to include in your feed.
1
2PROJECT(NTOS)
3
4if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
5 # Enable this again. CORE-17637
6 add_compile_options(-Wunused-result)
7endif()
8
9include(ntos.cmake)
10
11set(NTOSKRNL_SOURCE ${SOURCE})
12set(NTOSKRNL_ASM_SOURCE ${ASM_SOURCE})
13
14set(NTKRNLMP_SOURCE ${SOURCE})
15set(NTKRNLMP_ASM_SOURCE ${ASM_SOURCE})
16
17spec2def(ntoskrnl.exe ntoskrnl.spec ADD_IMPORTLIB)
18
19# Link GCC stack protector lib
20if (STACK_PROTECTOR)
21 target_link_libraries(libntoskrnl INTERFACE gcc_ssp_nt)
22endif()
23
24add_asm_files(ntoskrnl_asm ${NTOSKRNL_ASM_SOURCE})
25
26if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
27 # Clang optimises strcmp calls to memcmp.
28 target_link_libraries(libntoskrnl INTERFACE memcmp)
29endif()
30
31if((CMAKE_C_COMPILER_ID STREQUAL "Clang") OR (CMAKE_C_COMPILER_ID STREQUAL "GNU"))
32 # Enable xsave feature
33 add_compile_options(-mxsave)
34endif()
35
36list(APPEND PCH_SKIP_SOURCE
37 guid.c)
38
39add_executable(ntoskrnl
40 ${ntoskrnl_asm}
41 ${NTOSKRNL_SOURCE}
42 ${PCH_SKIP_SOURCE}
43 ntoskrnl.rc
44 ${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl.def)
45set_module_type(ntoskrnl kernel)
46
47source_group(TREE ${REACTOS_SOURCE_DIR}/ntoskrnl PREFIX "Source Files" FILES ${NTOSKRNL_SOURCE})
48
49target_link_libraries(ntoskrnl ntoskrnl_vista cportlib csq ${PSEH_LIB} arbiter cmlib ntlsalib rtl ${ROSSYM_LIB} libcntpr setjmp wdmguid poguid ioevent)
50
51if(STACK_PROTECTOR)
52 target_link_libraries(ntoskrnl gcc_ssp_nt)
53endif()
54
55add_importlibs(ntoskrnl hal kdcom bootvid)
56add_pch(ntoskrnl ${REACTOS_SOURCE_DIR}/ntoskrnl/include/ntoskrnl.h "${PCH_SKIP_SOURCE}")
57add_dependencies(ntoskrnl psdk asm)
58add_cd_file(TARGET ntoskrnl DESTINATION reactos/system32 NO_CAB FOR all)
59
60add_subdirectory(ntkrnlmp)
61
62add_asm_files(ntdllsys_asm ntdll.S)
63add_library(ntdllsys ${ntdllsys_asm})
64set_target_properties(ntdllsys PROPERTIES LINKER_LANGUAGE "C")
65add_dependencies(ntdllsys asm)