Alex A. Naanou 1748a26e61 tweaks + made docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-08-20 22:42:44 +03:00

140 lines
4.4 KiB
Plaintext

ImageGrid.Viewer Makefile
To check for buld/development dependencies that make can't install itself:
$ make check
To setup the development environment:
$ make dev
To do a default build use:
$ make dist
In some cases making things directly starting from a clean directory
may either fail or use global version of a utility instead of the
version specified for the app, if this happens first build the
environment and then try again:
$ make dev
...
$ make dist
To print full list of user make targets use:
$ make help
Variables to control the build:
APP_NAME - Application name
APP_BIN - App binary name (ignored for MacOS)
TARGET_OS - target OS (win32, linux, darwin)
ARCH - target achitecture (ia32, x86, x64, ...)
ELECTRON_DOWNOAD_URL
- URL to download electron binary
ELECTRON_DIST - electron distribution file name pattern
BUILD_MODE - can be "repack" or "in-place" (default)
Variables to help with troubleshooting:
IMAGEGRID_DEBUG - force show devtools on startup
NOTE: devtools will should start automaticalky
if loading takes too long or if it was
started on last run,
IMAGEGRID_FORCE_SHOW
- force show viewer GUI on startup
NOTE: when setting variables avoid using spaces and other characters
make can get fussy about...
NOTE: cross compilation is at this time not supported, if you try it
and it works then 1) you got very lucky and 2) tell me about it =)
...at least the node native packages (sharp) will likely either
fail or will get compiled to the wrong arch and not be used, and
some non-native packages may misbehave (though I'm not aware of
any at this point, so report them if you encounter one).
This is complicated by the fact that most of ImageGrid.Viewer is
platform-agnostic and will run on almost anything and will simply
try to ignore broken packages and features depending on them, so
check the console log for any odd load reports...
...but note that cross-building and packaging is only possible
either without the native modules or with them pre-built for the
target platform, at this point.
Examples:
# check if all dependencies are available...
$ make check
# make development environment...
$ make dev
# full build...
$ make clean dist
# build in repack mode...
$ BUILD_MODE=repack make dist
# build for darwin/macOS... (EXPERIMENTAL)
$ TARGET_OS=darwin make clean dist
# run with Devtools started...
$ IMAGEGRID_DEBUG=1 make run
# force show the main window...
$ IMAGEGRID_FORCE_SHOW=1 make run
Help and info:
help: Print make target help and exit
version: Print version and exit
Dependency checking:
check: Run all dependency checks
check-web: Run web build dependency checks
check-help: Run help/build (Makefile) dependency checks
Generic targets:
all: Run the full build chain
doc: Build documentation
dev: Build the development environment
dev-npm: Install the npm global dev package (might need sudo)
dist: Build distributable package
test-dist: Build testing distributable package
deploy: Run ./scripts/deploy.sh on contents of DIST_DIR
run: Run app in-place
Cleanup:
clean: Cleanup
clean-generated: Clean generated files
clean-dist: Clean DIST_DIR directory
clean-all: Clean all
Generic components:
js: Build JS modules
app-dir-full: Build full app directory
app-dir-minimal: Build minimal app directory
Web/Browser:
web: Build a browser-runnable package
Electron:
electron-dist: Make electron distributable
electron-test-dist: Make electron test distributable
electron-unpacked: Make unpacked electron app
electron-run: Run app in electron
Open Desktop:
Patches:
patched-requirejs: Patch requirejs (see: NOTES)
unpatched-requirejs: Unpatch requirejs
CLI:
devel-cli: Install CLI interface as a link to this tree.
cli: install CLI interface as independent package.
---
This file was generated by: make doc/MAKE