moment/moment.pro

130 lines
3.2 KiB
Prolog
Raw Normal View History

2020-11-16 06:44:05 +11:00
# vim: ft=qmake
2020-07-17 03:50:06 +10:00
# Custom functions
defineReplace(glob_filenames) {
for(pattern, ARGS) {
results *= $$files(src/$${pattern}, true)
}
return($$results)
}
# Base configuration
2019-07-16 06:14:08 +10:00
# widgets: Make native file dialogs available to QML (must use QApplication)
QT = quick quickcontrols2 widgets
2019-08-31 10:13:38 +10:00
DEFINES += QT_DEPRECATED_WARNINGS
CONFIG += warn_off c++11 release
TEMPLATE = app
2019-08-31 10:13:38 +10:00
BUILD_DIR = build
MOC_DIR = $$BUILD_DIR/moc
OBJECTS_DIR = $$BUILD_DIR/obj
2019-08-31 10:13:38 +10:00
RCC_DIR = $$BUILD_DIR/rcc
QRC_FILE = $$BUILD_DIR/resources.qrc
2019-08-31 10:13:38 +10:00
RESOURCES += $$QRC_FILE
2020-07-17 03:50:06 +10:00
HEADERS += $$glob_filenames(*.h) submodules/hsluv-c/src/hsluv.h
SOURCES += $$glob_filenames(*.cpp) submodules/hsluv-c/src/hsluv.c
TARGET = moment
2019-08-31 10:13:38 +10:00
2020-07-11 14:51:53 +10:00
unix:!macx {
LIBS += -lX11 -lXss
}
2019-08-31 10:13:38 +10:00
# 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.)
2019-08-31 10:13:38 +10:00
}
no-x11 {
# Compile without X11-specific features (auto-away)
DEFINES += NO_X11
LIBS -= -lX11 -lXss
}
2019-08-31 10:13:38 +10:00
2020-11-16 06:44:05 +11:00
# Files to copy for `make install` command
2019-08-31 10:13:38 +10:00
!dev:unix {
isEmpty(PREFIX) { PREFIX = /usr/local }
2019-08-31 10:13:38 +10:00
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
INSTALLS += executables shortcuts icons256 examples
}
!dev:win32 {
executables.path = "C:/Program Files"
executables.files = $$TARGET
INSTALLS += executables
}
2020-11-16 06:44:05 +11:00
# Add `make test` command
2020-11-16 07:33:05 +11:00
test.commands = find src/gui -type f -name '*.qml' -exec qmllint '{}' + &&
test.commands += flake8 src/backend &&
test.commands += mypy --pretty src/backend
2020-11-16 06:44:05 +11:00
QMAKE_EXTRA_TARGETS += test
2020-11-16 06:44:05 +11:00
# Add stuff to `make clean` command
# Allow cleaning folders instead of just files
win32:QMAKE_DEL_FILE = rmdir /q /s
2019-08-31 10:13:38 +10:00
!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
2020-03-16 02:51:30 +11:00
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
2020-11-16 06:44:05 +11:00
# Generate resource file
RESOURCE_FILES *= $$glob_filenames(qmldir, *.qml, *.qpl, *.js, *.py)
RESOURCE_FILES *= $$glob_filenames( *.jpg, *.jpeg, *.png, *.svg, *.wav)
2020-11-16 06:44:05 +11:00
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)