From da23bdc56a9faa4530090b77b529b19d1423ba0a Mon Sep 17 00:00:00 2001 From: Max Wash Date: Sun, 22 Aug 2021 20:06:18 +0100 Subject: [PATCH] CRT files will now only be reassembled when necessary --- CMakeLists.txt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ae8ade2..a60181b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,9 +45,18 @@ file(GLOB photon_libc_crt ${CMAKE_CURRENT_SOURCE_DIR}/photon/libc/sys/${platform}/machine/${machine}/crt*.s) message(STATUS "CRT files: ${photon_libc_crt}") +foreach (crt_file ${photon_libc_crt}) + get_filename_component(crt_name ${crt_file} NAME_WE) + set(crt_path ${CMAKE_CURRENT_BINARY_DIR}/${crt_name}.o) + set(crt_bin ${crt_bin} ${crt_path}) + add_custom_command( + OUTPUT ${crt_path} + COMMAND ${CMAKE_C_COMPILER} -c -ffreestanding ${crt_file} + COMMENT "Assembling ${crt_bin}") +endforeach () + add_custom_target(crt ALL - DEPENDS ${photon_libc_crt} - COMMAND ${CMAKE_C_COMPILER} -c -ffreestanding ${photon_libc_crt} + DEPENDS ${crt_bin} COMMENT "Generating CRT files") file(GLOB platform_sources