1
0
mirror of https://gitlab.com/kelteseth/ScreenPlay.git synced 2024-07-18 18:48:28 +02:00

Change cmake presets into dedicated os presets

Add and fix Qt 6.7 compilation with std::min issues
with windows.h
This commit is contained in:
Elias Steurer 2024-02-02 10:04:01 +01:00
parent 608112c237
commit dac7a2d835
11 changed files with 617 additions and 217 deletions

View File

@ -0,0 +1,310 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 0,
"minor": 27,
"patch": 0
},
"configurePresets": [
{
"name": "default",
"description": "Placeholder configuration that buildPresets and testPresets can inherit from",
"hidden": true,
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../vcpkg/scripts/buildsystems/vcpkg.cmake"
}
},
{
"name": "debug",
"description": "Specifies build type for single-configuration generators: debug",
"hidden": true,
"cacheVariables": {
"CMAKE_BUILD_TYPE": {
"type": "STRING",
"value": "Debug"
}
}
},
{
"name": "relwithdebinfo",
"description": "Specifies build type for single-configuration generators: RelWithDebInfo",
"hidden": true,
"cacheVariables": {
"CMAKE_BUILD_TYPE": {
"type": "STRING",
"value": "RelWithDebInfo"
}
}
},
{
"name": "release",
"description": "Specifies build type for single-configuration generators: release",
"hidden": true,
"cacheVariables": {
"CMAKE_BUILD_TYPE": {
"type": "STRING",
"value": "Release"
}
}
},
{
"name": "profile",
"description": "Specifies build type for single-configuration generators: profile",
"hidden": true,
"cacheVariables": {
"CMAKE_BUILD_TYPE": {
"type": "STRING",
"value": "Profile"
}
}
},
{
"name": "compile-commands-json",
"description": "Generate compile_commands.json file when used with a Makefile or Ninja Generator",
"hidden": true,
"cacheVariables": {
"CMAKE_EXPORT_COMPILE_COMMANDS": {
"type": "BOOL",
"value": "ON"
}
}
},
{
"name": "config-steam-deploy",
"description": "CMake flags for the deploy version",
"hidden": true,
"cacheVariables": {
"SCREENPLAY_STEAM": "ON",
"SCREENPLAY_DEPLOY": "ON",
"SCREENPLAY_INSTALLER": "OFF",
"SCREENPLAY_TESTS": "OFF",
"SCREENPLAY_GODOT": "OFF"
}
},
{
"name": "config-pro-steam-deploy",
"description": "CMake flags for the deploy version",
"hidden": true,
"cacheVariables": {
"SCREENPLAY_STEAM": "ON",
"SCREENPLAY_DEPLOY": "ON",
"SCREENPLAY_INSTALLER": "OFF",
"SCREENPLAY_TESTS": "OFF",
"SCREENPLAY_GODOT": "ON"
}
},
{
"name": "config-develop",
"description": "CMake flags for the deploy version",
"hidden": true,
"cacheVariables": {
"SCREENPLAY_STEAM": "ON",
"SCREENPLAY_DEPLOY": "OFF",
"SCREENPLAY_INSTALLER": "OFF",
"SCREENPLAY_TESTS": "ON",
"SCREENPLAY_GODOT": "ON"
}
},
{
"name": "ninja",
"displayName": "Ninja",
"description": "Configure using Ninja generator",
"binaryDir": "${sourceDir}/../build_ScreenPlay",
"hidden": true,
"generator": "Ninja",
"inherits": [
"compile-commands-json"
]
},
{
"name": "ninja-multi-config",
"displayName": "Ninja Multi-Config",
"description": "Configure using Ninja Multi-Config generator",
"binaryDir": "${sourceDir}/../build_ScreenPlay",
"hidden": true,
"generator": "Ninja Multi-Config",
"inherits": [
"compile-commands-json"
]
},
{
"name": "host-windows",
"displayName": "Host OS - Windows",
"description": "Specifies Windows host condition for configure preset",
"hidden": true,
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "host-linux",
"displayName": "Host OS - Linux",
"description": "Specifies Linux host condition for configure preset",
"hidden": true,
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
}
},
{
"name": "host-mac",
"displayName": "Host OS - Mac",
"description": "Specifies Mac host condition for configure preset",
"hidden": true,
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Darwin"
}
},
{
"name": "host-windows-linux-mac",
"displayName": "Host OS - Any",
"description": "Allows Windows, Linux or Mac to be used for host condition for configure preset",
"hidden": true,
"condition": {
"type": "inList",
"string": "${hostSystemName}",
"list": [
"Darwin",
"Linux",
"Windows"
]
}
}
],
"buildPresets": [
{
"name": "debug",
"description": "configuration: debug",
"hidden": true,
"configurePreset": "default",
"configuration": "debug"
},
{
"name": "release",
"description": "configuration: release",
"hidden": true,
"configurePreset": "default",
"configuration": "release"
},
{
"name": "profile",
"description": "configuration: profile",
"hidden": true,
"configurePreset": "default",
"configuration": "profile"
},
{
"name": "install",
"description": "Builds the dependencies install(Ninja, Make, etc...) or INSTALL(Visual Studio, Xcode) target. Afterwards run the CMake install step to install the build dependencies",
"hidden": true,
"configurePreset": "default",
"inherits": [
"profile"
],
"targets": "install"
},
{
"name": "test-default",
"description": "Builds the smoke and main test suite dependencies",
"hidden": true,
"configurePreset": "default",
"inherits": [
"profile"
],
"targets": [
"TEST_SUITE_main",
"TEST_SUITE_smoke"
]
}
],
"testPresets": [
{
"name": "test-default",
"description": "CTest preset which runs the smoke and main test suites",
"hidden": true,
"configurePreset": "default",
"output": {
"outputOnFailure": true,
"outputLogFile": "Ctest-${presetName}.log"
},
"execution": {
"noTestsAction": "error"
},
"filter": {
"include": {
"label": "(SUITE_smoke|SUITE_main)"
},
"exclude": {
"label": "(REQUIRES_gpu)"
}
}
},
{
"name": "test-default-debug",
"description": "Runs the smoke and main test suites using the debug configuration",
"hidden": true,
"configurePreset": "default",
"inherits": [
"test-default"
],
"configuration": "debug",
"output": {
"outputLogFile": "Ctest-${presetName}-debug.log"
}
},
{
"name": "test-default-profile",
"description": "Runs the smoke and main test suites using the profile configuration",
"hidden": true,
"configurePreset": "default",
"inherits": [
"test-default"
],
"configuration": "profile",
"output": {
"outputLogFile": "Ctest-${presetName}-profile.log"
}
},
{
"name": "host-windows",
"displayName": "Host OS - Windows",
"description": "Specifies Windows host condition for test preset",
"hidden": true,
"configurePreset": "default",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "host-linux",
"displayName": "Host OS - Linux",
"description": "Specifies Linux host condition for test preset",
"hidden": true,
"configurePreset": "default",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
}
},
{
"name": "host-mac",
"displayName": "Host OS - Mac",
"description": "Specifies Mac host condition for test preset",
"hidden": true,
"configurePreset": "default",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Darwin"
}
}
]
}

