-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathshell.nix
More file actions
109 lines (98 loc) · 3.28 KB
/
Copy pathshell.nix
File metadata and controls
109 lines (98 loc) · 3.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
{
pkgs ,
nodejs ? pkgs.nodejs_latest,
go ? pkgs.go,
wails ? pkgs.wails,
jq ? pkgs.jq,
pkg-config-unwrapped ? pkgs.pkg-config-unwrapped,
makeWrapper ? pkgs.makeWrapper,
fontconfig ? pkgs.fontconfig,
pkg-config ? pkgs.pkg-config,
gtk3 ? pkgs.gtk3,
glib ? pkgs.glib,
pango ? pkgs.pango,
harfbuzz ? pkgs.harfbuzz,
cairo ? pkgs.cairo,
gdk-pixbuf ? pkgs.gdk-pixbuf,
zlib ? pkgs.zlib,
atk ? pkgs.atk,
gcc ? pkgs.gcc,
webkitgtk_4_1 ? pkgs.webkitgtk_4_1,
libsoup_3 ? pkgs.libsoup_3,
}:
pkgs.mkShell {
packages = [
go
wails
jq
pkg-config-unwrapped
gcc
nodejs
makeWrapper
fontconfig
pkg-config
];
buildInputs = [
gtk3.dev
pkg-config
pango.dev
glib.dev
harfbuzz.dev
atk.dev
cairo.dev
gdk-pixbuf.dev
zlib.dev
fontconfig.dev
webkitgtk_4_1.dev
libsoup_3.dev
];
shellHook = ''
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color (resets the text color)
# Set explicit LDFLAGS for FontConfig linking
export LDFLAGS="-L${fontconfig.dev}/lib -lfontconfig"
# Compose PKG_CONFIG_PATH from all relevant dev outputs
export PKG_CONFIG_PATH=""
for pkg in ${gtk3.dev} ${webkitgtk_4_1.dev} ${pango.dev} ${glib.dev} ${harfbuzz.dev} ${atk.dev} ${cairo.dev} ${gdk-pixbuf.dev} ${libsoup_3.dev} ${zlib.dev} ${fontconfig.dev}; do
if [ -d "$pkg/lib/pkgconfig" ]; then
export PKG_CONFIG_PATH="$pkg/lib/pkgconfig:$PKG_CONFIG_PATH"
fi
done
export PKG_CONFIG_PATH
export LD_LIBRARY_PATH=""
for pkg in ${gtk3.dev} ${webkitgtk_4_1.dev} ${pango.dev} ${glib.dev} ${harfbuzz.dev} ${atk.dev} ${cairo.dev} ${gdk-pixbuf.dev} ${libsoup_3.dev} ${zlib.dev} ${fontconfig.dev}; do
if [ -d "$pkg/lib" ]; then
export LD_LIBRARY_PATH="$pkg/lib:$LD_LIBRARY_PATH"
fi
done
export LD_LIBRARY_PATH
# Set up a proper home directory for binding generation (similar to package.nix)
export HOME=$(mktemp -d)
# Wrap pkg-config to always use correct PKG_CONFIG_PATH
makeWrapper $(command -v pkg-config) "$PWD/.pkg-config-wrapped" --set PKG_CONFIG_PATH "$PKG_CONFIG_PATH"
export PATH="$PWD:$PATH"
# Wrap wails to ensure PATH and PKG_CONFIG_PATH
if command -v wails >/dev/null; then
makeWrapper $(command -v wails) "$PWD/.wails-wrapped" --set PKG_CONFIG_PATH "$PKG_CONFIG_PATH" --set LD_LIBRARY_PATH "$LD_LIBRARY_PATH" --set PATH "$PATH" --set LDFLAGS "$LDFLAGS" --set HOME "$HOME"
export PATH="$PWD:$PATH"
fi
alias wails=".wails-wrapped"
alias pkg-config=".pkg-config-wrapped"
# For building with Nix (similar to package.nix)
build-nix() {
echo "Building with Nix..."
nix-build -E 'with import <nixpkgs> {}; callPackage ./package.nix {}'
}
# echo "Development shell configured with custom webkitgtk and libsoup"
# echo "PKG_CONFIG_PATH set to: $PKG_CONFIG_PATH"
# echo "LD_LIBRARY_PATH set to: $LD_LIBRARY_PATH"
# echo "LDFLAGS set to: $LDFLAGS"
# echo "HOME set to: $HOME"
echo -e "Available commands:"
echo -e " Development build:$GREEN wails build -s -tags \"webkit2_41,soup_3\"$NC (uses buildGoModule vendoring)"
echo -e " Nix package build:$GREEN build-nix$NC (reproducible build)"
'';
}