qskinny/features/qskconfig.pri

203 lines
5.6 KiB
Plaintext
Raw Normal View History

2018-10-26 09:04:08 +02:00
############################################################################
# QSkinny - Copyright (C) 2016 Uwe Rathmann
# This file may be used under the terms of the QSkinny License, Version 1.0
############################################################################
QSK_VER_MAJ = 0
QSK_VER_MIN = 0
QSK_VER_PAT = 0
QSK_VERSION = $${QSK_VER_MAJ}.$${QSK_VER_MIN}.$${QSK_VER_PAT}
# trying the PREFIX environment variable first
2018-10-26 09:04:08 +02:00
QSK_INSTALL_PREFIX = $$(PREFIX)
isEmpty( QSK_INSTALL_PREFIX ) {
QSK_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX]
unix {
QSK_INSTALL_PREFIX = /usr/local/qskinny-$${QSK_VERSION}
}
2018-10-26 09:04:08 +02:00
win32 {
QSK_INSTALL_PREFIX = C:/Qskinny-$${QSK_VERSION}
}
2018-10-26 09:04:08 +02:00
}
QSK_INSTALL_DOCS = $${QSK_INSTALL_PREFIX}/doc
QSK_INSTALL_HEADERS = $${QSK_INSTALL_PREFIX}/include
QSK_INSTALL_LIBS = $${QSK_INSTALL_PREFIX}/lib
QSK_INSTALL_BINS = $${QSK_INSTALL_PREFIX}/bin
QSK_INSTALL_PLUGINS = $${QSK_INSTALL_PREFIX}/plugins
2020-05-24 12:19:28 +02:00
QSK_INSTALL_EXAMPLES = $${QSK_INSTALL_PREFIX}/examples
2018-10-26 09:04:08 +02:00
2019-04-01 17:41:21 +02:00
CONFIG += no_private_qt_headers_warning
2017-07-21 18:21:34 +02:00
CONFIG += warn_on
CONFIG += no_keywords
CONFIG += silent
CONFIG -= depend_includepath
CONFIG += strict_c++
CONFIG += c++11
CONFIG += pedantic
2019-04-01 17:41:21 +02:00
CONFIG += hide_symbols
2017-07-21 18:21:34 +02:00
# CONFIG += debug
# CONFIG += sanitize
2017-12-06 12:23:04 +01:00
2020-05-24 12:19:28 +02:00
use_no_rpath {
CONFIG -= use_local_rpath use_install_rpath
} else {
cross_compile {
CONFIG *= use_install_rpath
Add IOT dashboard example (#116) * Add IOT dashboard example * Add images * more content * add pie chart * Add skin factories etc. * more work on the pie chart * Try to use quick shapes * Revert "Try to use quick shapes" This reverts commit df6b5b22a339173d2a70ed85744b598811c26b30. Doesn't work that easily unfortunately. * implement design * Add fonts; for now as a resource We should use fontconfig of course later * improve menu bar * implement top bar * use QNanoPainter for circular graphs * Revert "use QNanoPainter for circular graphs" This reverts commit ba0263cb1c19462cc41063ec7087c95e176c8293. Try with QQuickPaintedItem instead for now. * use painted items for circular bar graphs (for now) * use different colors * use some gradients all of this is very hackish still * add to top bar * fix fonts and time display * implement usage * implement indoor temperature * implement Humidity * implement My Devices * fix opacity issue with devices * make icons quadratic with some quick fixes as usual * Add diagram * try to smooth out curves * Add diagram caption * use tiny font * make caption smaller * add wekdays * add grid lines * fix my devices * add light intensity * add box around each section * rename Card to Box * Put indoor temperature inside a box * put Humidity in a box * put the rest in a box * some small stuff * add kirigami code * something works somehow * maybe we don't need our own class still some work to do, but the main thing works * add shadow from outside ... because the class is not a QskControl * fine-tune the layout * cross compilation: Make sure examples find libraries at link time * fix compilation for embedded target * add night time skin * add new button class to better style it * more hints for the night time skin * change hints for dimmer * change hints for progress bars * Use animator for light dimmer * use animator for progress bars * Add Kirigami code It was on oversight that this was forgotten earlier. We could of course strip this down a lot to the part that we are actually using (i.e. the shadowed rectangle). * fix build with new QSkinny version * fix paddings, something in the API changed * fix stretch factors * fix build with new version * clang tidy fixes * fix unused parameter warnings should clean this up properly * beautify example * use astyle * style menu bar properly * fix warning * more size hints * refactor skins * more skin hints * graphic label skin hints * menu item states instead of own API * main grid box styling * top bar styling * fix build * style round progress bars * style time * style indoor temperature and humidity * simplify temperature and humidity * style some more * style My Devices section * style My Devices some more * fix styles when switching between them * style diagram * style more elements inside diagram * more diagram style * fix skin changes * style light intensity * Fix Humidity * fix light intensity layout and other stuff * style light intensity * style button value label * style round button * style button boxes some more * style menu bar top label * style menu bar icons * remove ShadowBox, it is not used * style shadow boxes * remove QskShadowedRectangle We are not using it * style usage spacer * fine tune * Refactor diagram before replacing it * Add Diagram drawn with OpenGL * use new Diagram class * Support more than one data point in a diagram * change data points and colors a bit * position caption box * adapt the spline to show nice curves * remove boost::math dependency We just hardcode the values here so we can get rid of the dependency. * Remove kirigami code that we don't need We only need the shadow * move kirigami code * rename header guards * add license headers * rename some classes
2021-04-26 06:22:35 +02:00
QMAKE_RPATHLINKDIR *= $${QSK_PLUGIN_DIR}/skins
2020-05-24 12:19:28 +02:00
} else {
!use_install_rpath: CONFIG *= use_local_rpath
}
}
2017-07-21 18:21:34 +02:00
MOC_DIR = moc
OBJECTS_DIR = obj
RCC_DIR = rcc
QSK_CONFIG += QskDll
2017-12-11 08:34:41 +01:00
*-g++* {
GCC_VERSION = $$system("$$QMAKE_CXX -dumpversion")
equals(GCC_VERSION,4) || contains(GCC_VERSION, 4.* ) {
# gcc4 is too old for certain checks
CONFIG -= pedantic sanitize
}
}
2017-10-30 12:06:19 +01:00
linux {
2017-07-21 18:21:34 +02:00
pedantic {
2017-10-30 12:06:19 +01:00
DEFINES += QT_STRICT_ITERATORS
2017-07-21 18:21:34 +02:00
# Qt headers do not stand pedantic checks, so it's better
# to exclude them by declaring them as system includes
# As most distros set QT_INSTALL_HEADERS to /usr/include we
# would run into gcc compiler errors and better drop it
# from the list below. Should be no problem as we don't
# add the Qt module to our includes and therefore don't
# need this path.
# QMAKE_CXXFLAGS += -isystem $$[QT_INSTALL_HEADERS]
2017-07-21 18:21:34 +02:00
QMAKE_CXXFLAGS += \
-isystem $$[QT_INSTALL_HEADERS]/QtCore \
-isystem $$[QT_INSTALL_HEADERS]/QtGui \
2017-10-30 14:38:30 +01:00
-isystem $$[QT_INSTALL_HEADERS]/QtGui/$$[QT_VERSION]/QtGui \
2017-07-21 18:21:34 +02:00
-isystem $$[QT_INSTALL_HEADERS]/QtQuick \
2017-10-30 14:38:30 +01:00
-isystem $$[QT_INSTALL_HEADERS]/QtQuick/$$[QT_VERSION]/QtQuick \
-isystem $$[QT_INSTALL_HEADERS]/QtQml \
-isystem $$[QT_INSTALL_HEADERS]/QtQml/$$[QT_VERSION]/QtQml \
2017-10-30 12:06:19 +01:00
}
}
linux-g++ | linux-g++-64 {
2017-12-08 13:57:36 +01:00
# --- optional optimzations
QMAKE_CXXFLAGS_DEBUG *= -O0
#QMAKE_CXXFLAGS_DEBUG *= -Og
QMAKE_CXXFLAGS_RELEASE *= -O3
QMAKE_CXXFLAGS_RELEASE *= -ffast-math
# QMAKE_CXXFLAGS_RELEASE *= -Ofast
# QMAKE_CXXFLAGS_RELEASE *= -Os
# Some versions ( here 2.31.1 ) of the BFD linker may generate shared
# libraries with corrupt symbol version info which leads to
# "invalid version 21" errors when the corrupt shared library is used.
# One possible workaround is to use the gold linker instead.
# QMAKE_LFLAGS *= -Wl,-fuse-ld=gold
2017-12-08 13:57:36 +01:00
}
2017-07-21 18:21:34 +02:00
2017-12-08 13:57:36 +01:00
pedantic {
linux-g++ | linux-g++-64 {
2017-12-06 12:23:04 +01:00
2017-07-21 18:21:34 +02:00
QMAKE_CXXFLAGS *= -pedantic-errors
QMAKE_CXXFLAGS *= -Wextra
QMAKE_CXXFLAGS *= -Werror=format-security
QMAKE_CXXFLAGS *= -Wlogical-op
# QMAKE_CXXFLAGS *= -Wconversion
# QMAKE_CXXFLAGS *= -Wfloat-equal
# QMAKE_CXXFLAGS *= -Wshadow
2017-12-11 08:34:41 +01:00
QMAKE_CXXFLAGS *= -Wsuggest-override
# QMAKE_CXXFLAGS *= -Wsuggest-final-types
# QMAKE_CXXFLAGS *= -Wsuggest-final-methods
2020-05-09 16:17:27 +02:00
# QMAKE_CXXFLAGS *= -fanalyzer
2017-07-21 18:21:34 +02:00
}
2017-12-08 13:57:36 +01:00
linux-clang {
2017-12-06 12:23:04 +01:00
2017-12-08 13:59:33 +01:00
#QMAKE_CXXFLAGS *= -pedantic-errors
#QMAKE_CXXFLAGS *= -Weverything
#QMAKE_CXXFLAGS *= -Wno-c++98-compat-pedantic
#QMAKE_CXXFLAGS *= -Wno-global-constructors
#QMAKE_CXXFLAGS *= -Wno-exit-time-destructors
#QMAKE_CXXFLAGS *= -Wno-padded
#QMAKE_CXXFLAGS *= -Wno-float-equal
#QMAKE_CXXFLAGS *= -Wno-undefined-reinterpret-cast
#QMAKE_CXXFLAGS *= -Wno-deprecated
#QMAKE_CXXFLAGS *= -Wno-switch-enum
#QMAKE_CXXFLAGS *= -Wno-keyword-macro
#QMAKE_CXXFLAGS *= -Wno-old-style-cast
#QMAKE_CXXFLAGS *= -Wno-used-but-marked-unused
#QMAKE_CXXFLAGS *= -Wno-weak-vtables
#QMAKE_CXXFLAGS *= -Wno-shadow
#QMAKE_CXXFLAGS *= -Wno-double-promotion
#QMAKE_CXXFLAGS *= -Wno-conversion
#QMAKE_CXXFLAGS *= -Wno-documentation-unknown-command
#QMAKE_CXXFLAGS *= -Wno-unused-macros
2017-12-08 13:57:36 +01:00
}
2017-07-21 18:21:34 +02:00
}
2017-12-07 11:54:34 +01:00
sanitize {
CONFIG += sanitizer
CONFIG += sanitize_address
#CONFIG *= sanitize_memory
CONFIG *= sanitize_undefined
linux-g++ | linux-g++-64 {
#QMAKE_CXXFLAGS *= -fsanitize-address-use-after-scope
#QMAKE_LFLAGS *= -fsanitize-address-use-after-scope
}
}
2017-07-21 18:21:34 +02:00
debug {
DEFINES += ITEM_STATISTICS=1
}
# Help out Qt Creator
ide: DEFINES += QT_IDE
2020-03-13 13:32:22 +01:00
2020-05-24 12:19:28 +02:00
# DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x000000
2022-03-18 12:32:57 +01:00
LOCAL_PRI=$$(QSK_LOCAL_PRI)
if ( exists( $${LOCAL_PRI} ) ) {
# When not working with the Qt/Creator it is often more convenient
# to include the specific options of your local build, than passing
# them all on the command line
include( $${LOCAL_PRI} )
}