diff --git a/BAN/CMakeLists.txt b/BAN/CMakeLists.txt index 49e239ec3d..6fd2afc6b1 100644 --- a/BAN/CMakeLists.txt +++ b/BAN/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.26) project(BAN CXX) add_custom_target(ban-headers - COMMAND cp -r ${CMAKE_CURRENT_SOURCE_DIR}/include/* ${BANAN_INCLUDE} + COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include ${BANAN_INCLUDE} DEPENDS sysroot ) diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt index 2fd9cb3def..667406bd12 100644 --- a/kernel/CMakeLists.txt +++ b/kernel/CMakeLists.txt @@ -97,6 +97,7 @@ set(KERNEL_SOURCES ) add_executable(kernel ${KERNEL_SOURCES}) +add_dependencies(kernel headers) target_compile_definitions(kernel PUBLIC __is_kernel) target_compile_definitions(kernel PUBLIC __arch=${BANAN_ARCH}) @@ -126,13 +127,12 @@ add_custom_target(crt0 ) add_custom_target(kernel-headers - COMMAND cp -r ${CMAKE_CURRENT_SOURCE_DIR}/include/* ${BANAN_INCLUDE}/ + COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include ${BANAN_INCLUDE} DEPENDS sysroot ) add_custom_target(kernel-install COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/kernel ${BANAN_BOOT}/banan-os.kernel - DEPENDS kernel-headers DEPENDS kernel ) diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt index 1ce5ef81e1..698e24769d 100644 --- a/libc/CMakeLists.txt +++ b/libc/CMakeLists.txt @@ -11,12 +11,12 @@ set(LIBC_SOURCES ) add_custom_target(libc-headers - COMMAND cp -r ${CMAKE_CURRENT_SOURCE_DIR}/include/* ${BANAN_INCLUDE} + COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include ${BANAN_INCLUDE} DEPENDS sysroot ) add_library(libc ${LIBC_SOURCES}) -add_dependencies(libc crt0) +add_dependencies(libc headers crt0) add_custom_target(libc-install COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/libc.a ${BANAN_LIB}/