1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-11 18:20:33 +09:00

linux build support

This commit is contained in:
Sergey Cherepanov 2019-10-23 20:01:47 +03:00
parent 8677748f5a
commit 25391ebea5
No known key found for this signature in database
GPG key ID: 085319C64294F576
3 changed files with 39 additions and 14 deletions

View file

@ -86,7 +86,7 @@ jobs:
COMMIT=$(echo $CIRCLE_SHA1 | cut -c -7)
DATE=$(date --iso-8601=seconds)
FLAGS="-X github.com/anytypeio/go-anytype-middleware/common.GitSummary=${GIT_SUMMARY} -X github.com/anytypeio/go-anytype-middleware/common.BuildDate=${DATE} -X github.com/anytypeio/go-anytype-middleware/common.GitCommit=${COMMIT} -X github.com/anytypeio/go-anytype-middleware/common.GitBranch=${CIRCLE_BRANCH} -X github.com/anytypeio/go-anytype-middleware/common.GitState=clean"
gox -ldflags="-w $FLAGS" -buildmode=c-archive -osarch="linux/amd64" -output="{{.OS}}-{{.Arch}}.so" github.com/anytypeio/go-anytype-middleware/lib/clib
gox -ldflags="-w $FLAGS" -buildmode=c-archive -osarch="linux/amd64" -output="{{.OS}}-{{.Arch}}.a" github.com/anytypeio/go-anytype-middleware/lib/clib
- save_cache:
key: go-pkg-v2-{{ arch }}-{{ checksum "go.sum" }}
paths:
@ -109,12 +109,32 @@ jobs:
for i in "${arr[@]}"
do
OSARCH=${i%.*}
cp ../${i}.so lib.so
cp ../${i}.a lib.a
cp ../${i}.h lib.h
tar -czvf lib_${VERSION}_${OSARCH}.tar.gz lib.so lib.h protos
tar -czvf lib_${VERSION}_${OSARCH}.tar.gz lib.a lib.h protos
mv lib_${VERSION}_${OSARCH}.tar.gz ${OUT}/
done
cd .. && rm -rf tmp
- run:
name: compile addon
command: |
VERSION=$(echo $CIRCLE_SHA1 | cut -c -7)
if [ "${CIRCLE_TAG}" != "" ]; then
VERSION=${CIRCLE_TAG}
fi
OUT=~/dist/lib
cp ~/project/linux-amd64.a ./dist/lib.a
cp ~/project/linux-amd64.a ./dist/lib.h
make build-js
npm install
npm run build:ts
mv build/ts protobuf
mkdir protobuf/protos
mv pb/protos/*.proto ./protobuf/protos
mv jsaddon/build addon
tar -czvf js_${VERSION}_linux-amd64.tar.gz protobuf addon
mv js_${VERSION}_linux-amd64.tar.gz ${OUT}/
- persist_to_workspace:
root: ~/dist
paths:
@ -183,11 +203,11 @@ jobs:
COMMIT=$(echo $CIRCLE_SHA1 | cut -c -7)
DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
FLAGS="-X github.com/anytypeio/go-anytype-middleware/common.GitSummary=${GIT_SUMMARY} -X github.com/anytypeio/go-anytype-middleware/common.BuildDate=${DATE} -X github.com/anytypeio/go-anytype-middleware/common.GitCommit=${COMMIT} -X github.com/anytypeio/go-anytype-middleware/common.GitBranch=${CIRCLE_BRANCH} -X github.com/anytypeio/go-anytype-middleware/common.GitState=clean"
gox -buildmode=c-archive -ldflags="-w $FLAGS" -osarch="darwin/amd64" -output="{{.OS}}-{{.Arch}}.so" github.com/anytypeio/go-anytype-middleware/lib/clib
CC="x86_64-w64-mingw32-gcc" CXX="x86_64-w64-mingw32-g++" gox -buildmode=c-archive -ldflags="-w $FLAGS" -cgo -osarch="windows/amd64" -output="{{.OS}}-{{.Arch}}.so" github.com/anytypeio/go-anytype-middleware/lib/clib
gox -buildmode=c-archive -ldflags="-w $FLAGS" -osarch="darwin/amd64" -output="{{.OS}}-{{.Arch}}.a" github.com/anytypeio/go-anytype-middleware/lib/clib
CC="x86_64-w64-mingw32-gcc" CXX="x86_64-w64-mingw32-g++" gox -buildmode=c-archive -ldflags="-w $FLAGS" -cgo -osarch="windows/amd64" -output="{{.OS}}-{{.Arch}}.a" github.com/anytypeio/go-anytype-middleware/lib/clib
# workaround for gox putting .exe ext
mv windows-amd64.so.exe windows-amd64.so
mv windows-amd64.so.h windows-amd64.h
mv windows-amd64.a.exe windows-amd64.a
mv windows-amd64.a.h windows-amd64.h
- save_cache:
key: go-pkg-v2-{{ arch }}-{{ checksum "go.sum" }}
paths:
@ -209,9 +229,9 @@ jobs:
for i in "${arr[@]}"
do
OSARCH=${i%.*}
cp ../${i}.so lib.so
cp ../${i}.a lib.a
cp ../${i}.h lib.h
tar -czvf lib_${VERSION}_${OSARCH}.tar.gz lib.so lib.h protos
tar -czvf lib_${VERSION}_${OSARCH}.tar.gz lib.a lib.h protos
mv lib_${VERSION}_${OSARCH}.tar.gz ${OUT}/
done
cd .. && rm -rf tmp
@ -223,7 +243,7 @@ jobs:
VERSION=${CIRCLE_TAG}
fi
OUT=~/dist/lib
cp ~/project/darwin-amd64.so ./dist/lib.so
cp ~/project/darwin-amd64.a ./dist/lib.a
cp ~/project/darwin-amd64.h ./dist/lib.h
make build-js

View file

@ -21,10 +21,10 @@ test:
build-lib:
$(eval FLAGS := $$(shell govvv -flags -pkg github.com/anytypeio/go-anytype-middleware/lib))
export GO111MODULE=on
go build -o dist/lib.so -ldflags "$(FLAGS)" -buildmode=c-archive -v ./lib/clib
go build -o dist/lib.a -ldflags "$(FLAGS) -w -s" -buildmode=c-archive -v ./lib/clib
build-js:
cp dist/lib.so jsaddon/lib.so
cp dist/lib.a jsaddon/lib.a
cp dist/lib.h jsaddon/lib.h
cp lib/clib/bridge.h jsaddon/bridge.h
# Electron's version.
@ -40,7 +40,7 @@ build-js:
# Tell node-pre-gyp to build module from source code.
export npm_config_build_from_source=true
npm install -C ./jsaddon
rm jsaddon/lib.so jsaddon/lib.h jsaddon/bridge.h
rm jsaddon/lib.a jsaddon/lib.h jsaddon/bridge.h
build-ios:
$(eval FLAGS := $$(shell govvv -flags | sed 's/main/github.com\/anytypeio\/go-anytype-middleware\/lib/g'))

View file

@ -3,7 +3,12 @@
{
'target_name': 'addon',
'sources': [ 'addon.c' ],
"libraries": [ "<!(pwd)/lib.so" ]
"libraries": ["<!(pwd)/lib.a" ],
"conditions": [
[ "OS=='linux'", {
"ldflags": [ "-Wl,-Bsymbolic" ]
}]
]
}
]
}