Build Instructions
ๆฅๆฌ่ชใง่ชญใฟใใๆนใฏ ใใกใใฎใใผใธ ใใ่ฆงใใ ใใใ
Please see the Japanese version for reading in Japanese.
This page is intended for developers.
This section explains how to build the application.
The application is built using PyInstaller.
A pre-generated spec file is provided and should be used for building the application.
Please note that this process can take some time (approximately 10 minutes).
pyinstaller build.specFor more details on PyInstaller usage, please refer to the official documentation.
The documentation website is built and published via GitHub Actions:
- Workflow file:
.github/workflows/deploy-pages.yml - Trigger:
pull_request: Quarto build check only (no deploy)- push to
main: Quarto build + GitHub Pages deploy
For first-time setup in the repository, an administrator needs to set: Settings โ Pages โ Source = GitHub Actions.
Starting from v1.0.0, this repository provides a GitHub Actions release workflow:
- Workflow file:
.github/workflows/release-standalone.yml - Trigger:
pull_request/ push tomain: build verification only- tag push such as
v1.0.0: build + GitHub Release publishing
- Outputs:
LeafContourEFD-windows-x64.zipLeafContourEFD-macos-arm64.tar.gzLeafContourEFD-macos-x64.tar.gzLeafContourEFD-ubuntu-x64.tar.gz
All generated assets are attached to the corresponding GitHub Release. The Release notes also include an auto-generated table showing the executable architecture detected from each archive.
Before running PyInstaller, it is recommended to remove any existing build artifacts:
# PowerShell
Remove-Item -Recurse -Force build, dist
# Bash
rm -rf build distAfter Building
If the build completes successfully, the following directory structure will be generated at the project root:
project/
โโ build/
โโ dist/
โโ LeafContourEFD/
โโ LeafContourEFD(.exe)
โโ _internal/
โโ (library files)
The main executable is located under dist/LeafContourEFD/.
To improve stability, the application is built in onedir mode instead of onefile mode.
Therefore, the entire dist/LeafContourEFD/ folder must be distributed together.