[BOOTLIB]: Add very early work around font loading.
[reactos.git] / reactos / boot / environ / CMakeLists.txt
1
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)
7
8 add_definitions(-D_NTHAL_ -D_BLDR_ -D_NTSYSTEM_)
9
10 list(APPEND BOOTLIB_SOURCE
11 app/bootmgr/bootmgr.h
12 lib/bootlib.c
13 lib/misc/debug.c
14 lib/misc/bcd.c
15 lib/misc/bcdopt.c
16 lib/misc/bootreg.c
17 lib/misc/util.c
18 lib/misc/image.c
19 lib/misc/resource.c
20 lib/misc/font.c
21 lib/firmware/fwutil.c
22 lib/firmware/efi/firmware.c
23 lib/mm/mm.c
24 lib/mm/pagealloc.c
25 lib/mm/heapalloc.c
26 lib/mm/blkalloc.c
27 lib/mm/descriptor.c
28 lib/platform/time.c
29 lib/io/blkcache.c
30 lib/io/etfs.c
31 lib/io/io.c
32 lib/io/device.c
33 lib/io/file.c
34 lib/io/fat.c
35 lib/io/display/display.c
36 lib/io/display/emscons.c
37 lib/io/display/guicons.c
38 lib/io/display/textcons.c
39 lib/io/display/efi/textcons.c
40 lib/io/display/efi/guicons.c
41 lib/io/display/efi/gop.c
42 lib/io/display/efi/uga.c)
43
44 if(ARCH STREQUAL "i386")
45 list(APPEND BOOTLIB_ASM_SOURCE
46 #lib/arch/i386/foo.asm
47 )
48 list(APPEND BOOTLIB_SOURCE
49 lib/arch/i386/arch.c
50 lib/mm/i386/mmx86.c
51 )
52 elseif(ARCH STREQUAL "amd64")
53 list(APPEND BOOTLIB_ASM_SOURCE
54 #lib/arch/amd64/foo.asm
55 )
56 list(APPEND BOOTLIB_SOURCE
57 #lib/arch/amd64/foo.c
58 lib/arch/stub/arch.c
59 lib/mm/stub/mm.c
60 )
61 else()
62 list(APPEND BOOTLIB_SOURCE
63 lib/arch/stub/arch.c
64 lib/mm/stub/mm.c
65 )
66 endif()
67
68 add_asm_files(bootlib_asm ${BOOTLIB_ASM_SOURCE})
69 add_library(bootlib ${BOOTLIB_SOURCE} ${bootlib_asm})
70 add_pch(bootlib app/bootmgr/bootmgr.h BOOTLIB_SOURCE)
71 add_dependencies(bootlib bugcodes bootmsg xdk)
72
73 list(APPEND BOOTMGR_BASE_SOURCE
74 app/bootmgr/efiemu.c
75 app/bootmgr/bootmgr.c
76 app/bootmgr/rtlcompat.c
77 )
78
79 add_executable(bootmgfw ${BOOTMGR_BASE_SOURCE} app/bootmgr/bootmgr.rc)
80 set_target_properties(bootmgfw PROPERTIES SUFFIX ".efi")
81
82 if(MSVC)
83 add_target_link_flags(bootmgfw "/ignore:4078 /ignore:4254 /DRIVER /FIXED")
84 else()
85 add_target_link_flags(bootmgfw "-Wl,--strip-all,--exclude-all-symbols")
86 endif()
87
88 set_image_base(bootmgfw 0x10000)
89
90 if(MSVC)
91 set_subsystem(bootmgfw EFI_APPLICATION)
92 else()
93 set_subsystem(bootmgfw 10)
94 endif()
95
96 set_entrypoint(bootmgfw EfiEntry)
97
98 target_link_libraries(bootmgfw bootlib cportlib cmlib rtl libcntpr)
99
100 if(STACK_PROTECTOR)
101 target_link_libraries(bootmgfw gcc_ssp)
102 elseif(RUNTIME_CHECKS)
103 target_link_libraries(bootmgfw runtmchk)
104 endif()
105
106 add_dependencies(bootmgfw asm bugcodes)
107
108 add_cd_file(TARGET bootmgfw FILE ${_bootmgfw_output_file} DESTINATION efi/boot NO_CAB FOR bootcd regtest NAME_ON_CD boot${EFI_PLATFORM_ID}.efi)
109