cmake_minimum_required(VERSION 3.31) project(libmagenta C ASM) file(GLOB headers ${CMAKE_CURRENT_SOURCE_DIR}/include/magenta/*.h ${CMAKE_CURRENT_SOURCE_DIR}/include-user/magenta/*.h) file(GLOB asm_sources ${CMAKE_CURRENT_SOURCE_DIR}/arch/${CMAKE_SYSTEM_PROCESSOR}/*.S) set(public_include_dirs ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include-user) add_library(libmagenta STATIC ${asm_sources} ${headers}) target_include_directories(libmagenta PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include-user) target_compile_options(libmagenta PRIVATE -ffreestanding -nostdlib) set_target_properties(libmagenta PROPERTIES PREFIX "") install(TARGETS libmagenta) install(FILES ${headers} DESTINATION include/magenta)