View File

@ -0,0 +1,101 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 0,
"minor": 27,
"patch": 0
},
"include": [
"../Common/CMakePresets.json"
],
"configurePresets": [
{
"name": "linux-base",
"hidden": true,
"inherits": [
"default",
"ninja",
"host-linux"
],
"cacheVariables": {
"CMAKE_PREFIX_PATH": "${sourceDir}/../aqt/6.6.1/gcc_64",
"VCPKG_TARGET_TRIPLET": "x64-linux"
}
},
{
"name": "linux-gcc-base",
"hidden": true,
"description": "Use gold linker to fix linking",
"inherits": "linux-base",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "g++-13",
"CMAKE_C_COMPILER": "gcc-13",
"CMAKE_EXE_LINKER_FLAGS": "-fuse-ld=gold",
"CMAKE_CXX_FLAGS": "-fuse-ld=gold"
}
},
{
"name": "linux-gcc-debug",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Gcc_Debug",
"inherits": [
"config-develop",
"linux-gcc-base",
"debug"
]
},
{
"name": "linux-gcc-profile",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Gcc_Profile",
"inherits": [
"config-develop",
"linux-gcc-base",
"profile"
]
},
{
"name": "linux-gcc-release",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Gcc_Release",
"inherits": [
"config-develop",
"linux-gcc-base",
"release"
]
},
{
"name": "linux-clang-base",
"hidden": true,
"inherits": "linux-base",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "clang++-17",
"CMAKE_C_COMPILER": "clang-17"
}
},
{
"name": "linux-clang-debug",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Clang_Debug",
"inherits": [
"config-develop",
"linux-clang-base",
"debug"
]
},
{
"name": "linux-clang-profile",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Clang_Profile",
"inherits": [
"config-develop",
"linux-clang-base",
"profile"
]
},
{
"name": "linux-clang-release",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Clang_Release",
"inherits": [
"config-develop",
"linux-clang-base",
"release"
]
}
]
}

