mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 15:52:57 +00:00
[FREELDR/SETUPLDR]
* Leverage the object library option provided by CMake 2.8.8+ which will speed up the build even further. * These wrapping conditions will go away as soon as we ship the new BE. svn path=/trunk/; revision=56997
This commit is contained in:
parent
3fb00ba84a
commit
0113c5402c
1 changed files with 34 additions and 36 deletions
|
@ -150,8 +150,12 @@ else()
|
||||||
#TBD
|
#TBD
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(freeldr_common ${FREELDR_COMMON_SOURCE})
|
if(CMAKE_VERSION VERSION_GREATER 2.8.7)
|
||||||
add_dependencies(freeldr_common bugcodes)
|
add_library(freeldr_common OBJECT ${FREELDR_COMMON_SOURCE})
|
||||||
|
else()
|
||||||
|
add_library(freeldr_common ${FREELDR_COMMON_SOURCE})
|
||||||
|
add_dependencies(freeldr_common bugcodes)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(ARCH MATCHES i386 AND NOT MSVC)
|
if(ARCH MATCHES i386 AND NOT MSVC)
|
||||||
list(APPEND FREELDR_BASE_SOURCE arch/i386/multiboot.S)
|
list(APPEND FREELDR_BASE_SOURCE arch/i386/multiboot.S)
|
||||||
|
@ -162,12 +166,18 @@ list(APPEND FREELDR_BASE_SOURCE
|
||||||
freeldr.c
|
freeldr.c
|
||||||
rtl/libsupp.c)
|
rtl/libsupp.c)
|
||||||
|
|
||||||
if (NOT MSVC)
|
if(NOT MSVC)
|
||||||
list(APPEND FREELDR_BASE_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.def)
|
list(APPEND FREELDR_BASE_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.def)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(freeldr_pe SHARED ${FREELDR_BASE_SOURCE})
|
|
||||||
add_library(freeldr_pe_dbg SHARED EXCLUDE_FROM_ALL ${FREELDR_BASE_SOURCE})
|
if(CMAKE_VERSION VERSION_GREATER 2.8.7)
|
||||||
|
add_library(freeldr_pe SHARED $<TARGET_OBJECTS:freeldr_common> ${FREELDR_BASE_SOURCE})
|
||||||
|
add_library(freeldr_pe_dbg SHARED EXCLUDE_FROM_ALL $<TARGET_OBJECTS:freeldr_common> ${FREELDR_BASE_SOURCE})
|
||||||
|
else()
|
||||||
|
add_library(freeldr_pe SHARED ${FREELDR_BASE_SOURCE})
|
||||||
|
add_library(freeldr_pe_dbg SHARED EXCLUDE_FROM_ALL ${FREELDR_BASE_SOURCE})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT MSVC)
|
if(NOT MSVC)
|
||||||
add_target_link_flags(freeldr_pe "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
|
add_target_link_flags(freeldr_pe "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
|
||||||
|
@ -190,21 +200,13 @@ if(ARCH MATCHES i386)
|
||||||
target_link_libraries(freeldr_pe_dbg mini_hal)
|
target_link_libraries(freeldr_pe_dbg mini_hal)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(freeldr_pe
|
if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7)
|
||||||
freeldr_common
|
target_link_libraries(freeldr_pe freeldr_common)
|
||||||
cportlib
|
target_link_libraries(freeldr_pe_dbg freeldr_common)
|
||||||
rossym
|
endif()
|
||||||
cmlib
|
|
||||||
rtl
|
|
||||||
libcntpr)
|
|
||||||
|
|
||||||
target_link_libraries(freeldr_pe_dbg
|
target_link_libraries(freeldr_pe cportlib rossym cmlib rtl libcntpr)
|
||||||
freeldr_common
|
target_link_libraries(freeldr_pe_dbg cportlib rossym cmlib rtl libcntpr)
|
||||||
cportlib
|
|
||||||
rossym
|
|
||||||
cmlib
|
|
||||||
rtl
|
|
||||||
libcntpr)
|
|
||||||
|
|
||||||
# add_pch(freeldr_pe include/freeldr.h)
|
# add_pch(freeldr_pe include/freeldr.h)
|
||||||
|
|
||||||
|
@ -229,8 +231,13 @@ if(ARCH MATCHES i386 OR ARCH MATCHES amd64)
|
||||||
list(APPEND SETUPLDR_SOURCE windows/setupldr.c)
|
list(APPEND SETUPLDR_SOURCE windows/setupldr.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(setupldr_pe SHARED ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
|
if(CMAKE_VERSION VERSION_GREATER 2.8.7)
|
||||||
add_library(setupldr_pe_dbg SHARED EXCLUDE_FROM_ALL ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
|
add_library(setupldr_pe SHARED $<TARGET_OBJECTS:freeldr_common> ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
|
||||||
|
add_library(setupldr_pe_dbg SHARED EXCLUDE_FROM_ALL $<TARGET_OBJECTS:freeldr_common> ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
|
||||||
|
else()
|
||||||
|
add_library(setupldr_pe SHARED ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
|
||||||
|
add_library(setupldr_pe_dbg SHARED EXCLUDE_FROM_ALL ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT MSVC)
|
if(NOT MSVC)
|
||||||
add_target_link_flags(setupldr_pe "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
|
add_target_link_flags(setupldr_pe "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
|
||||||
|
@ -256,21 +263,13 @@ if(ARCH MATCHES i386)
|
||||||
target_link_libraries(setupldr_pe_dbg mini_hal)
|
target_link_libraries(setupldr_pe_dbg mini_hal)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(setupldr_pe
|
if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7)
|
||||||
freeldr_common
|
target_link_libraries(setupldr_pe freeldr_common)
|
||||||
cportlib
|
target_link_libraries(setupldr_pe_dbg freeldr_common)
|
||||||
rossym
|
endif()
|
||||||
cmlib
|
|
||||||
rtl
|
|
||||||
libcntpr)
|
|
||||||
|
|
||||||
target_link_libraries(setupldr_pe_dbg
|
target_link_libraries(setupldr_pe cportlib rossym cmlib rtl libcntpr)
|
||||||
freeldr_common
|
target_link_libraries(setupldr_pe_dbg cportlib rossym cmlib rtl libcntpr)
|
||||||
cportlib
|
|
||||||
rossym
|
|
||||||
cmlib
|
|
||||||
rtl
|
|
||||||
libcntpr)
|
|
||||||
|
|
||||||
add_dependencies(setupldr_pe asm)
|
add_dependencies(setupldr_pe asm)
|
||||||
add_dependencies(setupldr_pe_dbg asm)
|
add_dependencies(setupldr_pe_dbg asm)
|
||||||
|
@ -281,5 +280,4 @@ concatenate_files(
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys)
|
${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys)
|
||||||
|
|
||||||
add_custom_target(setupldr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys)
|
add_custom_target(setupldr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys)
|
||||||
|
|
||||||
add_cd_file(TARGET setupldr FILE ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys DESTINATION loader NO_CAB FOR bootcd regtest)
|
add_cd_file(TARGET setupldr FILE ${CMAKE_CURRENT_BINARY_DIR}/setupldr.sys DESTINATION loader NO_CAB FOR bootcd regtest)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue