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 "/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")
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)
203 set_source_files_properties(${SETUPLDR_MAIN_SOURCE} PROPERTIES COMPILE_FLAGS "-ffreestanding -fno-builtin -fno-inline -fno-zero-initialized-in-bss")
206 list(APPEND SETUPLDR_SOURCE
207 ${FREELDR_STARTUP_SOURCE}
208 ${FREELDR_BASE64K_SOURCE}
209 ${FREELDR_BASE_SOURCE}
210 ${SETUPLDR_MAIN_SOURCE})
212 add_library(setupldr SHARED ${SETUPLDR_SOURCE})
215 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")
216 set_image_base(setupldr 0x8000)
218 set_target_properties(setupldr PROPERTIES LINK_FLAGS "/DRIVER /SECTION:.text,ERWP,ALIGN=0x1000" SUFFIX ".sys" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP")
221 set_subsystem(setupldr native)
222 set_entrypoint(setupldr mainCRTStartup)
224 if(ARCH MATCHES i386)
225 target_link_libraries(setupldr mini_hal)
228 target_link_libraries(setupldr
236 add_dependencies(setupldr asm)
239 add_minicd_target(setupldr loader setupldr.sys)
240 add_minicd_target(freeldr loader freeldr.sys)
241 add_livecd_target(setupldr loader)