Add ability to produce linker map file
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 26s

This commit is contained in:
Rafal Kupiec 2024-01-02 10:49:51 +01:00
parent acacc3f2e8
commit 39208ac1cd
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
2 changed files with 18 additions and 8 deletions

View File

@ -88,14 +88,6 @@ function(set_install_target TARGET DESTINATION)
install(TARGETS ${TARGET} DESTINATION ${EXECTOS_BINARY_DIR}/output/binaries/${DESTINATION})
endfunction()
# This function enables or disables binary ordinals export for specified module
function(set_ordinals MODULE STATE)
if(NOT ${ARGC} EQUAL 2)
message(FATAL_ERROR "Invalid number of arguments passed to set_ordinals() function")
endif()
set_module_property(${MODULE} ENABLE_EXPORTS ${STATE})
endfunction()
# This function is responsible for compiling module SPEC file
function(set_specfile SPECFILE)
if(NOT ${ARGC} EQUAL 1)

View File

@ -80,6 +80,24 @@ function(set_imagebase MODULE IMAGEBASE)
add_module_linker_flags(${MODULE} "/BASE:${IMAGEBASE}")
endfunction()
# This function enables or disables map file generation for specified module
function(set_linker_map MODULE STATE)
if(NOT ${ARGC} EQUAL 2)
message(FATAL_ERROR "Invalid number of arguments passed to set_ordinals() function")
endif()
if(STATE STREQUAL "TRUE")
add_module_linker_flags(${MODULE} "/MAP:${CMAKE_CURRENT_BINARY_DIR}/${MODULE}.map")
endif()
endfunction()
# This function enables or disables binary ordinals export for specified module
function(set_ordinals MODULE STATE)
if(NOT ${ARGC} EQUAL 2)
message(FATAL_ERROR "Invalid number of arguments passed to set_ordinals() function")
endif()
set_module_property(${MODULE} ENABLE_EXPORTS ${STATE})
endfunction()
# This functions sets PE/COFF subsystem and XTOS version of the binary
function(set_subsystem MODULE SUBSYSTEM)
string(TOUPPER ${SUBSYSTEM} SUBSYSTEM)