mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-24 11:11:02 -07:00
Hopefully beat the OSX build into working.
This commit is contained in:
@@ -26,7 +26,7 @@ def main():
|
||||
print("link", sf)
|
||||
os.makedirs(dirname(sf), exist_ok=True)
|
||||
try:
|
||||
os.link(abspath(f), sf)
|
||||
os.symlink(abspath(f), sf)
|
||||
except PermissionError:
|
||||
shutil.copy(f, sf)
|
||||
|
||||
|
||||
25
build/_zip.py
Executable file
25
build/_zip.py
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
from os.path import *
|
||||
import argparse
|
||||
import os
|
||||
from zipfile import ZipFile
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-z", "--zipfile")
|
||||
parser.add_argument("-v", "--verbose", action="store_true")
|
||||
parser.add_argument("-f", "--file", nargs=2, action="append")
|
||||
args = parser.parse_args()
|
||||
|
||||
assert args.zipfile, "You must specify a zipfile to create"
|
||||
|
||||
with ZipFile(args.zipfile, mode="w") as zf:
|
||||
for zipname, filename in args.file:
|
||||
if args.verbose:
|
||||
print(filename, "->", zipname)
|
||||
zf.write(filename, arcname=zipname)
|
||||
|
||||
|
||||
main()
|
||||
@@ -1,6 +1,9 @@
|
||||
from build.ab import simplerule, simplerule
|
||||
from build.utils import objectify
|
||||
from build.c import clibrary
|
||||
from build.zip import zip
|
||||
from glob import glob
|
||||
from os.path import *
|
||||
|
||||
icons = ["fluxfile", "hardware", "icon", "imagefile"]
|
||||
|
||||
@@ -15,24 +18,17 @@ clibrary(
|
||||
)
|
||||
|
||||
simplerule(
|
||||
name="fluxengine_iconset",
|
||||
name="fluxengine_icns",
|
||||
ins=["./icon.png"],
|
||||
outs=["=fluxengine.iconset"],
|
||||
outs=["=fluxengine.icns"],
|
||||
commands=[
|
||||
"mkdir -p $[outs[0]]",
|
||||
"sips -z 64 64 $[ins[0]] --out $[outs[0]]/icon_32x32@2x.png > /dev/null",
|
||||
"mkdir -p fluxengine.iconset",
|
||||
"sips -z 64 64 $[ins[0]] --out fluxengine.iconset/icon_32x32@2x.png > /dev/null",
|
||||
"iconutil -c icns -o $[outs[0]] fluxengine.iconset",
|
||||
],
|
||||
label="ICONSET",
|
||||
)
|
||||
|
||||
simplerule(
|
||||
name="fluxengine_icns",
|
||||
ins=[".+fluxengine_iconset"],
|
||||
outs=["=fluxengine.icns"],
|
||||
commands=["iconutil -c icns -o $[outs[0]] $[ins[0]]"],
|
||||
label="ICONUTIL",
|
||||
)
|
||||
|
||||
simplerule(
|
||||
name="fluxengine_ico",
|
||||
ins=["./icon.png"],
|
||||
@@ -40,3 +36,18 @@ simplerule(
|
||||
commands=["png2ico $[outs[0]] $[ins[0]]"],
|
||||
label="MAKEICON",
|
||||
)
|
||||
|
||||
template_files = [
|
||||
f
|
||||
for f in glob(
|
||||
"**", recursive=True, root_dir="extras/FluxEngine.app.template"
|
||||
)
|
||||
if isfile(join("extras/FluxEngine.app.template", f))
|
||||
]
|
||||
zip(
|
||||
name="fluxengine_template",
|
||||
items={
|
||||
join("FluxEngine.app", k): join("extras/FluxEngine.app.template", k)
|
||||
for k in template_files
|
||||
},
|
||||
)
|
||||
|
||||
@@ -58,38 +58,28 @@ cxxprogram(
|
||||
if config.osx:
|
||||
simplerule(
|
||||
name="fluxengine_pkg",
|
||||
ins=[".+fluxengine_app"],
|
||||
outs=["=FluxEngine.pkg"],
|
||||
commands=[
|
||||
"pkgbuild --quiet --install-location /Applications --component $[ins[0]] $[outs[0]]"
|
||||
],
|
||||
label="PKGBUILD",
|
||||
)
|
||||
|
||||
simplerule(
|
||||
name="fluxengine_app",
|
||||
ins=[
|
||||
".+gui",
|
||||
"extras+fluxengine_icns",
|
||||
"extras/FluxEngine.app.template/",
|
||||
"extras+fluxengine_template",
|
||||
],
|
||||
outs=["=FluxEngine.app"],
|
||||
outs=["=FluxEngine.pkg"],
|
||||
commands=[
|
||||
"rm -rf $[outs[0]]",
|
||||
"cp -a $[ins[2]] $[outs[0]]",
|
||||
"touch $[outs[0]]",
|
||||
"cp $[ins[0]] $[outs[0]]/Contents/MacOS/fluxengine-gui",
|
||||
"mkdir -p $[outs[0]]/Contents/Resources",
|
||||
"cp $[ins[1]] $[outs[0]]/Contents/Resources/FluxEngine.icns",
|
||||
"dylibbundler -of -x $[outs[0]]/Contents/MacOS/fluxengine-gui -b -d $[outs[0]]/Contents/libs -cd > /dev/null",
|
||||
"cp $$(brew --prefix wxwidgets)/README.md $[outs[0]]/Contents/libs/wxWidgets.md",
|
||||
"cp $$(brew --prefix protobuf)/LICENSE $[outs[0]]/Contents/libs/protobuf.txt",
|
||||
"cp $$(brew --prefix fmt)/LICENSE* $[outs[0]]/Contents/libs/fmt.rst",
|
||||
"cp $$(brew --prefix libpng)/LICENSE $[outs[0]]/Contents/libs/libpng.txt",
|
||||
"cp $$(brew --prefix libjpeg)/README $[outs[0]]/Contents/libs/libjpeg.txt",
|
||||
"cp $$(brew --prefix abseil)/LICENSE $[outs[0]]/Contents/libs/abseil.txt",
|
||||
"cp $$(brew --prefix libtiff)/LICENSE.md $[outs[0]]/Contents/libs/libtiff.txt",
|
||||
"cp $$(brew --prefix zstd)/LICENSE $[outs[0]]/Contents/libs/zstd.txt",
|
||||
"unzip -q $[ins[2]]", # creates FluxEngine.app
|
||||
"cp $[ins[0]] FluxEngine.app/Contents/MacOS/fluxengine-gui",
|
||||
"mkdir -p FluxEngine.app/Contents/Resources",
|
||||
"cp $[ins[1]] FluxEngine.app/Contents/Resources/FluxEngine.icns",
|
||||
"dylibbundler -of -x FluxEngine.app/Contents/MacOS/fluxengine-gui -b -d FluxEngine.app/Contents/libs -cd > /dev/null",
|
||||
"cp $$(brew --prefix wxwidgets)/README.md FluxEngine.app/Contents/libs/wxWidgets.md",
|
||||
"cp $$(brew --prefix protobuf)/LICENSE FluxEngine.app/Contents/libs/protobuf.txt",
|
||||
"cp $$(brew --prefix fmt)/LICENSE* FluxEngine.app/Contents/libs/fmt.rst",
|
||||
"cp $$(brew --prefix libpng)/LICENSE FluxEngine.app/Contents/libs/libpng.txt",
|
||||
"cp $$(brew --prefix libjpeg)/README FluxEngine.app/Contents/libs/libjpeg.txt",
|
||||
"cp $$(brew --prefix abseil)/LICENSE FluxEngine.app/Contents/libs/abseil.txt",
|
||||
"cp $$(brew --prefix libtiff)/LICENSE.md FluxEngine.app/Contents/libs/libtiff.txt",
|
||||
"cp $$(brew --prefix zstd)/LICENSE FluxEngine.app/Contents/libs/zstd.txt",
|
||||
"pkgbuild --quiet --install-location /Applications --component FluxEngine.app $[outs[0]]",
|
||||
],
|
||||
label="MKAPP",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user