mirror of
https://github.com/zap-proto/lua.git
synced 2026-10-30 15:04:38 +00:00
Rename the Cap'n Proto Lua port to ZAP, brand-neutral throughout: - capnp.lua -> zap.lua, capnp/ -> zap/, *.capnp -> *.zap, compiler bins capnpc-* -> zapc-*, schema/handwritten modules -> *_zap.lua. Zero capnp/Cap'n Proto leftovers in zap-native source/build (upstream-fork Kenton Varda copyright headers in proto/c++.zap and bin/schema.zap stay). Generated-code header and doc links point at github.com/zap-proto/lua and zap-proto.io. Tests now run with no extra install: - Vendor the lunitx test framework (Michael Roth / Doug Currie, MIT) under vendor/ (lunit, lunit.console, lunitx, lunitx.atexit). Its __gc atexit hook drives each test file under LuaJIT and exits nonzero on any failure. - tests/run_tests.sh and test.sh are self-contained (set LUA_PATH incl vendor/), generate proto/example_zap.lua via the `zap` compiler when present, and skip 01/10 with a clear note (never a false pass) when it is absent. 02-util and 03-compile are pure-Lua and always run. - Verified under LuaJIT 2.1: 01(20) + 02(7) + 03(1) + 10(31) = 59 tests pass, 0 failed; runner returns nonzero on an injected failure. Decouple optional cjson so the runtime/compiler load under a bare LuaJIT: - zap/compile.lua loads cjson lazily and only for debug logging (guarded by the debug flag); bin/zapc-llua makes the schema JSON dump optional. Rockspec: bump lua-zap to 0.1.3-4, declare lua-cjson >= 2.1.0, and install the vendored lunitx modules. .gitignore: scope the rockspec-pack ignore to repo root so rockspec/ specs are tracked; ignore the `dump` test artifact. TODO trimmed to the genuinely remaining items (AnyPointer set/decode, packed serialization, schema_zap regeneration, multi-file compile, perf).
76 lines
2.2 KiB
Makefile
76 lines
2.2 KiB
Makefile
VERSION:=0.1.3-2
|
|
CXXFLAGS:=-std=gnu++11 -g -Iproto -I/usr/local/include
|
|
LDFLAGS:=-L/usr/local/lib -lzap -lkj -pthread
|
|
ZAP_TEST:=../zap_test
|
|
PWD:=$(shell pwd)
|
|
#CXX:=g++-4.7
|
|
|
|
export PATH:=bin:$(PATH)
|
|
export LUA_PATH:=$(PWD)/?.lua;$(PWD)/proto/?.lua;$(PWD)/lua/?.lua;$(PWD)/proto/?.lua;$(PWD)/tests/?.lua;$(PWD)/$(ZAP_TEST)/?.lua;$(LUA_PATH);;
|
|
export VERBOSE
|
|
|
|
compiled: proto/example.zap proto/enums.zap
|
|
zap compile -oc++ $+
|
|
|
|
test.schema.txt: proto/enums.zap proto/example.zap
|
|
zap compile -oecho $+ > /tmp/zap.bin
|
|
zap decode proto/schema.zap CodeGeneratorRequest > $@ < /tmp/zap.bin
|
|
|
|
cpp/example_zap.o: proto/example.zap.c++ compiled
|
|
$(CXX) -c $(CXXFLAGS) $< -o $@
|
|
|
|
cpp/enums_zap.o: proto/enums.zap.c++ compiled
|
|
$(CXX) -c $(CXXFLAGS) $< -o $@
|
|
|
|
cpp/main.o: cpp/main.c++ compiled
|
|
$(CXX) -c $(CXXFLAGS) $< -o $@
|
|
|
|
cpp/main: cpp/main.o cpp/example_zap.o cpp/enums_zap.o
|
|
$(CXX) $(CXXFLAGS) -o $@ $+ $(LDFLAGS)
|
|
|
|
proto/example_zap.lua: proto/example.zap proto/enums.zap proto/struct.zap proto/lua.zap
|
|
zap compile -obin/zapc-lua $+
|
|
|
|
test: clean proto/example_zap.lua
|
|
tests/run_tests.sh
|
|
|
|
test1:
|
|
zap compile -olua $(ZAP_TEST)/test.zap ../zap/c++/src/zap/c++.zap
|
|
$(MAKE) -C $(ZAP_TEST) ZAP_TEST_APP=`pwd`/bin/lua-zap-test
|
|
|
|
all: cpp/main
|
|
|
|
clean:
|
|
-rm proto/example.zap.c++ proto/example.zap.h cpp/*.o cpp/main test.schema.lua proto/example_zap.lua a.data c.data test.schema.txt *.data
|
|
|
|
tag_and_pack:
|
|
ifeq ($(shell git tag --sort=version:refname|tail -n 1), v$(VERSION))
|
|
@echo "Need to \"make version\" first"
|
|
@exit 1
|
|
endif
|
|
@echo "Add git tag v$(VERSION)?"
|
|
@read -r FOO
|
|
git tag -f v$(VERSION)
|
|
@echo "Push tags?"
|
|
@read -r FOO
|
|
git push --tags
|
|
@echo "Build package?"
|
|
@read -r FOO
|
|
cp lua-zap.rockspec lua-zap-$(VERSION).rockspec
|
|
luarocks pack lua-zap-$(VERSION).rockspec
|
|
|
|
version:
|
|
@echo "Old version is \"$(VERSION)\""
|
|
@echo "Enter new version: "
|
|
@# The use of variable "new_version" ($$new_version) should be in the same line as where it gets its value
|
|
@read new_version; perl -pi -e "s/$(VERSION)/$$new_version/" Makefile bin/zapc-lua lua-zap.rockspec
|
|
git add Makefile bin/zapc-lua lua-zap.rockspec
|
|
git commit -m 'Bump version number'
|
|
|
|
release: tag_and_pack
|
|
|
|
release_clean:
|
|
-rm -f lua-zap-*.rockspec *.rock
|
|
|
|
.PHONY: all clean test release
|