summaryrefslogtreecommitdiffstats
path: root/cmake/device_utils.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/device_utils.cmake')
-rw-r--r--cmake/device_utils.cmake15
1 files changed, 15 insertions, 0 deletions
diff --git a/cmake/device_utils.cmake b/cmake/device_utils.cmake
new file mode 100644
index 0000000..5309f5c
--- /dev/null
+++ b/cmake/device_utils.cmake
@@ -0,0 +1,15 @@
+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 ()