View File

@ -0,0 +1,63 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 0,
"minor": 27,
"patch": 0
},
"include": [
"../Common/CMakePresets.json"
],
"configurePresets": [
{
"name": "mac-base",
"hidden": true,
"inherits": [
"default",
"ninja",
"host-mac"
],
"cacheVariables": {
"CMAKE_PREFIX_PATH": "${sourceDir}/../aqt/6.6.1/gcc_64",
"VCPKG_OSX_ARCHITECTURES": "arm64;x86_64",
"VCPKG_TARGET_TRIPLET": "64-osx-universal"
}
},
{
"name": "mac-clang-base",
"hidden": true,
"inherits": "mac-base",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "clang++",
"CMAKE_C_COMPILER": "clang"
}
},
{
"name": "mac-clang-debug",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Clang_Debug",
"inherits": [
"config-develop",
"mac-clang-base",
"debug"
]
},
{
"name": "mac-clang-profile",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Clang_Profile",
"inherits": [
"config-develop",
"mac-clang-base",
"profile"
]
},
{
"name": "mac-clang-release",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Clang_Release",
"inherits": [
"config-develop",
"mac-clang-base",
"release"
]
}
]
}

View File

@ -0,0 +1,124 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 0,
"minor": 27,
"patch": 0
},
"include": [
"../Common/CMakePresets.json"
],
"configurePresets": [
{
"name": "windows-base",
"hidden": true,
"inherits": [
"default",
"ninja",
"host-windows"
],
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x64-windows"
},
"toolset": {
"value": "host=x64",
"strategy": "external"
},
"architecture": {
"value": "x64",
"strategy": "external"
}
},
{
"name": "windows-base-aqt",
"hidden": true,
"inherits": [
"windows-base"
],
"cacheVariables": {
"CMAKE_PREFIX_PATH": "${sourceDir}/../aqt/6.6.1/msvc2019_64"
}
},
{
"name": "windows-base-qt",
"hidden": true,
"inherits": [
"windows-base"
],
"cacheVariables": {
"CMAKE_PREFIX_PATH": "C:/Qt/6.7.0/msvc2019_64"
}
},
{
"name": "windows-msvc-base",
"hidden": true,
"inherits": "windows-base-qt",
"cacheVariables": {
"CMAKE_C_COMPILER": "cl.exe",
"CMAKE_CXX_COMPILER": "cl.exe"
}
},
{
"name": "windows-msvc-debug",
"binaryDir": "${sourceDir}/../build_ScreenPlay_MSVC_Debug",
"inherits": [
"config-develop",
"windows-msvc-base",
"debug"
]
},
{
"name": "windows-msvc-relwithdebinfo",
"binaryDir": "${sourceDir}/../build_ScreenPlay_MSVC_RelWithDebInfo",
"inherits": [
"config-develop",
"windows-msvc-base",
"relwithdebinfo"
]
},
{
"name": "windows-msvc-release",
"binaryDir": "${sourceDir}/../build_ScreenPlay_MSVC_Release",
"inherits": [
"config-develop",
"windows-msvc-base",
"release"
]
},
{
"name": "windows-clang-base",
"inherits": "windows-base",
"cacheVariables": {
"CMAKE_C_COMPILER": "C:/Program Files/LLVM/bin/clang-cl.exe",
"CMAKE_CXX_COMPILER": "C:/Program Files/LLVM/bin/clang-cl.exe"
}
},
{
"name": "windows-clang-debug",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Clang_Debug",
"inherits": [
"config-develop",
"windows-clang-base",
"debug"
]
},
{
"name": "windows-clang-profile",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Clang_Profile",
"inherits": [
"config-develop",
"windows-clang-base",
"profile"
]
},
{
"name": "windows-clang-release",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Clang_Release",
"inherits": [
"config-develop",
"windows-clang-base",
"release"
]
}
]
}

