2 include_directories(BEFORE include)
3 include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include)
6 if(SARCH MATCHES omap-zoom2)
7 add_definitions(-D_ZOOM2_)
13 list(APPEND FREELDR_BASE64K_SOURCE
16 list(APPEND FREELDR_STARTUP_SOURCE
20 elseif(ARCH MATCHES amd64)
21 list(APPEND FREELDR_STARTUP_SOURCE
28 list(APPEND FREELDR_BASE64K_SOURCE
41 elseif(ARCH MATCHES amd64)
42 list(APPEND FREELDR_BASE64K_SOURCE
50 set_source_files_properties(${FREELDR_BASE64K_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_")
52 include_directories(${REACTOS_SOURCE_DIR}/lib/cmlib)
54 list(APPEND FREELDR_BASE_SOURCE
107 if(ARCH MATCHES i386)
108 list(APPEND FREELDR_BASE_SOURCE
113 set_source_files_properties(${FREELDR_BASE_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_;_BLDR_;_NTSYSTEM_")
115 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs)
116 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/elf)
118 if(ARCH MATCHES i386)
119 list(APPEND FREELDR_ARCH_SOURCE
148 arch/i386/xboxvideo.c
149 windows/i386/ntsetup.c
150 windows/i386/wlmemory.c)
155 set_source_files_properties(${FREELDR_ARCH_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_;_BLDR_;_NTSYSTEM_")
156 add_library(freeldr_arch ${FREELDR_ARCH_SOURCE})
158 list(APPEND FREELDR_SOURCE
160 ${FREELDR_STARTUP_SOURCE}
161 ${FREELDR_BASE64K_SOURCE}
162 ${FREELDR_BASE_SOURCE}
165 add_library(freeldr SHARED
166 ${CMAKE_CURRENT_BINARY_DIR}/freeldr_freeldr.h.gch
170 set_target_properties(freeldr PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lnk" SUFFIX ".sys")
171 set_image_base(freeldr 0x8000)
173 set_target_properties(freeldr 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" SUFFIX ".sys")
174 set_image_base(freeldr 0x10000)
177 set_subsystem(freeldr native)
178 set_entrypoint(freeldr mainCRTStartup)
180 if(ARCH MATCHES i386)
181 target_link_libraries(freeldr mini_hal)
184 target_link_libraries(freeldr
192 add_pch(freeldr ${CMAKE_CURRENT_SOURCE_DIR}/include/freeldr.h ${FREELDR_SOURCE})
193 add_dependencies(freeldr asm)
195 list(APPEND SETUPLDR_MAIN_SOURCE
200 if(ARCH MATCHES i386 OR ARCH MATCHES amd64)
201 list(APPEND SETUPLDR_MAIN_SOURCE windows/setupldr2.c)
205 set_source_files_properties(${SETUPLDR_MAIN_SOURCE} PROPERTIES COMPILE_FLAGS "-ffreestanding -fno-builtin -fno-inline -fno-zero-initialized-in-bss")
208 list(APPEND SETUPLDR_SOURCE
209 ${FREELDR_STARTUP_SOURCE}
210 ${FREELDR_BASE64K_SOURCE}
211 ${FREELDR_BASE_SOURCE}
212 ${SETUPLDR_MAIN_SOURCE})
214 add_library(setupldr SHARED ${SETUPLDR_SOURCE})
217 set_target_properties(setupldr PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lnk" SUFFIX ".sys" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP")
218 set_image_base(setupldr 0x8000)
220 set_target_properties(setupldr PROPERTIES LINK_FLAGS "/DRIVER /SECTION:.text,ERWP,ALIGN=0x1000" SUFFIX ".sys" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP")
223 set_subsystem(setupldr native)
224 set_entrypoint(setupldr mainCRTStartup)
226 if(ARCH MATCHES i386)
227 target_link_libraries(setupldr mini_hal)
230 target_link_libraries(setupldr
238 add_dependencies(setupldr asm)
241 add_minicd_target(setupldr loader setupldr.sys)
242 add_minicd_target(freeldr loader freeldr.sys)
243 add_livecd_target(setupldr loader)