skia2/modules/pathkit/Makefile
Kevin Lubick cbcff385c1 Have pathkit use libpathkit.a for faster builds
Of note, it is very important for the -DSK_RELEASE/-DSK_DEBUG
to match between libskia.a and the WASM bindings, otherwise
things like SKDEBUGCODE are sometimes compiled in and sometimes
not, which can cause headaches like sizeof() mismatching between
.cpp files and .h files.

Bug: skia:
Change-Id: Id6ef58c44a7c10014a243b36708e0891514f6008
Reviewed-on: https://skia-review.googlesource.com/158341
Reviewed-by: Mike Klein <mtklein@google.com>
2018-10-02 13:27:29 +00:00

145 lines
5.7 KiB
Makefile

build:
./compile.sh
npm: npm-test npm-debug
mkdir -p ./npm-wasm/bin
mkdir -p ./npm-asmjs/bin
./compile.sh
cp ../../out/pathkit/pathkit.js ./npm-wasm/bin
cp ../../out/pathkit/pathkit.wasm ./npm-wasm/bin
./compile.sh asm.js
cp ../../out/pathkit/pathkit.js ./npm-asmjs/bin/pathkit.js
cp ../../out/pathkit/pathkit.js.mem ./npm-asmjs/bin/pathkit.js.mem
publish:
cd npm-wasm; npm publish
cd npm-asmjs; npm publish
update-major:
cd npm-wasm; npm version major
cd ../npm-asmjs; npm version major
echo "Don't forget to publish."
update-minor:
cd npm-wasm; npm version minor
cd npm-asmjs; npm version minor
echo "Don't forget to publish."
update-patch:
cd npm-wasm; npm version patch
cd npm-asmjs; npm version patch
echo "Don't forget to publish."
# Build the library and run the tests. If developing locally, test-continuous is better
# suited for that, although if you make changes to the C++/WASM code, you will need
# to manually call make npm-test to re-build.
test: npm-test
npm install
npx karma start ./karma.conf.js --single-run
ASM_JS=1 npx karma start ./karma.conf.js --single-run
test-continuous:
echo "Assuming npm install has been run by user"
echo "Also assuming make npm-test has also been run by a user (if needed)"
npx karma start ./karma.conf.js --no-single-run --watch-poll
test-continuous-asmjs:
echo "Assuming npm install has been run by user"
echo "Also assuming make npm-test has also been run by a user (if needed)"
ASM_JS=1 npx karma start ./karma.conf.js --no-single-run --watch-poll
# Build the library and run the tests using the docker image. If developing locally,
# test-docker-continuous is better, although if you make changes to the C++/WASM code,
# you will need to manually call make npm-test to re-build.
test-docker:
mkdir -p ./npm-wasm/bin/test
mkdir -p ./npm-asmjs/bin/test
mkdir -p $$SKIA_ROOT/out/dockerbuild
docker run --rm -v $$SKIA_ROOT:/SRC -v $$SKIA_ROOT/out/dockerbuild:/OUT \
gcr.io/skia-public/emsdk-release:1.38.6_jre /SRC/infra/pathkit/docker/build_pathkit.sh
cp ../../out/dockerbuild/pathkit.js ./npm-wasm/bin/test/pathkit.js
cp ../../out/dockerbuild/pathkit.wasm ./npm-wasm/bin/test/pathkit.wasm
docker run --rm -v $$SKIA_ROOT:/SRC -v $$SKIA_ROOT/out/dockerbuild:/OUT \
gcr.io/skia-public/emsdk-release:1.38.6_jre /SRC/infra/pathkit/docker/build_pathkit.sh asm.js
cp ../../out/dockerbuild/pathkit.js ./npm-asmjs/bin/test/pathkit.js
cp ../../out/dockerbuild/pathkit.js.mem ./npm-asmjs/bin/test/pathkit.js.mem
docker run --shm-size=2gb -v $$SKIA_ROOT:/SRC gcr.io/skia-public/karma-chrome-tests:68.0.3440.106_v4 \
karma start /SRC/modules/pathkit/karma.conf.js --single-run
docker run --shm-size=2gb -v $$SKIA_ROOT:/SRC -e ASM_JS=1 gcr.io/skia-public/karma-chrome-tests:68.0.3440.106_v4 \
karma start /SRC/modules/pathkit/karma.conf.js --single-run
test-docker-continuous:
echo "Assuming make npm-test has also been run by a user (if needed)"
docker run --shm-size=2gb -v $$SKIA_ROOT:/SRC gcr.io/skia-public/karma-chrome-tests:68.0.3440.106_v4 \
karma start /SRC/modules/pathkit/karma.conf.js --no-single-run
test-docker-continuous-asmjs:
echo "Assuming make npm-test has also been run by a user (if needed)"
docker run --shm-size=2gb -v $$SKIA_ROOT:/SRC -e ASM_JS=1 gcr.io/skia-public/karma-chrome-tests:68.0.3440.106_v4 \
karma start /SRC/modules/pathkit/karma.conf.js --no-single-run
npm-test:
# This compile time is typically faster than release and good for use with
# local-example-test
mkdir -p ./npm-wasm/bin/test
mkdir -p ./npm-asmjs/bin/test
./compile.sh test
cp ../../out/pathkit/pathkit.js ./npm-wasm/bin/test/pathkit.js
cp ../../out/pathkit/pathkit.wasm ./npm-wasm/bin/test/pathkit.wasm
./compile.sh asm.js test
cp ../../out/pathkit/pathkit.js ./npm-asmjs/bin/test/pathkit.js
cp ../../out/pathkit/pathkit.js.mem ./npm-asmjs/bin/test/pathkit.js.mem
npm-debug:
# This compile time is typically faster than release and good for use with
# local-example-test
mkdir -p ./npm-wasm/bin/debug
mkdir -p ./npm-asmjs/bin/debug
./compile.sh debug
cp ../../out/pathkit/pathkit.js ./npm-wasm/bin/debug/pathkit.js
cp ../../out/pathkit/pathkit.wasm ./npm-wasm/bin/debug/pathkit.wasm
cp ../../out/pathkit/pathkit.wasm.map ./npm-wasm/bin/debug/pathkit.wasm.map
./compile.sh asm.js debug
cp ../../out/pathkit/pathkit.js ./npm-asmjs/bin/debug/pathkit.js
cp ../../out/pathkit/pathkit.js.map ./npm-asmjs/bin/debug/pathkit.js.map
example:
npm install pathkit-asmjs pathkit-wasm
echo "Go check out localhost:8000/npm-wasm/example.html"
python serve.py
local-example:
rm -rf node_modules/pathkit-wasm
rm -rf node_modules/pathkit-asmjs
mkdir -p node_modules
ln -s -T ../npm-wasm node_modules/pathkit-wasm
ln -s -T ../npm-asmjs node_modules/pathkit-asmjs
echo "Go check out http://localhost:8000/npm-wasm/example.html"
echo "or http://localhost:8000/npm-asmjs/example.html"
python serve.py
local-example-test:
rm -rf node_modules/pathkit-wasm
rm -rf node_modules/pathkit-asmjs
mkdir -p node_modules/pathkit-wasm
mkdir -p node_modules/pathkit-asmjs
ln -s -T ../../npm-wasm/bin/test node_modules/pathkit-wasm/bin
ln -s -T ../../npm-asmjs/bin/test node_modules/pathkit-asmjs/bin
echo "Go check out localhost:8000/npm-wasm/example.html"
echo "or http://localhost:8000/npm-asmjs/example.html"
python serve.py
local-example-debug:
rm -rf node_modules/pathkit-wasm
rm -rf node_modules/pathkit-asmjs
mkdir -p node_modules/pathkit-wasm
mkdir -p node_modules/pathkit-asmjs
ln -s -T ../../npm-wasm/bin/debug node_modules/pathkit-wasm/bin
ln -s -T ../../npm-asmjs/bin/debug node_modules/pathkit-asmjs/bin
echo "Go check out localhost:8000/npm-wasm/example.html"
echo "or http://localhost:8000/npm-asmjs/example.html"
python serve.py