diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2018-12-24 22:45:38 +0100 | 
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2018-12-24 22:45:38 +0100 | 
| commit | 323dd162f5326b998e1c92ab4cfec8a63574023f (patch) | |
| tree | fb4f0f4f7585d3cb90aef453167c7f4df0c6eeee | |
| parent | 3981f867377ca0652d0cc0ababbbc30208db7e1c (diff) | |
cmake: decruft, disable deprecated Qt functions
| -rw-r--r-- | CMakeLists.txt | 4 | ||||
| -rw-r--r-- | cmake/apple.cmake | 2 | ||||
| -rw-r--r-- | cmake/linux.cmake | 2 | ||||
| -rw-r--r-- | cmake/mingw-w64.cmake | 2 | ||||
| -rw-r--r-- | cmake/opentrack-boilerplate.cmake | 6 | ||||
| -rw-r--r-- | cmake/opentrack-hier.cmake | 114 | ||||
| -rw-r--r-- | cmake/opentrack-load-user-settings.cmake | 3 | ||||
| -rw-r--r-- | cmake/opentrack-pkg-config.cmake | 1 | ||||
| -rw-r--r-- | cmake/opentrack-platform.cmake | 130 | ||||
| -rw-r--r-- | cmake/opentrack-policy.cmake | 17 | ||||
| -rw-r--r-- | cmake/opentrack-qt.cmake | 14 | ||||
| -rw-r--r-- | compat/run-in-thread.hpp | 4 | ||||
| -rw-r--r-- | compat/timer.cpp | 2 | ||||
| -rw-r--r-- | gui/keyboard.cpp | 50 | ||||
| -rw-r--r-- | gui/keyboard.h | 10 | ||||
| -rw-r--r-- | logic/win32-shortcuts.cpp | 22 | ||||
| -rw-r--r-- | spline/spline-widget.cpp | 17 | ||||
| -rw-r--r-- | tracker-fusion/fusion.cpp | 2 | ||||
| -rw-r--r-- | tracker-hatire/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | tracker-hatire/ftnoir_tracker_hat.h | 12 | ||||
| -rw-r--r-- | tracker-hatire/thread.cpp | 1 | ||||
| -rw-r--r-- | tracker-wii/wiiyourself/wiimote.h | 2 | 
22 files changed, 216 insertions, 205 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a56974b..f5e1b730 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,10 @@ set(CMAKE_C_LINKER_PREFERENCE_PROPAGATES OFF)  set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES ON)  set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") + +include(CMakeDetermineCCompiler) +include(CMakeDetermineCXXCompiler) +include(CMakeParseArguments)  include(opentrack-mrproper)  project(opentrack) diff --git a/cmake/apple.cmake b/cmake/apple.cmake index 627ef3c1..f6b83382 100644 --- a/cmake/apple.cmake +++ b/cmake/apple.cmake @@ -3,7 +3,7 @@ set(CMAKE_BUILD_TYPE_INIT RELEASE)  set(CMAKE_CXX_FLAGS "-arch x86_64 -stdlib=libc++" CACHE STRING "" FORCE)  set(CMAKE_C_FLAGS "-arch x86_64" CACHE STRING "" FORCE) -set(CMAKE_C_FLAGS_RELEASE "-ffast-math -O3 -flto -fvisibility=hidden -g" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS_RELEASE "-ffast-math -O3 -flto -g" CACHE STRING "" FORCE)  set(CMAKE_CXX_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "" FORCE)  set(cmake-link-common "-stdlib=libc++ -arch x86_64") diff --git a/cmake/linux.cmake b/cmake/linux.cmake index 326c4d4a..5513f511 100644 --- a/cmake/linux.cmake +++ b/cmake/linux.cmake @@ -7,7 +7,7 @@ set(CMAKE_AR "gcc-ar" CACHE STRING "" FORCE)  set(CMAKE_NM "gcc-nm" CACHE STRING "" FORCE)  set(CMAKE_RANLIB "gcc-ranlib" CACHE STRING "" FORCE) -set(CMAKE_C_FLAGS_RELEASE "-ffast-math -O3 -flto -fuse-linker-plugin -fvisibility=hidden -fPIC" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS_RELEASE "-ffast-math -O3 -flto -fuse-linker-plugin -fPIC" CACHE STRING "" FORCE)  set(CMAKE_CXX_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "" FORCE)  set(cmake-link-common "") diff --git a/cmake/mingw-w64.cmake b/cmake/mingw-w64.cmake index ec552103..b543bbdd 100644 --- a/cmake/mingw-w64.cmake +++ b/cmake/mingw-w64.cmake @@ -81,7 +81,7 @@ if(WARNINGS_ENABLE)      set(_CXX_WARNS "${_C_WARNS} ${usual-warns} ${noisy-warns} ${missing-override}")  endif() -set(ccflags-common "-fvisibility=hidden -pipe -g3") +set(ccflags-common "-pipe -g3")  set(_CXXFLAGS "${ccflags-common} ${_CXX_WARNS}")  set(_CFLAGS "${ccflags-common} -std=c11 ${_C_WARNS}")  set(_CFLAGS_RELEASE "${cpu} ${fpu} ${lto} ${sections} ${cc}") diff --git a/cmake/opentrack-boilerplate.cmake b/cmake/opentrack-boilerplate.cmake index 9d72c1af..40f65474 100644 --- a/cmake/opentrack-boilerplate.cmake +++ b/cmake/opentrack-boilerplate.cmake @@ -117,8 +117,6 @@ function(otr_install_pdb_current_project target)      endif()  endfunction() -include(CMakeParseArguments) -  function(otr_module n_)      message(STATUS "module ${n_}")      cmake_parse_arguments(arg @@ -173,6 +171,10 @@ function(otr_module n_)          set_property(TARGET "${n}" PROPERTY PREFIX "")      endif() +    if(NOT arg_NO-QT) +        otr_qt2("${n}") +    endif() +      set(self "${n}" PARENT_SCOPE)      if(NOT arg_RELINK) diff --git a/cmake/opentrack-hier.cmake b/cmake/opentrack-hier.cmake index 2b3159b4..e3eeab11 100644 --- a/cmake/opentrack-hier.cmake +++ b/cmake/opentrack-hier.cmake @@ -1,56 +1,58 @@ -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
 -# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
 -# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
 -# AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 -# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 -# PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 -# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 -# PERFORMANCE OF THIS SOFTWARE.
 -
 -include_guard(GLOBAL)
 -
 -set(opentrack-install-rpath "")
 -if(APPLE)
 -    set(opentrack-hier-pfx ".")
 -    set(opentrack-hier-path "/")                        # MUST HAVE A TRAILING BACKSLASH
 -    set(opentrack-hier-doc "/")                         # MUST HAVE A TRAILING BACKSLASH
 -    set(opentrack-hier-str RUNTIME DESTINATION . LIBRARY DESTINATION .)
 -    set(opentrack-doc-pfx "./doc")
 -    set(opentrack-doc-src-pfx "./source-code")
 -    set(opentrack-i18n-pfx "./i18n")
 -    set(opentrack-i18n-path "./i18n")
 -elseif(WIN32)
 -    set(opentrack-hier-pfx "./modules")
 -    set(opentrack-hier-path "/modules/")                # MUST HAVE A TRAILING BACKSLASH
 -    set(opentrack-hier-doc "/doc/")                     # MUST HAVE A TRAILING BACKSLASH
 -    set(opentrack-doc-pfx "./doc")
 -    set(opentrack-doc-src-pfx "./source-code")
 -    set(opentrack-hier-str RUNTIME DESTINATION ./modules/ LIBRARY DESTINATION ./modules/)
 -    set(opentrack-i18n-pfx "./i18n")
 -    set(opentrack-i18n-path "./i18n")
 -    set(opentrack-hier-debug "./debug")
 -else()
 -    set(opentrack-hier-pfx "libexec/opentrack")
 -    set(opentrack-hier-path "/../libexec/opentrack/")   # MUST HAVE A TRAILING BACKSLASH
 -    set(opentrack-hier-doc "/share/doc/opentrack/")     # MUST HAVE A TRAILING BACKSLASH
 -    set(opentrack-doc-pfx "./share/doc/opentrack")
 -    set(opentrack-doc-src-pfx "./share/doc/opentrack/source-code")
 -    set(opentrack-install-rpath "${CMAKE_INSTALL_PREFIX}/${opentrack-hier-pfx}")
 -    set(opentrack-hier-str ARCHIVE DESTINATION share/opentrack LIBRARY DESTINATION ${opentrack-hier-pfx} RUNTIME DESTINATION bin)
 -    set(opentrack-i18n-pfx "./share/opentrack/i18n")
 -    set(opentrack-i18n-path "../share/opentrack/i18n")
 -endif()
 -
 -function(otr_escape_string var str)
 -    string(REGEX REPLACE "([\$\\\"#])" "\\\\\\1" tmp__ "${str}")
 -        set(${var} "${tmp__}" PARENT_SCOPE)
 -endfunction()
 -
 -set(opentrack-contrib-pfx "${opentrack-doc-pfx}/contrib")
 -
 -set(opentrack-binary-suffix "")
 -if(APPLE)
 -    set(opentrack-binary-suffix ".bin")
 -elseif(WIN32)
 -    set(opentrack-binary-suffix ".exe")
 -endif()
 +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE +# AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL +# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR +# PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +include_guard(GLOBAL) + +set(opentrack-install-rpath "") +if(APPLE) +    set(opentrack-hier-pfx ".") +    set(opentrack-hier-path "/")                        # MUST HAVE A TRAILING BACKSLASH +    set(opentrack-hier-doc "/")                         # MUST HAVE A TRAILING BACKSLASH +    set(opentrack-hier-str RUNTIME DESTINATION . LIBRARY DESTINATION .) +    set(opentrack-doc-pfx "./doc") +    set(opentrack-doc-src-pfx "./source-code") +    set(opentrack-i18n-pfx "./i18n") +    set(opentrack-i18n-path "./i18n") +elseif(WIN32) +    set(opentrack-hier-pfx "./modules") +    set(opentrack-hier-path "/modules/")                # MUST HAVE A TRAILING BACKSLASH +    set(opentrack-hier-doc "/doc/")                     # MUST HAVE A TRAILING BACKSLASH +    set(opentrack-doc-pfx "./doc") +    set(opentrack-doc-src-pfx "./source-code") +    set(opentrack-hier-str RUNTIME DESTINATION ./modules/ LIBRARY DESTINATION ./modules/) +    set(opentrack-i18n-pfx "./i18n") +    set(opentrack-i18n-path "./i18n") +    set(opentrack-hier-debug "./debug") +else() +    set(opentrack-hier-pfx "libexec/opentrack") +    set(opentrack-hier-path "/../libexec/opentrack/")   # MUST HAVE A TRAILING BACKSLASH +    set(opentrack-hier-doc "/share/doc/opentrack/")     # MUST HAVE A TRAILING BACKSLASH +    set(opentrack-doc-pfx "./share/doc/opentrack") +    set(opentrack-doc-src-pfx "./share/doc/opentrack/source-code") +    set(opentrack-install-rpath "${CMAKE_INSTALL_PREFIX}/${opentrack-hier-pfx}") +    set(opentrack-hier-str ARCHIVE DESTINATION share/opentrack LIBRARY DESTINATION ${opentrack-hier-pfx} RUNTIME DESTINATION bin) +    set(opentrack-i18n-pfx "./share/opentrack/i18n") +    set(opentrack-i18n-path "../share/opentrack/i18n") +endif() + +function(otr_escape_string var str) +    string(REGEX REPLACE "([\$\\\"#])" "\\\\\\1" tmp__ "${str}") +        set(${var} "${tmp__}" PARENT_SCOPE) +endfunction() + +set(opentrack-contrib-pfx "${opentrack-doc-pfx}/contrib") + +set(opentrack-binary-suffix "") +if(APPLE) +    set(opentrack-binary-suffix ".bin") +elseif(WIN32) +    set(opentrack-binary-suffix ".exe") +endif() + +set(CMAKE_INSTALL_RPATH "${opentrack-install-rpath}") diff --git a/cmake/opentrack-load-user-settings.cmake b/cmake/opentrack-load-user-settings.cmake index a0284943..0ce6e9b0 100644 --- a/cmake/opentrack-load-user-settings.cmake +++ b/cmake/opentrack-load-user-settings.cmake @@ -20,9 +20,6 @@ else()      endif()  endif() -include(CMakeDetermineCCompiler) -include(CMakeDetermineCXXCompiler) -  if(NOT CMAKE_SYSTEM_NAME STREQUAL CMAKE_HOST_SYSTEM_NAME)      set(__sdk_host_os "${CMAKE_HOST_SYSTEM_NAME}-cross-")  else() diff --git a/cmake/opentrack-pkg-config.cmake b/cmake/opentrack-pkg-config.cmake index b12b786c..7d70070e 100644 --- a/cmake/opentrack-pkg-config.cmake +++ b/cmake/opentrack-pkg-config.cmake @@ -14,7 +14,6 @@ function(otr_pkgconfig target)              set(includes ${includes} ${${k}_INCLUDE_DIRS} ${${k}_INCLUDEDIR})              set(ldflags "${ldflags} ${${k}_LDFLAGS} ")              set(libs ${libs} ${${k}_LIBRARIES}) -            #message(STATUS "${target} | ${i} | ${cflags} | ${includes} | ${ldflags} | ${libs} | ")          else()              message(FATAL_ERROR "Can't find '${i}'. Please install development files for this package.")          endif() diff --git a/cmake/opentrack-platform.cmake b/cmake/opentrack-platform.cmake index 1df19b2b..32599896 100644 --- a/cmake/opentrack-platform.cmake +++ b/cmake/opentrack-platform.cmake @@ -23,6 +23,10 @@  include_guard(GLOBAL) +if(MSVC AND MSVC_VERSION LESS "1915" AND NOT ".${CMAKE_CXX_COMPILER_ID}" STREQUAL ".Clang") +    message(FATAL_ERROR "Visual Studio too old. Use Visual Studio 2017 or newer.") +endif() +  if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT CMAKE_INSTALL_PREFIX)      set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "" FORCE)  endif() @@ -34,26 +38,28 @@ endif()  string(TOUPPER "${CMAKE_BUILD_TYPE}" __build_type)  set(CMAKE_BUILD_TYPE "${__build_type}" CACHE STRING "" FORCE) -set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) +include_directories("${CMAKE_SOURCE_DIR}") -if (CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*|i[0-9]86.*|x86.*") -    set(opentrack-intel TRUE) -else() -    set(opentrack-intel FALSE) -endif() +set(opentrack_maintainer-mode FALSE CACHE INTERNAL "Select if developing core code (not modules)") -if(CMAKE_SIZEOF_VOID_P GREATER_EQUAL 8) -    set(opentrack-64bit TRUE) -else() -    set(opentrack-64bit FALSE) -endif() +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_DEFAULT 17) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) +set(CMAKE_CXX_EXTENSIONS FALSE) -if(APPLE AND NOT CMAKE_OSX_ARCHITECTURES) -    set(CMAKE_OSX_ARCHITECTURES  "x86_64") -endif() +set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +set(CMAKE_SKIP_INSTALL_RPATH FALSE) +set(CMAKE_SKIP_RPATH FALSE) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC OFF) +set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) -if(MSVC AND MSVC_VERSION LESS "1915" AND NOT ".${CMAKE_CXX_COMPILER_ID}" STREQUAL ".Clang") -    message(FATAL_ERROR "Visual Studio too old. Use Visual Studio 2017 or newer.") +set(CMAKE_C_VISIBILITY_PRESET hidden) +set(CMAKE_CXX_VISIBILITY_PRESET hidden) + +if(NOT WIN32 AND NOT APPLE) +    include(opentrack-pkg-config)  endif()  if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") @@ -66,12 +72,39 @@ if(CMAKE_C_COMPILER_ID STREQUAL "Clang")      set(CMAKE_COMPILER_IS_CLANG TRUE)  endif() +if(APPLE AND NOT CMAKE_OSX_ARCHITECTURES) +    set(CMAKE_OSX_ARCHITECTURES "x86_64") +    set(opentrack-intel TRUE) +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*|i[0-9]86.*|x86.*") +    set(opentrack-intel TRUE) +else() +    set(opentrack-intel FALSE) +endif() + +if(CMAKE_SIZEOF_VOID_P GREATER_EQUAL 8) +    set(opentrack-64bit TRUE) +else() +    set(opentrack-64bit FALSE) +endif() +  IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")      set(LINUX TRUE)  endif() +if(CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE) +    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-cxa-atexit") +    # assume binutils +    foreach (i SHARED MODULE EXE) +        set(CMAKE_${i}_LINKER_FLAGS "-Wl,-z,relro,-z,now,--exclude-libs,ALL ${CMAKE_${i}_LINKER_FLAGS}") +    endforeach() +endif() +  if(WIN32) -    add_definitions(-D_USE_MATH_DEFINES=1) +    add_definitions(-D_USE_MATH_DEFINES=1 -DSTRSAFE_NO_DEPRECATE) +endif() + +if(MINGW) +    add_definitions(-DMINGW_HAS_SECURE_API)  endif()  if(MSVC) @@ -85,7 +118,7 @@ if(MSVC)      set(__stuff "-permissive- -diagnostics:caret")      set(CMAKE_CXX_FLAGS "${__stuff} ${CMAKE_CXX_FLAGS}") -    set(CMAKE_C_FLAGS "${__stuff} ${CMAKE_CXX_FLAGS}") +    set(CMAKE_C_FLAGS "${__stuff} ${CMAKE_C_FLAGS}")      if(opentrack-64bit)          set(ent "-HIGHENTROPYVA") @@ -99,67 +132,14 @@ if(MSVC)      endforeach()  endif() -if(WIN32) -  if(CMAKE_COMPILER_IS_GNUCXX) -    set(CMAKE_RC_COMPILER_INIT i686-w64-mingw32-windres) -    set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> --use-temp-file -O coff <DEFINES> -i <SOURCE> -o <OBJECT>") -  endif() -  enable_language(RC) -endif() - -if(opentrack-install-rpath) -    set(CMAKE_INSTALL_RPATH "${opentrack-install-rpath}") -else() -    set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}") -endif() - -set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) -set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -set(CMAKE_SKIP_INSTALL_RPATH FALSE) -set(CMAKE_SKIP_RPATH FALSE) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOMOC OFF) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -include_directories("${CMAKE_SOURCE_DIR}") - -if(CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE) -    set(_common "-fvisibility=hidden") -    set(CMAKE_C_FLAGS "${_common} ${CMAKE_C_FLAGS}") -    set(CMAKE_CXX_FLAGS "${_common} -fuse-cxa-atexit ${CMAKE_CXX_FLAGS}") -endif() -  if(APPLE)      set(CMAKE_MACOSX_RPATH OFF) -    set(apple-frameworks "-stdlib=libc++ -framework Cocoa -framework CoreFoundation -lobjc -lz -framework Carbon") -    set(CMAKE_SHARED_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_SHARED_LINKER_FLAGS}") -    #set(CMAKE_STATIC_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_STATIC_LINKER_FLAGS}") -    set(CMAKE_EXE_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_EXE_LINKER_FLAGS}") -    set(CMAKE_MODULE_LINKER_FLAGS " ${apple-frameworks} ${CMAKE_MODULE_LINKER_FLAGS}") +    set(apple-frameworks "-framework Cocoa -framework CoreFoundation -lobjc -lz -framework Carbon") +    foreach (k SHARED EXE MODULE) +        set(CMAKE_${k}_LINKER_FLAGS "-stdlib=libc++ ${CMAKE_${k}_LINKER_FLAGS} ${apple-frameworks}") +    endforeach()      set(CMAKE_CXX_FLAGS "-stdlib=libc++ ${CMAKE_CXX_FLAGS}")  endif() -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_DEFAULT 17) -set(CMAKE_CXX_STANDARD_REQUIRED TRUE) -set(CMAKE_CXX_EXTENSIONS FALSE) - -foreach(k _RELEASE _DEBUG _RELWITHDEBINFO _MINSIZEREL) -    set(CMAKE_C_FLAGS${k} "${CMAKE_C_FLAGS${k}} -UNDEBUG") -    set(CMAKE_CXX_FLAGS${k} "${CMAKE_CXX_FLAGS${k}} -UNDEBUG") -endforeach() - -if(MINGW) -    add_definitions(-DMINGW_HAS_SECURE_API) -    add_definitions(-DSTRSAFE_NO_DEPRECATE) -endif() -# assume binutils -if(UNIX AND NOT APPLE) -    foreach (i SHARED MODULE EXE) -        set(CMAKE_${i}_LINKER_FLAGS "-Wl,-z,relro,-z,now,--exclude-libs,ALL ${CMAKE_${i}_LINKER_FLAGS}") -    endforeach() -    include(opentrack-pkg-config) -endif() -set(opentrack_maintainer-mode FALSE CACHE BOOL "Select if developing core code (not modules)") diff --git a/cmake/opentrack-policy.cmake b/cmake/opentrack-policy.cmake index e14bcbf7..209ef529 100644 --- a/cmake/opentrack-policy.cmake +++ b/cmake/opentrack-policy.cmake @@ -1,5 +1,20 @@  include_guard(GLOBAL) -foreach(k CMP0020 CMP0022 CMP0058 CMP0028 CMP0042 CMP0063 CMP0053 CMP0011 CMP0054 CMP0012 CMP0069) + +set(_policies +    CMP0020 +    CMP0022 +    CMP0058 +    CMP0028 +    CMP0042 +    CMP0063 +    CMP0053 +    CMP0011 +    CMP0054 +    CMP0012 +    CMP0069 +    CMP0063 +) +foreach(k ${_policies})      if(POLICY ${k})          cmake_policy(SET ${k} NEW)      endif() diff --git a/cmake/opentrack-qt.cmake b/cmake/opentrack-qt.cmake index e90e3250..0e6ca73d 100644 --- a/cmake/opentrack-qt.cmake +++ b/cmake/opentrack-qt.cmake @@ -59,8 +59,14 @@ function(otr_qt n)          list(APPEND ${n}-all ${${n}-${i}})      endforeach()      set(${n}-all "${${n}-all}" PARENT_SCOPE) -    include_directories(SYSTEM ${Qt5Core_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS}) -    add_definitions(${Qt5Core_DEFINITIONS} ${Qt5Gui_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5Network_DEFINITIONS}) -    add_definitions(-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT) -    add_definitions(-DQT_DEPRECATED -DQT_DISABLE_DEPRECATED_BEFORE=-1) +endfunction() + +function(otr_qt2 n) +    target_include_directories("${n}" PRIVATE SYSTEM +        ${Qt5Core_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS} +    ) +    target_compile_definitions("${n}" PRIVATE +        ${Qt5Core_DEFINITIONS} ${Qt5Gui_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5Network_DEFINITIONS} +        -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT +    )  endfunction() diff --git a/compat/run-in-thread.hpp b/compat/run-in-thread.hpp index afe279f2..6aadab45 100644 --- a/compat/run-in-thread.hpp +++ b/compat/run-in-thread.hpp @@ -108,8 +108,8 @@ template<typename F>  void run_in_thread_async(QObject* obj, F&& fun)  {      QObject src; -    QThread* t(obj->thread()); -    assert(t); +    QThread* t = obj->thread(); +    if (!t) abort();      src.moveToThread(t);      QObject::connect(&src, &QObject::destroyed, obj, std::move(fun), Qt::AutoConnection);  } diff --git a/compat/timer.cpp b/compat/timer.cpp index 15e9d8a4..b46ebe4a 100644 --- a/compat/timer.cpp +++ b/compat/timer.cpp @@ -6,6 +6,8 @@   * notice appear in all copies.   */ +#undef NDEBUG +  #include "timer.hpp"  #include <cassert>  #include <cmath> diff --git a/gui/keyboard.cpp b/gui/keyboard.cpp index dbc3ab3a..90849bab 100644 --- a/gui/keyboard.cpp +++ b/gui/keyboard.cpp @@ -1,39 +1,43 @@ +#undef NDEBUG +#include <cassert> +  #include "keyboard.h"  #include <QDebug>  #ifdef _WIN32 -auto keyboard_listener::make_token() + +void keyboard_listener::receive_key(const Key& k)  { -    return [this](const Key& k) { -        if(!k.guid.isEmpty()) -        { -            int mods = 0; -            if (k.alt) mods |= Qt::AltModifier; -            if (k.shift) mods |= Qt::ShiftModifier; -            if (k.ctrl) mods |= Qt::ControlModifier; -            emit joystick_button_pressed(k.guid, k.keycode | mods, k.held); -        } -        else -        { -            Qt::KeyboardModifiers m; -            QKeySequence k_; -            if (win_key::to_qt(k, k_, m)) -                emit key_pressed({ int(m) | int(k_) }); -        } -    }; +    if(!k.guid.isEmpty()) +    { +        int mods = 0; +        if (k.alt) mods |= Qt::AltModifier; +        if (k.shift) mods |= Qt::ShiftModifier; +        if (k.ctrl) mods |= Qt::ControlModifier; + +        emit joystick_button_pressed(k.guid, k.keycode | mods, k.held); +    } +    else +    { +        Qt::KeyboardModifiers m; +        QKeySequence k_; + +        if (win_key::to_qt(k, k_, m)) +            for (unsigned i = 0; i < (unsigned)k_.count(); i++) +                emit key_pressed(QKeySequence(int(m) | k_[i])); +    }  }  #endif -keyboard_listener::keyboard_listener(QWidget* parent) : -    QDialog(parent) -#ifdef _WIN32 -    , token(make_token()) -#endif +keyboard_listener::keyboard_listener(QWidget* parent) : QDialog(parent)  {      ui.setupUi(this);      setFocusPolicy(Qt::StrongFocus); +#ifdef _WIN32 +    (void)token; +#endif  }  #if !defined _WIN32 diff --git a/gui/keyboard.h b/gui/keyboard.h index 0a06a3af..ea35d372 100644 --- a/gui/keyboard.h +++ b/gui/keyboard.h @@ -22,13 +22,17 @@  class OTR_GUI_EXPORT keyboard_listener : public QDialog  {      Q_OBJECT -    Ui_keyboard_listener ui; +  #ifdef _WIN32 -    auto make_token(); -    KeybindingWorker::Token token; +    void receive_key(const Key& k); + +    KeybindingWorker::Token token{[this](const Key& k) {receive_key(k);}};  #else      void keyPressEvent(QKeyEvent* event) override;  #endif + +    Ui_keyboard_listener ui; +  public:      keyboard_listener(QWidget* parent = nullptr);  signals: diff --git a/logic/win32-shortcuts.cpp b/logic/win32-shortcuts.cpp index 324b1b04..c2920071 100644 --- a/logic/win32-shortcuts.cpp +++ b/logic/win32-shortcuts.cpp @@ -121,7 +121,7 @@ static const win_key windows_key_sequences[] {         { DIK_PAUSE, Qt::Key_Pause},         { DIK_NUMLOCK, Qt::Key_NumLock},         { DIK_CAPSLOCK, Qt::Key_CapsLock}, -#define key_mod(x, y) Qt::Key(int(x) | int((y))) +#define key_mod(x, y) Qt::Key(int((x)) | int((y)))         { DIK_NUMPAD0,      key_mod(Qt::Key_0,        Qt::KeypadModifier)},         { DIK_NUMPAD0,      key_mod(Qt::Key_0,        Qt::KeypadModifier)},         { DIK_NUMPAD1,      key_mod(Qt::Key_1,        Qt::KeypadModifier)}, @@ -163,26 +163,22 @@ bool win_key::to_qt(const Key& k, QKeySequence& qt_, Qt::KeyboardModifiers &mods  bool win_key::from_qt(const QKeySequence& qt_, int& dik, Qt::KeyboardModifiers& mods)  {      // CAVEAT don't use QVariant::toUInt() or conversion fails -#if 0 -    const unsigned qt = QVariant(qt_).toInt(); // verbose -#endif -    const unsigned qt = (unsigned)int(qt_); // deprecated -    const unsigned our_mods = qt & Qt::KeyboardModifierMask; +    const unsigned qt = (unsigned)QVariant(qt_).toInt(); +    const unsigned our_mods = qt & (unsigned)Qt::KeyboardModifierMask;      if (qt == 0)          return false; +    for (const win_key& wk : windows_key_sequences)      { -        for (const win_key& wk : windows_key_sequences) +        if (unsigned(wk.qt) == qt)          { -            if (unsigned(wk.qt) == qt) -            { -                dik = wk.win; -                mods = Qt::NoModifier; -                return true; -            } +            dik = wk.win; +            mods = Qt::NoModifier; +            return true;          }      } +      {          const unsigned key = qt & ~Qt::KeyboardModifierMask;          for (const win_key& wk : windows_key_sequences) diff --git a/spline/spline-widget.cpp b/spline/spline-widget.cpp index 36d3e2bf..db65722e 100644 --- a/spline/spline-widget.cpp +++ b/spline/spline-widget.cpp @@ -107,7 +107,7 @@ void spline_widget::drawBackground()      const QPen pen(color__, 1, Qt::SolidLine, Qt::FlatCap); -    const int ystep = std::ceil(y_step_), xstep = std::ceil(x_step_); +    const int ystep = (int)std::ceil(y_step_), xstep = (int)std::ceil(x_step_);      const double maxx = config->max_input();      const double maxy = config->max_output(); @@ -135,9 +135,9 @@ void spline_widget::drawBackground()                   QPointF(x, pixel_bounds.y() + pixel_bounds.height()),                   pen);          const QString text = QString::number(i); -        painter.drawText(QRectF(x - metrics.width(text)/2., +        painter.drawText(QRectF(x - metrics.horizontalAdvance(text)/2.,                                  pixel_bounds.height() + 10 + metrics.height(), -                                metrics.width(text), +                                metrics.horizontalAdvance(text),                                  metrics.height()),                           text);      } @@ -505,7 +505,7 @@ void spline_widget::show_tooltip(const QPoint& pos, const QPointF& value_)      double x = value.x(), y = value.y();      if (preview_only) -        y = (double)config->get_value_no_save((float)x); +        y = (double)config->get_value_no_save(x);      const int x_ = iround(x), y_ = iround(y); @@ -514,16 +514,13 @@ void spline_widget::show_tooltip(const QPoint& pos, const QPointF& value_)      if (std::fabs(y_ - y) < 1e-3)          y = y_; -    // the style on OSX has different offsets -    constexpr bool is_fusion = +    // the native OSX style doesn't look right otherwise  #if defined __APPLE__ -            true; +    constexpr int off_x = 0, off_y = 0;  #else -            false; +    constexpr int off_x = 25, off_y = 15;  #endif -    const int off_x = (is_fusion ? 25 : 0), off_y = (is_fusion ? 15 : 0); -      const QPoint pix(pos.x() + off_x, pos.y() + off_y);      QToolTip::showText(mapToGlobal(pix), diff --git a/tracker-fusion/fusion.cpp b/tracker-fusion/fusion.cpp index 5bf979ff..3e849caa 100644 --- a/tracker-fusion/fusion.cpp +++ b/tracker-fusion/fusion.cpp @@ -6,6 +6,8 @@   * notice appear in all copies.   */ +#undef NDEBUG +  #include "fusion.h"  #include "compat/library-path.hpp" diff --git a/tracker-hatire/CMakeLists.txt b/tracker-hatire/CMakeLists.txt index 39431724..a73a471c 100644 --- a/tracker-hatire/CMakeLists.txt +++ b/tracker-hatire/CMakeLists.txt @@ -1,5 +1,5 @@  if(Qt5SerialPort_FOUND)      otr_module(tracker-hatire) -    target_link_libraries(opentrack-tracker-hatire ${Qt5SerialPort_LIBRARIES}) -    target_include_directories(opentrack-tracker-hatire SYSTEM PUBLIC ${Qt5SerialPort_INCLUDE_DIRS}) +    target_link_libraries(${self} ${Qt5SerialPort_LIBRARIES}) +    target_include_directories(${self} SYSTEM PUBLIC ${Qt5SerialPort_INCLUDE_DIRS})  endif() diff --git a/tracker-hatire/ftnoir_tracker_hat.h b/tracker-hatire/ftnoir_tracker_hat.h index 0f88c7f6..b2300556 100644 --- a/tracker-hatire/ftnoir_tracker_hat.h +++ b/tracker-hatire/ftnoir_tracker_hat.h @@ -20,14 +20,14 @@ class hatire : public QObject, public ITracker  public:      hatire(); -    ~hatire(); +    ~hatire() override; -    module_status start_tracker(QFrame*); -    void data(double *data); +    module_status start_tracker(QFrame*) override; +    void data(double *data) override;      //void center();      //bool notifyZeroed();      void reset(); -    void get_info( int *tps ); +    void get_info(int *tps);      void serial_info();      void send_serial_command(const QByteArray& x); @@ -50,6 +50,6 @@ class hatire_metadata : public Metadata  {      Q_OBJECT -    QString name() { return tr("Hatire Arduino"); } -    QIcon icon() { return QIcon(":/images/hat.png"); } +    QString name() override { return tr("Hatire Arduino"); } +    QIcon icon() override { return QIcon(":/images/hat.png"); }  }; diff --git a/tracker-hatire/thread.cpp b/tracker-hatire/thread.cpp index 4c9574b9..4938e77f 100644 --- a/tracker-hatire/thread.cpp +++ b/tracker-hatire/thread.cpp @@ -169,7 +169,6 @@ serial_result hatire_thread::init_serial_port_impl()              && com_port.setStopBits((QSerialPort::StopBits)s.pStopBits)              && com_port.setFlowControl((QSerialPort::FlowControl)s.pFlowControl)              && com_port.clear(QSerialPort::AllDirections) -            && com_port.setDataErrorPolicy(QSerialPort::IgnorePolicy)             )          {              Log(tr("Port Parameters set")); diff --git a/tracker-wii/wiiyourself/wiimote.h b/tracker-wii/wiiyourself/wiimote.h index 9b6d3ba3..73212e05 100644 --- a/tracker-wii/wiiyourself/wiimote.h +++ b/tracker-wii/wiiyourself/wiimote.h @@ -10,6 +10,8 @@  #pragma once +#undef NDEBUG +  #include "warns-begin.hpp"  #undef WIN32_LEAN_AND_MEAN  | 
