67 lines
2.2 KiB
Makefile
67 lines
2.2 KiB
Makefile
APPIMAGETOOL:=appimagetool-x86_64.AppImage
|
|
APPIMAGETOOL_URL:=https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage
|
|
|
|
PYTHON_APPIMAGE=python3.8.12-cp38-cp38-manylinux2014_x86_64.AppImage
|
|
PYTHON_APPIMAGE_URL=https://github.com/niess/python-appimage/releases/download/python3.8/$(PYTHON_APPIMAGE)
|
|
|
|
DEPLOY_DIR=AppDir/opt/pyfa
|
|
|
|
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
|
PYFA_DIR:=$(realpath $(ROOT_DIR)/..)
|
|
EVE_DB:=$(DEPLOY_DIR)/eve.db
|
|
|
|
# Relative to Pyfa/ dir
|
|
PROJECT_FILES=README.md LICENSE eos graphs gui imgs locale scripts service staticdata utils version.yml config.py db_update.py pyfa.py
|
|
PROJECT_SOURCES=$(patsubst %, $(DEPLOY_DIR)/%, $(PROJECT_FILES))
|
|
|
|
# Just so the final appimage is rebuilt when these change
|
|
APPIMAGE_FILES=AppRun org.pyfa.pyfa.appdata.xml pyfa pyfa.desktop
|
|
APPIMAGE_SOURCES=$(patsubst %, $(ROOT_DIR)/%, $(APPIMAGE_FILES))
|
|
|
|
|
|
Pyfa-x86_64.AppImage: $(PROJECT_SOURCES) | $(APPIMAGETOOL) static deps $(EVE_DB)
|
|
./$(APPIMAGETOOL) AppDir
|
|
|
|
$(EVE_DB): $(PYFA_DIR)/eos $(PYFA_DIR)/db_update.py deps
|
|
AppDir/usr/bin/python -s $(DEPLOY_DIR)/db_update.py
|
|
|
|
.PHONY: deps
|
|
deps: $(DEPLOY_DIR) $(PYFA_DIR)/requirements.txt
|
|
AppDir/usr/bin/python -s -m pip install -U pip setuptools wheel
|
|
AppDir/usr/bin/python -s -m pip install -r $(PYFA_DIR)/requirements.txt
|
|
|
|
.PHONY: static
|
|
static: $(DEPLOY_DIR) $(APPIMAGE_SOURCES)
|
|
cp $(ROOT_DIR)/AppRun AppDir/
|
|
cp $(ROOT_DIR)/pyfa.desktop AppDir/
|
|
cp $(ROOT_DIR)/pyfa.desktop AppDir/usr/share/applications/
|
|
cp $(ROOT_DIR)/org.pyfa.pyfa.appdata.xml AppDir/usr/share/metainfo/
|
|
chmod +x $(ROOT_DIR)/pyfa && cp $(ROOT_DIR)/pyfa AppDir/usr/bin/
|
|
|
|
# Rule to copy generated PROJECT_SOURCES
|
|
$(DEPLOY_DIR)/%: $(PYFA_DIR)/% $(DEPLOY_DIR)
|
|
cp -r $< $@
|
|
|
|
# Prepare Python base AppImage, stripping Python metadata
|
|
$(DEPLOY_DIR): $(PYTHON_APPIMAGE)
|
|
./$(PYTHON_APPIMAGE) --appimage-extract
|
|
mv squashfs-root AppDir
|
|
rm AppDir/python*.desktop
|
|
rm AppDir/usr/share/applications/*.desktop
|
|
rm AppDir/usr/share/metainfo/*.appdata.xml
|
|
mkdir -p $(DEPLOY_DIR)
|
|
|
|
$(PYTHON_APPIMAGE):
|
|
curl -LO $(PYTHON_APPIMAGE_URL)
|
|
chmod +x $(PYTHON_APPIMAGE)
|
|
|
|
|
|
$(APPIMAGETOOL):
|
|
curl -LO $(APPIMAGETOOL_URL)
|
|
chmod +x $(APPIMAGETOOL)
|
|
|
|
clean:
|
|
rm -rf AppDir
|
|
|
|
clean-all: clean
|
|
rm -rf *.AppImage
|