3 CreateBootSectorTarget2(frldr16
4 ${CMAKE_CURRENT_SOURCE_DIR}/arch/realmode/i386.S
5 ${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin
7 elseif(ARCH MATCHES amd64)
8 CreateBootSectorTarget2(frldr16
9 ${CMAKE_CURRENT_SOURCE_DIR}/arch/realmode/amd64.S
10 ${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin
14 include_directories(BEFORE include)
15 include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include)
16 include_directories(${REACTOS_SOURCE_DIR}/lib/cmlib)
17 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs)
18 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/elf)
20 add_definitions(-D_NTHAL_ -D_BLDR_ -D_NTSYSTEM_)
23 if(SARCH MATCHES omap-zoom2)
24 add_definitions(-D_ZOOM2_)
28 list(APPEND FREELDR_COMMON_SOURCE
79 list(APPEND FREELDR_COMMON_SOURCE
92 arch/i386/i386pnp.cmake.S
96 arch/i386/linux.cmake.S
114 arch/i386/xboxvideo.c
119 list(APPEND FREELDR_COMMON_SOURCE
122 elseif(ARCH MATCHES amd64)
123 list(APPEND FREELDR_COMMON_SOURCE
147 add_library(freeldr_common ${FREELDR_COMMON_SOURCE})
148 add_dependencies(freeldr_common bugcodes)
150 if(ARCH MATCHES i386 AND NOT MSVC)
151 list(APPEND FREELDR_BASE_SOURCE arch/i386/multiboot.S)
154 list(APPEND FREELDR_BASE_SOURCE
155 bootmgr.c # This file is compiled with custom definitions
161 add_executable(freeldr_pe ${FREELDR_BASE_SOURCE})
164 set_target_properties(freeldr_pe PROPERTIES LINK_FLAGS "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lnk")
166 set_target_properties(freeldr_pe PROPERTIES LINK_FLAGS "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION")
169 set_image_base(freeldr_pe 0x10000)
170 set_subsystem(freeldr_pe native)
171 set_entrypoint(freeldr_pe RealEntryPoint)
173 if(ARCH MATCHES i386)
174 target_link_libraries(freeldr_pe mini_hal)
177 target_link_libraries(freeldr_pe
185 add_pch(freeldr_pe include/freeldr.h)
186 add_dependencies(freeldr_pe asm)
189 ${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin
190 ${CMAKE_CURRENT_BINARY_DIR}/freeldr_pe.exe
191 ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys)
193 add_custom_target(freeldr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys)
195 # rename freeldr on livecd to setupldr.sys because isoboot.bin search for setupldr.sys
196 add_cd_file(TARGET freeldr FILE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys DESTINATION loader NO_CAB FOR bootcd regtest)
197 add_cd_file(TARGET freeldr FILE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys DESTINATION loader NO_CAB FOR livecd NAME_ON_CD setupldr.sys)
199 list(APPEND SETUPLDR_SOURCE
202 if(ARCH MATCHES i386 OR ARCH MATCHES amd64)
203 list(APPEND SETUPLDR_SOURCE windows/setupldr.c)
207 set_source_files_properties(${SETUPLDR_SOURCE} PROPERTIES COMPILE_FLAGS "-ffreestanding -fno-builtin -fno-inline -fno-zero-initialized-in-bss")
210 add_executable(setupldr_pe ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
213 set_target_properties(setupldr_pe PROPERTIES LINK_FLAGS "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lnk" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP")
215 set_target_properties(setupldr_pe PROPERTIES LINK_FLAGS "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP")
218 set_image_base(setupldr_pe 0x10000)
219 set_subsystem(setupldr_pe native)
220 set_entrypoint(setupldr_pe RealEntryPoint)
222 if(ARCH MATCHES i386)
223 target_link_libraries(setupldr_pe mini_hal)
226 target_link_libraries(setupldr_pe
234 add_dependencies(setupldr_pe asm)
237 ${CMAKE_CURRENT_BINARY_DIR}/frldr16.bin
238 ${CMAKE_CURRENT_BINARY_DIR}/setupldr_pe.exe
239 ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys)
241 add_custom_target(setupldr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys)
243 add_cd_file(TARGET setupldr FILE ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys DESTINATION loader NO_CAB FOR bootcd regtest)