generated from sirlilpanda/kicad-project-template-actionless
Added the zig_main project to software for zig based implementation of code for robot
This commit is contained in:
134
software/zig_main/imports/idf.zig
Normal file
134
software/zig_main/imports/idf.zig
Normal file
@@ -0,0 +1,134 @@
|
||||
pub const bl = @import("bootloader");
|
||||
pub const bt = switch (@hasDecl(sys, "CONFIG_BT_ENABLED")) {
|
||||
true => @import("bluetooth"),
|
||||
false => @compileError("bluetooth requires CONFIG_BT_ENABLED in sdkconfig"),
|
||||
};
|
||||
pub const nimble = if (@hasDecl(sys, "CONFIG_BT_NIMBLE_ENABLED"))
|
||||
@import("nimble")
|
||||
else
|
||||
@compileError(
|
||||
\\NimBLE not enabled. Enable via:
|
||||
\\ idf.py menuconfig → Component config → Bluetooth → Host → NimBLE
|
||||
\\Then run: idf.py reconfigure
|
||||
);
|
||||
pub const crc = @import("crc");
|
||||
pub const dsp = switch (@hasDecl(sys, "HAS_ESP_DSP")) {
|
||||
true => @import("dsp"),
|
||||
false => @compileError("requires: idf.py add-dependency espressif/esp-dsp"),
|
||||
};
|
||||
pub const err = @import("error");
|
||||
pub const gpio = @import("gpio");
|
||||
pub const heap = @import("heap");
|
||||
pub const http = @import("http");
|
||||
pub const i2c = @import("i2c");
|
||||
pub const i2s = @import("i2s");
|
||||
pub const led = switch (@hasDecl(sys, "HAS_LED_STRIP")) {
|
||||
true => @import("led"),
|
||||
false => @compileError("requires: idf.py add-dependency espressif/led_strip"),
|
||||
};
|
||||
pub const log = @import("log");
|
||||
pub const lwip = @import("lwip");
|
||||
pub const mqtt = @import("mqtt");
|
||||
pub const esp_now = @import("now");
|
||||
pub const phy = @import("phy");
|
||||
pub const pulse = @import("pulse");
|
||||
pub const esp_panic = @import("panic");
|
||||
pub const rtos = @import("rtos");
|
||||
pub const nvs = @import("nvs");
|
||||
pub const partition = @import("partition");
|
||||
pub const sleep = @import("sleep");
|
||||
pub const event = @import("event");
|
||||
pub const wdt = @import("wdt");
|
||||
pub const segger = @import("segger");
|
||||
pub const spi = @import("spi");
|
||||
pub const uart = @import("uart");
|
||||
pub const ver = @import("ver");
|
||||
pub const esp_hosted = switch (@hasDecl(sys, "HAS_ESP_HOSTED")) {
|
||||
true => @import("hosted"),
|
||||
false => @compileError("requires: idf.py add-dependency espressif/esp_hosted"),
|
||||
};
|
||||
pub const wifi_remote = switch (@hasDecl(sys, "HAS_ESP_WIFI_REMOTE")) {
|
||||
true => @import("wifi_remote"),
|
||||
false => @compileError("requires: idf.py add-dependency espressif/esp_wifi_remote"),
|
||||
};
|
||||
pub const timer = @import("timer");
|
||||
pub const ledc = @import("ledc");
|
||||
pub const twai = @import("twai");
|
||||
pub const pm = @import("pm");
|
||||
pub const pthread = @import("pthread");
|
||||
pub const matter = switch (@hasDecl(sys, "HAS_ESP_MATTER")) {
|
||||
true => @import("matter"),
|
||||
false => @compileError("requires: idf.py add-dependency espressif/esp_matter"),
|
||||
};
|
||||
pub const wifi = switch (currentTarget) {
|
||||
.esp32h2, .esp32h21, .esp32h4, .esp32p4 => @compileError("Wifi requires CONFIG_ESP_WIFI_ENABLED in sdkconfig"),
|
||||
else => @import("wifi"),
|
||||
};
|
||||
pub const sys = @import("sys");
|
||||
|
||||
const Device = enum {
|
||||
esp32,
|
||||
esp32s2,
|
||||
esp32s3,
|
||||
esp32s31,
|
||||
esp32c2,
|
||||
esp32c3,
|
||||
esp32c5,
|
||||
esp32c6,
|
||||
esp32c61,
|
||||
esp32h2,
|
||||
esp32h21,
|
||||
esp32h4,
|
||||
esp32p4,
|
||||
};
|
||||
|
||||
// Convert compile-time target string to enum
|
||||
pub const currentTarget = blk: {
|
||||
const target_str = sys.CONFIG_IDF_TARGET;
|
||||
break :blk @import("std").meta.stringToEnum(Device, target_str) orelse {
|
||||
@compileError("Unknown ESP32 device target: " ++ target_str);
|
||||
};
|
||||
};
|
||||
|
||||
// Check all imports
|
||||
comptime {
|
||||
_ = sys;
|
||||
_ = bl;
|
||||
if (@hasDecl(sys, "CONFIG_BT_ENABLED")) _ = bt;
|
||||
_ = crc;
|
||||
_ = err;
|
||||
_ = gpio;
|
||||
_ = heap;
|
||||
_ = http;
|
||||
_ = i2c;
|
||||
_ = i2s;
|
||||
_ = log;
|
||||
_ = lwip;
|
||||
_ = mqtt;
|
||||
if (@hasDecl(sys, "HAS_ESP_HOSTED")) _ = esp_hosted;
|
||||
_ = esp_now;
|
||||
_ = phy;
|
||||
_ = pulse;
|
||||
_ = esp_panic;
|
||||
_ = rtos;
|
||||
if (@hasDecl(sys, "CONFIG_BT_NIMBLE_ENABLED")) _ = nimble;
|
||||
_ = nvs;
|
||||
_ = partition;
|
||||
_ = sleep;
|
||||
_ = event;
|
||||
_ = wdt;
|
||||
_ = segger;
|
||||
_ = spi;
|
||||
_ = uart;
|
||||
_ = ver;
|
||||
if (@hasDecl(sys, "CONFIG_ESP_WIFI_ENABLED")) _ = wifi;
|
||||
if (@hasDecl(sys, "HAS_ESP_WIFI_REMOTE")) _ = wifi_remote;
|
||||
if (@hasDecl(sys, "HAS_ESP_DSP")) _ = dsp;
|
||||
if (@hasDecl(sys, "HAS_LED_STRIP")) _ = led;
|
||||
_ = timer;
|
||||
_ = ledc;
|
||||
_ = twai;
|
||||
_ = pm;
|
||||
_ = pthread;
|
||||
if (@hasDecl(sys, "HAS_ESP_MATTER")) _ = matter;
|
||||
}
|
||||
Reference in New Issue
Block a user