Skip to content

Commit

Permalink
Add wasm-mini build target
Browse files Browse the repository at this point in the history
Signed-off-by: falkTX <falktx@falktx.com>
  • Loading branch information
falkTX committed Jul 24, 2022
1 parent 8d9cd6b commit 99cc93b
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 1 deletion.
72 changes: 72 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -765,6 +765,78 @@ jobs:
files: |
*.zip
wasm-mini:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Set up cache
id: cache
uses: actions/cache@v2
with:
path: |
~/emsdk
*/*.a
build/CardinalFX
build/plugins
build/rack
dpf/build
src/Rack/dep/bin
src/Rack/dep/include
src/Rack/dep/lib
src/Rack/dep/share
src/Rack/dep/jansson-2.12
src/Rack/dep/libarchive-3.4.3
src/Rack/dep/libsamplerate-0.1.9
src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
src/Rack/dep/zstd-1.4.5
key: wasm-mini-v${{ env.CACHE_VERSION }}
- name: Set up dependencies
run: |
[ -e ~/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/emsdk
cd ~/emsdk && ./emsdk install latest && ./emsdk activate latest
- name: Build wasm-mini cross-compiled
env:
AR: emar
CC: emcc
CXX: em++
NM: emnm
RANLIB: emranlib
STRIP: emstrip
run: |
source ~/emsdk/emsdk_env.sh
make features
make CIBUILD=true NOPLUGINS=true STATIC_BUILD=true USE_GLES2=true -j $(nproc)
- name: Set sha8 (non-release)
if: startsWith(github.ref, 'refs/tags/') != true
id: slug1
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
- name: Set sha8 (release)
if: startsWith(github.ref, 'refs/tags/')
id: slug2
run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
- name: Pack binaries
run: |
cd bin; zip -r -9 ../${{ github.event.repository.name }}-wasm-mini-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.zip $(ls *.html *.data *.js *.wasm)
- uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-wasm-mini-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
path: |
*.zip
- uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
tag_name: ${{ github.ref_name }}
name: ${{ github.ref_name }}
draft: false
prerelease: false
files: |
*.zip
win32:
runs-on: ubuntu-20.04
steps:
Expand Down
11 changes: 10 additions & 1 deletion src/Makefile.cardinal.mk
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,10 @@ endif

# FIXME
ifeq ($(WASM),true)
ifneq ($(STATIC_BUILD),true)
STATIC_CARLA_PLUGIN_LIBS = -lsndfile -lopus -lFLAC -lvorbisenc -lvorbis -logg -lm
endif
endif

EXTRA_DEPENDENCIES = $(RACK_EXTRA_LIBS) $(CARLA_EXTRA_LIBS)
EXTRA_LIBS = $(RACK_EXTRA_LIBS) $(CARLA_EXTRA_LIBS) $(STATIC_CARLA_PLUGIN_LIBS)
Expand Down Expand Up @@ -215,8 +217,10 @@ BASE_FLAGS += -Wno-unused-variable
# extra linker flags

ifeq ($(WASM),true)
ifneq ($(STATIC_BUILD),true)
LINK_FLAGS += --preload-file=./jsfx
LINK_FLAGS += --preload-file=./lv2
endif
LINK_FLAGS += --preload-file=./resources
LINK_FLAGS += -sALLOW_MEMORY_GROWTH
LINK_FLAGS += -sINITIAL_MEMORY=64Mb
Expand Down Expand Up @@ -341,7 +345,12 @@ vst3: $(VST3_RESOURCES)
# --------------------------------------------------------------
# Extra rules for wasm resources

wasm_resources: $(CURDIR)/lv2 $(CURDIR)/resources
WASM_RESOURCES = $(CURDIR)/resources
ifneq ($(STATIC_BUILD),true)
WASM_RESOURCES += $(CURDIR)/lv2
endif

wasm_resources: $(WASM_RESOURCES)

$(CURDIR)/lv2: $(LV2_RESOURCES)
$(shell wget https://falktx.com/data/wasm-things-2022-08-15.tar.gz && tar xf wasm-things-2022-08-15.tar.gz)
Expand Down

0 comments on commit 99cc93b

Please sign in to comment.