200 lines
5.7 KiB
Plaintext
200 lines
5.7 KiB
Plaintext
################################################################
|
|
# Qwt Widget Library
|
|
# Copyright (C) 1997 Josef Wilgen
|
|
# Copyright (C) 2002 Uwe Rathmann
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the Qwt License, Version 1.0
|
|
################################################################
|
|
|
|
######################################################################
|
|
# qmake internal options
|
|
######################################################################
|
|
|
|
CONFIG += qt
|
|
CONFIG += warn_on
|
|
CONFIG += no_keywords
|
|
CONFIG += silent
|
|
CONFIG -= depend_includepath
|
|
|
|
# CONFIG += sanitize
|
|
# CONFIG += pedantic
|
|
|
|
# older Qt headers result in tons of warnings with modern compilers and flags
|
|
unix:lessThan(QT_MAJOR_VERSION, 5) CONFIG += qtsystemincludes
|
|
|
|
# CONFIG += c++11
|
|
|
|
c++11 {
|
|
CONFIG += strict_c++
|
|
}
|
|
|
|
sanitize {
|
|
|
|
CONFIG += sanitizer
|
|
CONFIG += sanitize_address
|
|
#CONFIG *= sanitize_memory
|
|
CONFIG *= sanitize_undefined
|
|
}
|
|
|
|
# Include the generated moc files in the corresponding cpp file
|
|
# what increases the compile time significantly
|
|
|
|
DEFINES += QWT_MOC_INCLUDE=1
|
|
# DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000
|
|
|
|
######################################################################
|
|
# release/debug mode
|
|
######################################################################
|
|
|
|
win32 {
|
|
# On Windows you can't mix release and debug libraries.
|
|
# The designer is built in release mode. If you like to use it
|
|
# you need a release version. For your own application development you
|
|
# might need a debug version.
|
|
# Enable debug_and_release + build_all if you want to build both.
|
|
|
|
CONFIG += debug_and_release
|
|
CONFIG += build_all
|
|
}
|
|
else {
|
|
|
|
CONFIG += release
|
|
|
|
VER_MAJ = $${QWT_VER_MAJ}
|
|
VER_MIN = $${QWT_VER_MIN}
|
|
VER_PAT = $${QWT_VER_PAT}
|
|
VERSION = $${QWT_VERSION}
|
|
}
|
|
|
|
linux {
|
|
|
|
pedantic {
|
|
|
|
DEFINES += QT_STRICT_ITERATORS
|
|
# DEFINES += __STRICT_ANSI__
|
|
|
|
# Qt headers do not stand pedantic checks, so it's better
|
|
# to exclude them by declaring them as system includes
|
|
|
|
QMAKE_CXXFLAGS += \
|
|
-isystem $$[QT_INSTALL_HEADERS] \
|
|
-isystem $$[QT_INSTALL_HEADERS]/QtCore \
|
|
-isystem $$[QT_INSTALL_HEADERS]/QtGui \
|
|
-isystem $$[QT_INSTALL_HEADERS]/QtWidgets
|
|
}
|
|
|
|
linux-g++ | linux-g++-64 {
|
|
|
|
# CONFIG += separate_debug_info
|
|
|
|
sanitize_undefined {
|
|
|
|
GCC_VERSION = $$system("$$QMAKE_CXX -dumpversion")
|
|
equals(GCC_VERSION,4) || contains(GCC_VERSION, 4.* ) {
|
|
|
|
CONFIG -= sanitize_undefined
|
|
}
|
|
}
|
|
|
|
c++11 {
|
|
QMAKE_CXXFLAGS *= -Wsuggest-override
|
|
}
|
|
|
|
pedantic {
|
|
|
|
CONFIG -= warn_on
|
|
|
|
QMAKE_CXXFLAGS *= -Wall
|
|
QMAKE_CXXFLAGS *= -Wextra
|
|
QMAKE_CXXFLAGS *= -Wpedantic
|
|
|
|
QMAKE_CXXFLAGS *= -Wcast-qual
|
|
QMAKE_CXXFLAGS *= -Wcast-align
|
|
QMAKE_CXXFLAGS *= -Wlogical-op
|
|
QMAKE_CXXFLAGS *= -Wredundant-decls
|
|
QMAKE_CXXFLAGS *= -Wformat
|
|
QMAKE_CXXFLAGS *= -Wshadow
|
|
QMAKE_CXXFLAGS *= -Woverloaded-virtual
|
|
|
|
# checks qwt code does not pass, but should be able to
|
|
# QMAKE_CXXFLAGS *= -Wconversion
|
|
|
|
# checks qwt code does not pass
|
|
|
|
# QMAKE_CXXFLAGS *= -Wuseless-cast
|
|
# QMAKE_CXXFLAGS *= -Wmissing-declarations
|
|
# QMAKE_CXXFLAGS *= -Winline
|
|
# QMAKE_CXXFLAGS *= -Wdouble-promotion
|
|
# QMAKE_CXXFLAGS *= -Wfloat-equal
|
|
# QMAKE_CXXFLAGS *= -Wpadded
|
|
# QMAKE_CXXFLAGS *= -Waggregate-return
|
|
# QMAKE_CXXFLAGS *= -Wzero-as-null-pointer-constant
|
|
}
|
|
|
|
# --- optional optimzations
|
|
|
|
# qwt code doesn't check errno after calling math functions
|
|
# so it is perfectly safe to disable it in favor of better performance
|
|
QMAKE_CXXFLAGS *= -fno-math-errno
|
|
|
|
# qwt code doesn't rely ( at least intends not to do )
|
|
# on an exact implementation of IEEE or ISO rules/specifications
|
|
QMAKE_CXXFLAGS *= -funsafe-math-optimizations
|
|
|
|
# also enables -fno-math-errno and -funsafe-math-optimizations
|
|
# QMAKE_CXXFLAGS *= -ffast-math
|
|
|
|
# QMAKE_CXXFLAGS_DEBUG *= -Og # since gcc 4.8
|
|
|
|
# QMAKE_CXXFLAGS_RELEASE *= -O3
|
|
# QMAKE_CXXFLAGS_RELEASE *= -Ofast
|
|
# QMAKE_CXXFLAGS_RELEASE *= -Os
|
|
|
|
# when using the gold linker ( Qt < 4.8 ) - might be
|
|
# necessary on non linux systems too
|
|
#QMAKE_LFLAGS += -lrt
|
|
|
|
sanitize {
|
|
|
|
# QMAKE_CXXFLAGS *= -fsanitize-address-use-after-scope
|
|
# QMAKE_LFLAGS *= -fsanitize-address-use-after-scope
|
|
}
|
|
}
|
|
|
|
linux-clang {
|
|
|
|
# workaround for a clang 3.8 bug
|
|
# DEFINES += __STRICT_ANSI__
|
|
|
|
# QMAKE_CXXFLAGS_RELEASE *= -O3
|
|
}
|
|
|
|
# QMAKE_CXXFLAGS *= -Werror
|
|
}
|
|
|
|
qtsystemincludes {
|
|
|
|
# mark Qt directories as a system directories - usually to get rid
|
|
# of compiler warnings in Qt headers of old Qt versions
|
|
# when being built with modern compilers
|
|
|
|
QMAKE_CXXFLAGS += \
|
|
-isystem $$[QT_INSTALL_HEADERS]/QtCore \
|
|
-isystem $$[QT_INSTALL_HEADERS]/QtGui
|
|
}
|
|
|
|
######################################################################
|
|
# paths for building qwt
|
|
######################################################################
|
|
|
|
MOC_DIR = moc
|
|
RCC_DIR = resources
|
|
|
|
!debug_and_release {
|
|
|
|
# in case of debug_and_release object files
|
|
# are built in the release and debug subdirectories
|
|
OBJECTS_DIR = obj
|
|
}
|