summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorPete Johanson <peter@peterjohanson.com>2020-04-21 16:20:34 -0400
committerPete Johanson <peter@peterjohanson.com>2020-04-21 16:20:34 -0400
commit85c8be89dea8f7a00e8efb06d38e2b32f3459935 (patch)
treeb87dcac5eeba3f67fd2db7e43712043d82b9a607 /CMakeLists.txt
Initial work.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt40
1 files changed, 40 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..5827740
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Find Zephyr. This also loads Zephyr's build system.
+cmake_minimum_required(VERSION 3.13.1)
+find_package(Zephyr)
+
+get_filename_component(ZEPHYR_RUST ${CMAKE_CURRENT_SOURCE_DIR}/zephyr-rust ABSOLUTE)
+list(APPEND ZEPHYR_EXTRA_MODULES ${ZEPHYR_RUST})
+
+project(zmk)
+
+# Add your source file to the "app" target. This must come after
+# find_package(Zephyr) which defines the target.
+target_sources(app PRIVATE src/main.c)
+
+include(ExternalProject)
+
+# Add rust_example as a CMake target
+ExternalProject_Add(
+ zmk_crate
+ DOWNLOAD_COMMAND ""
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND cargo build --target thumbv7m-none-eabi COMMAND cargo build --release --target thumbv7m-none-eabi
+ BINARY_DIR "${CMAKE_SOURCE_DIR}/zmk"
+ INSTALL_COMMAND ""
+ BUILD_BYPRODUCTS "${CMAKE_SOURCE_DIR}/zmk/target/thumbv7m-none-eabi/release/libzmk.a"
+ LOG_BUILD ON)
+
+# Create a wrapper CMake library that our app can link with
+add_library(zmk_lib STATIC IMPORTED GLOBAL)
+add_dependencies(
+ zmk_lib
+ zmk_crate
+ )
+
+set_target_properties(zmk_lib PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/zmk/target/thumbv7m-none-eabi/release/libzmk.a)
+# target_link_libraries(zmk_lib
+# debug "${CMAKE_SOURCE_DIR}/target/debug/zmk.a"
+# optimized "${CMAKE_SOURCE_DIR}/target/release/zmk.a")
+
+target_link_libraries(app PUBLIC zmk_lib)
+