From b40db0d1dd0e4973c734a6cc8647afe2078bec29 Mon Sep 17 00:00:00 2001 From: Rafal Kupiec Date: Mon, 29 Sep 2025 20:05:14 +0200 Subject: [PATCH] Cleanup cmake functions --- sdk/cmake/functions.cmake | 41 ++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/sdk/cmake/functions.cmake b/sdk/cmake/functions.cmake index 1b29f4f..ff30f56 100644 --- a/sdk/cmake/functions.cmake +++ b/sdk/cmake/functions.cmake @@ -87,18 +87,13 @@ function(compile_bootsector NAME SOURCE BASEADDR ENTRYPOINT) ) endfunction() -# This function sets a property for specified module -function(set_module_property MODULE PROPERTY FLAGS) - if(NOT ${ARGC} EQUAL 3) - message(FATAL_ERROR "Invalid number of arguments passwd to add_module_property() function") - endif() - get_target_property(VAL ${MODULE} ${PROPERTY}) - if(VAL) - set(VAL "${VAL} ${FLAGS}") - else() - set(VAL "${FLAGS}") - endif() - set_property(TARGET ${MODULE} PROPERTY ${PROPERTY} ${VAL}) +# This function sets the the qemu disk image size (in MiB) +function(set_disk_image_size SIZE) + MATH(EXPR DISK_BLOCKS ${SIZE}*1024*1024/512) + MATH(EXPR PART_BLOCKS ${DISK_BLOCKS}-2048) + set(PROJECT_DISK_IMAGE_SIZE ${SIZE} CACHE INTERNAL "PROJECT_DISK_IMAGE_SIZE") + set(PROJECT_DISK_IMAGE_BLOCKS ${DISK_BLOCKS} CACHE INTERNAL "PROJECT_DISK_IMAGE_BLOCKS") + set(PROJECT_PART_IMAGE_BLOCKS ${PART_BLOCKS} CACHE INTERNAL "PROJECT_PART_IMAGE_BLOCKS") endfunction() # This function installs specified directory recursively under destination directory @@ -117,6 +112,20 @@ function(set_install_target TARGET DESTINATION) install(TARGETS ${TARGET} DESTINATION ${EXECTOS_BINARY_DIR}/output/binaries/${DESTINATION}) endfunction() +# This function sets a property for specified module +function(set_module_property MODULE PROPERTY FLAGS) + if(NOT ${ARGC} EQUAL 3) + message(FATAL_ERROR "Invalid number of arguments passwd to add_module_property() function") + endif() + get_target_property(VAL ${MODULE} ${PROPERTY}) + if(VAL) + set(VAL "${VAL} ${FLAGS}") + else() + set(VAL "${FLAGS}") + endif() + set_property(TARGET ${MODULE} PROPERTY ${PROPERTY} ${VAL}) +endfunction() + function(set_sdk_target FILENAME DESTINATION) install(DIRECTORY ${FILENAME} DESTINATION ${EXECTOS_BINARY_DIR}/output/sdk/${DESTINATION}) endfunction() @@ -130,11 +139,3 @@ function(set_specfile SPECFILE EXPORTNAME) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILENAME}.def ${CMAKE_CURRENT_BINARY_DIR}/${FILENAME}.c 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) -function(set_disk_image_size SIZE) - MATH(EXPR DISK_BLOCKS ${SIZE}*1024*1024/512) - MATH(EXPR PART_BLOCKS ${DISK_BLOCKS}-2048) - set(PROJECT_DISK_IMAGE_BLOCKS ${DISK_BLOCKS} CACHE INTERNAL "PROJECT_DISK_IMAGE_BLOCKS") - set(PROJECT_PART_IMAGE_BLOCKS ${PART_BLOCKS} CACHE INTERNAL "PROJECT_PART_IMAGE_BLOCKS") -endfunction()