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
40 elseif(ARCH MATCHES amd64)
41 list(APPEND FREELDR_BASE64K_SOURCE
49 set_source_files_properties(${FREELDR_BASE64K_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_")
51 include_directories(${REACTOS_SOURCE_DIR}/lib/cmlib)
53 list(APPEND FREELDR_BASE_SOURCE
105 if(ARCH MATCHES i386)
106 list(APPEND FREELDR_BASE_SOURCE
111 set_source_files_properties(${FREELDR_BASE_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_;_BLDR_;_NTSYSTEM_")
113 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs)
114 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/elf)
116 if(ARCH MATCHES i386)
117 list(APPEND FREELDR_ARCH_SOURCE
146 arch/i386/xboxvideo.c
147 windows/i386/ntsetup.c
148 windows/i386/wlmemory.c)
153 set_source_files_properties(${FREELDR_ARCH_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_;_BLDR_;_NTSYSTEM_")
154 add_library(freeldr_arch ${FREELDR_ARCH_SOURCE})
156 list(APPEND FREELDR_SOURCE
158 ${FREELDR_STARTUP_SOURCE}
159 ${FREELDR_BASE64K_SOURCE}
160 ${FREELDR_BASE_SOURCE}
163 add_library(freeldr SHARED
164 ${CMAKE_CURRENT_BINARY_DIR}/freeldr_freeldr.h.gch
168 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")
169 set_image_base(freeldr 0x8000)
171 set_target_properties(freeldr PROPERTIES LINK_FLAGS "/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")
172 set_image_base(freeldr 0x10000)
175 set_subsystem(freeldr native)
176 set_entrypoint(freeldr mainCRTStartup)
178 if(ARCH MATCHES i386)
179 target_link_libraries(freeldr mini_hal)
182 target_link_libraries(freeldr
190 add_pch(freeldr ${CMAKE_CURRENT_SOURCE_DIR}/include/freeldr.h ${FREELDR_SOURCE})
191 add_dependencies(freeldr asm)
193 list(APPEND SETUPLDR_MAIN_SOURCE
198 if(ARCH MATCHES i386 OR ARCH MATCHES amd64)
199 list(APPEND SETUPLDR_MAIN_SOURCE windows/setupldr2.c)
202 set_source_files_properties(${SETUPLDR_MAIN_SOURCE} PROPERTIES COMPILE_FLAGS "-ffreestanding -fno-builtin -fno-inline -fno-zero-initialized-in-bss")
204 list(APPEND SETUPLDR_SOURCE
205 ${FREELDR_STARTUP_SOURCE}
206 ${FREELDR_BASE64K_SOURCE}
207 ${FREELDR_BASE_SOURCE}
208 ${SETUPLDR_MAIN_SOURCE})
210 add_library(setupldr SHARED ${SETUPLDR_SOURCE})
213 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")
214 set_image_base(setupldr 0x8000)
216 set_target_properties(setupldr PROPERTIES LINK_FLAGS "/DRIVER /SECTION:.text,ERWP,ALIGN=0x1000" SUFFIX ".sys" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP")
219 set_subsystem(setupldr native)
220 set_entrypoint(setupldr mainCRTStartup)
222 if(ARCH MATCHES i386)
223 target_link_libraries(setupldr mini_hal)
226 target_link_libraries(setupldr
234 add_dependencies(setupldr asm)
237 add_minicd_target(setupldr loader setupldr.sys)
238 add_minicd_target(freeldr loader freeldr.sys)
239 add_livecd_target(setupldr loader)