refactor(build): use dmgbuild to create dmgs (#1664)
* refactor(appdmg): make dmgs with dmgbuild * fix(appdmg.sh): typo * refactor(appdmg.sh): don't generate config on the fly * fix(dmgbuild): icon file * fix(gitignore): dmgbuild settings * chore(resources): update readme with new files * chore(resources/macos): add missing newline
This commit is contained in:
parent
332ea81e93
commit
5d5cab1ee4
|
@ -110,6 +110,12 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
||||||
echo "INSTALL_NAME=lite-xl-${GITHUB_REF##*/}-macos-universal" >> "$GITHUB_ENV"
|
echo "INSTALL_NAME=lite-xl-${GITHUB_REF##*/}-macos-universal" >> "$GITHUB_ENV"
|
||||||
|
- name: Setup Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.9'
|
||||||
|
- name: Install dmgbuild
|
||||||
|
run: pip install dmgbuild
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Download artifacts
|
- name: Download artifacts
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
|
@ -117,8 +123,6 @@ jobs:
|
||||||
with:
|
with:
|
||||||
name: macOS DMG Images
|
name: macOS DMG Images
|
||||||
path: dmgs-original
|
path: dmgs-original
|
||||||
- name: Install appdmg
|
|
||||||
run: cd ~; npm i appdmg; cd -
|
|
||||||
- name: Make universal bundles
|
- name: Make universal bundles
|
||||||
run: |
|
run: |
|
||||||
bash --version
|
bash --version
|
||||||
|
|
|
@ -185,8 +185,8 @@ jobs:
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v2
|
||||||
with:
|
with:
|
||||||
python-version: 3.9
|
python-version: 3.9
|
||||||
- name: Install appdmg
|
- name: Install dmgbuild
|
||||||
run: cd ~; npm i appdmg; cd -
|
run: pip install dmgbuild
|
||||||
- name: Prepare DMG Images
|
- name: Prepare DMG Images
|
||||||
run: |
|
run: |
|
||||||
mkdir -p dmgs-addons dmgs-normal
|
mkdir -p dmgs-addons dmgs-normal
|
||||||
|
|
|
@ -22,3 +22,4 @@ LiteXL*
|
||||||
|
|
||||||
!resources/windows/*.diff
|
!resources/windows/*.diff
|
||||||
!resources/windows/*.exe.manifest.in
|
!resources/windows/*.exe.manifest.in
|
||||||
|
!resources/macos/*.py
|
||||||
|
|
|
@ -38,7 +38,7 @@ show_help() {
|
||||||
echo "-v --version VERSION Sets the version on the package name."
|
echo "-v --version VERSION Sets the version on the package name."
|
||||||
echo "-A --appimage Create an AppImage (Linux only)."
|
echo "-A --appimage Create an AppImage (Linux only)."
|
||||||
echo "-D --dmg Create a DMG disk image (macOS only)."
|
echo "-D --dmg Create a DMG disk image (macOS only)."
|
||||||
echo " Requires NPM and AppDMG."
|
echo " Requires dmgbuild."
|
||||||
echo "-I --innosetup Create an InnoSetup installer (Windows only)."
|
echo "-I --innosetup Create an InnoSetup installer (Windows only)."
|
||||||
echo "-r --release Compile in release mode."
|
echo "-r --release Compile in release mode."
|
||||||
echo "-S --source Create a source code package,"
|
echo "-S --source Create a source code package,"
|
||||||
|
|
|
@ -11,8 +11,9 @@ This folder contains resources that is used for building or packaging the projec
|
||||||
- `icons/icon.{icns,ico,inl,rc,svg}`: lite-xl icon in various formats.
|
- `icons/icon.{icns,ico,inl,rc,svg}`: lite-xl icon in various formats.
|
||||||
- `linux/com.lite_xl.LiteXL.appdata.xml`: AppStream metadata.
|
- `linux/com.lite_xl.LiteXL.appdata.xml`: AppStream metadata.
|
||||||
- `linux/com.lite_xl.LiteXL.desktop`: Desktop file for Linux desktops.
|
- `linux/com.lite_xl.LiteXL.desktop`: Desktop file for Linux desktops.
|
||||||
- `macos/appdmg.png`: Background image for packaging MacOS DMGs.
|
- `macos/dmg-cover.png`: Background image for packaging macOS DMGs.
|
||||||
- `macos/Info.plist.in`: Template for generating `info.plist` on MacOS. See `macos/macos-retina-display.md` for details.
|
- `macos/Info.plist.in`: Template for generating `info.plist` on macOS. See `macos/macos-retina-display.md` for details.
|
||||||
|
- `macos/lite-xl-dmg.py`: Configuration options for dmgbuild for packaging macOS DMGs.
|
||||||
- `windows/001-lua-unicode.diff`: Patch for allowing Lua to load files with UTF-8 filenames on Windows.
|
- `windows/001-lua-unicode.diff`: Patch for allowing Lua to load files with UTF-8 filenames on Windows.
|
||||||
|
|
||||||
### Development
|
### Development
|
||||||
|
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
@ -0,0 +1,28 @@
|
||||||
|
# configuration for dmgbuild
|
||||||
|
|
||||||
|
import os.path
|
||||||
|
|
||||||
|
app_path = "Lite XL.app"
|
||||||
|
app_name = os.path.basename(app_path)
|
||||||
|
|
||||||
|
# Image options
|
||||||
|
format = defines.get("format", "UDZO")
|
||||||
|
|
||||||
|
# Content options
|
||||||
|
files = [(app_path, app_name)]
|
||||||
|
symlinks = { "Applications": "/Applications" }
|
||||||
|
icon = "resources/icons/icon.icns"
|
||||||
|
icon_locations = {
|
||||||
|
app_name: (144, 248),
|
||||||
|
"Applications": (336, 248)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Window options
|
||||||
|
background = "resources/macos/dmg-cover.png"
|
||||||
|
window_rect = ((360, 360), (480, 380))
|
||||||
|
default_view = "coverflow"
|
||||||
|
include_icon_view_settings = True
|
||||||
|
|
||||||
|
# Icon view options
|
||||||
|
icon_size = 80
|
||||||
|
text_size = 11.0
|
|
@ -10,7 +10,7 @@ Various scripts and configurations used to configure, build, and package Lite XL
|
||||||
|
|
||||||
### Package
|
### Package
|
||||||
|
|
||||||
- **appdmg.sh**: Create a macOS DMG image using [AppDMG][1].
|
- **appdmg.sh**: Create a macOS DMG image using [dmgbuild][1].
|
||||||
- **appimage.sh**: [AppImage][2] builder.
|
- **appimage.sh**: [AppImage][2] builder.
|
||||||
- **innosetup.sh**: Creates a 32/64 bit [InnoSetup][3] installer package.
|
- **innosetup.sh**: Creates a 32/64 bit [InnoSetup][3] installer package.
|
||||||
- **package.sh**: Creates all binary / DMG image / installer / source packages.
|
- **package.sh**: Creates all binary / DMG image / installer / source packages.
|
||||||
|
@ -25,6 +25,6 @@ Various scripts and configurations used to configure, build, and package Lite XL
|
||||||
- **generate_header.sh**: Generates a header file for native plugin API
|
- **generate_header.sh**: Generates a header file for native plugin API
|
||||||
- **keymap-generator**: Generates a JSON file containing the keymap
|
- **keymap-generator**: Generates a JSON file containing the keymap
|
||||||
|
|
||||||
[1]: https://github.com/LinusU/node-appdmg
|
[1]: https://github.com/dmgbuild/dmgbuild
|
||||||
[2]: https://docs.appimage.org/
|
[2]: https://docs.appimage.org/
|
||||||
[3]: https://jrsoftware.org/isinfo.php
|
[3]: https://jrsoftware.org/isinfo.php
|
||||||
|
|
|
@ -6,25 +6,4 @@ if [ ! -e "src/api/api.h" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat > lite-xl-dmg.json << EOF
|
dmgbuild -s resources/macos/lite-xl-dmg.py "Lite XL" "$1.dmg"
|
||||||
{
|
|
||||||
"title": "Lite XL",
|
|
||||||
"icon": "$(pwd)/resources/icons/icon.icns",
|
|
||||||
"background": "$(pwd)/resources/macos/appdmg.png",
|
|
||||||
"window": {
|
|
||||||
"position": {
|
|
||||||
"x": 360,
|
|
||||||
"y": 360
|
|
||||||
},
|
|
||||||
"size": {
|
|
||||||
"width": 480,
|
|
||||||
"height": 360
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"contents": [
|
|
||||||
{ "x": 144, "y": 248, "type": "file", "path": "$(pwd)/Lite XL.app" },
|
|
||||||
{ "x": 336, "y": 248, "type": "link", "path": "/Applications" }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
~/node_modules/appdmg/bin/appdmg.js lite-xl-dmg.json "$(pwd)/$1.dmg"
|
|
||||||
|
|
|
@ -57,9 +57,7 @@ main() {
|
||||||
else
|
else
|
||||||
brew install bash ninja sdl2
|
brew install bash ninja sdl2
|
||||||
fi
|
fi
|
||||||
pip3 install meson
|
pip3 install meson dmgbuild
|
||||||
cd ~; npm install appdmg; cd -
|
|
||||||
~/node_modules/appdmg/bin/appdmg.js --version
|
|
||||||
elif [[ "$OSTYPE" == "msys" ]]; then
|
elif [[ "$OSTYPE" == "msys" ]]; then
|
||||||
if [[ $lhelper == true ]]; then
|
if [[ $lhelper == true ]]; then
|
||||||
pacman --noconfirm -S \
|
pacman --noconfirm -S \
|
||||||
|
|
|
@ -25,7 +25,7 @@ show_help() {
|
||||||
echo "-A --appimage Create an AppImage (Linux only)."
|
echo "-A --appimage Create an AppImage (Linux only)."
|
||||||
echo "-B --binary Create a normal / portable package or macOS bundle,"
|
echo "-B --binary Create a normal / portable package or macOS bundle,"
|
||||||
echo " depending on how the build was configured. (Default.)"
|
echo " depending on how the build was configured. (Default.)"
|
||||||
echo "-D --dmg Create a DMG disk image with AppDMG (macOS only)."
|
echo "-D --dmg Create a DMG disk image with dmgbuild (macOS only)."
|
||||||
echo "-I --innosetup Create a InnoSetup package (Windows only)."
|
echo "-I --innosetup Create a InnoSetup package (Windows only)."
|
||||||
echo "-r --release Strip debugging symbols."
|
echo "-r --release Strip debugging symbols."
|
||||||
echo "-S --source Create a source code package,"
|
echo "-S --source Create a source code package,"
|
||||||
|
|
Loading…
Reference in New Issue