Address feedback
This commit is contained in:
parent
de698e64a3
commit
cbaf523b0e
3
Makefile
3
Makefile
|
@ -111,8 +111,9 @@ statusgo-ios: ##@cross-compile Build status-go for iOS
|
|||
@echo "iOS framework cross compilation done in build/bin/Statusgo.framework"
|
||||
|
||||
statusgo-library: ##@cross-compile Build status-go as static library for current platform
|
||||
## cmd/library/README.md explains the magic incantation behind this
|
||||
mkdir -p $(GOBIN)/statusgo-lib
|
||||
go run cmd/library/* > $(GOBIN)/statusgo-lib/main.go
|
||||
go run cmd/library/*.go > $(GOBIN)/statusgo-lib/main.go
|
||||
@echo "Building static library..."
|
||||
go build -buildmode=c-archive -o $(GOBIN)/libstatus.a $(BUILD_FLAGS) $(GOBIN)/statusgo-lib
|
||||
@echo "Static library built:"
|
||||
|
|
|
@ -52,6 +52,11 @@ pipeline {
|
|||
sh 'make setup-build'
|
||||
} } }
|
||||
|
||||
/* Sanity-check C bindings */
|
||||
stage('Sanity check bindings') { steps { dir(env.STATUS_PATH) {
|
||||
sh 'make statusgo-library'
|
||||
} } }
|
||||
|
||||
stage('Compress') { steps { dir(env.STATUS_PATH) {
|
||||
sh "zip -q -r ${dest}/${artifact} . -x *.git"
|
||||
} } }
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
### Library bindings
|
||||
|
||||
This unholy namespace generates C bindings for `mobile/`.
|
||||
It does so by parsing the go files, identify any public function in the namespace
|
||||
that is not a test file, and generate an equivalent function with the correct
|
||||
C signature, which will then just call the version in `mobile/`.
|
||||
|
||||
This method is ad-hoc and not bullet-proof, the main limitation is that only some
|
||||
types are supported for now, `C.int`, `*C.char` and `unsafer.Pointer`.
|
||||
Functions that do not use these types will be ignored.
|
||||
|
||||
The problem this sledgehammer solves is to have to keep in sync the two namespaces,
|
||||
which is fiddly and prone to error as they are modified by either teams.
|
|
@ -1,6 +1,8 @@
|
|||
package main
|
||||
|
||||
const prelude = `package main
|
||||
const prelude = `// Code generated by cmd/library to keep in sync with mobile. DO NOT EDIT.
|
||||
package main
|
||||
|
||||
// #include <stdlib.h>
|
||||
import "C"
|
||||
import "unsafe"
|
||||
|
|
Loading…
Reference in New Issue