refactor: compile applets as multicall binary
This commit is contained in:
parent
4099624499
commit
3c4acdacd7
48 changed files with 2393 additions and 2256 deletions
54
justfile
54
justfile
|
|
@ -14,9 +14,9 @@ iconsdir := sharedir + '/icons/hicolor'
|
|||
bindir := rootdir + prefix + '/bin'
|
||||
default-schema-target := sharedir / 'cosmic'
|
||||
|
||||
build: _extract_vendor
|
||||
#!/usr/bin/env bash
|
||||
cargo build {{cargo_args}}
|
||||
cosmic-applets-bin := bindir / 'cosmic-applets'
|
||||
|
||||
default: build-release
|
||||
|
||||
# Compiles with debug profile
|
||||
build-debug *args:
|
||||
|
|
@ -25,6 +25,12 @@ build-debug *args:
|
|||
# Compiles with release profile
|
||||
build-release *args: (build-debug '--release' args)
|
||||
|
||||
# Compile with a vendored tarball
|
||||
build-vendored *args: vendor-extract (build-release '--frozen --offline' args)
|
||||
|
||||
_link_applet name:
|
||||
ln -sf {{cosmic-applets-bin}} {{name}}
|
||||
|
||||
_install_icons name:
|
||||
find {{name}}/'data'/'icons' -type f -exec echo {} \; | rev | cut -d'/' -f-3 | rev | xargs -d '\n' -I {} install -Dm0644 {{name}}/'data'/'icons'/{} {{iconsdir}}/{}
|
||||
|
||||
|
|
@ -37,33 +43,25 @@ _install_desktop path:
|
|||
_install_bin name:
|
||||
install -Dm0755 {{targetdir}}/{{target}}/{{name}} {{bindir}}/{{name}}
|
||||
|
||||
_install id name: (_install_icons name) (_install_desktop name + '/data/' + id + '.desktop') (_install_bin name)
|
||||
_install_applet id name: (_install_icons name) \
|
||||
(_install_desktop name + '/data/' + id + '.desktop') \
|
||||
(_link_applet name)
|
||||
|
||||
_install_app_list: (_install 'com.system76.CosmicAppList' 'cosmic-app-list') (_install_default_schema 'cosmic-app-list')
|
||||
_install_audio: (_install 'com.system76.CosmicAppletAudio' 'cosmic-applet-audio')
|
||||
_install_battery: (_install 'com.system76.CosmicAppletBattery' 'cosmic-applet-battery')
|
||||
_install_bluetooth: (_install 'com.system76.CosmicAppletBluetooth' 'cosmic-applet-bluetooth')
|
||||
_install_minimize: (_install 'com.system76.CosmicAppletMinimize' 'cosmic-applet-minimize')
|
||||
_install_network: (_install 'com.system76.CosmicAppletNetwork' 'cosmic-applet-network')
|
||||
_install_notifications: (_install 'com.system76.CosmicAppletNotifications' 'cosmic-applet-notifications')
|
||||
_install_power: (_install 'com.system76.CosmicAppletPower' 'cosmic-applet-power')
|
||||
_install_workspace: (_install 'com.system76.CosmicAppletWorkspaces' 'cosmic-applet-workspaces')
|
||||
_install_time: (_install 'com.system76.CosmicAppletTime' 'cosmic-applet-time')
|
||||
_install_tiling: (_install 'com.system76.CosmicAppletTiling' 'cosmic-applet-tiling')
|
||||
_install_status_area: (_install 'com.system76.CosmicAppletStatusArea' 'cosmic-applet-status-area')
|
||||
|
||||
# TODO: Turn this into one configurable applet?
|
||||
_install_panel_button: (_install_bin 'cosmic-panel-button')
|
||||
_install_button id name: (_install_icons name) (_install_desktop name + '/data/' + id + '.desktop')
|
||||
_install_app_button: (_install_button 'com.system76.CosmicPanelAppButton' 'cosmic-panel-app-button')
|
||||
_install_workspaces_button: (_install_button 'com.system76.CosmicPanelWorkspacesButton' 'cosmic-panel-workspaces-button')
|
||||
|
||||
# Installs files into the system
|
||||
install: _install_app_list _install_audio _install_battery _install_bluetooth _install_minimize _install_network _install_notifications _install_power _install_workspace _install_time _install_tiling _install_panel_button _install_app_button _install_workspaces_button _install_status_area
|
||||
install: (_install_bin 'cosmic-applets') (_install_applet 'com.system76.CosmicAppList' 'cosmic-app-list') (_install_default_schema 'cosmic-app-list') (_install_applet 'com.system76.CosmicAppletAudio' 'cosmic-applet-audio') (_install_applet 'com.system76.CosmicAppletBattery' 'cosmic-applet-battery') (_install_applet 'com.system76.CosmicAppletBluetooth' 'cosmic-applet-bluetooth') (_install_applet 'com.system76.CosmicAppletMinimize' 'cosmic-applet-minimize') (_install_applet 'com.system76.CosmicAppletNetwork' 'cosmic-applet-network') (_install_applet 'com.system76.CosmicAppletNotifications' 'cosmic-applet-notifications') (_install_applet 'com.system76.CosmicAppletPower' 'cosmic-applet-power') (_install_applet 'com.system76.CosmicAppletStatusArea' 'cosmic-applet-status-area') (_install_applet 'com.system76.CosmicAppletTiling' 'cosmic-applet-tiling') (_install_applet 'com.system76.CosmicAppletTime' 'cosmic-applet-time') (_install_applet 'com.system76.CosmicAppletWorkspaces' 'cosmic-applet-workspaces') (_install_bin 'cosmic-panel-button') (_install_button 'com.system76.CosmicPanelAppButton' 'cosmic-panel-app-button') (_install_button 'com.system76.CosmicPanelWorkspacesButton' 'cosmic-panel-workspaces-button')
|
||||
|
||||
# Extracts vendored dependencies if vendor=1
|
||||
_extract_vendor:
|
||||
#!/usr/bin/env sh
|
||||
if test {{vendor}} = 1; then
|
||||
rm -rf vendor; tar pxf vendor.tar
|
||||
fi
|
||||
# Vendor Cargo dependencies locally
|
||||
vendor:
|
||||
mkdir -p .cargo
|
||||
cargo vendor | head -n -1 > .cargo/config
|
||||
echo 'directory = "vendor"' >> .cargo/config
|
||||
tar pcf vendor.tar vendor
|
||||
rm -rf vendor
|
||||
|
||||
# Extracts vendored dependencies
|
||||
[private]
|
||||
vendor-extract:
|
||||
rm -rf vendor
|
||||
tar pxf vendor.tar
|
||||
Loading…
Add table
Add a link
Reference in a new issue