diff --git a/QuasarApp.pro b/QuasarApp.pro index 04f103d..5f4dbc3 100644 --- a/QuasarApp.pro +++ b/QuasarApp.pro @@ -7,6 +7,7 @@ # QT -= gui +CONFIG += c++17 TARGET = QuasarApp TEMPLATE = lib @@ -35,14 +36,16 @@ SOURCES += \ quasarapp.cpp \ params.cpp \ locales.cpp \ - settings.cpp + settings.cpp \ + global.cpp HEADERS += \ quasarapp.h \ quasarapp_global.h \ params.h \ locales.h \ - settings.h + settings.h \ + global.h DISTFILES += \ QuasarLib.pri \ @@ -51,5 +54,5 @@ DISTFILES += \ RESOURCES += \ res.qrc -VERSION = 1.1.4 +VERSION = 1.1.5 diff --git a/QuasarLib.pri b/QuasarLib.pri index d44b36a..42a6e67 100644 --- a/QuasarLib.pri +++ b/QuasarLib.pri @@ -14,9 +14,11 @@ CONFIG(release, debug|release): { } else { QUASARAPP_LIB_OUTPUT_DIR="$$PWD/build/debug" } - -unix:LIBS += -L$$QUASARAPP_LIB_OUTPUT_DIR -lQuasarApp -win32:LIBS += -L$$QUASARAPP_LIB_OUTPUT_DIR -lQuasarApp1 +contains(QMAKE_HOST.os, Linux):{ + LIBS += -L$$QUASARAPP_LIB_OUTPUT_DIR -lQuasarApp +} else { + LIBS += -L$$QUASARAPP_LIB_OUTPUT_DIR -lQuasarApp1 +} INCLUDEPATH += "$$PWD/" diff --git a/global.cpp b/global.cpp new file mode 100644 index 0000000..dc4f98a --- /dev/null +++ b/global.cpp @@ -0,0 +1 @@ +#include "global.h" diff --git a/global.h b/global.h new file mode 100644 index 0000000..4733c1b --- /dev/null +++ b/global.h @@ -0,0 +1,67 @@ +#ifndef GLOBAL_H +#define GLOBAL_H + +#include +#include + +template +constexpr inline T operator | (T lhs, T rhs) +{ + + static_assert(std::is_enum::value, + "template parameter is not an enum type"); + + return static_cast(static_cast(lhs) | static_cast(rhs)); +} + +template +constexpr inline T operator & (T lhs, T rhs) +{ + + static_assert(std::is_enum::value, + "template parameter is not an enum type"); + + return static_cast(static_cast(lhs) & static_cast(rhs)); +} + +template +constexpr inline T operator >> (T lhs, T rhs) +{ + + static_assert(std::is_enum::value, + "template parameter is not an enum type"); + + return static_cast(static_cast(lhs) >> static_cast(rhs)); +} + +template +constexpr inline T operator << (T lhs, T rhs) +{ + + static_assert(std::is_enum::value, + "template parameter is not an enum type"); + + return static_cast(static_cast(lhs) << static_cast(rhs)); +} + +template +constexpr inline T operator ~ (T lhs) +{ + + static_assert(std::is_enum::value, + "template parameter is not an enum type"); + + return static_cast(~static_cast(lhs)); +} + +template +constexpr inline T operator ^ (T lhs, T rhs) +{ + + static_assert(std::is_enum::value, + "template parameter is not an enum type"); + + return static_cast(static_cast(lhs) ^ static_cast(rhs)); +} + +#endif // GLOBAL_H diff --git a/quasarapp.h b/quasarapp.h index f2c49cf..897aff4 100644 --- a/quasarapp.h +++ b/quasarapp.h @@ -11,6 +11,7 @@ #include "params.h" #include "locales.h" #include "settings.h" +#include "global.h" /** * @brief The QuasaraAppUtils class