diff --git a/sdk/cmake/functions.cmake b/sdk/cmake/functions.cmake index 93a710f..8555522 100644 --- a/sdk/cmake/functions.cmake +++ b/sdk/cmake/functions.cmake @@ -89,13 +89,13 @@ function(set_install_target TARGET DESTINATION) endfunction() # This function is responsible for compiling module SPEC file -function(set_specfile SPECFILE) - if(NOT ${ARGC} EQUAL 1) +function(set_specfile SPECFILE EXPORTNAME) + if(NOT ${ARGC} EQUAL 2) message(FATAL_ERROR "Invalid number of arguments passed to set_specfile() function") endif() get_filename_component(FILENAME ${SPECFILE} NAME_WE) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILENAME}.def ${CMAKE_CURRENT_BINARY_DIR}/${FILENAME}.c - COMMAND ${CMAKE_SPEC_COMPILER} -a=${ARCH} -d=${CMAKE_CURRENT_BINARY_DIR}/${FILENAME}.def -s=${CMAKE_CURRENT_BINARY_DIR}/${FILENAME}.c ${CMAKE_CURRENT_SOURCE_DIR}/${SPECFILE}) + COMMAND ${CMAKE_SPEC_COMPILER} -a=${ARCH} -n=${EXPORTNAME} -d=${CMAKE_CURRENT_BINARY_DIR}/${FILENAME}.def -s=${CMAKE_CURRENT_BINARY_DIR}/${FILENAME}.c ${CMAKE_CURRENT_SOURCE_DIR}/${SPECFILE}) endfunction() # This function sets the the qemu disk image size (in MiB) diff --git a/xtoskrnl/CMakeLists.txt b/xtoskrnl/CMakeLists.txt index eaa3cdb..33aab3b 100644 --- a/xtoskrnl/CMakeLists.txt +++ b/xtoskrnl/CMakeLists.txt @@ -51,7 +51,7 @@ list(APPEND XTOSKRNL_SOURCE ${XTOSKRNL_SOURCE_DIR}/rtl/${ARCH}/exsup.c) # Set module definition SPEC file -set_specfile(xtoskrnl.spec) +set_specfile(xtoskrnl.spec xtoskrnl.exe) # Link static XTOS library add_library(libxtos ${XTOSKRNL_SOURCE}) @@ -64,7 +64,8 @@ add_executable(xtoskrnl # Add linker libraries target_link_libraries(xtoskrnl) -# Set instal target +# Set proper binary name and install target +set_target_properties(xtoskrnl PROPERTIES SUFFIX .exe) set_install_target(xtoskrnl "exectos/boot") # Set kernel entrypoint, imagebase address, ordinals and subsystem