include(utils) function (create_device_target arch_flags device_defines include_dirs linker_script system_code) add_library(device OBJECT) target_sources(device PRIVATE "${system_code}") target_compile_options(device PUBLIC "${arch_flags}") target_compile_definitions(device PUBLIC "${device_defines}") target_include_directories(device PRIVATE "${include_dirs}") target_include_directories(device PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/device") target_link_options(device INTERFACE "${arch_flags}") target_linker_script(device INTERFACE "${linker_script}") endfunction ()