-add_pch(ntoskrnl ${CMAKE_CURRENT_SOURCE_DIR}/include/ntoskrnl.h ${SOURCE})
-set_source_files_properties(${REACTOS_BINARY_DIR}/ntoskrnl/ex/zw.S PROPERTIES GENERATED TRUE)
-add_dependencies(ntoskrnl psdk bugcodes kernel_zw kernel_napi asm)
+ if(MSVC_IDE AND (CMAKE_VERSION MATCHES "ReactOS"))
+ set_source_files_properties(${ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS "CONFIG_SMP")
+ endif()
+
+ add_asm_files(ntkrnlmp_asm ${ASM_SOURCE})
+
+ add_executable(ntkrnlmp
+ ${ntkrnlmp_asm}
+ ${SOURCE}
+ ${CMAKE_CURRENT_BINARY_DIR}/ntkrnlmp.def)
+
+ add_target_compile_definitions(ntkrnlmp CONFIG_SMP)
+
+ if(ARCH STREQUAL "i386")
+ set_entrypoint(ntkrnlmp KiSystemStartup 4)
+ else()
+ set_entrypoint(ntkrnlmp KiSystemStartup)
+ endif()
+ set_subsystem(ntkrnlmp native)
+
+ if(MSVC)
+ set_image_base(ntkrnlmp 0x00400000)
+ else()
+ set_image_base(ntkrnlmp 0x80800000)
+ endif()
+
+ # Linker bug
+ if(NOT MSVC AND LTCG)
+ add_target_link_flags(ntkrnlmp "-shared")
+ endif()
+
+ target_link_libraries(ntkrnlmp cportlib csq ${PSEH_LIB} cmlib rtl rossym libcntpr wdmguid ioevent)
+ add_importlibs(ntkrnlmp hal kdcom bootvid)
+ add_dependencies(ntkrnlmp psdk bugcodes asm)
+ add_cd_file(TARGET ntkrnlmp DESTINATION reactos/system32 NO_CAB FOR all)
+endif()