26552b23fe999d42c88ec5f5430b324525e4911b
[reactos.git] / dll / keyboard / CMakeLists.txt
1
2 list(APPEND _keyboard_layouts
3 kbda1
4 kbda2
5 kbda3
6 kbdal
7 kbdarme
8 kbdarmw
9 kbdaze
10 kbdazel
11 kbdbe
12 kbdbga
13 kbdbgm
14 kbdbgt
15 kbdblr
16 kbdbr
17 kbdbur
18 kbdcan
19 kbdcr
20 kbdcz
21 kbdcz1
22 kbdda
23 kbddv
24 kbdeo
25 kbdes
26 kbdest
27 kbdfc
28 kbdfi
29 kbdfr
30 kbdgeo
31 kbdgerg
32 kbdgneo
33 kbdgr
34 kbdgrist
35 kbdhe
36 kbdheb
37 kbdhu
38 kbdic
39 kbdinasa
40 kbdinben
41 kbdindev
42 kbdinguj
43 kbdinmal
44 kbdir
45 kbdit
46 kbdja
47 kbdkaz
48 kbdko
49 kbdla
50 kbdlt1
51 kbdlv
52 kbdmac
53 kbdne
54 kbdno
55 kbdpl
56 kbdpl1
57 kbdpo
58 kbdro
59 kbdru
60 kbdru1
61 kbdsg
62 kbdsk
63 kbdsk1
64 kbdsw
65 kbdtat
66 kbdth0
67 kbdth1
68 kbdth2
69 kbdth3
70 kbdtuf
71 kbdtuq
72 kbduk
73 kbdur
74 kbdurs
75 kbdus
76 kbdusa
77 kbdusl
78 kbdusr
79 kbdusx
80 kbduzb
81 kbdvntc
82 kbdycc
83 kbdycl)
84
85 foreach(_keyboard_layout ${_keyboard_layouts})
86 spec2def(${_keyboard_layout}.dll ${_keyboard_layout}/${_keyboard_layout}.spec)
87
88 add_library(${_keyboard_layout} SHARED
89 ${_keyboard_layout}/${_keyboard_layout}.c
90 ${_keyboard_layout}/${_keyboard_layout}.rc
91 ${CMAKE_CURRENT_BINARY_DIR}/${_keyboard_layout}.def)
92
93 target_include_directories(${_keyboard_layout} PRIVATE ${REACTOS_SOURCE_DIR}/ntoskrnl/include)
94 set_entrypoint(${_keyboard_layout} 0)
95 set_image_base(${_keyboard_layout} 0x5FFF0000)
96 set_subsystem(${_keyboard_layout} native)
97
98 if(MSVC)
99 # Merge the .text and .rdata section into the .data section
100 add_target_link_flags(${_keyboard_layout} "/ignore:4254 /SECTION:.data,ER /MERGE:.text=.data /MERGE:.rdata=.data /MERGE:.bss=.data /MERGE:.edata=.data")
101 else()
102 # Use a custom linker script
103 add_target_link_flags(${_keyboard_layout} "-Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/kbdlayout.lds")
104 endif()
105
106 if (STACK_PROTECTOR)
107 target_link_libraries(${_keyboard_layout} gcc_ssp)
108 endif()
109
110 if(RUNTIME_CHECKS)
111 target_link_libraries(${_keyboard_layout} runtmchk)
112 endif()
113
114 add_dependencies(${_keyboard_layout} psdk)
115 add_cd_file(TARGET ${_keyboard_layout} DESTINATION reactos/system32 FOR all)
116 endforeach()