OSDN Git Service

{Build][General] Available to build with Qt6, But unable to input from keyboard.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Thu, 17 Feb 2022 09:40:30 +0000 (18:40 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Thu, 17 Feb 2022 09:40:30 +0000 (18:40 +0900)
103 files changed:
source/cmake/config.cmake
source/sample-scripts/build_default_vars.Qt6Sample.llvm13.sh [new file with mode: 0755]
source/src/common.h
source/src/qt/CMakeLists.txt
source/src/qt/avio/CMakeLists.txt
source/src/qt/avio/movie_loader.cpp
source/src/qt/avio/movie_loader.h
source/src/qt/avio/movie_saver.h
source/src/qt/common/CMakeLists.txt
source/src/qt/common/emu_thread.h
source/src/qt/common/emu_thread_slots.cpp
source/src/qt/common/main.cpp
source/src/qt/debugger/CMakeLists.txt
source/src/qt/emuutils/CMakeLists.txt
source/src/qt/gui/CMakeLists.txt
source/src/qt/gui/csp_logger.cpp
source/src/qt/gui/csp_logger.h
source/src/qt/gui/display_log.cpp
source/src/qt/gui/display_log.h
source/src/qt/gui/gl4_5/qt_glutil_gl4_5.cpp
source/src/qt/gui/gl4_5/qt_glutil_gl4_5.h
source/src/qt/gui/mainwindow_utils.cpp
source/src/qt/gui/menu_binary.cpp
source/src/qt/gui/menu_cmt.cpp
source/src/qt/gui/menu_control.cpp
source/src/qt/gui/menu_main.cpp
source/src/qt/gui/menu_screen.cpp
source/src/qt/gui/menu_sound.cpp
source/src/qt/gui/qt_glevents.cpp
source/src/qt/gui/qt_glpack.cpp
source/src/qt/machines/babbage2nd/CMakeLists.txt
source/src/qt/machines/bmjr/CMakeLists.txt
source/src/qt/machines/bubcom80/CMakeLists.txt
source/src/qt/machines/bx1/CMakeLists.txt
source/src/qt/machines/cefucom21/CMakeLists.txt
source/src/qt/machines/colecovision/CMakeLists.txt
source/src/qt/machines/ex80/CMakeLists.txt
source/src/qt/machines/familybasic/CMakeLists.txt
source/src/qt/machines/fm16beta/CMakeLists.txt
source/src/qt/machines/fm16pi/CMakeLists.txt
source/src/qt/machines/fm7/CMakeLists.txt
source/src/qt/machines/fmr30/CMakeLists.txt
source/src/qt/machines/fmr50/CMakeLists.txt
source/src/qt/machines/fmtowns/CMakeLists.txt
source/src/qt/machines/fp1100/CMakeLists.txt
source/src/qt/machines/fp200/CMakeLists.txt
source/src/qt/machines/gamegear/CMakeLists.txt
source/src/qt/machines/hc20/CMakeLists.txt
source/src/qt/machines/hc40/CMakeLists.txt
source/src/qt/machines/hc80/CMakeLists.txt
source/src/qt/machines/j3100/CMakeLists.txt
source/src/qt/machines/jr100/CMakeLists.txt
source/src/qt/machines/jr800/CMakeLists.txt
source/src/qt/machines/jx/CMakeLists.txt
source/src/qt/machines/m5/CMakeLists.txt
source/src/qt/machines/micom_mahjong/CMakeLists.txt
source/src/qt/machines/mp85/CMakeLists.txt
source/src/qt/machines/msx/CMakeLists.txt
source/src/qt/machines/multi8/CMakeLists.txt
source/src/qt/machines/mycomz80a/CMakeLists.txt
source/src/qt/machines/mz2500/CMakeLists.txt
source/src/qt/machines/mz2800/CMakeLists.txt
source/src/qt/machines/mz3500/CMakeLists.txt
source/src/qt/machines/mz5500/CMakeLists.txt
source/src/qt/machines/mz700/CMakeLists.txt
source/src/qt/machines/mz80k/CMakeLists.txt
source/src/qt/machines/n5200/CMakeLists.txt
source/src/qt/machines/pasopia/CMakeLists.txt
source/src/qt/machines/pasopia7/CMakeLists.txt
source/src/qt/machines/pc100/CMakeLists.txt
source/src/qt/machines/pc2001/CMakeLists.txt
source/src/qt/machines/pc6001/CMakeLists.txt
source/src/qt/machines/pc8201/CMakeLists.txt
source/src/qt/machines/pc8801/CMakeLists.txt
source/src/qt/machines/pc9801/CMakeLists.txt
source/src/qt/machines/pc98ha/CMakeLists.txt
source/src/qt/machines/pcengine/CMakeLists.txt
source/src/qt/machines/phc20/CMakeLists.txt
source/src/qt/machines/phc25/CMakeLists.txt
source/src/qt/machines/pv1000/CMakeLists.txt
source/src/qt/machines/pv2000/CMakeLists.txt
source/src/qt/machines/pyuta/CMakeLists.txt
source/src/qt/machines/qc10/CMakeLists.txt
source/src/qt/machines/rx78/CMakeLists.txt
source/src/qt/machines/sc3000/CMakeLists.txt
source/src/qt/machines/scv/CMakeLists.txt
source/src/qt/machines/smb80te/CMakeLists.txt
source/src/qt/machines/smc777/CMakeLists.txt
source/src/qt/machines/svi3x8/CMakeLists.txt
source/src/qt/machines/tk80bs/CMakeLists.txt
source/src/qt/machines/tvboy/CMakeLists.txt
source/src/qt/machines/x07/CMakeLists.txt
source/src/qt/machines/x1/CMakeLists.txt
source/src/qt/machines/yalky/CMakeLists.txt
source/src/qt/machines/yis/CMakeLists.txt
source/src/qt/machines/ys6464a/CMakeLists.txt
source/src/qt/machines/z80tvgame/CMakeLists.txt
source/src/qt/osd_base.cpp
source/src/qt/osd_base.h
source/src/qt/osd_input.cpp
source/src/qt/osd_types.h
source/src/qt/osd_wrapper.cpp
source/src/vm/common_vm/CMakeLists.txt

index 7e05bc7..6835e27 100644 (file)
@@ -74,38 +74,75 @@ if(USE_CCACHE)
    SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
 endif()
 
+
+if(DEFINED QT6_ROOT_PATH)
+  SET(CMAKE_FIND_ROOT_PATH  ${QT6_ROOT_PATH} ${CMAKE_FIND_ROOT_PATH})
+elseif(DEFINED QT5_ROOT_PATH)
+  SET(CMAKE_FIND_ROOT_PATH  ${QT5_ROOT_PATH} ${CMAKE_FIND_ROOT_PATH})
+endif()
+
 SET(USE_QT_5 ON CACHE BOOL "Build with Qt5 API.If set USE_QT_6 and Qt6 exists, not effectable.")
-SET(USE_QT_6 OFF CACHE BOOL "Build with Qt6.If not available, will fallback to Qt5.")
 
-if(WIN32)
-  FIND_PACKAGE(Qt5Core REQUIRED)
+if(CMAKE_VERSION VERSION_LESS 3.16)
+  SET(USE_QT_6 OFF)
 else()
-  FIND_PACKAGE(Qt5Widgets REQUIRED)
+  SET(USE_QT_6 OFF CACHE BOOL "Build with Qt6.If not available, will fallback to Qt5.")
+endif()
+
+if(USE_QT_6)
+  FIND_PACKAGE(Qt6 COMPONENTS Core Widgets Gui OpenGL OpenGLWidgets Network)
+#  if(NOT QT6_Found)
+#      SET(USE_QT_6 OFF)
+#      SET(USE_QT_5 ON)
+#  endif()
 endif()
-  FIND_PACKAGE(Qt5Gui REQUIRED)
-  FIND_PACKAGE(Qt5OpenGL REQUIRED)
-  FIND_PACKAGE(Qt5Network REQUIRED)
+
+if(USE_QT_6)
+  SET(WITH_QT_VERSION_MAJOR 6)
+  find_package(Qt6 COMPONENTS Core5Compat REQUIRED)
+  
+  include_directories(${Qt6Widgets_INCLUDE_DIRS})
+  include_directories(${Qt6Core_INCLUDE_DIRS})
+  include_directories(${Qt6Gui_INCLUDE_DIRS})
+  include_directories(${Qt6OpenGL_INCLUDE_DIRS})
+  include_directories(${Qt6OpenGLWidgets_INCLUDE_DIRS})
+  include_directories(${Qt6Network_INCLUDE_DIRS})
+  include_directories(${Qt6Core5Compat_INCLUDE_DIRS})
+  add_definitions(-D_USE_QT6)
+  set(USE_QT_5 OFF)
+elseif(USE_QT_5)
+  FIND_PACKAGE(Qt6 COMPONENTS Core Widgets Gui OpenGL Network)
+  SET(WITH_QT_VERSION_MAJOR 5)
   include_directories(${Qt5Widgets_INCLUDE_DIRS})
   include_directories(${Qt5Core_INCLUDE_DIRS})
   include_directories(${Qt5Gui_INCLUDE_DIRS})
   include_directories(${Qt5OpenGL_INCLUDE_DIRS})
   include_directories(${Qt5Network_INCLUDE_DIRS})
-  add_definitions(-D_USE_OPENGL -DUSE_OPENGL)
-  
-if(DEFINED QT5_ROOT_PATH)
-  SET(CMAKE_FIND_ROOT_PATH  ${QT5_ROOT_PATH} ${CMAKE_FIND_ROOT_PATH})
+  add_definitions(-D_USE_QT5)
+else()
+  #Error
 endif()
 
+add_definitions(-D_USE_OPENGL -DUSE_OPENGL)
+
 #socket
 function(APPEND_SOCKET_FEATURE)
   if(${USE_SOCKET_${EXE_NAME}})
+       if(DEFINED USE_QT_6)
+      FIND_PACKAGE(Qt6Network REQUIRED)
+      include_directories(${Qt6Network_INCLUDE_DIRS})
+       else()
      FIND_PACKAGE(Qt5Network REQUIRED)
      include_directories(${Qt5Network_INCLUDE_DIRS})
+        endif()
    endif()
 endfunction(APPEND_SOCKET_FEATURE)
 
-
-set(USE_QT5_4_APIS ON CACHE BOOL "Build with Qt5.4 (or later) APIs if you can.")
+if(USE_QT_6)
+  set(USE_QT5_4_APIS ON)
+else()
+  set(USE_QT5_4_APIS ON CACHE BOOL "Build with Qt5.4 (or later) APIs if you can.")
+endif()
 set(USE_GCC_OLD_ABI ON CACHE BOOL "Build with older GCC ABIs if you can.")
 set(USE_SDL2 ON CACHE BOOL "Build with libSDL2. DIsable is building with libSDL1.")
 set(USE_MOVIE_SAVER ON CACHE BOOL "Save screen/audio as MP4 MOVIE. Needs libav .")
@@ -117,7 +154,6 @@ set(USE_OPENGL ON CACHE BOOL "Build using OpenGL")
 #if(USE_LTO) 
 #      include(CheckIPOSupported)
 #endif()
-add_definitions(-D_USE_QT5)
 
 if(USE_QT5_4_APIS)
   add_definitions(-D_USE_QT_5_4)
@@ -140,19 +176,22 @@ add_definitions(-DUSE_QT)
 
 # 20210914 K.O Start to migrate for Qt6.
 # See, https://doc.qt.io/qt-6/portingguide.html
-if(${Qt5Widgets_VERSION_MAJOR} VERSION_GREATER "4")
-  if(${Qt5Widgets_VERSION_MAJOR} VERSION_EQUAL "5")
-    if(${Qt5Widgets_VERSION_MINOR} VERSION_GREATER "14")
-      add_compile_definitions(QT_DISABLE_DEPRECATED_BEFORE=0x050F00)
-    endif()
-  else()
+if(USE_QT_6)
        #Qt6 or later
-    add_compile_definitions(QT_DISABLE_DEPRECATED_BEFORE=0x060000)
+    add_compile_definitions(QT_DISABLE_DEPRECATED_BEFORE=0x060200)
+elseif(USE_QT_5)
+  if(Qt5Widgets_VERSION VERSION_GREATER 5.15)
+      add_compile_definitions(QT_DISABLE_DEPRECATED_BEFORE=0x050F00)
   endif()
 endif()
 
-add_definitions(-DQT_MAJOR_VERSION=${Qt5Widgets_VERSION_MAJOR})
-add_definitions(-DQT_MINOR_VERSION=${Qt5Widgets_VERSION_MINOR})
+if(USE_QT_6)
+  add_definitions(-DQT_MAJOR_VERSION=${Qt6Widgets_VERSION_MAJOR})
+  add_definitions(-DQT_MINOR_VERSION=${Qt6Widgets_VERSION_MINOR})
+elseif(USE_QT_5)
+  add_definitions(-DQT_MAJOR_VERSION=${Qt5Widgets_VERSION_MAJOR})
+  add_definitions(-DQT_MINOR_VERSION=${Qt5Widgets_VERSION_MINOR})
+endif()
 
 if(USE_OPENMP)
   find_package(OpenMP)
@@ -255,7 +294,12 @@ endif(HAVE_NANOSLEEP OR LIB_RT_HAS_NANOSLEEP)
 
 set(SRC_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../src)
 
-if(USE_QT_5)
+if(USE_QT_6)
+       if(NOT WIN32)
+               set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+               set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
+       endif()
+elseif(USE_QT_5)
        if(NOT WIN32)
                set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
                set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
@@ -335,6 +379,15 @@ else()
                set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
 endif()
 
+
+macro(MAKE_WRAP_CPP)
+  if(USE_QT_6)
+       QT_WRAP_CPP(${ARGV})
+  elseif(USE_QT_5)
+       QT5_WRAP_CPP(${ARGV})
+  endif()
+endmacro(MAKE_WRAP_CPP)
+
 function(set_std TARGET)
 #      if(CMAKE_VERSION VERSION_LESS "3.1")
 #      else()
@@ -357,6 +410,7 @@ else()
        add_subdirectory("${PROJECT_SOURCE_DIR}/src/vm/fmgen" vm/fmgen)
 endif()
 
+
 function(ADD_VM VM_NAME EXE_NAME VMDEF)
        set(COMMON_DIRECTORY ${PROJECT_SOURCE_DIR}/src/qt/common)
        set(s_qt_common_headers
@@ -364,10 +418,13 @@ function(ADD_VM VM_NAME EXE_NAME VMDEF)
                ${COMMON_DIRECTORY}/mainwidget.h
                ${PROJECT_SOURCE_DIR}/src/qt/osd.h
        )
-       
+  if(USE_QT_6)
+       QT_ADD_RESOURCES(RESOURCE_${EXE_NAME} ${RESOURCE})
+       QT_WRAP_CPP(s_qt_common_headers_MOC ${s_qt_common_headers})
+  elseif(USE_QT_5)
        QT5_ADD_RESOURCES(RESOURCE_${EXE_NAME} ${RESOURCE})
        QT5_WRAP_CPP(s_qt_common_headers_MOC ${s_qt_common_headers})
-       
+  endif()      
        set(QT_COMMON_BASE
                ${COMMON_DIRECTORY}/main.cpp
                ${COMMON_DIRECTORY}/qt_utils.cpp
@@ -405,9 +462,14 @@ function(ADD_VM VM_NAME EXE_NAME VMDEF)
                )
     endif()
        #QT5_USE_MODULES(${EXE_NAME} Widgets Core Gui OpenGL Network)
-       set(QT_LIBRARIES ${QT_LIBRARIES}
-         Qt5::Widgets Qt5::Core Qt5::Gui Qt5::OpenGL Qt5::Network)
-       
+       if(USE_QT_6)
+         set(QT_LIBRARIES ${QT_LIBRARIES}
+               Qt6::Widgets Qt6::Core Qt6::Gui Qt6::OpenGL Qt6::OpenGLWidgets Qt6::Network Qt6::Core5Compat)
+    elseif(USE_QT_5)
+         set(QT_LIBRARIES ${QT_LIBRARIES}
+               Qt5::Widgets Qt5::Core Qt5::Gui Qt5::OpenGL Qt5::Network)
+       endif()
+  
        target_include_directories(${EXE_NAME} 
                PRIVATE "${PROJECT_SOURCE_DIR}/src/qt/machines/${VM_NAME}"
                PRIVATE "${PROJECT_SOURCE_DIR}/src/vm/${VM_NAME}"
diff --git a/source/sample-scripts/build_default_vars.Qt6Sample.llvm13.sh b/source/sample-scripts/build_default_vars.Qt6Sample.llvm13.sh
new file mode 100755 (executable)
index 0000000..029d763
--- /dev/null
@@ -0,0 +1,85 @@
+#!/bin/sh
+SANITRIZER_FLAGS=""
+
+I_LIB_CLANG_FLAGS=""
+L_LIB_CLANG_FLAGS=""
+I_LIB_CLANGPP_FLAGS=""
+L_LIB_CLANGPP_FLAGS=""
+
+#SANITRIZER_FLAGS="-fsanitize=address"
+#I_LIB_CLANG_FLAGS=""
+#L_LIB_CLANG_FLAGS=""
+#I_LIB_CLANGPP_FLAGS="-stdlib=libc++"
+#L_LIB_CLANGPP_FLAGS="-stdlib=libc++"
+#I_LIB_CLANGPP_FLAGS="-stdlib=libstdc++"
+#L_LIB_CLANGPP_FLAGS="-stdlib=libstdc++"
+CSP_LLVM_TOOLCHAIN_VERSION=13
+
+cmake .. -DCMAKE_TOOLCHAIN_FILE="$PWD/../cmake/toolchains/toolchain_native_llvm-versioned.cmake" \
+      -DCMAKE_CSP_LLVM_VERSION=${CSP_LLVM_TOOLCHAIN_VERSION} \
+      -DCMAKE_BUILD_TYPE=Relwithdebinfo \
+      -DCMAKE_C_FLAGS_RELWITHDEBINFO=" \
+               -gdwarf \
+               -gz \
+               -O3 \
+               -flto \
+               -msse2 \
+               -mfpmath=sse \
+               -Wreserved-user-defined-literal \
+               -fslp-vectorize \
+               -fvectorize \
+               -fstrict-vtable-pointers \
+               -fstrict-enums \
+               ${SANITIZER_FLAGS} \
+               ${I_LIB_CLANG_FLAGS} \
+               ${L_LIB_CLANG_FLAGS} \
+               " \
+      -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=" \
+               -gdwarf \
+               -gz \
+               -O3 \
+               -flto \
+               -msse2 \
+               -mfpmath=sse \
+               -Wreserved-user-defined-literal \
+               -fslp-vectorize \
+               -fvectorize \
+               -fstrict-vtable-pointers \
+               -fstrict-enums \
+               ${I_LIB_CLANGPP_FLAGS} \
+               ${L_LIB_CLANGPP_FLAGS} \
+               ${SANITIZER_FLAGS} \
+               " \
+      -DCMAKE_EXE_LINKER_FLAGS="\
+               -fuse-ld=lld-${CSP_LLVM_TOOLCHAIN_VERSION} \
+               -gdwarf \
+               -gz \
+               -O3 \
+               -flto \
+               -msse2 \
+               ${I_LIB_CLANG_FLAGS} \
+               ${L_LIB_CLANG_FLAGS} \
+               ${I_LIB_CLANGPP_FLAGS} \
+               ${L_LIB_CLANGPP_FLAGS} \
+               ${SANITIZER_FLAGS} \
+               -Wl,--compress-debug-sections=zlib \
+               -Wl,--lto-O3 \
+               " \
+      -DCMAKE_MODULE_LINKER_FLAGS="\
+               -fuse-ld=lld-${CSP_LLVM_TOOLCHAIN_VERSION} \
+               -gdwarf \
+               -gz \
+               -O3 \
+               -flto \
+               -msse2 \
+               ${I_LIB_CLANG_FLAGS} \
+               ${L_LIB_CLANG_FLAGS} \
+               ${I_LIB_CLANGPP_FLAGS} \
+               ${L_LIB_CLANGPP_FLAGS} \
+               ${SANITIZER_FLAGS} \
+               -Wl,--compress-debug-sections=zlib \
+               -Wl,--lto-O3 \
+               " \
+       -DUSE_QT_6=ON \
+       -DCSP_BUILD_WITH_CXX20=ON
+       
index e852363..ded5771 100644 (file)
@@ -50,7 +50,7 @@
        #include <stdarg.h>
 #endif
 #ifdef _USE_QT
-       #ifdef _USE_QT5
+       #if defined(_USE_QT5) || defined(_USE_QT6)
                #include <QString>
                #include <QFile>
                #include <QtEndian>
index d23f6a5..c91bdd1 100644 (file)
@@ -6,7 +6,7 @@ set(s_qt_osd_headers
        osd_socket.h
 )
 
-QT5_WRAP_CPP(s_qt_osd_headers_MOC ${s_qt_osd_headers})
+MAKE_WRAP_CPP(s_qt_osd_headers_MOC ${s_qt_osd_headers})
 
 SET(s_qt_osd_srcs
        osd_base.cpp
@@ -33,33 +33,51 @@ add_library(CSPosd SHARED
 set_std(CSPosd)
 
 if(WIN32)
-target_link_libraries(CSPosd PUBLIC
-       CSPemu_utils
-       Qt5::Core
-       Qt5::Gui
-       Qt5::OpenGL
-       Qt5::Widgets
-       Qt5::Network
-       ${SDL2_LIBRARIES}
-       ${ADDITIONAL_DLL_LIBRARIES}
+  if(USE_QT_6)
+       target_link_libraries(CSPosd PUBLIC
+         CSPemu_utils
+         Qt::Core
+         Qt::Gui
+         Qt::OpenGL
+         Qt::Widgets
+         Qt::Network
+         ${SDL2_LIBRARIES}
+         ${ADDITIONAL_DLL_LIBRARIES}
+         )
+  elseif(USE_QT_5)
+       target_link_libraries(CSPosd PUBLIC
+         CSPemu_utils
+         Qt5::Core
+         Qt5::Gui
+         Qt5::OpenGL
+         Qt5::Widgets
+         Qt5::Network
+         ${SDL2_LIBRARIES}
+         ${ADDITIONAL_DLL_LIBRARIES}
+         )
+  endif()
+  generate_export_header(CSPosd
+    BASE_NAME CSPosd
+    EXPORT_MACRO_NAME CSPosd_EXPORT
+    EXPORT_FILE_NAME CSPosd_Export.h
+    STATIC_DEFINE CSPgosd_BUILT_AS_STATIC
        )
-generate_export_header(CSPosd
-       BASE_NAME CSPosd
-       EXPORT_MACRO_NAME CSPosd_EXPORT
-       EXPORT_FILE_NAME CSPosd_Export.h
-       STATIC_DEFINE CSPgosd_BUILT_AS_STATIC
-)
-set_target_properties(CSPosd PROPERTIES 
+  set_target_properties(CSPosd PROPERTIES 
        SOVERSION ${THIS_LIB_VERSION}
        VERSION ${THIS_LIB_VERSION}
-)
-
+       )
 else()
-       #if(USE_DEVICES_SHARED_LIB)
-#        add_precompiled_header(CSPosd pch_list
-#              SOURCE_CXX pch.cpp FORCEINCLUDE
-#              )
-         target_link_libraries(CSPosd PUBLIC
+  if(USE_QT_6)
+       target_link_libraries(CSPosd PUBLIC
+               Qt::Core
+               Qt::Gui
+               Qt::Widgets
+               Qt::Network
+               ${SDL2_LIBRARIES}
+               ${ADDITIONAL_DLL_LIBRARIES}
+               )
+       elseif(USE_QT_5)
+       target_link_libraries(CSPosd PUBLIC
                Qt5::Core
                Qt5::Gui
                Qt5::Widgets
@@ -67,17 +85,12 @@ else()
                ${SDL2_LIBRARIES}
                ${ADDITIONAL_DLL_LIBRARIES}
                )
-         set_target_properties(CSPosd PROPERTIES 
-               SOVERSION ${THIS_LIB_VERSION}
-               VERSION ${THIS_LIB_VERSION}
-               )
-         INSTALL(TARGETS CSPosd DESTINATION ${LIBCSP_INSTALL_DIR})
-       #else()
-       #  add_library(osd STATIC
-       #       ${s_qt_osd_srcs}
-       #       ${s_qt_osd_headers_MOC}
-       #       )
-       #endif()
+       endif()
+       set_target_properties(CSPosd PROPERTIES 
+         SOVERSION ${THIS_LIB_VERSION}
+         VERSION ${THIS_LIB_VERSION}
+         )
+       INSTALL(TARGETS CSPosd DESTINATION ${LIBCSP_INSTALL_DIR})
 endif()
 
 
index 6fb89f2..8b62ad0 100644 (file)
@@ -17,67 +17,83 @@ set(s_qt_avio_srcs
          sound_loader.cpp
 )
 add_definitions(-D__LIBAVIO_VERSION=\"libCSPavio.${THIS_LIB_VERSION}\")
-
-if(USE_QT_5)
-  QT5_WRAP_CPP(s_qt_avio_headers_MOC ${s_qt_avio_headers})
-else()
-  QT4_WRAP_CPP(s_qt_avio_headers_MOC ${s_qt_avio_headers})
-endif()
+MAKE_WRAP_CPP(s_qt_avio_headers_MOC ${s_qt_avio_headers})
 
 if(WIN32)
-#add_library(qt_avio
-#        ${s_qt_avio_srcs}
-#        ${s_qt_avio_headers_MOC}
-#)
-
-include (GenerateExportHeader)
-add_library(CSPavio SHARED
-         ${s_qt_avio_srcs}
-         ${s_qt_avio_headers_MOC}
-)
-
-target_link_libraries(CSPavio PUBLIC
-                PRIVATE ${LIBAV_LIBRARIES}
-                CSPosd
-                CSPemu_utils
-                Qt5::Core
-                Qt5::Gui
-                Qt5::Widgets
-                ${ADDITIONAL_DLL_LIBRARIES}
+  #add_library(qt_avio
+  #      ${s_qt_avio_srcs}
+  #      ${s_qt_avio_headers_MOC}
+  #)
+  include (GenerateExportHeader)
+  add_library(CSPavio SHARED
+       ${s_qt_avio_srcs}
+       ${s_qt_avio_headers_MOC}
+       )
+  if(USE_QT_6)
+       target_link_libraries(CSPavio PUBLIC
+         PRIVATE ${LIBAV_LIBRARIES}
+         CSPosd
+         CSPemu_utils
+         Qt::Core
+         Qt::Gui
+         Qt::Widgets
+         ${ADDITIONAL_DLL_LIBRARIES}
+         )
+  elseif(USE_QT_5)
+       target_link_libraries(CSPavio PUBLIC
+         PRIVATE ${LIBAV_LIBRARIES}
+         CSPosd
+         CSPemu_utils
+         Qt5::Core
+         Qt5::Gui
+         Qt5::Widgets
+         ${ADDITIONAL_DLL_LIBRARIES}
          )
-#QT5_USE_MODULES(CSPavio Widgets Core Gui OpenGL)
-set_target_properties(CSPavio PROPERTIES 
-                            SOVERSION ${THIS_LIB_VERSION}
-                            VERSION ${THIS_LIB_VERSION}
-                            )
+  endif()
+  #QT5_USE_MODULES(CSPavio Widgets Core Gui OpenGL)
+  set_target_properties(CSPavio PROPERTIES 
+       SOVERSION ${THIS_LIB_VERSION}
+       VERSION ${THIS_LIB_VERSION}
+       )
 
-generate_export_header(CSPavio
-       BASE_NAME CSPavio
-        EXPORT_MACRO_NAME CSPavio_EXPORT
-        EXPORT_FILE_NAME CSPavio_Export.h
-        STATIC_DEFINE CSPavio_BUILT_AS_STATIC
-)
-       set_std(CSPavio)
+  generate_export_header(CSPavio
+    BASE_NAME CSPavio
+    EXPORT_MACRO_NAME CSPavio_EXPORT
+    EXPORT_FILE_NAME CSPavio_Export.h
+    STATIC_DEFINE CSPavio_BUILT_AS_STATIC
+       )
+  set_std(CSPavio)
 
 else()
-add_library(CSPavio SHARED
-         ${s_qt_avio_srcs}
-         ${s_qt_avio_headers_MOC}
-         )
-       set_std(CSPavio)
+  # NOT WIN32
+  add_library(CSPavio SHARED
+       ${s_qt_avio_srcs}
+       ${s_qt_avio_headers_MOC}
+       )
+  set_std(CSPavio)
 
-target_link_libraries(CSPavio PUBLIC
-                  ${LIBAV_LIBRARIES}
-                  Qt5::Core
-                  Qt5::Gui
-                  Qt5::Widgets
-                  ${ADDITIONAL_DLL_LIBRARIES}
+  if(USE_QT_6)
+       target_link_libraries(CSPavio PUBLIC
+         ${LIBAV_LIBRARIES}
+         Qt::Core
+         Qt::Gui
+         Qt::Widgets
+         ${ADDITIONAL_DLL_LIBRARIES}
+         )
+  elseif(USE_QT_5)
+       target_link_libraries(CSPavio PUBLIC
+         ${LIBAV_LIBRARIES}
+         Qt5::Core
+         Qt5::Gui
+         Qt5::Widgets
+         ${ADDITIONAL_DLL_LIBRARIES}
          )
+  endif()
 
-set_target_properties(CSPavio PROPERTIES 
-                            SOVERSION ${THIS_LIB_VERSION}
-                            VERSION ${THIS_LIB_VERSION}
-                            )
-INSTALL(TARGETS CSPavio DESTINATION ${LIBCSP_INSTALL_DIR})
+  set_target_properties(CSPavio PROPERTIES 
+       SOVERSION ${THIS_LIB_VERSION}
+       VERSION ${THIS_LIB_VERSION}
+       )
+  INSTALL(TARGETS CSPavio DESTINATION ${LIBCSP_INSTALL_DIR})
 endif()
 
index 592466e..46d57bb 100644 (file)
@@ -9,7 +9,11 @@
 #include "movie_loader.h"
 #include "csp_logger.h"
 
-#include <QMutex>
+#if QT_VERSION >= 0x051400
+       #include <QRecursiveMutex>
+#else
+       #include <QMutex>
+#endif
 #include <QMutexLocker>
 
 MOVIE_LOADER::MOVIE_LOADER(OSD *osd, config_t *cfg) : QObject(NULL)
@@ -18,9 +22,13 @@ MOVIE_LOADER::MOVIE_LOADER(OSD *osd, config_t *cfg) : QObject(NULL)
        p_cfg = cfg;
        p_logger = osd->get_logger();
        
+#if QT_VERSION >= 0x051400
+       video_mutex = new QRecursiveMutex();
+       snd_write_lock = new QRecursiveMutex();
+#else
        video_mutex = new QMutex(QMutex::Recursive);
        snd_write_lock = new QMutex(QMutex::Recursive);
-       
+#endif 
        frame_rate = 29.97;
        video_frame_count = 0;
        duration_us = 0;
index 6aa0a6f..7751485 100644 (file)
@@ -43,7 +43,13 @@ typedef struct {
 
 QT_BEGIN_NAMESPACE
 class OSD;
+
+#if QT_VERSION >= 0x051400
+class QRecursiveMutex;
+#else
 class QMutex;
+#endif
+
 class CSP_Logger;
 class DLL_PREFIX MOVIE_LOADER: public QObject
 {
@@ -81,8 +87,13 @@ protected:
        OSD *p_osd;
        config_t *p_cfg;
 
+#if QT_VERSION >= 0x051400
+       QRecursiveMutex *video_mutex;
+       QRecursiveMutex *snd_write_lock;
+#else
        QMutex *video_mutex;
        QMutex *snd_write_lock;
+#endif
        double frame_rate;
        double mod_frames;
        int sound_rate;
index d36adf5..31d5757 100644 (file)
@@ -88,7 +88,13 @@ typedef struct OutputStream {
 } OutputStream;
 
 class OSD;
+
+#if QT_VERSION >= 0x051400
+class QRecursiveMutex;
+#else
 class QMutex;
+#endif
+
 class CSP_Logger;
 QT_BEGIN_NAMESPACE
 class DLL_PREFIX VIDEO_DATA {
index a56b549..89e358b 100644 (file)
@@ -8,11 +8,7 @@ if(USE_SOCKET)
   set(s_qt_common_headers ${s_qt_common_headers} ../osd_socket.h)
 endif()
 
-if(USE_QT_5)
-  QT5_WRAP_CPP(s_qt_common_headers_MOC ${s_qt_common_headers})
-else()
-  QT4_WRAP_CPP(s_qt_common_headers_MOC ${s_qt_common_headers})
-endif()
+MAKE_WRAP_CPP(s_qt_common_headers_MOC ${s_qt_common_headers})
 
 set(QT_COMMON_BASE
 #      main.cpp 
@@ -29,16 +25,6 @@ set(QT_COMMON_BASE
          ../osd_wrapper.cpp
 )
 
-if(0)
-       if(WIN32)
-               set(QT_COMMON_BASE ../gui/qt_main.cpp ${QT_COMMON_BASE} )
-       endif()
-       add_library(common
-               ${QT_COMMON_BASE}
-               ${s_qt_common_headers_MOC}
-       )
-
-else()
 if(WIN32)
        set(QT_COMMON_BASE ../gui/qt_main.cpp ${QT_COMMON_BASE} )
 
@@ -55,7 +41,13 @@ if(WIN32)
 endif()
 #cotire(${EXEC_TARGET})
 
-if(USE_QT_5)
+if(USE_QT_6)
+  if(USE_SOCKET)
+    QT_USE_MODULES(${EXEC_TARGET} Widgets Core Gui OpenGL Network Qt5CoreCompat)
+  else()
+    QT_USE_MODULES(${EXEC_TARGET} Widgets Core Gui OpenGL Qt5CoreCompat)
+  endif()
+elseif(USE_QT_5)
   if(USE_SOCKET)
     QT5_USE_MODULES(${EXEC_TARGET} Widgets Core Gui OpenGL Network)
   else()
@@ -65,23 +57,28 @@ endif()
 
 
 if(WIN32)
-find_package(Qt5Core)  
- target_link_libraries(${EXEC_TARGET}
- ${LOCAL_LIBS}
- ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPgui.dll.a
- ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPavio.dll.a
+  if(USE_QT_6)
+       find_package(Qt6Core)
+  elseif(USE_QT_5)
+       find_package(Qt5Core)
+  endif()
+  target_link_libraries(${EXEC_TARGET} ${LOCAL_LIBS} ${BUNDLE_LIBS} -lpthread)
+#  target_link_libraries(${EXEC_TARGET}
+#      ${LOCAL_LIBS}
+#      ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPgui.dll.a
+#      ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPavio.dll.a
 
- #${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPcommon_vm.dll.a
- ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libvm_common_vm.a
- ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPfmgen.dll.a
- ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPosd.dll.a
- ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPemu_utils.dll.a
- ${BUNDLE_LIBS}
- -lpthread
- )
+#      #${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPcommon_vm.dll.a
+#      ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libvm_common_vm.a
+#      ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPfmgen.dll.a
+#      ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPosd.dll.a
+#      ${CMAKE_SOURCE_DIR}/../../build-cmake/bin-win32/libCSPemu_utils.dll.a
+#      ${BUNDLE_LIBS}
+#      -lpthread
+#      )
 else()
- target_link_libraries(${EXEC_TARGET} ${LOCAL_LIBS} ${BUNDLE_LIBS} -lpthread)
 target_link_libraries(${EXEC_TARGET} ${LOCAL_LIBS} ${BUNDLE_LIBS} -lpthread)
 endif()
+
 install(TARGETS ${EXEC_TARGET} DESTINATION bin)
-endif()
+
index ebe3641..393e8ba 100644 (file)
 #include <QQueue>
 #include <QString>
 #include <QElapsedTimer>
-#include <QMutexLocker>
-#include <QMutex>
+//#include <QMutexLocker>
+
+//#if QT_VERSION >= 0x051400
+//#include <QRecursiveMutex>
+//#else
+//#include <QMutex>
+//#endif
 
 #include "common.h"
 #include "commonclasses.h"
index d7ca57c..aac5f3f 100644 (file)
@@ -462,7 +462,11 @@ void EmuThreadClassBase::do_start_auto_key(QString ctext)
                        uint val = (*itr);
                        int chrs = ucs4_kana_zenkaku_to_hankaku((const uint32_t)val, pool, sizeof(pool) / sizeof(uint32_t));
                        if(chrs > 0) {
+               #if QT_VERSION >= 0x060000
+                               dst.append(QString::fromUcs4((char32_t*)pool, chrs));
+               #else
                                dst.append(QString::fromUcs4((uint*)pool, chrs));
+               #endif
                        }
                }
                clipBoardText = dst;
index 1df9cf7..a34ed55 100644 (file)
@@ -87,11 +87,12 @@ void DLL_PREFIX CSP_DebugHandler(QtMsgType type, const QMessageLogContext &conte
        
        nmsg_l2.append(" ");
        nmsg_l2.append(msgString);
-   
+
+       QString tmps_l1 = QString("%1").arg(context.line);
        nmsg_l1.append(" In line ");
-       nmsg_l1.append(context.line);
+       nmsg_l1.append(tmps_l1);
        nmsg_l1.append(" of ");
-       nmsg_l1.append(context.line);
+       nmsg_l1.append(context.file);
        nmsg_l1.append(" (Function: ");
        nmsg_l1.append(context.function);
        nmsg_l1.append(" )");
index faa2d06..8aace73 100644 (file)
@@ -4,11 +4,7 @@ set(s_qt_debugger_headers
          qt_debugger.h
 )
 
-if(USE_QT_5)
-  QT5_WRAP_CPP(s_qt_debugger_headers_MOC ${s_qt_debugger_headers})
-else()
-  QT4_WRAP_CPP(s_qt_debugger_headers_MOC ${s_qt_debugger_headers})
-endif()
+MAKE_WRAP_CPP(s_qt_debugger_headers_MOC ${s_qt_debugger_headers})
  
 add_library(qt_debugger_${EXE_NAME}
                  qt_debugger.cpp
index 26cd645..ddd4fdc 100644 (file)
@@ -7,60 +7,61 @@ set(s_qt_emuutils_headers
        )
        
 set(s_qt_emuutils_srcs
-         ../../common.cpp
-         ../../config_dll.cpp
-         ../../fifo.cpp
-         ../../fileio.cpp
-         ../../ringbuffer.cpp
-         ../gui/csp_logger.cpp
-         )
+  ../../common.cpp
+  ../../config_dll.cpp
+  ../../fifo.cpp
+  ../../fileio.cpp
+  ../../ringbuffer.cpp
+  ../gui/csp_logger.cpp
+  )
 
-QT5_WRAP_CPP(s_qt_emuutils_headers_MOC ${s_qt_emuutils_headers})
-       
+MAKE_WRAP_CPP(s_qt_emuutils_headers_MOC ${s_qt_emuutils_headers})
 
 add_definitions(-D__LIBEMU_UTIL_VERSION=\"libCSPemu_utils.${THIS_LIB_VERSION}\")
 
 if(WIN32)
+  include (GenerateExportHeader)
+  add_library(CSPemu_utils SHARED
+       ${s_qt_emuutils_srcs}
+       ${s_qt_emuutils_headers_MOC}
+       )
 
-include (GenerateExportHeader)
-
-add_library(CSPemu_utils SHARED
-         ${s_qt_emuutils_srcs}
-         ${s_qt_emuutils_headers_MOC}
-)
-
-target_link_libraries(CSPemu_utils PRIVATE
-               Qt5::Core
-               ${ZLIB_LIBRARIES}
-               ${SDL2_LIBRARIES}
-               ${ADDITIONAL_DLL_LIBRARIES}
+  if(USE_QT_6)
+       target_link_libraries(CSPemu_utils PRIVATE
+         Qt::Core
+         ${ZLIB_LIBRARIES}
+         ${SDL2_LIBRARIES}
+         ${ADDITIONAL_DLL_LIBRARIES}
          )
-         
-set_target_properties(CSPemu_utils PROPERTIES
-                            SOVERSION ${THIS_LIB_VERSION}
-                            VERSION ${THIS_LIB_VERSION}
-                            LINK_INTERFACE_LIBRARIES ""
-                            )
-generate_export_header(CSPemu_utils
-        BASE_NAME CSPemu_utils
-        EXPORT_MACRO_NAME CSPemu_utils_EXPORT
-        EXPORT_FILE_NAME CSPemu_utils_Export.h
-        STATIC_DEFINE CSPemu_utils_BUILT_AS_STATIC
-)
-       set_std(CSPemu_utils)
-
+  elseif(USE_QT_5)
+       target_link_libraries(CSPemu_utils PRIVATE
+         Qt5::Core
+         ${ZLIB_LIBRARIES}
+         ${SDL2_LIBRARIES}
+         ${ADDITIONAL_DLL_LIBRARIES}
+         )
+  endif()        
+  set_target_properties(CSPemu_utils PROPERTIES
+       SOVERSION ${THIS_LIB_VERSION}
+       VERSION ${THIS_LIB_VERSION}
+       LINK_INTERFACE_LIBRARIES ""
+       )
+  generate_export_header(CSPemu_utils
+    BASE_NAME CSPemu_utils
+    EXPORT_MACRO_NAME CSPemu_utils_EXPORT
+    EXPORT_FILE_NAME CSPemu_utils_Export.h
+    STATIC_DEFINE CSPemu_utils_BUILT_AS_STATIC
+       )
+  set_std(CSPemu_utils)
 else()
-add_library(CSPemu_utils SHARED
-         ${s_qt_emuutils_srcs}
-         ${s_qt_emuutils_headers_MOC}
-)
-
-set_target_properties(CSPemu_utils PROPERTIES 
-                            SOVERSION ${THIS_LIB_VERSION}
-                            VERSION ${THIS_LIB_VERSION}
-                            )
-       set_std(CSPemu_utils)
-
-INSTALL(TARGETS CSPemu_utils DESTINATION ${LIBCSP_INSTALL_DIR})
-
+  add_library(CSPemu_utils SHARED
+       ${s_qt_emuutils_srcs}
+       ${s_qt_emuutils_headers_MOC}
+       )
+  set_target_properties(CSPemu_utils PROPERTIES 
+       SOVERSION ${THIS_LIB_VERSION}
+       VERSION ${THIS_LIB_VERSION}
+       )
+  set_std(CSPemu_utils)
+  INSTALL(TARGETS CSPemu_utils DESTINATION ${LIBCSP_INSTALL_DIR})
 endif()
index 4b2a09d..657b13b 100644 (file)
@@ -143,27 +143,44 @@ set(s_qt_gui_srcs
 )
 add_definitions(-D__GUI_LIBRARY_NAME=\"libCSPgui.${THIS_LIB_VERSION}\")
 
-if(USE_QT_5)
-  QT5_WRAP_CPP(s_qt_gui_headers_MOC ${s_qt_gui_headers})
+MAKE_WRAP_CPP(s_qt_gui_headers_MOC ${s_qt_gui_headers})
+if(USE_QT_6)
+  QT_ADD_RESOURCES(s_qt_gui_RCC ${RESOURCE}
+              ${CMAKE_CURRENT_SOURCE_DIR}/../common/qrc/commontexts.qrc
+                     ${CMAKE_CURRENT_SOURCE_DIR}/../common/qrc/shaders.qrc
+                     ${CMAKE_CURRENT_SOURCE_DIR}/../common/qrc/i18n_global.qrc
+                     ${CMAKE_CURRENT_SOURCE_DIR}/../common/qrc/icons.qrc
+                     )
+elseif(USE_QT_5)
   QT5_ADD_RESOURCES(s_qt_gui_RCC ${RESOURCE}
               ${CMAKE_CURRENT_SOURCE_DIR}/../common/qrc/commontexts.qrc
                      ${CMAKE_CURRENT_SOURCE_DIR}/../common/qrc/shaders.qrc
                      ${CMAKE_CURRENT_SOURCE_DIR}/../common/qrc/i18n_global.qrc
                      ${CMAKE_CURRENT_SOURCE_DIR}/../common/qrc/icons.qrc
                      )
-else()
-  QT4_WRAP_CPP(s_qt_gui_headers_MOC ${s_qt_gui_headers})
 endif()
 
 if(WIN32)
-include (GenerateExportHeader)
-add_library(CSPgui SHARED
-         ${s_qt_gui_srcs}
-         ${s_qt_gui_headers_MOC}
-         ${s_qt_gui_RCC}
+  include (GenerateExportHeader)
+  add_library(CSPgui SHARED
+       ${s_qt_gui_srcs}
+       ${s_qt_gui_headers_MOC}
+       ${s_qt_gui_RCC}
+       )
+  if(USE_QT_6)
+       target_link_libraries(CSPgui 
+         PRIVATE         CSPosd
+         CSPavio
+         CSPemu_utils
+         Qt::Core
+         Qt::Gui
+         Qt::OpenGL
+         Qt::Widgets
+         ${SDL2_LIBRARIES}
+         ${ADDITIONAL_DLL_LIBRARIES}
          )
-
-target_link_libraries(CSPgui 
+  elseif(USE_QT_5)
+       target_link_libraries(CSPgui 
          PRIVATE         CSPosd
          CSPavio
          CSPemu_utils
@@ -174,30 +191,41 @@ target_link_libraries(CSPgui
          ${SDL2_LIBRARIES}
          ${ADDITIONAL_DLL_LIBRARIES}
          )
-set_target_properties(CSPgui PROPERTIES
-                            SOVERSION ${THIS_LIB_VERSION}
-                            VERSION ${THIS_LIB_VERSION}
-                            LINK_INTERFACE_LIBRARIES ""
-                            )
-generate_export_header(CSPgui
-        BASE_NAME CSPgui
-        EXPORT_MACRO_NAME CSPgui_EXPORT
-        EXPORT_FILE_NAME CSPgui_Export.h
-        STATIC_DEFINE CSPgui_BUILT_AS_STATIC
-)
-       set_std(CSPgui)
+  endif()
+  set_target_properties(CSPgui PROPERTIES
+       SOVERSION ${THIS_LIB_VERSION}
+       VERSION ${THIS_LIB_VERSION}
+       LINK_INTERFACE_LIBRARIES ""
+       )
+  generate_export_header(CSPgui
+    BASE_NAME CSPgui
+    EXPORT_MACRO_NAME CSPgui_EXPORT
+    EXPORT_FILE_NAME CSPgui_Export.h
+    STATIC_DEFINE CSPgui_BUILT_AS_STATIC
+       )
+  set_std(CSPgui)
 else()
-set(s_qt_gui_srcs ${s_qt_gui_srcs} qt_main.cpp)
-
-add_library(CSPgui SHARED
-         ${s_qt_gui_srcs}
-         ${s_qt_gui_headers_MOC}
-         ${s_qt_gui_RCC}
-)
-#add_precompiled_header(CSPgui pch_list
-#              SOURCE_CXX pch.cpp FORCEINCLUDE
-#)
-target_link_libraries(CSPgui PUBLIC
+  set(s_qt_gui_srcs ${s_qt_gui_srcs} qt_main.cpp)
+
+  add_library(CSPgui SHARED
+       ${s_qt_gui_srcs}
+       ${s_qt_gui_headers_MOC}
+       ${s_qt_gui_RCC}
+       )
+  #add_precompiled_header(CSPgui pch_list
+  #            SOURCE_CXX pch.cpp FORCEINCLUDE
+  #)
+  if(USE_QT_6)
+       target_link_libraries(CSPgui PUBLIC
+         Qt::Core
+         Qt::Gui
+         Qt::OpenGL
+         Qt::Widgets
+         ${SDL2_LIBRARIES}
+         ${ADDITIONAL_DLL_LIBRARIES}
+         )
+  elseif(USE_QT_5)     
+       target_link_libraries(CSPgui PUBLIC
          Qt5::Core
          Qt5::Gui
          Qt5::OpenGL
@@ -205,12 +233,12 @@ target_link_libraries(CSPgui PUBLIC
          ${SDL2_LIBRARIES}
          ${ADDITIONAL_DLL_LIBRARIES}
          )
-
-set_target_properties(CSPgui PROPERTIES 
-                            SOVERSION ${THIS_LIB_VERSION}
-                            VERSION ${THIS_LIB_VERSION}
-                            )
-INSTALL(TARGETS CSPgui DESTINATION ${LIBCSP_INSTALL_DIR})
-       set_std(CSPgui)
-
+  endif()
+
+  set_target_properties(CSPgui PROPERTIES 
+       SOVERSION ${THIS_LIB_VERSION}
+       VERSION ${THIS_LIB_VERSION}
+       )
+  INSTALL(TARGETS CSPgui DESTINATION ${LIBCSP_INSTALL_DIR})
+  set_std(CSPgui)
 endif()
index e6b0d48..7f79548 100644 (file)
@@ -6,7 +6,13 @@
  * Licence : GPLv2
  */
 #include <QObject>
-#include <QMutex>
+
+#if QT_VERSION >= 0x051400
+       #include <QRecursiveMutex>
+#else
+       #include <QMutex>
+#endif
+
 #include <QMutexLocker>
 
 #include "csp_logger.h"
@@ -105,7 +111,11 @@ bool CSP_LoggerLine::contains_mainstr(QString s, bool case_sensitive)
 CSP_Logger::CSP_Logger(QObject *parent, bool b_syslog, bool cons, const char *devname) : QObject(parent)
 {
        p_osd = NULL;
+#if QT_VERSION >= 0x051400
+       lock_mutex = new QRecursiveMutex();
+#else
        lock_mutex = new QMutex(QMutex::Recursive);
+#endif
        this->reset();
        this->open(b_syslog, cons, devname);
        level_state_out_record = false;
@@ -842,7 +852,11 @@ double CSP_Logger::get_vm_clocks_usec()
 
 CSP_Log_ConsoleThread::CSP_Log_ConsoleThread(QObject *parent) : QThread(parent)
 {
+#if QT_VERSION >= 0x051400
+       _mutex = new QRecursiveMutex();
+#else
        _mutex = new QMutex(QMutex::Recursive);
+#endif
        conslog.setCapacity(256);
 }
 
index 5387b5b..670844b 100644 (file)
@@ -106,14 +106,23 @@ public:
        bool check_domain(QString s, bool case_sensitive = false);
 };
 
+#if QT_VERSION >= 0x051400
+class QRecursiveMutex;
+#else
 class QMutex;
+#endif
+
 class OSD_BASE;
 
 class DLL_PREFIX CSP_Log_ConsoleThread: public QThread {
        Q_OBJECT
        QContiguousCache<QString> conslog;
        //QQueue<QString> conslog;
+#if QT_VERSION >= 0x051400
+       QRecursiveMutex *_mutex;
+#else
        QMutex *_mutex;
+#endif
 public:
        CSP_Log_ConsoleThread(QObject *parent);
        ~CSP_Log_ConsoleThread();
@@ -162,7 +171,11 @@ private:
        bool level_cpu_out_console[8][CSP_LOG_LEVELS]; // Console log chain
        
        QVector<CSP_LoggerLine *> squeue;
+#if QT_VERSION >= 0x051400
+       QRecursiveMutex *lock_mutex;
+#else
        QMutex *lock_mutex;
+#endif
        OSD_BASE *p_osd;
 
        int max_devices;
index 97fe358..13b9a4f 100644 (file)
 #include <QFontDialog>
 #include <QPushButton>
 #include <QTimer>
+#if QT_VERSION >= 0x051400
+       #include <QRecursiveMutex>
+#else
+       #include <QMutex>
+#endif
 #include <QMutexLocker>
 #include <QResizeEvent>
 #include <QSize>
@@ -119,7 +124,11 @@ void Dlg_LogViewer::resizeEvent(QResizeEvent *event)
 
 Dlg_LogViewer::Dlg_LogViewer(USING_FLAGS *p, CSP_Logger *logger, QWidget *parent, QString _domain, uint32_t level) : QWidget(parent)
 {
+#if QT_VERSION >= 0x051400
+       lock_mutex = new QRecursiveMutex();
+#else
        lock_mutex = new QMutex(QMutex::Recursive);
+#endif
        log_str.clear();
        domain_name = _domain;
        level_map = level;
index 33bd9e3..bf9dab4 100644 (file)
@@ -26,7 +26,13 @@ class QFontDialog;
 class QPushButton;
 class QResizeEvent;
 class QTimer;
+
+#if QT_VERSION >= 0x051400
+class QRecursiveMutex;
+#else
 class QMutex;
+#endif
+
 class USING_FLAGS;
 class CSP_Logger;
 class DLL_PREFIX Dlg_LogViewerBind : public QObject
@@ -69,7 +75,12 @@ protected:
        QPushButton *FontDlgButton;
 
        USING_FLAGS *using_flags;
+
+#if QT_VERSION >= 0x051400
+       QRecursiveMutex *lock_mutex;
+#else
        QMutex *lock_mutex;
+#endif
 public:
        Dlg_LogViewer(USING_FLAGS *p, CSP_Logger * logger, QWidget *parent, QString _domain = QString::fromUtf8(""), uint32_t _level = 0xffffffff);
        ~Dlg_LogViewer();
index ceea614..f90f8e4 100644 (file)
 #include <QVector2D>
 #include <QVector3D>
 #include <QVector4D>
-#include <QMutex>
-
+#if QT_VERSION >= 0x051400
+       #include <QRecursiveMutex>
+#else
+       #include <QMutex>
+#endif
 #include <QOpenGLFunctions_4_5_Core>
 
 //extern USING_FLAGS *using_flags;
@@ -55,7 +58,11 @@ GLDraw_4_5::GLDraw_4_5(GLDrawClass *parent, USING_FLAGS *p, CSP_Logger *logger,
        main_texture_buffer = 0;
        main_read_texture_buffer = 0;
        map_base_address = NULL;
+#if QT_VERSION >= 0x051400
+       main_mutex = new QRecursiveMutex();
+#else
        main_mutex = new QMutex();
+#endif
        main_texture_ready = false;
        sync_fence = 0;
 
index 4d10180..a1679cf 100644 (file)
@@ -21,7 +21,11 @@ class QOpenGLBuffer;
 class QOpenGLVertexArrayObject;
 class QOpenGLShaderProgram;
 class QOpenGLPixelTransferOptions;
+#if QT_VERSION >= 0x051400
+class QRecursiveMutex;
+#else
 class QMutex;
+#endif
 
 class DLL_PREFIX GLDraw_4_5 : public GLDraw_Tmpl
 {
@@ -35,7 +39,13 @@ protected:
        GLuint main_texture_buffer;
        GLuint main_read_texture_buffer;
        GLsync sync_fence;
+
+#if QT_VERSION >= 0x051400
+       QRecursiveMutex *main_mutex;
+#else
        QMutex *main_mutex;
+#endif
+       
        scrntype_t *map_base_address;
 
        virtual void setNormalVAO(QOpenGLShaderProgram *prg, QOpenGLVertexArrayObject *vp,
index 632348f..702c5df 100644 (file)
@@ -7,6 +7,7 @@
  * Jan 24, 2014 : Moved from some files.
  */
 #include <QApplication>
+#include <QActionGroup>
 #include <QMenu>
 #include <QMenuBar>
 #include <QThread>
index 92cc874..45afe90 100644 (file)
@@ -6,6 +6,7 @@
  *     Jan 13 2015 : Start
  */
 #include <QApplication>
+#include <QActionGroup>
 
 #include "commonclasses.h"
 #include "mainwidget_base.h"
index f842332..0a66800 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <QApplication>
 #include <QStyle>
+#include <QActionGroup>
 
 #include "commonclasses.h"
 #include "mainwidget_base.h"
index 3fbc58c..bd86f88 100644 (file)
@@ -8,6 +8,7 @@
 #include <QMenu>
 #include <QStyle>
 #include <QApplication>
+#include <QActionGroup>
 
 #include "commonclasses.h"
 #include "mainwidget_base.h"
index 3b8d0d1..b921555 100644 (file)
@@ -1038,6 +1038,7 @@ void Ui_MainWindowBase::delete_emu_thread(void)
        emit sig_quit_all();
 }  
 // Utility
+#include <QActionGroup>
 #include <QTextCodec>
 #include <QString>
 #include <QByteArray>
index 3ab4820..6d5ac43 100644 (file)
@@ -9,6 +9,7 @@
 #include <QApplication>
 #include <QMenu>
 #include <QMenuBar>
+#include <QActionGroup>
 
 #include "commonclasses.h"
 #include "mainwidget_base.h"
index 0034e5e..3ee658b 100644 (file)
@@ -8,6 +8,7 @@
 #include <QImageReader>
 #include <QImage>
 #include <QMenu>
+#include <QActionGroup>
 
 #include "commonclasses.h"
 #include "mainwidget_base.h"
index ac09fda..5423580 100644 (file)
@@ -62,15 +62,24 @@ void GLDrawClass::mouseMoveEvent(QMouseEvent *event)
        }
        QPointF pos;
 //     if(using_flags->is_use_one_board_computer() || (using_flags->get_max_button() > 0)) {
-               pos = event->localPos();
+#if QT_VERSION >= 0x060000
+       pos = event->position();
+#else
+       pos = event->localPos();
+#endif
 //     } else {
 //             pos = event->screenPos();
 //     }
        double xpos = (double)(pos.x()) / (double)width();
        double ypos = (double)(pos.y()) / (double)height();
+#if QT_VERSION >= 0x060000
+       // ToDo: Use QCursor instead of Event. 20220217 K.O
+       double gxpos = (double)(event->globalPosition().x()) / (double)width();
+       double gypos = (double)(event->globalPosition().y()) / (double)height();
+#else
        double gxpos = (double)(event->globalPos().x()) / (double)width();
        double gypos = (double)(event->globalPos().y()) / (double)height();
-
+#endif
        if(using_flags->is_use_one_board_computer() || using_flags->is_use_mouse() || (using_flags->get_max_button() > 0)) {
                if(!enable_mouse) return;
                //if(QApplication::overrideCursor() == NULL) {
index 2ed0816..ac12384 100644 (file)
@@ -1,6 +1,7 @@
 
 #include <QOpenGLContext>
 #include <QOpenGLTexture>
+#include <QOpenGLVersionProfile>
 #include <QMatrix4x2>
 #include <QMatrix4x4>
 #include <QImage>
index 0281163..5b4f6aa 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_b2nd_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_b2nd_headers_MOC ${s_qt_b2nd_headers})
+MAKE_WRAP_CPP(s_qt_b2nd_headers_MOC ${s_qt_b2nd_headers})
 
 add_library(qt_emubabbage2nd
          MainWindow.cpp
index c0debad..16c5710 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_bmjr_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_bmjr_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_bmjr_headers})
 
 add_library(qt_${EXE_NAME}
        MainWindow.cpp
index 5268ac3..d6ce26a 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_bubcom80_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_bubcom80_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_bubcom80_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 8006747..90c91cf 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_${EXE_NAME}_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_${EXE_NAME}_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_${EXE_NAME}_headers})
   
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index a5cba84..9c8ecef 100644 (file)
@@ -3,7 +3,8 @@ message("* qt/cefucom21")
 set(s_qt_cefucom21_headers
          menuclasses.h
 )
-QT5_WRAP_CPP(s_qt_cefucom21_headers_MOC ${s_qt_cefucom21_headers})
+       
+MAKE_WRAP_CPP(s_qt_cefucom21_headers_MOC ${s_qt_cefucom21_headers})
 add_library(qt_emucefucom21
          MainWindow.cpp
          ${s_qt_cefucom21_headers_MOC}
index 9df1f49..f0e15b8 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_colecovision_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_colecovision_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_colecovision_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index f07df77..1bab9ec 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_ex80_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_ex80_headers_MOC ${s_qt_ex80_headers})
+MAKE_WRAP_CPP(s_qt_ex80_headers_MOC ${s_qt_ex80_headers})
 
 add_library(qt_emuex80
          MainWindow.cpp
index f216009..3fae41f 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_familybasic_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_familybasic_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_familybasic_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 6891d95..842737a 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_fm16beta_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fm16beta_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fm16beta_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 06a8a13..fcd2983 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_fm16pi_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fm16pi_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fm16pi_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 72ba88f..44a6f1d 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_fm7_headers_${EXE_NAME}
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_fm7_headers_${EXE_NAME}_MOC ${s_qt_fm7_headers_${EXE_NAME}})
+MAKE_WRAP_CPP(s_qt_fm7_headers_${EXE_NAME}_MOC ${s_qt_fm7_headers_${EXE_NAME}})
 
 add_library(qt_${EXE_NAME}
        MainWindow.cpp
index bcd7307..5647f32 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_fmr30_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fmr30_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fmr30_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index d446cfe..4b9d44d 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_fmr50_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fmr50_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fmr50_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index f80c72e..bf6075c 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_fmtowns_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fmtowns_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fmtowns_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index d5fb713..1ca0226 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_fp1100_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_emufp1100_headers_MOC ${s_qt_fp1100_headers})
+MAKE_WRAP_CPP(s_qt_emufp1100_headers_MOC ${s_qt_fp1100_headers})
 add_library(qt_emufp1100
          MainWindow.cpp
          ${s_qt_emufp1100_headers_MOC}
index ad84dba..dc75c28 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_fp200_headers
          menuclasses.h
          )
 
-QT5_WRAP_CPP(s_qt_emufp200_headers_MOC ${s_qt_fp200_headers})
+MAKE_WRAP_CPP(s_qt_emufp200_headers_MOC ${s_qt_fp200_headers})
 
 add_library(qt_emufp200
          MainWindow.cpp
index 2a2c0d0..9bbcfa8 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_gamegear_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_gamegear_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_gamegear_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 909fc9e..d56f18e 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_hc20_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_hc20_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_hc20_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 80b1615..22ff1bb 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_hc40_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_hc40_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_hc40_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 1426f32..e1117c0 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_hc80_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_hc80_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_hc80_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index e0d1b35..67f5b40 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_j3100_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_j3100_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_j3100_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 8e892f3..3bd767b 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_jr100_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_jr100_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_jr100_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index e580a37..420ca5b 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_jr800_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_jr800_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_jr800_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 32be2a1..40a309b 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_jx_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_jx_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_jx_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index a2dd14e..2b86932 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_m5_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_m5_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_m5_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index ae06434..d15d0a7 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_micom_mahjong_headers_${EXE_NAME}
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_micom_mahjong_headers_${EXE_NAME}_MOC ${s_qt_micom_mahjong_headers_${EXE_NAME}})
+MAKE_WRAP_CPP(s_qt_micom_mahjong_headers_${EXE_NAME}_MOC ${s_qt_micom_mahjong_headers_${EXE_NAME}})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 5eaea64..7b02131 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_tk80bs_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_tk80bs_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_tk80bs_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 10eeba7..7038d2a 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_msx_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_msx_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_msx_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 0162aa0..74485e7 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_multi8_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_multi8_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_multi8_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 9140931..dbefd8c 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_mycomz80_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mycomz80_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mycomz80_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 8148d9a..f7b2013 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_mz2500_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz2500_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz2500_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 854e553..21c8dbc 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_mz2800_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz2800_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz2800_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index d6aa17f..5e2f5b2 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_mz3500_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz3500_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz3500_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 0a5d974..b9a533e 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_mz5500_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz5500_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz5500_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 677fcec..46a580a 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_mz700_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz700_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz700_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 7dc7ad4..0eaef18 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_mz80_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz80_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_mz80_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index a2390fc..6c57d9f 100644 (file)
@@ -3,7 +3,7 @@ message("* qt/${EXE_NAME}")
 set(s_qt_n5200_headers
          menuclasses.h
 )
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_n5200_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_n5200_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 2bd7d80..be0c94b 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_pasopia_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pasopia_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pasopia_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 6bee534..0db1baf 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_pasopia7_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pasopia7_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pasopia7_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index a0aec5a..a0da286 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_pc100_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc100_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc100_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index a417260..e8dcf43 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_pc2001_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc2001_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc2001_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 64e4345..1b8e4a4 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_pc6001_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc6001_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc6001_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 69a089a..979921a 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_pc8201_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc8201_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc8201_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index b516bf6..58e8731 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_pc8801ma_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc8801ma_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc8801ma_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 0fb27ed..e98ef44 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_pc9801_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc9801_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc9801_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index a247a90..d065236 100644 (file)
@@ -3,7 +3,7 @@ message("* qt/${EXE_NAME}")
 set(s_qt_pc98ha_headers
          menuclasses.h
 )
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc98ha_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pc98ha_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 368a891..ed321f2 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_pce_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pce_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_pce_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 201b0bb..8322275 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_phc20_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_phc20_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_phc20_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 4a2ef3e..32350c3 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_phc25_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_phc25_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_phc25_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 219b4c5..b02587c 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_pv1000_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_emupv1000_headers_MOC ${s_qt_pv1000_headers})
+MAKE_WRAP_CPP(s_qt_emupv1000_headers_MOC ${s_qt_pv1000_headers})
 add_library(qt_emupv1000
          MainWindow.cpp
          ${s_qt_emupv1000_headers_MOC}
index 8d069e0..b907868 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_emupv2000_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_emupv2000_headers_MOC ${s_qt_emupv2000_headers})
+MAKE_WRAP_CPP(s_qt_emupv2000_headers_MOC ${s_qt_emupv2000_headers})
 
 add_library(qt_emupv2000
          MainWindow.cpp
index 7ca7e73..57b823d 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_pyuta_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_emupyuta_headers_MOC ${s_qt_pyuta_headers})
+MAKE_WRAP_CPP(s_qt_emupyuta_headers_MOC ${s_qt_pyuta_headers})
 
 add_library(qt_emupyuta
          MainWindow.cpp
index 4656184..0e7ddea 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_qc10_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_qc10_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_qc10_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index 40b893d..87dd11e 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_rx78_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_rx78_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_rx78_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 5f05ee7..9638329 100644 (file)
@@ -10,7 +10,7 @@ set(s_qt_gamegear_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_sc3000_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_sc3000_headers})
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
          ${s_qt_${EXE_NAME}_headers_MOC}
index b7c228b..4115a83 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_scv_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_emuscv_headers_MOC ${s_qt_scv_headers})
+MAKE_WRAP_CPP(s_qt_emuscv_headers_MOC ${s_qt_scv_headers})
 
 add_library(qt_emuscv
          MainWindow.cpp
index 8fd7723..ffd72df 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_smb80te_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_smb80te_headers_MOC ${s_qt_smb80te_headers})
+MAKE_WRAP_CPP(s_qt_smb80te_headers_MOC ${s_qt_smb80te_headers})
 
 add_library(qt_emusmb80te
          MainWindow.cpp
index 3d92f20..d877e34 100644 (file)
@@ -3,7 +3,7 @@ message("* qt/${EXE_NAME}")
 set(s_qt_smc777_headers
          menuclasses.h
 )
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_smc777_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_smc777_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 31aa49d..300eccb 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_svi3x8_headers_${EXE_NAME}
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_svi3x8_headers_${EXE_NAME}_MOC ${s_qt_svi3x8_headers_${EXE_NAME}})
+MAKE_WRAP_CPP(s_qt_svi3x8_headers_${EXE_NAME}_MOC ${s_qt_svi3x8_headers_${EXE_NAME}})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 5eaea64..7b02131 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_tk80bs_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_tk80bs_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_tk80bs_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 3452386..f040221 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_tvboy_headers_${EXE_NAME}
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_tvboy_headers_${EXE_NAME}_MOC ${s_qt_tvboy_headers_${EXE_NAME}})
+MAKE_WRAP_CPP(s_qt_tvboy_headers_${EXE_NAME}_MOC ${s_qt_tvboy_headers_${EXE_NAME}})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 3702f3b..32d940c 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_x07_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_emux07_headers_MOC ${s_qt_x07_headers})
+MAKE_WRAP_CPP(s_qt_emux07_headers_MOC ${s_qt_x07_headers})
   
 add_library(qt_emux07
          MainWindow.cpp
index f89f723..ecdc7ef 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_x1turboz_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_x1turboz_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_x1turboz_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 3687846..c46cd0f 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_yalky_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_yalky_headers_MOC ${s_qt_yalky_headers})
+MAKE_WRAP_CPP(s_qt_yalky_headers_MOC ${s_qt_yalky_headers})
 
 add_library(qt_emuyalky
          MainWindow.cpp
index 5e1e1ef..eeefb3f 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_yis_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_emuyis_headers_MOC ${s_qt_yis_headers})
+MAKE_WRAP_CPP(s_qt_emuyis_headers_MOC ${s_qt_yis_headers})
 
 add_library(qt_emuyis
          MainWindow.cpp
index 430f9c1..8d265b0 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_ys6464a_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_ys6464a_headers_MOC ${s_qt_ys6464a_headers})
+MAKE_WRAP_CPP(s_qt_ys6464a_headers_MOC ${s_qt_ys6464a_headers})
 
 add_library(qt_emuys6464a
          MainWindow.cpp
index 3f9b75a..94693c2 100644 (file)
@@ -4,7 +4,7 @@ set(s_qt_z80tvgame_headers
          menuclasses.h
 )
 
-QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_z80tvgame_headers})
+MAKE_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_z80tvgame_headers})
 
 add_library(qt_${EXE_NAME}
          MainWindow.cpp
index 6e29e21..3f37380 100644 (file)
 #include <QObject>
 #include <QWidget>
 
-#include <QMutex>
+#if QT_VERSION >= 0x051400
+       #include <QRecursiveMutex>
+#else
+       #include <QMutex>
+#endif
+
 #include <QMutexLocker>
 #include <QSemaphore>
 #include <QPainter>
@@ -26,7 +31,7 @@
 #include <QString>
 #include <QObject>
 #include <QThread>
-#include <QMutex>
+
 #include <QOpenGLContext>
 
 #include "simd_types.h"
 OSD_BASE::OSD_BASE(USING_FLAGS *p, CSP_Logger *logger) : QObject(0)
 {
        using_flags = p;
-       vm_mutex = new QMutex(QMutex::Recursive);
        locked_vm = false;
+       
+#if QT_VERSION >= 0x051400
+       vm_mutex = new QRecursiveMutex();
+       screen_mutex = new QRecursiveMutex();
+       joystick_mutex = new QRecursiveMutex();
+       mouse_mutex = new QRecursiveMutex();
+       log_mutex = new QRecursiveMutex();
+       debug_mutex = new QRecursiveMutex();
+#else
+       vm_mutex = new QMutex(QMutex::Recursive);
        screen_mutex = new QMutex(QMutex::Recursive);
        joystick_mutex = new QMutex(QMutex::Recursive);
        mouse_mutex = new QMutex(QMutex::Recursive);
        log_mutex = new QMutex(QMutex::Recursive);
-       
+       debug_mutex = new QMutex(QMutex::Recursive);
+#endif
        device_node_list.clear();
        max_vm_nodes = 0;
        p_logger = logger;
-       debug_mutex = new QMutex(QMutex::Recursive);
        vm = NULL;
        
        SupportedFeatures.clear();
index f0851f4..2b93bfc 100644 (file)
@@ -74,7 +74,12 @@ class CSP_KeyTables;
 class USING_FLAGS;
 class CSP_logger;
 
+#if QT_VERSION >= 0x051400
+class QRecursiveMutex;
+#else
 class QMutex;
+#endif
+
 class QOpenGLContext;
 class MIDI_REDIRECTOR;
 class SIO_REDIRECTOR;
@@ -367,13 +372,21 @@ public:
        VM_TEMPLATE* vm;
        //EMU* emu;
        class Ui_MainWindow *main_window_handle;
+#if QT_VERSION >= 0x051400
+       QRecursiveMutex *screen_mutex;
+       QRecursiveMutex *vm_mutex;
+       QRecursiveMutex *debug_mutex;
+       QRecursiveMutex *joystick_mutex;
+       QRecursiveMutex *mouse_mutex;
+       QRecursiveMutex *log_mutex;
+#else
        QMutex *screen_mutex;
        QMutex *vm_mutex;
        QMutex *debug_mutex;
        QMutex *joystick_mutex;
        QMutex *mouse_mutex;
        QMutex *log_mutex;
-       
+#endif 
        int host_cpus;
        bool now_auto_key;
        
index 3656d58..55c899f 100644 (file)
 #include <Qt>
 #include <QApplication>
 #include <SDL.h>
-#include <QMutex>
+
+#if QT_VERSION >= 0x051400
+       #include <QRecursiveMutex>
+#else
+       #include <QMutex>
+#endif
 #include <QMutexLocker>
 
 //#include "../emu.h"
index 5c31ce6..79260e3 100644 (file)
@@ -13,7 +13,6 @@
 
 //#include <QWidget>
 #include <QThread>
-#include <QMutex>
 #include <QPainter>
 #include <QElapsedTimer>
 #include <QString>
index 154ed84..5e924ce 100644 (file)
 #include <QObject>
 #include <QWidget>
 
-#include <QMutex>
+#if QT_VERSION >= 0x051400
+       #include <QRecursiveMutex>
+#else
+       #include <QMutex>
+#endif
+
 #include <QSemaphore>
 #include <QPainter>
 #include <QElapsedTimer>
@@ -24,7 +29,7 @@
 #include <QString>
 #include <QObject>
 #include <QThread>
-#include <QMutex>
+
 #include <QOpenGLContext>
 
 #include <QImage>
index 5b6470d..d2d340f 100644 (file)
@@ -181,50 +181,40 @@ set(s_vm_common_vm_srcs
 add_definitions(-D__LIBRARY_NAME=\"libCSPcommon_vm.${THIS_LIB_VERSION}\")
 
 if(WIN32)
-include (GenerateExportHeader)
-add_library(CSPcommon_vm SHARED
-   ${s_vm_common_vm_srcs}
+  include (GenerateExportHeader)
+  add_library(CSPcommon_vm SHARED
+       ${s_vm_common_vm_srcs}
     )
    
-target_link_libraries(CSPcommon_vm PRIVATE
-          CSPosd
-         CSPemu_utils
-         CSPfmgen
-#        ${CMAKE_CURRENT_SOURCE_DIR}/../../../build-cmake/bin-win32/libCSPosd.dll.a
-#        ${CMAKE_CURRENT_SOURCE_DIR}/../../../build-cmake/bin-win32/libCSPemu_utils.dll.a
-#        Qt5::Core
-#        Qt5::Gui
-#        Qt5::OpenGL
-#        Qt5::Widgets
-         ${SDL2_LIBRARIES}
-         ${ADDITIONAL_DLL_LIBRARIES}
-         )
-set_target_properties(CSPcommon_vm PROPERTIES
-                            SOVERSION ${THIS_LIB_VERSION}
-                            VERSION ${THIS_LIB_VERSION}
-                            LINK_INTERFACE_LIBRARIES ""
-                            )
-       set_std(CSPcommon_vm)
-generate_export_header(CSPcommon_vm
-       BASE_NAME CSPcommon_vm
-        EXPORT_MACRO_NAME CSPcommon_vm_EXPORT
-        EXPORT_FILE_NAME CSPcommon_vm_Export.h
-        STATIC_DEFINE CSPcommon_vm_BUILT_AS_STATIC
-)
-#add_library(vm_common_vm
-#   ${s_vm_common_vm_srcs}
-#    )
+  target_link_libraries(CSPcommon_vm PRIVATE
+       CSPosd
+       CSPemu_utils
+       CSPfmgen
+       ${SDL2_LIBRARIES}
+       ${ADDITIONAL_DLL_LIBRARIES}
+       )
+  set_target_properties(CSPcommon_vm PROPERTIES
+       SOVERSION ${THIS_LIB_VERSION}
+       VERSION ${THIS_LIB_VERSION}
+       LINK_INTERFACE_LIBRARIES ""
+       )
+  set_std(CSPcommon_vm)
+  generate_export_header(CSPcommon_vm
+    BASE_NAME CSPcommon_vm
+    EXPORT_MACRO_NAME CSPcommon_vm_EXPORT
+    EXPORT_FILE_NAME CSPcommon_vm_Export.h
+    STATIC_DEFINE CSPcommon_vm_BUILT_AS_STATIC
+       )
 else()
-
   add_library(CSPcommon_vm SHARED
     ${s_vm_common_vm_srcs}
-  )
+       )
   set_target_properties(CSPcommon_vm PROPERTIES 
-     SOVERSION ${THIS_LIB_VERSION}
-     VERSION ${THIS_LIB_VERSION}
-  )
-       set_std(CSPcommon_vm)
-#  cotire(CSPcommon_vm)
+    SOVERSION ${THIS_LIB_VERSION}
+    VERSION ${THIS_LIB_VERSION}
+       )
+  set_std(CSPcommon_vm)
+  #  cotire(CSPcommon_vm)
   INSTALL(TARGETS CSPcommon_vm DESTINATION ${LIBCSP_INSTALL_DIR})
 endif()