123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- # vim: ft=qmake
- # Custom functions
- defineReplace(glob_filenames) {
- for(pattern, ARGS) {
- results *= $$files(src/$${pattern}, true)
- }
- return($$results)
- }
- # Base configuration
- # widgets: Make native file dialogs available to QML (must use QApplication)
- QT = quick quickcontrols2 widgets
- DEFINES += QT_DEPRECATED_WARNINGS
- CONFIG += warn_off c++11 release
- TEMPLATE = app
- BUILD_DIR = build
- MOC_DIR = $$BUILD_DIR/moc
- OBJECTS_DIR = $$BUILD_DIR/obj
- RCC_DIR = $$BUILD_DIR/rcc
- QRC_FILE = $$BUILD_DIR/resources.qrc
- RESOURCES += $$QRC_FILE
- HEADERS += $$glob_filenames(*.h) submodules/hsluv-c/src/hsluv.h
- SOURCES += $$glob_filenames(*.cpp) submodules/hsluv-c/src/hsluv.c
- TARGET = moment
- unix:!macx {
- LIBS += -lX11 -lXss
- }
- # Custom CONFIG options
- dev {
- # Enable debugging and don't use the Qt Resource System to compile faster
- CONFIG -= warn_off release
- CONFIG += debug qml_debug declarative_debug
- RESOURCES -= $$QRC_FILE
- warning(make install cannot be used with the dev CONFIG option.)
- }
- no-x11 {
- # Compile without X11-specific features (auto-away)
- DEFINES += NO_X11
- LIBS -= -lX11 -lXss
- }
- # Files to copy for `make install` command
- !dev:unix {
- isEmpty(PREFIX) { PREFIX = /usr/local }
- executables.path = $$PREFIX/bin
- executables.files = $$TARGET
- shortcuts.path = $$PREFIX/share/applications
- shortcuts.files = packaging/moment.desktop
- icons256.path = $$PREFIX/share/icons/hicolor/256x256/apps
- icons256.files = packaging/moment.png
- examples.path = $$PREFIX/share/examples/moment
- examples.files = src/config/settings.py
- metainfo.path = $$PREFIX/share/metainfo
- metainfo.files = packaging/moment.metainfo.xml
- INSTALLS += executables shortcuts icons256 examples metainfo
- }
- !dev:win32 {
- executables.path = "C:/Program Files"
- executables.files = $$TARGET
- INSTALLS += executables
- }
- # Add `make test` command
- test.commands = find src/gui -type f -name '*.qml' -exec qmllint '{}' + &&
- test.commands += flake8 src/backend &&
- test.commands += mypy --pretty src/backend
- QMAKE_EXTRA_TARGETS += test
- # Add stuff to `make clean` command
- # Allow cleaning folders instead of just files
- win32:QMAKE_DEL_FILE = rmdir /q /s
- !win32:QMAKE_DEL_FILE = rm -rf
- for(file, $$list($$glob_filenames(*.py))) {
- PYCACHE_DIRS *= $$dirname(file)/__pycache__
- PYCACHE_DIRS *= $$dirname(file)/.mypy_cache
- }
- QMAKE_CLEAN *= $$MOC_DIR $$OBJECTS_DIR $$RCC_DIR $$PYCACHE_DIRS $$QRC_FILE
- QMAKE_CLEAN *= $$BUILD_DIR $$TARGET Makefile moment.pro.user .qmake.stash
- QMAKE_CLEAN *= $$glob_filenames(*.pyc, *.qmlc, *.jsc, *.egg-info)
- QMAKE_CLEAN *= packaging/flatpak/flatpak-env
- QMAKE_CLEAN *= packaging/flatpak/flatpak-pip-generator
- QMAKE_CLEAN *= packaging/flatpak/flatpak-env-requirements.txt
- QMAKE_CLEAN *= packaging/flatpak/flatpak-pip.json .flatpak-builder
- # Generate resource file
- RESOURCE_FILES *= $$glob_filenames(qmldir, *.qml, *.qpl, *.js, *.py)
- RESOURCE_FILES *= $$glob_filenames( *.jpg, *.jpeg, *.png, *.svg, *.wav)
- file_content += '<!-- vim: set ft=xml : -->'
- file_content += '<!DOCTYPE RCC>'
- file_content += '<RCC version="1.0">'
- file_content += '<qresource prefix="/">'
- for(file, RESOURCE_FILES) {
- file_content += ' <file alias="$$file">../$$file</file>'
- }
- file_content += '</qresource>'
- file_content += '</RCC>'
- write_file($$QRC_FILE, file_content)
|