aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md51
1 files changed, 51 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..2e9ab8f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,51 @@
+# About
+
+`mcu.cmake` is a CMake library/toolchain helping with integrating the chip vendors SDKs into your CMake-based builds.
+
+## Goals and considerations
+
+* Make microcontroller projects look and feel as much as possible as any other c/c++ project
+* Use as much as possible of the chip vendor's SDK
+* Make the CMake code as uniform as feasible between platforms, but allow for platform-specific options and features.
+
+# Recommended layout
+
+For single target builds:
+
+ * A top-level CMake file for your project that sets the current target.
+ * A copy of mcu.cmake under the project directory
+ * A single build directory
+
+
+ /CMakeLists.txt
+ /mcu.cmake/
+ /build/
+
+To build the project the developers would execute something like this:
+
+ git clone --recursive
+ mkdir build
+ cd build
+ cmake ..
+
+For builds that can build for different targets:
+
+ * A top-level CMake file with all general rules
+ * A copy of mcu.cmake under the project directory
+ * A per-configuration settings file that is used when creating the build directory
+ * A build directory per configuration
+
+
+ /CMakeLists.txt
+ /mcu.cmake/
+ /target-a.cmake
+ /target-b.cmake
+ /build-a
+ /build-b
+
+To build the project the developers would execute something like this:
+
+ git clone --recursive
+ mkdir build
+ cd build
+ cmake -C ../target-a.cmake ..