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}/sdk/lib/cmlib)
6 include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/libs)
7 include_directories(${REACTOS_SOURCE_DIR}/drivers/filesystems)
9 add_definitions(-D_NTHAL_ -D_BLDR_ -D_NTSYSTEM_)
11 list(APPEND BOOTLIB_SOURCE
25 lib/firmware/efi/firmware.c
38 lib/io/display/display.c
39 lib/io/display/emscons.c
40 lib/io/display/guicons.c
41 lib/io/display/textcons.c
42 lib/io/display/efi/textcons.c
43 lib/io/display/efi/guicons.c
44 lib/io/display/efi/gop.c
45 lib/io/display/efi/uga.c)
47 if(ARCH STREQUAL "i386")
48 list(APPEND BOOTLIB_ASM_SOURCE
49 lib/arch/i386/transfer.s
51 list(APPEND BOOTLIB_SOURCE
55 elseif(ARCH STREQUAL "amd64")
56 list(APPEND BOOTLIB_ASM_SOURCE
57 #lib/arch/amd64/foo.asm
59 list(APPEND BOOTLIB_SOURCE
65 list(APPEND BOOTLIB_SOURCE
71 add_asm_files(bootlib_asm ${BOOTLIB_ASM_SOURCE})
72 add_library(bootlib ${BOOTLIB_SOURCE} ${bootlib_asm})
73 add_pch(bootlib app/bootmgr/bootmgr.h BOOTLIB_SOURCE)
74 add_dependencies(bootlib bugcodes asm bootmsg xdk)
76 list(APPEND BOOTMGR_BASE_SOURCE
81 add_executable(bootmgfw ${BOOTMGR_BASE_SOURCE} app/bootmgr/bootmgr.rc)
82 set_target_properties(bootmgfw PROPERTIES SUFFIX ".efi")
85 if (ARCH STREQUAL "arm")
86 add_target_link_flags(bootmgfw "/ignore:4078 /ignore:4254 /DRIVER")
88 add_target_link_flags(bootmgfw "/ignore:4078 /ignore:4254 /DRIVER /FIXED")
91 add_target_link_flags(bootmgfw "-Wl,--strip-all,--exclude-all-symbols")
94 set_image_base(bootmgfw 0x10000)
97 set_subsystem(bootmgfw EFI_APPLICATION)
99 set_subsystem(bootmgfw 10)
102 set_entrypoint(bootmgfw EfiEntry)
104 target_link_libraries(bootmgfw bootlib cportlib cmlib rtl libcntpr)
106 # dynamic analysis switches
108 target_link_libraries(bootmgfw gcc_ssp)
112 target_link_libraries(bootmgfw runtmchk)
115 add_dependencies(bootmgfw asm bugcodes)
117 list(APPEND ROSLOAD_BASE_SOURCE
118 app/rosload/rosload.c
119 app/rosload/roslogo.c
122 if(ARCH STREQUAL "i386")
123 list(APPEND ROSLOAD_ASM_SOURCE
124 app/rosload/i386/osxfera.s
128 add_asm_files(rosload_asm ${ROSLOAD_ASM_SOURCE})
129 add_executable(rosload ${ROSLOAD_BASE_SOURCE} ${rosload_asm})
130 set_target_properties(rosload PROPERTIES SUFFIX ".efi")
133 add_target_link_flags(rosload "/ignore:4078 /ignore:4254 /DRIVER")
135 add_target_link_flags(rosload "-Wl,--strip-all,--exclude-all-symbols,--dynamicbase,--pic-executable")
138 set_image_base(rosload 0x10000)
141 set_subsystem(rosload BOOT_APPLICATION)
143 set_subsystem(rosload 16)
146 if(ARCH STREQUAL "i386")
147 set_entrypoint(rosload OslMain 4)
149 set_entrypoint(rosload OslMain)
152 target_link_libraries(rosload bootlib cportlib cmlib rtl libcntpr)
154 # dynamic analysis switches
156 target_link_libraries(rosload gcc_ssp)
160 target_link_libraries(rosload runtmchk)
163 add_dependencies(rosload asm bugcodes)
165 add_cd_file(TARGET rosload DESTINATION reactos/system32/boot NO_CAB FOR all)