Skip to content

Commit 8a2a58b

Browse files
committed
Hopefully beat the OSX build into working.
1 parent 42aec98 commit 8a2a58b

File tree

4 files changed

+65
-39
lines changed

4 files changed

+65
-39
lines changed

build/_sandbox.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def main():
2626
print("link", sf)
2727
os.makedirs(dirname(sf), exist_ok=True)
2828
try:
29-
os.link(abspath(f), sf)
29+
os.symlink(abspath(f), sf)
3030
except PermissionError:
3131
shutil.copy(f, sf)
3232

build/_zip.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/python3
2+
3+
from os.path import *
4+
import argparse
5+
import os
6+
from zipfile import ZipFile
7+
8+
9+
def main():
10+
parser = argparse.ArgumentParser()
11+
parser.add_argument("-z", "--zipfile")
12+
parser.add_argument("-v", "--verbose", action="store_true")
13+
parser.add_argument("-f", "--file", nargs=2, action="append")
14+
args = parser.parse_args()
15+
16+
assert args.zipfile, "You must specify a zipfile to create"
17+
18+
with ZipFile(args.zipfile, mode="w") as zf:
19+
for zipname, filename in args.file:
20+
if args.verbose:
21+
print(filename, "->", zipname)
22+
zf.write(filename, arcname=zipname)
23+
24+
25+
main()

extras/build.py

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
from build.ab import simplerule, simplerule
22
from build.utils import objectify
33
from build.c import clibrary
4+
from build.zip import zip
5+
from glob import glob
6+
from os.path import *
47

58
icons = ["fluxfile", "hardware", "icon", "imagefile"]
69

@@ -15,28 +18,36 @@
1518
)
1619

1720
simplerule(
18-
name="fluxengine_iconset",
21+
name="fluxengine_icns",
1922
ins=["./icon.png"],
20-
outs=["=fluxengine.iconset"],
23+
outs=["=fluxengine.icns"],
2124
commands=[
22-
"mkdir -p $[outs[0]]",
23-
"sips -z 64 64 $[ins[0]] --out $[outs[0]]/[email protected] > /dev/null",
25+
"mkdir -p fluxengine.iconset",
26+
"sips -z 64 64 $[ins[0]] --out fluxengine.iconset/[email protected] > /dev/null",
27+
"iconutil -c icns -o $[outs[0]] fluxengine.iconset",
2428
],
2529
label="ICONSET",
2630
)
2731

28-
simplerule(
29-
name="fluxengine_icns",
30-
ins=[".+fluxengine_iconset"],
31-
outs=["=fluxengine.icns"],
32-
commands=["iconutil -c icns -o $[outs[0]] $[ins[0]]"],
33-
label="ICONUTIL",
34-
)
35-
3632
simplerule(
3733
name="fluxengine_ico",
3834
ins=["./icon.png"],
3935
outs=["=fluxengine.ico"],
4036
commands=["png2ico $[outs[0]] $[ins[0]]"],
4137
label="MAKEICON",
4238
)
39+
40+
template_files = [
41+
f
42+
for f in glob(
43+
"**", recursive=True, root_dir="extras/FluxEngine.app.template"
44+
)
45+
if isfile(join("extras/FluxEngine.app.template", f))
46+
]
47+
zip(
48+
name="fluxengine_template",
49+
items={
50+
join("FluxEngine.app", k): join("extras/FluxEngine.app.template", k)
51+
for k in template_files
52+
},
53+
)

src/gui/build.py

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -58,38 +58,28 @@
5858
if config.osx:
5959
simplerule(
6060
name="fluxengine_pkg",
61-
ins=[".+fluxengine_app"],
62-
outs=["=FluxEngine.pkg"],
63-
commands=[
64-
"pkgbuild --quiet --install-location /Applications --component $[ins[0]] $[outs[0]]"
65-
],
66-
label="PKGBUILD",
67-
)
68-
69-
simplerule(
70-
name="fluxengine_app",
7161
ins=[
7262
".+gui",
7363
"extras+fluxengine_icns",
74-
"extras/FluxEngine.app.template/",
64+
"extras+fluxengine_template",
7565
],
76-
outs=["=FluxEngine.app"],
66+
outs=["=FluxEngine.pkg"],
7767
commands=[
7868
"rm -rf $[outs[0]]",
79-
"cp -a $[ins[2]] $[outs[0]]",
80-
"touch $[outs[0]]",
81-
"cp $[ins[0]] $[outs[0]]/Contents/MacOS/fluxengine-gui",
82-
"mkdir -p $[outs[0]]/Contents/Resources",
83-
"cp $[ins[1]] $[outs[0]]/Contents/Resources/FluxEngine.icns",
84-
"dylibbundler -of -x $[outs[0]]/Contents/MacOS/fluxengine-gui -b -d $[outs[0]]/Contents/libs -cd > /dev/null",
85-
"cp $$(brew --prefix wxwidgets)/README.md $[outs[0]]/Contents/libs/wxWidgets.md",
86-
"cp $$(brew --prefix protobuf)/LICENSE $[outs[0]]/Contents/libs/protobuf.txt",
87-
"cp $$(brew --prefix fmt)/LICENSE* $[outs[0]]/Contents/libs/fmt.rst",
88-
"cp $$(brew --prefix libpng)/LICENSE $[outs[0]]/Contents/libs/libpng.txt",
89-
"cp $$(brew --prefix libjpeg)/README $[outs[0]]/Contents/libs/libjpeg.txt",
90-
"cp $$(brew --prefix abseil)/LICENSE $[outs[0]]/Contents/libs/abseil.txt",
91-
"cp $$(brew --prefix libtiff)/LICENSE.md $[outs[0]]/Contents/libs/libtiff.txt",
92-
"cp $$(brew --prefix zstd)/LICENSE $[outs[0]]/Contents/libs/zstd.txt",
69+
"unzip -q $[ins[2]]", # creates FluxEngine.app
70+
"cp $[ins[0]] FluxEngine.app/Contents/MacOS/fluxengine-gui",
71+
"mkdir -p FluxEngine.app/Contents/Resources",
72+
"cp $[ins[1]] FluxEngine.app/Contents/Resources/FluxEngine.icns",
73+
"dylibbundler -of -x FluxEngine.app/Contents/MacOS/fluxengine-gui -b -d FluxEngine.app/Contents/libs -cd > /dev/null",
74+
"cp $$(brew --prefix wxwidgets)/README.md FluxEngine.app/Contents/libs/wxWidgets.md",
75+
"cp $$(brew --prefix protobuf)/LICENSE FluxEngine.app/Contents/libs/protobuf.txt",
76+
"cp $$(brew --prefix fmt)/LICENSE* FluxEngine.app/Contents/libs/fmt.rst",
77+
"cp $$(brew --prefix libpng)/LICENSE FluxEngine.app/Contents/libs/libpng.txt",
78+
"cp $$(brew --prefix libjpeg)/README FluxEngine.app/Contents/libs/libjpeg.txt",
79+
"cp $$(brew --prefix abseil)/LICENSE FluxEngine.app/Contents/libs/abseil.txt",
80+
"cp $$(brew --prefix libtiff)/LICENSE.md FluxEngine.app/Contents/libs/libtiff.txt",
81+
"cp $$(brew --prefix zstd)/LICENSE FluxEngine.app/Contents/libs/zstd.txt",
82+
"pkgbuild --quiet --install-location /Applications --component FluxEngine.app $[outs[0]]",
9383
],
9484
label="MKAPP",
9585
)

0 commit comments

Comments
 (0)