View File

@ -1,213 +1,16 @@
{
"version": 5,
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 23,
"major": 0,
"minor": 27,
"patch": 0
},
"configurePresets": [
{
"name": "default-windows",
"displayName": "ScreenPlay 64bit Windows",
"description": "Windows only!",
"generator": "Ninja",
"hidden": true,
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
},
"environment": {
"qt_path": "${sourceDir}/../aqt",
"qt_version": "6.6.1"
},
"toolset": {
"value": "host=x64",
"strategy": "external"
},
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_PREFIX_PATH": "$env{qt_path}/$env{qt_version}/msvc2019_64",
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../vcpkg/scripts/buildsystems/vcpkg.cmake",
"VCPKG_TARGET_TRIPLET": "x64-windows",
"CMAKE_C_COMPILER": "cl.exe",
"CMAKE_CXX_COMPILER": "cl.exe"
}
},
{
"name": "windows-debug-qt-6.6.1",
"inherits": "default-windows",
"displayName": "MSVC SP Qt 6.6.1 Debug",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_MSVC_Debug",
"environment": {
"qt_version": "6.6.1"
},
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "windows-relwithdebinfo-qt-6.6.1",
"inherits": "default-windows",
"displayName": "MSVC SP Qt 6.6.1 RelWithDebInfo",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_MSVC_RelWithDebInfo",
"environment": {
"qt_version": "6.6.1"
},
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
},
{
"name": "windows-release-qt-6.6.1",
"inherits": "default-windows",
"displayName": "MSVC SP Qt 6.6.1 Release",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_MSVC_Release",
"environment": {
"qt_version": "6.6.1"
},
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
},
{
"name": "windows-release-qt-6.6.1-release-deploy",
"inherits": "windows-release-qt-6.6.1",
"displayName": "MSVC SP Qt 6.6.1 Release Steam Deploy",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_MSVC_Release_Steam_Deploy",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"SCREENPLAY_DEPLOY": "ON",
"SCREENPLAY_STEAM": "ON"
}
},
{
"name": "linux-generic-debug",
"displayName": "ScreenPlay 64bit Debug Linux",
"description": "Linux only!",
"generator": "Ninja",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_GCC_Debug",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
},
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_CXX_COMPILER": "g++",
"CMAKE_C_COMPILER": "gcc",
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../vcpkg/scripts/buildsystems/vcpkg.cmake",
"VCPKG_TARGET_TRIPLET": "x64-linux",
"SCREENPLAY_STEAM": "OFF",
"SCREENPLAY_TESTS": "OFF"
}
},
{
"name": "linux-relwithdebinfo",
"displayName": "ScreenPlay 64bit RelWithDebInfo Linux",
"inherits": "linux-generic-debug",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_GCC_RelWithDebInfo",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
},
{
"name": "linux-aqt-debug",
"displayName": "ScreenPlay 64bit Debug Linux using aqt",
"description": "Linux only!",
"generator": "Ninja",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_GCC_Debug",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
},
"environment": {
"qt_path": "${sourceDir}/../aqt"
},
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_CXX_COMPILER": "g++",
"CMAKE_C_COMPILER": "gcc",
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_PREFIX_PATH": "$env{qt_path}/6.6.1/gcc_64",
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../vcpkg/scripts/buildsystems/vcpkg.cmake",
"VCPKG_TARGET_TRIPLET": "x64-linux"
}
},
{
"name": "linux-aqt-relwithdebinfo",
"displayName": "ScreenPlay 64bit RelWithDebInfo Linux using aqt",
"inherits": "linux-ubuntu-debug",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_GCC_RelWithDebInfo",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
},
{
"name": "osx-debug",
"displayName": "ScreenPlay 64bit Debug osx",
"description": "Osx only!",
"generator": "Ninja",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_Clang_Debug",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Darwin"
},
"environment": {
"qt_path": "${sourceDir}/../aqt"
},
"cacheVariables": {
"VCPKG_OSX_ARCHITECTURES": "arm64;x86_64",
"VCPKG_TARGET_TRIPLET": "64-osx-universal",
"CMAKE_CXX_COMPILER": "clang++",
"CMAKE_C_COMPILER": "clang",
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_PREFIX_PATH": "$env{qt_path}/6.6.1/macos",
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../vcpkg/scripts/buildsystems/vcpkg.cmake"
}
},
{
"name": "osx-relwithdebinfo",
"displayName": "ScreenPlay 64bit RelWithDebInfo osx",
"inherits": "osx-debug",
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_Clang_RelWithDebInfo",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
}
"include": [
"CMake/Platform/Linux/CMakePresets.json",
"CMake/Platform/Windows/CMakePresets.json",
"CMake/Platform/Mac/CMakePresets.json"
],
"buildPresets": [
{
"name": "linux-debug",
"configurePreset": "linux-debug"
},
{
"name": "default-windows",
"configurePreset": "default-windows"
},
{
"name": "osx-debug",
"configurePreset": "osx-debug"
}
],
"testPresets": [
{
"name": "Test",
"description": "",
"displayName": "",
"configurePreset": "windows-release-qt-6.6.1"
}
]
"configurePresets": [],
"buildPresets": [],
"testPresets": []
}

