2 include_directories(BEFORE include)
3 include_directories(BEFORE include/efi)
4 include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include)
5 include_directories(${REACTOS_SOURCE_DIR}/lib/cmlib)
6 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs)
8 add_definitions(-D_NTHAL_ -D_BLDR_ -D_NTSYSTEM_)
10 list(APPEND BOOTLIB_SOURCE
23 lib/firmware/efi/firmware.c
36 lib/io/display/display.c
37 lib/io/display/emscons.c
38 lib/io/display/guicons.c
39 lib/io/display/textcons.c
40 lib/io/display/efi/textcons.c
41 lib/io/display/efi/guicons.c
42 lib/io/display/efi/gop.c
43 lib/io/display/efi/uga.c)
45 if(ARCH STREQUAL "i386")
46 list(APPEND BOOTLIB_ASM_SOURCE
47 #lib/arch/i386/foo.asm
49 list(APPEND BOOTLIB_SOURCE
53 elseif(ARCH STREQUAL "amd64")
54 list(APPEND BOOTLIB_ASM_SOURCE
55 #lib/arch/amd64/foo.asm
57 list(APPEND BOOTLIB_SOURCE
63 list(APPEND BOOTLIB_SOURCE
69 add_asm_files(bootlib_asm ${BOOTLIB_ASM_SOURCE})
70 add_library(bootlib ${BOOTLIB_SOURCE} ${bootlib_asm})
71 add_pch(bootlib app/bootmgr/bootmgr.h BOOTLIB_SOURCE)
72 add_dependencies(bootlib bugcodes bootmsg xdk)
74 list(APPEND BOOTMGR_BASE_SOURCE
79 add_executable(bootmgfw ${BOOTMGR_BASE_SOURCE} app/bootmgr/bootmgr.rc)
80 set_target_properties(bootmgfw PROPERTIES SUFFIX ".efi")
83 add_target_link_flags(bootmgfw "/ignore:4078 /ignore:4254 /DRIVER /FIXED")
85 add_target_link_flags(bootmgfw "-Wl,--strip-all,--exclude-all-symbols")
88 set_image_base(bootmgfw 0x10000)
91 set_subsystem(bootmgfw EFI_APPLICATION)
93 set_subsystem(bootmgfw 10)
96 set_entrypoint(bootmgfw EfiEntry)
98 target_link_libraries(bootmgfw bootlib cportlib cmlib rtl libcntpr)
101 target_link_libraries(bootmgfw gcc_ssp)
102 elseif(RUNTIME_CHECKS)
103 target_link_libraries(bootmgfw runtmchk)
106 add_dependencies(bootmgfw asm bugcodes)
108 list(APPEND ROSLOAD_BASE_SOURCE
109 app/rosload/rosload.c
112 add_executable(rosload ${ROSLOAD_BASE_SOURCE})
113 set_target_properties(rosload PROPERTIES SUFFIX ".efi")
116 add_target_link_flags(rosload "/ignore:4078 /ignore:4254 /DRIVER")
118 add_target_link_flags(rosload "-Wl,--strip-all,--exclude-all-symbols,--dynamicbase,--pic-executable")
121 set_image_base(rosload 0x10000)
124 set_subsystem(rosload BOOT_APPLICATION)
126 set_subsystem(rosload 16)
129 if(ARCH STREQUAL "i386")
130 set_entrypoint(rosload OslMain 4)
132 set_entrypoint(rosload OslMain)
135 target_link_libraries(rosload bootlib cportlib cmlib rtl libcntpr)
138 target_link_libraries(rosload gcc_ssp)
139 elseif(RUNTIME_CHECKS)
140 target_link_libraries(rosload runtmchk)
143 add_dependencies(rosload asm bugcodes)
145 add_cd_file(TARGET rosload DESTINATION reactos/system32/boot NO_CAB FOR all)