# Builds the C++ example against the C ABI library built from ffi/usakey_ffi.
USAKEY_FFI ?= ../ffi/usakey_ffi
USAKEY_PROFILE ?= debug
LIB_DIR := $(USAKEY_FFI)/target/$(USAKEY_PROFILE)

CXXFLAGS ?= -std=c++17 -Wall -Wextra -Werror -O2
CPPFLAGS += -Iinclude -I$(USAKEY_FFI)/include
# The static library needs the platform libraries the Rust core links against.
LDLIBS += $(LIB_DIR)/libusakey_ffi.a -lpthread -ldl -lm -lcrypto

.PHONY: all test clean

all: build/activate

build/activate: examples/activate.cpp include/usakey.hpp $(LIB_DIR)/libusakey_ffi.a
	@mkdir -p build
	$(CXX) $(CXXFLAGS) $(CPPFLAGS) $< $(LDLIBS) -o $@

test: build/activate
	USAKEY_EXAMPLE_LICENSE_KEY=TEST-ONLY-CPP-LICENSE sh ../tools/run-example.sh ./build/activate

clean:
	rm -rf build
