Browse Source

package/archlinux: use rsync to copy cached headers on Emscripten.

The builtin Emscripten functionality doesn't preserve timestamps,
causing a full rebuild EVERY DAMN TIME.
pull/168/head
Vladimír Vondruš 3 years ago
parent
commit
e34933646f
  1. 17
      package/archlinux/PKGBUILD-emscripten-wasm
  2. 17
      package/archlinux/PKGBUILD-emscripten-wasm-webgl2

17
package/archlinux/PKGBUILD-emscripten-wasm

@ -7,17 +7,22 @@ arch=('any')
url="https://magnum.graphics" url="https://magnum.graphics"
license=('MIT') license=('MIT')
depends=('emscripten-corrade') depends=('emscripten-corrade')
makedepends=('cmake' 'emscripten' 'corrade' 'ninja') makedepends=('cmake' 'emscripten' 'corrade' 'ninja' 'rsync')
options=('!strip' '!buildflags') options=('!strip' '!buildflags')
_rootdir=$startdir/../../ _rootdir=$startdir/../../
prepare() { prepare() {
# This is needed in order to force emscripten to fill # This is needed in order to fill ~/.emscripten_cache/sysroot/ with
# ~/.emscripten_cache/sysroot/ with potentially updated dependency headers # up-to-date dependency headers and libs. There's
# and libs. See https://github.com/emscripten-core/emscripten/pull/13090 # embuilder build sysroot --force
# for related discussion. # as suggested in https://github.com/emscripten-core/emscripten/pull/13090
embuilder build sysroot --force # that does the same in a builtin way, but it DELIBERATELY does not
# preserve timestamps in any way, forcing a full rebuild every time. Why?!
# https://github.com/emscripten-core/emscripten/blob/0566a76b500bd2bbd535e108f657fce1db7f6f75/tools/shared.py#L687
# Could use cp -rp instead of rsync if the system include dir didn't have
# that stupid designed-to-fail version.h :(
rsync -rlt /usr/lib/emscripten/system/include/ --exclude=emscripten/version.h $(em-config CACHE)/sysroot/include/
} }
build() { build() {

17
package/archlinux/PKGBUILD-emscripten-wasm-webgl2

@ -7,17 +7,22 @@ arch=('any')
url="https://magnum.graphics" url="https://magnum.graphics"
license=('MIT') license=('MIT')
depends=('emscripten-corrade') depends=('emscripten-corrade')
makedepends=('cmake' 'emscripten' 'corrade' 'ninja') makedepends=('cmake' 'emscripten' 'corrade' 'ninja' 'rsync')
options=('!strip' '!buildflags') options=('!strip' '!buildflags')
_rootdir=$startdir/../../ _rootdir=$startdir/../../
prepare() { prepare() {
# This is needed in order to force emscripten to fill # This is needed in order to fill ~/.emscripten_cache/sysroot/ with
# ~/.emscripten_cache/sysroot/ with potentially updated dependency headers # up-to-date dependency headers and libs. There's
# and libs. See https://github.com/emscripten-core/emscripten/pull/13090 # embuilder build sysroot --force
# for related discussion. # as suggested in https://github.com/emscripten-core/emscripten/pull/13090
embuilder build sysroot --force # that does the same in a builtin way, but it DELIBERATELY does not
# preserve timestamps in any way, forcing a full rebuild every time. Why?!
# https://github.com/emscripten-core/emscripten/blob/0566a76b500bd2bbd535e108f657fce1db7f6f75/tools/shared.py#L687
# Could use cp -rp instead of rsync if the system include dir didn't have
# that stupid designed-to-fail version.h :(
rsync -rlt /usr/lib/emscripten/system/include/ --exclude=emscripten/version.h $(em-config CACHE)/sysroot/include/
} }
build() { build() {

Loading…
Cancel
Save