diff --git a/.gitignore b/.gitignore index 336fb8b..261d9bf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ build .zig-cache -zig-out \ No newline at end of file +zig-out +.cache \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index c31ab1e..dc05700 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,11 +39,14 @@ add_executable(blink blink.c ) +add_library(zig_library STATIC IMPORTED) +set_property(TARGET zig_library PROPERTY IMPORTED_LOCATION ../zig-out/lib/libpicow_zig.a) + # pull in common dependencies -target_link_libraries(blink pico_stdlib) +target_link_libraries(blink zig_library pico_stdlib) if (PICO_CYW43_SUPPORTED) - target_link_libraries(blink pico_cyw43_arch_none) + target_link_libraries(blink zig_library pico_cyw43_arch_none) endif() # create map/bin/hex file etc. diff --git a/blink.c b/blink.c index e588b0e..0bc59d6 100644 --- a/blink.c +++ b/blink.c @@ -5,6 +5,8 @@ */ #include "pico/stdlib.h" +#include +#include // Pico W devices use a GPIO on the WIFI chip for the LED, // so when building for Pico W, CYW43_WL_GPIO_LED_PIN will be defined @@ -41,13 +43,18 @@ void pico_set_led(bool led_on) { #endif } +extern int32_t add(int32_t a, int32_t b); + int main() { - int rc = pico_led_init(); - hard_assert(rc == PICO_OK); - while (true) { - pico_set_led(true); - sleep_ms(LED_DELAY_MS); - pico_set_led(false); - sleep_ms(LED_DELAY_MS); - } + stdio_init_all(); + printf("result from zig : %d\n", add(10, 31)); + return 0; + // int rc = pico_led_init(); + // hard_assert(rc == PICO_OK); + // while (true) { + // pico_set_led(true); + // sleep_ms(LED_DELAY_MS); + // pico_set_led(false); + // sleep_ms(LED_DELAY_MS); + // } } diff --git a/build.zig b/build.zig index f8530cb..ef21a73 100644 --- a/build.zig +++ b/build.zig @@ -40,7 +40,7 @@ pub fn build(b: *std.Build) void { // for actually invoking the compiler. const lib = b.addLibrary(.{ .linkage = .static, - .name = "blink", + .name = "picow_zig", .root_module = lib_mod, }); @@ -49,6 +49,10 @@ pub fn build(b: *std.Build) void { // running `zig build`). b.installArtifact(lib); + const ninja_build = b.addSystemCommand(&.{"/home/arkitu/.pico-sdk/ninja/v1.12.1/ninja", "-C", "./build"}); + ninja_build.setName("ninja : build c"); + + b.getInstallStep().dependOn(&ninja_build.step); // Creates a step for unit testing. This only builds the test executable // but does not run it. diff --git a/build.zig.zon b/build.zig.zon index 7113ed9..9823c06 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -6,7 +6,7 @@ // // It is redundant to include "zig" in this name because it is already // within the Zig package namespace. - .name = "blink", + .name = "picow_zig", // This is a [Semantic Version](https://semver.org/). // In a future version of Zig it will be used for package deduplication.