2 list(APPEND _keyboard_layouts
86 foreach(_keyboard_layout ${_keyboard_layouts})
87 spec2def(${_keyboard_layout}.dll ${_keyboard_layout}/${_keyboard_layout}.spec)
89 add_library(${_keyboard_layout} SHARED
90 ${_keyboard_layout}/${_keyboard_layout}.c
91 ${_keyboard_layout}/${_keyboard_layout}.rc
92 ${CMAKE_CURRENT_BINARY_DIR}/${_keyboard_layout}.def)
94 target_include_directories(${_keyboard_layout} PRIVATE ${REACTOS_SOURCE_DIR}/ntoskrnl/include)
95 set_entrypoint(${_keyboard_layout} 0)
96 set_image_base(${_keyboard_layout} 0x5FFF0000)
97 set_subsystem(${_keyboard_layout} native)
100 # Merge the .text and .rdata section into the .data section
101 add_target_link_flags(${_keyboard_layout} "/ignore:4254 /SECTION:.data,ER /MERGE:.text=.data /MERGE:.rdata=.data /MERGE:.bss=.data /MERGE:.edata=.data")
103 # Use a custom linker script
104 add_target_link_flags(${_keyboard_layout} "-Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/kbdlayout.lds")
106 # Avoid "universal character names are only valid in C++ and C99" error.
107 set_property(TARGET ${_keyboard_layout} PROPERTY C_STANDARD 99)
111 target_link_libraries(${_keyboard_layout} gcc_ssp)
115 target_link_libraries(${_keyboard_layout} runtmchk)
118 add_dependencies(${_keyboard_layout} psdk)
119 add_cd_file(TARGET ${_keyboard_layout} DESTINATION reactos/system32 FOR all)