mirror of
https://github.com/gorules/zen.git
synced 2026-10-06 00:02:31 +00:00
80 lines
2.5 KiB
Makefile
80 lines
2.5 KiB
Makefile
TARGET_DIR ?= $(shell cargo metadata --format-version=1 --no-deps 2>/dev/null | sed -n 's/.*"target_directory":"\([^"]*\)".*/\1/p')
|
|
|
|
UNAME_S := $(shell uname -s)
|
|
UNAME_M := $(shell uname -m)
|
|
ifeq ($(UNAME_S),Darwin)
|
|
LIB_NAME := libzen_uniffi.dylib
|
|
ifeq ($(UNAME_M),arm64)
|
|
PLATFORM_DIR := darwin-aarch64
|
|
else
|
|
PLATFORM_DIR := darwin-x86-64
|
|
endif
|
|
else
|
|
LIB_NAME := libzen_uniffi.so
|
|
ifeq ($(UNAME_M),aarch64)
|
|
PLATFORM_DIR := linux-aarch64
|
|
else
|
|
PLATFORM_DIR := linux-x86-64
|
|
endif
|
|
endif
|
|
|
|
DEV_DIR := $(shell xcode-select -p 2>/dev/null)
|
|
ifeq ($(DEV_DIR),/Library/Developer/CommandLineTools)
|
|
TESTING_FRAMEWORKS := $(DEV_DIR)/Library/Developer/Frameworks
|
|
SWIFT_TEST_FLAGS := -Xswiftc -F$(TESTING_FRAMEWORKS) \
|
|
-Xlinker -F$(TESTING_FRAMEWORKS) \
|
|
-Xlinker -rpath -Xlinker $(TESTING_FRAMEWORKS) \
|
|
-Xlinker -rpath -Xlinker $(DEV_DIR)/Library/Developer/usr/lib
|
|
endif
|
|
|
|
build:
|
|
cargo build --lib --release
|
|
@mkdir -p build/generated/resources/$(PLATFORM_DIR)
|
|
cp -f $(TARGET_DIR)/release/$(LIB_NAME) build/generated/resources/$(LIB_NAME)
|
|
cp -f $(TARGET_DIR)/release/$(LIB_NAME) build/generated/resources/$(PLATFORM_DIR)/$(LIB_NAME)
|
|
|
|
generate-java:
|
|
uniffi-bindgen-java generate \
|
|
--library build/generated/resources/$(LIB_NAME) \
|
|
--out-dir build/generated/java
|
|
|
|
generate-kotlin:
|
|
cargo run --bin uniffi-bindgen generate \
|
|
--library build/generated/resources/$(LIB_NAME) \
|
|
--language kotlin \
|
|
--out-dir build/generated/kotlin
|
|
|
|
generate-csharp:
|
|
uniffi-bindgen-cs \
|
|
--library build/generated/resources/$(LIB_NAME) \
|
|
--config uniffi.toml \
|
|
--out-dir build/generated/csharp
|
|
|
|
generate-swift:
|
|
cargo run --bin uniffi-bindgen generate \
|
|
--library build/generated/resources/$(LIB_NAME) \
|
|
--language swift \
|
|
--out-dir build/generated/swift
|
|
|
|
test-java:
|
|
./gradlew testJava
|
|
|
|
test-kotlin:
|
|
./gradlew testKotlin
|
|
|
|
test-csharp:
|
|
dotnet test tests/csharp
|
|
|
|
test-swift:
|
|
@mkdir -p tests/swift/Sources/ZenUniffi tests/swift/Sources/zen_uniffiFFI
|
|
cp -f build/generated/swift/zen_uniffi.swift tests/swift/Sources/ZenUniffi/
|
|
cp -f build/generated/swift/zen_uniffiFFI.h tests/swift/Sources/zen_uniffiFFI/
|
|
cp -f build/generated/swift/zen_uniffiFFI.modulemap tests/swift/Sources/zen_uniffiFFI/module.modulemap
|
|
cd tests/swift && swift test $(SWIFT_TEST_FLAGS) -Xlinker $(abspath $(TARGET_DIR))/release/libzen_uniffi.a
|
|
|
|
all: build generate-java generate-kotlin generate-csharp generate-swift
|
|
|
|
test: test-java test-kotlin test-csharp test-swift
|
|
|
|
.PHONY: all build generate-java generate-kotlin generate-csharp generate-swift test test-java test-kotlin test-csharp test-swift
|