View File

@ -2,7 +2,6 @@
#pragma once
#include "ScreenPlayUtil/processmanager.h"
#include <QByteArray>
#include <QJsonArray>
#include <QJsonDocument>
@ -18,6 +17,8 @@
#include <QTimer>
#include <QtGlobal>
#include "ScreenPlayUtil/processmanager.h"
class ScreenPlaySDK : public QObject {
Q_OBJECT

View File

@ -5,7 +5,7 @@
#include <optional>
#if defined(Q_OS_WIN)
#include <Windows.h>
#include <qt_windows.h>
#elif defined(Q_OS_LINUX) || defined(Q_OS_MAC)
#include <signal.h>
#include <sys/types.h>

View File

@ -1,11 +1,6 @@
// SPDX-License-Identifier: LicenseRef-EliasSteurerTachiom OR AGPL-3.0-only
#include "basewindow.h"
#include "ScreenPlayUtil/projectfile.h"
#include "ScreenPlayUtil/util.h"
#include <QGuiApplication>
/*!
\module ScreenPlayWallpaper
\title ScreenPlayWallpaper

View File

@ -5,6 +5,7 @@
#include <QDebug>
#include <QFile>
#include <QFileSystemWatcher>
#include <QGuiApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonParseError>
@ -16,6 +17,7 @@
#include "ScreenPlaySDK/screenplaysdk.h"
#include "ScreenPlayUtil/exitcodes.h"
#include "ScreenPlayUtil/processmanager.h"
#include "ScreenPlayUtil/projectfile.h"
#include "ScreenPlayUtil/util.h"
#include <memory>

View File

@ -5,7 +5,8 @@
#include <QtQml>
#include <shellscalingapi.h>
#include <vector>
#include <windows.h>
#include <qt_windows.h>
/*!
\class WinWindow

View File

@ -25,8 +25,8 @@ QT_VERSION = "6.6.1"
QT_BIN_PATH = QT_PATH.joinpath(f"{QT_VERSION}/{QT_PLATFORM}/bin")
QT_TOOLS_PATH = QT_PATH.joinpath("Tools/")
QT_IFW_VERSION = "4.6"
# 8.12.2023 https://github.com/microsoft/vcpkg :
VCPKG_VERSION = "2a6371b01420d8820d158b4707e79931feba27aa"
# 01.02.2024 https://github.com/microsoft/vcpkg :
VCPKG_VERSION = "10e0525"
VCPKG_BASE_PACKAGES = [
"curl",
"openssl",