Merge branch 'cmake' of https://github.com/vrcomputing/qskinny into cmake
This commit is contained in:
commit
502cc5e9b1
|
@ -91,10 +91,12 @@ PenaltyBreakString: 1000
|
|||
PenaltyExcessCharacter: 1000000
|
||||
PenaltyReturnTypeOnItsOwnLine: 60
|
||||
PointerAlignment: Left
|
||||
RawStringFormats:
|
||||
- Delimiter: pb
|
||||
Language: TextProto
|
||||
BasedOnStyle: google
|
||||
RawStringFormats:
|
||||
- Language: TextProto
|
||||
Delimiters:
|
||||
- 'pb'
|
||||
- 'proto'
|
||||
BasedOnStyle: google
|
||||
ReflowComments: true
|
||||
SortIncludes: true
|
||||
SortUsingDeclarations: true
|
||||
|
@ -112,5 +114,6 @@ SpacesInSquareBrackets: true
|
|||
Standard: Cpp11
|
||||
TabWidth: 4
|
||||
UseTab: Never
|
||||
UseCRLF: Always
|
||||
...
|
||||
|
||||
|
|
|
@ -0,0 +1,459 @@
|
|||
name: CMake Build Matrix
|
||||
|
||||
# Directories
|
||||
# - $GITHUB_WORKSPACE/qskinny_source : Checkout directory for qskinny sources
|
||||
# - $GITHUB_WORKSPACE/qskinny_build : Build directory for QSkinny CMake
|
||||
# - $GITHUB_WORKSPACE/qskinny_install : Install directory for QSkinny package
|
||||
# - $GITHUB_WORKSPACE/qskinny_build_test : Build directory for QSkinny CMake integration test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [cmake]
|
||||
pull_request:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: ${{ matrix.config.name }}
|
||||
runs-on: ${{ matrix.config.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
config:
|
||||
- {
|
||||
name: "Windows Latest MSVC Qt5",
|
||||
os: windows-latest,
|
||||
artifact: "windows_msvc.7z",
|
||||
build_type: "Release",
|
||||
cc: "cl",
|
||||
cxx: "cl",
|
||||
environment_script: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
|
||||
archiver: "7z a",
|
||||
generators: "Visual Studio 17 2022",
|
||||
cmake:
|
||||
{
|
||||
qtversion: "5.15.2",
|
||||
qtdirkey: "Qt5_DIR",
|
||||
qtdirvalue: "../Qt/5.15.2/msvc2019_64/lib/cmake/Qt5",
|
||||
qtprefixpath: "../Qt/5.15.2/msvc2019_64",
|
||||
},
|
||||
screenshot_filename: "windows-latest-msvc-qt-5-15-2.jpg",
|
||||
}
|
||||
- {
|
||||
name: "Windows Latest MSVC Qt6",
|
||||
os: windows-latest,
|
||||
artifact: "windows_msvc.7z",
|
||||
build_type: "Release",
|
||||
cc: "cl",
|
||||
cxx: "cl",
|
||||
environment_script: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
|
||||
archiver: "7z a",
|
||||
generators: "Visual Studio 17 2022",
|
||||
cmake:
|
||||
{
|
||||
qtversion: "6.2.4",
|
||||
qtdirkey: "Qt6_DIR",
|
||||
qtdirvalue: "../Qt/6.2.4/msvc2019_64/lib/cmake/Qt6",
|
||||
qtprefixpath: "../Qt/6.2.4/msvc2019_64",
|
||||
},
|
||||
screenshot_filename: "windows-latest-msvc-qt-6-2-4.jpg",
|
||||
}
|
||||
- {
|
||||
name: "Windows 2019 MSVC Qt5",
|
||||
os: windows-2019,
|
||||
artifact: "windows_msvc.7z",
|
||||
build_type: "Release",
|
||||
cc: "cl",
|
||||
cxx: "cl",
|
||||
environment_script: "C:/Program Files/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
|
||||
archiver: "7z a",
|
||||
generators: "Visual Studio 16 2019",
|
||||
cmake:
|
||||
{
|
||||
qtversion: "5.15.2",
|
||||
qtdirkey: "Qt5_DIR",
|
||||
qtdirvalue: "../Qt/5.15.2/msvc2019_64/lib/cmake/Qt5",
|
||||
qtprefixpath: "../Qt/5.15.2/msvc2019_64",
|
||||
},
|
||||
screenshot_filename: "windows-2019-msvc-qt-5-15-2.jpg",
|
||||
}
|
||||
- {
|
||||
name: "Windows 2019 MSVC Qt6",
|
||||
os: windows-2019,
|
||||
artifact: "windows_msvc.7z",
|
||||
build_type: "Release",
|
||||
cc: "cl",
|
||||
cxx: "cl",
|
||||
environment_script: "C:/Program Files/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
|
||||
archiver: "7z a",
|
||||
generators: "Visual Studio 16 2019",
|
||||
cmake:
|
||||
{
|
||||
qtversion: "6.2.4",
|
||||
qtdirkey: "Qt6_DIR",
|
||||
qtdirvalue: "../Qt/6.2.4/msvc2019_64/lib/cmake/Qt6",
|
||||
qtprefixpath: "../Qt/6.2.4/msvc2019_64",
|
||||
},
|
||||
screenshot_filename: "windows-2019-msvc-qt-6-2-4.jpg",
|
||||
}
|
||||
- {
|
||||
name: "Ubuntu Latest GCC Qt5",
|
||||
os: ubuntu-latest,
|
||||
artifact: "ubuntu_gcc.7z",
|
||||
build_type: "Release",
|
||||
cc: "gcc",
|
||||
cxx: "g++",
|
||||
archiver: "7z a",
|
||||
generators: "Ninja",
|
||||
env: { DISPLAY: ":1" },
|
||||
cmake:
|
||||
{
|
||||
qtversion: "5.15.2",
|
||||
qtdirkey: "Qt5_DIR",
|
||||
qtdirvalue: "../Qt/5.15.2/gcc_64/lib/cmake/Qt5",
|
||||
qtprefixpath: "../Qt/5.15.2/gcc_64",
|
||||
},
|
||||
screenshot_filename: "ubuntu-latest-gcc-qt-5-15-2.jpg",
|
||||
}
|
||||
- {
|
||||
name: "Ubuntu Latest GCC Qt6",
|
||||
os: ubuntu-latest,
|
||||
artifact: "ubuntu_gcc.7z",
|
||||
build_type: "Release",
|
||||
cc: "gcc",
|
||||
cxx: "g++",
|
||||
archiver: "7z a",
|
||||
generators: "Ninja",
|
||||
env: { DISPLAY: ":1" },
|
||||
cmake:
|
||||
{
|
||||
qtversion: "6.2.4",
|
||||
qtdirkey: "Qt6_DIR",
|
||||
qtdirvalue: "../Qt/6.2.4/gcc_64/lib/cmake/Qt6",
|
||||
qtprefixpath: "../Qt/6.2.4/gcc_64",
|
||||
},
|
||||
screenshot_filename: "ubuntu-latest-gcc-qt-6-2-4.jpg",
|
||||
}
|
||||
- {
|
||||
name: "Ubuntu GCC 9 Qt5",
|
||||
os: ubuntu-latest,
|
||||
artifact: "ubuntu_gcc9.7z",
|
||||
build_type: "Release",
|
||||
cc: "gcc",
|
||||
cxx: "g++",
|
||||
archiver: "7z a",
|
||||
generators: "Ninja",
|
||||
env: { DISPLAY: ":1" },
|
||||
cmake:
|
||||
{
|
||||
qtversion: "5.15.2",
|
||||
qtdirkey: "Qt5_DIR",
|
||||
qtdirvalue: "../Qt/5.15.2/gcc_64/lib/cmake/Qt5",
|
||||
qtprefixpath: "../Qt/5.15.2/gcc_64",
|
||||
},
|
||||
screenshot_filename: "ubuntu-latest-gcc-9-qt-5-15-2.jpg",
|
||||
}
|
||||
- {
|
||||
name: "Ubuntu GCC 9 Qt6",
|
||||
os: ubuntu-latest,
|
||||
artifact: "ubuntu_gcc9.7z",
|
||||
build_type: "Release",
|
||||
cc: "gcc",
|
||||
cxx: "g++",
|
||||
archiver: "7z a",
|
||||
generators: "Ninja",
|
||||
env: { DISPLAY: ":1" },
|
||||
cmake:
|
||||
{
|
||||
qtversion: "6.2.4",
|
||||
qtdirkey: "Qt6_DIR",
|
||||
qtdirvalue: "../Qt/6.2.4/gcc_64/lib/cmake/Qt6",
|
||||
qtprefixpath: "../Qt/6.2.4/gcc_64",
|
||||
},
|
||||
screenshot_filename: "ubuntu-latest-gcc-9-qt-6-2-4.jpg",
|
||||
}
|
||||
- {
|
||||
name: "macOS Latest Clang Qt5",
|
||||
os: macos-latest,
|
||||
artifact: "macos_clang.7z",
|
||||
build_type: "Release",
|
||||
cc: "clang",
|
||||
cxx: "clang++",
|
||||
archiver: "7za a",
|
||||
generators: "Ninja",
|
||||
cmake:
|
||||
{
|
||||
qtversion: "5.15.2",
|
||||
qtdirkey: "Qt5_DIR",
|
||||
qtdirvalue: "../Qt/5.15.2/clang_64/lib/cmake/Qt5",
|
||||
qtprefixpath: "../Qt/5.15.2/clang_64",
|
||||
},
|
||||
screenshot_filename: "macos-latest-clang-qt-5-15-2.jpg",
|
||||
}
|
||||
- {
|
||||
name: "macOS Latest Clang Qt6",
|
||||
os: macos-latest,
|
||||
artifact: "macos_clang.7z",
|
||||
build_type: "Release",
|
||||
cc: "clang",
|
||||
cxx: "clang++",
|
||||
archiver: "7za a",
|
||||
generators: "Ninja",
|
||||
cmake:
|
||||
{
|
||||
qtversion: "6.2.4",
|
||||
qtdirkey: "Qt6_DIR",
|
||||
qtdirvalue: "../Qt/6.2.4/clang_64/lib/cmake/Qt6",
|
||||
qtprefixpath: "../Qt/6.2.4/clang_64",
|
||||
},
|
||||
screenshot_filename: "macos-latest-clang-qt-6-2-4.jpg",
|
||||
}
|
||||
|
||||
steps:
|
||||
- name: Git Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: qskinny_source
|
||||
|
||||
- name: Print env
|
||||
run: |
|
||||
echo github.event.action: ${{ github.event.action }}
|
||||
echo github.event_name: ${{ github.event_name }}
|
||||
|
||||
- name: Install dependencies on windows
|
||||
if: startsWith(matrix.config.os, 'windows')
|
||||
run: |
|
||||
choco install ninja
|
||||
choco install cmake --version=3.16.3
|
||||
ninja --version
|
||||
cmake --version
|
||||
|
||||
- name: Install dependencies on ubuntu
|
||||
if: startsWith(matrix.config.name, 'Ubuntu Latest GCC')
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install ninja-build cmake
|
||||
ninja --version
|
||||
cmake --version
|
||||
gcc --version
|
||||
|
||||
- name: Install dependencies on ubuntu9
|
||||
if: startsWith(matrix.config.name, 'Ubuntu GCC 9')
|
||||
run: |
|
||||
echo Update gcc-9 =======================================================================
|
||||
echo gcc version before
|
||||
gcc --version
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||
sudo apt-get update
|
||||
sudo apt-get install ninja-build cmake gcc-9 g++-9
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9
|
||||
echo gcc version after
|
||||
gcc --version
|
||||
echo Update ninja =======================================================================
|
||||
echo ninja version before
|
||||
ninja --version
|
||||
# wget https://github.com/ninja-build/ninja/releases/download/v1.10.0/ninja-linux.zip
|
||||
wget https://github.com/ninja-build/ninja/releases/latest/download/ninja-linux.zip
|
||||
sudo unzip ninja-linux.zip -d /usr/local/bin/
|
||||
sudo update-alternatives --install /usr/bin/ninja ninja /usr/local/bin/ninja 1 --force
|
||||
echo ninja version after
|
||||
ninja --version
|
||||
echo Update cmake =======================================================================
|
||||
echo cmake version before
|
||||
cmake --version
|
||||
# curl --silent "https://api.github.com/repos/Kitware/CMake/releases/latest" | sed -n 's/.*tag_name":\s"\(.*\)".*/\1/p' | head -2
|
||||
# wget https://github.com/Kitware/CMake/releases/latest/download/cmake-3.16.5-Linux-x86_64.sh
|
||||
cmake_version=$(curl --silent "https://api.github.com/repos/Kitware/CMake/releases/latest" | sed -n 's/.*tag_name":\s"\(.*\)".*/\1/p' | head -2 | cut -c 2-)
|
||||
echo cmake download latest v$cmake_version version
|
||||
wget https://github.com/Kitware/CMake/releases/download/v$cmake_version/cmake-$cmake_version-Linux-x86_64.sh
|
||||
chmod +x cmake-$cmake_version-Linux-x86_64.sh
|
||||
sudo mkdir /opt/cmake
|
||||
sudo ./cmake-$cmake_version-Linux-x86_64.sh --prefix=/opt/cmake --skip-license
|
||||
sudo update-alternatives --install /usr/bin/cmake cmake /opt/cmake/bin/cmake 1 --force
|
||||
echo cmake version after
|
||||
cmake --version
|
||||
|
||||
- name: Install dependencies on macos
|
||||
if: startsWith(matrix.config.os, 'macos')
|
||||
run: |
|
||||
brew install p7zip cmake ninja
|
||||
ninja --version
|
||||
cmake --version
|
||||
|
||||
- name: Install needed xkbcommon symlink
|
||||
if: startsWith(matrix.config.name, 'Ubuntu') && endsWith(matrix.config.name, 'Qt6')
|
||||
run: sudo apt-get install libxkbcommon-dev -y
|
||||
|
||||
- name: Install hunspell for Ubuntu
|
||||
if: false && startsWith(matrix.config.name, 'Ubuntu')
|
||||
run: |
|
||||
sudo apt-get install -y libhunspell-dev
|
||||
|
||||
- name: Install pinyin for Ubuntu
|
||||
if: false && startsWith(matrix.config.name, 'Ubuntu')
|
||||
run: |
|
||||
sudo apt-get install -y libimepinyin-dev
|
||||
|
||||
- name: Install imagemagick for Ubuntu
|
||||
if: startsWith(matrix.config.name, 'Ubuntu')
|
||||
run: |
|
||||
sudo apt-get install -y imagemagick
|
||||
|
||||
- name: Cache Qt5
|
||||
if: endsWith(matrix.config.name, 'Qt5')
|
||||
id: cache-qt-5-15
|
||||
uses: actions/cache@v1 # not v2!
|
||||
with:
|
||||
path: ../Qt/5.15.2
|
||||
key: ${{ runner.os }}-QtCache-Qt5
|
||||
|
||||
- name: Cache Qt6
|
||||
if: endsWith(matrix.config.name, 'Qt6')
|
||||
id: cache-qt-6-2
|
||||
uses: actions/cache@v1 # not v2!
|
||||
with:
|
||||
path: ../Qt/6.2.4
|
||||
key: ${{ runner.os }}-QtCache-Qt6
|
||||
|
||||
- name: Install Qt5
|
||||
if: endsWith(matrix.config.name, 'Qt5')
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: "5.15.2"
|
||||
target: "desktop"
|
||||
install-deps: "true"
|
||||
modules: "qtwebengine"
|
||||
cached: ${{ steps.cache-qt-5-15.outputs.cache-hit }}
|
||||
setup-python: "false"
|
||||
tools: ""
|
||||
set-env: "true"
|
||||
tools-only: "false"
|
||||
|
||||
- name: Install Qt6
|
||||
if: endsWith(matrix.config.name, 'Qt6')
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: "6.2.4"
|
||||
target: "desktop"
|
||||
install-deps: "true"
|
||||
modules: "qtwebengine"
|
||||
cached: ${{ steps.cache-qt-6-2.outputs.cache-hit }}
|
||||
setup-python: "false"
|
||||
tools: ""
|
||||
set-env: "true"
|
||||
tools-only: "false"
|
||||
|
||||
- name: Configure ( QSkinny )
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir qskinny_build
|
||||
mkdir qskinny_install
|
||||
cmake \
|
||||
-S qskinny_source \
|
||||
-B qskinny_build \
|
||||
-G "${{ matrix.config.generators }}" \
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=qskinny_install \
|
||||
-DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \
|
||||
-D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}"
|
||||
|
||||
- name: Build ( QSkinny )
|
||||
shell: bash
|
||||
run: cmake --build qskinny_build --config ${{ matrix.config.build_type }}
|
||||
|
||||
#- name: Tests
|
||||
# shell: bash
|
||||
# run: ctest -j14 -C Release -T test --output-on-failure
|
||||
|
||||
- name: Install ( QSkinny ) Strip
|
||||
shell: bash
|
||||
run: cmake --install qskinny_build --prefix qskinny_install --strip --config ${{ matrix.config.build_type }}
|
||||
|
||||
- name: Smoke test ( QSkinny ) on MacOS
|
||||
if: startsWith(matrix.config.name, 'macOS')
|
||||
run: |
|
||||
echo "starting iotdashboard"
|
||||
DYLD_LIBRARY_PATH=./qskinny_install/lib:./qskinny_install/plugins/skins ./qskinny_build/examples/iotdashboard/iotdashboard.app/Contents/MacOS/iotdashboard -qwindowgeometry 1024x600+75+100 &
|
||||
sleep 10
|
||||
|
||||
- name: Smoke Test ( QSkinny ) on Windows
|
||||
if: startsWith(matrix.config.name, 'Windows')
|
||||
run: |
|
||||
$Env:PATH += ";qskinny_install/lib"
|
||||
$Env:PATH += ";qskinny_install/plugins/skins"
|
||||
echo "starting iotdashboard"
|
||||
Start-Process qskinny_build\examples\iotdashboard\Release\iotdashboard.exe -ArgumentList "-qwindowgeometry 1024x600+0+0"
|
||||
Start-Sleep -s 10
|
||||
|
||||
- name: Smoke test ( QSkinny ) on Ubuntu
|
||||
if: startsWith(matrix.config.name, 'Ubuntu')
|
||||
env:
|
||||
DISPLAY: ":1"
|
||||
run: |
|
||||
echo starting Xvfb
|
||||
Xvfb :1 &
|
||||
sleep 10
|
||||
echo starting iotdashboard
|
||||
./qskinny_build/examples/iotdashboard/iotdashboard &
|
||||
sleep 10
|
||||
|
||||
- uses: OrbitalOwen/desktop-screenshot-action@0.1
|
||||
with:
|
||||
file-name: ${{ matrix.config.screenshot_filename }}
|
||||
|
||||
- name: Smoke Test Cleanup ( QSkinny ) on Windows
|
||||
if: startsWith(matrix.config.name, 'Windows')
|
||||
run: |
|
||||
taskkill /IM iotdashboard.exe /T
|
||||
|
||||
- name: Smoke Test Cleanup ( QSkinny ) on MacOS
|
||||
if: startsWith(matrix.config.name, 'macOS')
|
||||
run: |
|
||||
killall iotdashboard
|
||||
|
||||
- name: Smoke Test Cleanup ( QSkinny ) on Ubuntu
|
||||
if: startsWith(matrix.config.name, 'Ubuntu')
|
||||
run: |
|
||||
killall iotdashboard
|
||||
killall Xvfb
|
||||
|
||||
- name: Configure ( CMake Integration Test )
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir qskinny_build_test
|
||||
cmake \
|
||||
-S qskinny_source/examples/iotdashboard_smoketest \
|
||||
-B qskinny_build_test \
|
||||
-G "${{ matrix.config.generators }}" \
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \
|
||||
-DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \
|
||||
-D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \
|
||||
-DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny
|
||||
|
||||
- name: Build ( CMake Integration Test )
|
||||
shell: bash
|
||||
run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }}
|
||||
|
||||
# - name: Pack
|
||||
# shell: bash
|
||||
# working-directory: instdir
|
||||
# run: |
|
||||
# ls -laR
|
||||
# ${{ matrix.config.archiver }} ../${{ matrix.config.artifact }} .
|
||||
|
||||
# - name: Upload
|
||||
# uses: actions/upload-artifact@v1
|
||||
# with:
|
||||
# path: ./${{ matrix.config.artifact }}
|
||||
# name: ${{ matrix.config.artifact }}
|
||||
|
||||
# - name: Upload release asset
|
||||
# if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'created')
|
||||
# uses: actions/upload-release-asset@v1
|
||||
# env:
|
||||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# with:
|
||||
# upload_url: ${{ github.event.release.upload_url }}
|
||||
# asset_path: ./${{ matrix.config.artifact }}
|
||||
# asset_name: ${{ matrix.config.artifact }}.zip
|
||||
# asset_content_type: application/zip
|
|
@ -14,3 +14,4 @@ qskinny.pro.user
|
|||
*.log
|
||||
html
|
||||
tags
|
||||
.vscode
|
||||
|
|
|
@ -0,0 +1,130 @@
|
|||
cmake_minimum_required(VERSION 3.16.3)
|
||||
|
||||
project(QSkinny VERSION 999.99.9)
|
||||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
include(${CMAKE_SOURCE_DIR}/features/qskconfig.cmake)
|
||||
|
||||
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
|
||||
if(QT_VERSION_MAJOR VERSION_EQUAL "5")
|
||||
find_package(Qt5 5.15 REQUIRED COMPONENTS Core Gui OpenGL Quick Svg Widgets)
|
||||
find_package(Qt5 5.15 OPTIONAL_COMPONENTS QuickWidgets WebEngine WebEngineCore)
|
||||
message(WARNING "using QSkinny's 'qt_add_executable()'")
|
||||
function(qt_add_executable)
|
||||
add_executable(${ARGV})
|
||||
endfunction(qt_add_executable)
|
||||
message(WARNING "using QSkinny's 'qt_add_library()'")
|
||||
function(qt_add_library)
|
||||
add_library(${ARGV})
|
||||
endfunction(qt_add_library)
|
||||
elseif(QT_VERSION_MAJOR VERSION_EQUAL "6")
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Gui OpenGL Quick QuickWidgets Svg Widgets)
|
||||
find_package(Qt6 OPTIONAL_COMPONENTS QuickWidgets WebEngineCore WebEngineQuick)
|
||||
else()
|
||||
message(FATAL_ERROR "Couldn't find any Qt version!")
|
||||
endif()
|
||||
|
||||
# optional package hunspell
|
||||
if(NOT LINUX AND ENABLE_HUNSPELL)
|
||||
message(WARNING "Feature 'hunspell' only available for UNIX!")
|
||||
unset(ENABLE_HUNSPELL CACHE)
|
||||
endif()
|
||||
|
||||
# optional package pinyin
|
||||
if(NOT LINUX AND ENABLE_PINYIN)
|
||||
message(WARNING "Feature 'pinyin' only available for UNIX!")
|
||||
unset(ENABLE_PINYIN CACHE)
|
||||
endif()
|
||||
|
||||
if(ENABLE_HUNSPELL)
|
||||
include(cmake/QSkinnyOptionalHunspell.cmake)
|
||||
endif()
|
||||
|
||||
if(ENABLE_PINYIN)
|
||||
include(cmake/QSkinnyOptionalPinyin.cmake)
|
||||
endif()
|
||||
|
||||
# define install directories
|
||||
set(QSK_INSTALL_DOCS doc)
|
||||
set(QSK_INSTALL_HEADERS include)
|
||||
set(QSK_INSTALL_LIBS lib)
|
||||
set(QSK_INSTALL_BINS bin)
|
||||
set(QSK_INSTALL_PLUGINS plugins)
|
||||
set(QSK_INSTALL_EXAMPLES examples)
|
||||
|
||||
# define debug postfix globally
|
||||
set(CMAKE_DEBUG_POSTFIX d)
|
||||
# define binary install directory globally
|
||||
set(CMAKE_INSTALL_BINDIR ${QSK_INSTALL_BINS}$<$<CONFIG:Debug>:/debug>)
|
||||
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(skins)
|
||||
add_subdirectory(inputcontext)
|
||||
add_subdirectory(qmlexport)
|
||||
add_subdirectory(tools)
|
||||
add_subdirectory(support)
|
||||
if(BUILD_EXAMPLES)
|
||||
add_subdirectory(examples)
|
||||
endif()
|
||||
if(BUILD_PLAYGROUND)
|
||||
add_subdirectory(playground)
|
||||
endif()
|
||||
|
||||
#TODO add doxygen support
|
||||
#OTHER_FILES =
|
||||
#doc / Doxyfile
|
||||
#doc/*.dox
|
||||
# doc/*.metadox
|
||||
# doc/classes/*.dox
|
||||
# doc/classes/*.metadox
|
||||
|
||||
set(PACKAGE_NAME ${PROJECT_NAME})
|
||||
set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION})
|
||||
set(PACKAGE_NAMESPACE Qsk)
|
||||
set(PACKAGE_LOCATION lib/cmake/${PROJECT_NAME})
|
||||
|
||||
install(TARGETS qskinny EXPORT ${PACKAGE_NAME}Targets
|
||||
LIBRARY DESTINATION ${QSK_INSTALL_LIBS}
|
||||
ARCHIVE DESTINATION ${QSK_INSTALL_LIBS}
|
||||
RUNTIME DESTINATION ${QSK_INSTALL_LIBS}
|
||||
INCLUDES DESTINATION ${QSK_INSTALL_HEADERS}
|
||||
PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS})
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
write_basic_package_version_file(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake
|
||||
VERSION ${PACKAGE_VERSION}
|
||||
COMPATIBILITY AnyNewerVersion)
|
||||
|
||||
export(EXPORT ${PACKAGE_NAME}Targets
|
||||
FILE ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Targets.cmake
|
||||
NAMESPACE ${PACKAGE_NAMESPACE}::)
|
||||
|
||||
configure_file(cmake/${PACKAGE_NAME}Config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Config.cmake
|
||||
COPYONLY)
|
||||
|
||||
install(EXPORT ${PACKAGE_NAME}Targets
|
||||
FILE
|
||||
${PACKAGE_NAME}Targets.cmake
|
||||
NAMESPACE
|
||||
${PACKAGE_NAMESPACE}::
|
||||
DESTINATION
|
||||
${PACKAGE_LOCATION})
|
||||
|
||||
install(
|
||||
FILES
|
||||
cmake/${PACKAGE_NAME}Config.cmake
|
||||
cmake/${PACKAGE_NAME}Macros.cmake
|
||||
cmake/${PACKAGE_NAME}OptionalHunspell.cmake
|
||||
cmake/${PACKAGE_NAME}OptionalPinyin.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake
|
||||
DESTINATION
|
||||
${PACKAGE_LOCATION}
|
||||
COMPONENT
|
||||
Devel)
|
|
@ -2,6 +2,8 @@
|
|||
|
||||

|
||||
|
||||
[](https://github.com/vrcomputing/qskinny/actions/workflows/cmake.yml)
|
||||
|
||||
The (Q)Skinny library is a framework built on top of the Qt scene graph
|
||||
and very few core classes from Qt/Quick. It offers a set of lightweight controls,
|
||||
that can be used from C++ and/or QML.
|
||||
|
@ -37,6 +39,10 @@ On debian bullseye these packages need to be installed: `build-essential
|
|||
qt-qmake qtbase5-dev qtbase5-private-dev qtdeclarative5-dev
|
||||
qtdeclarative5-private-dev libqt5svg5-dev`.
|
||||
|
||||
> Optional: When enabling the `hunspell` feature the following package needs to be installed: `libhunspell-dev`
|
||||
|
||||
> Optional: When enabling the `pinyin` feature the following package needs to be installed: `libimepinyin-dev`
|
||||
|
||||
If you want to know more about QSkinny - or even like to give it a specific
|
||||
direction - please contact support@qskinny.org.
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTargets.cmake")
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyMacros.cmake")
|
|
@ -0,0 +1,14 @@
|
|||
if(TARGET ${Qt}::Svg)
|
||||
## @param SVG_FILENAME absolute filename to the svg
|
||||
## @param QVG_FILENAME absolute filename to the qvg
|
||||
function(qsk_svg2qvg SVG_FILENAME QVG_FILENAME)
|
||||
get_filename_component(QVG_FILENAME ${QVG_FILENAME} ABSOLUTE)
|
||||
get_filename_component(SVG_FILENAME ${SVG_FILENAME} ABSOLUTE)
|
||||
add_custom_command(
|
||||
COMMAND svg2qvg ${SVG_FILENAME} ${QVG_FILENAME}
|
||||
OUTPUT ${QVG_FILENAME}
|
||||
DEPENDS ${SVG_FILENAME}
|
||||
WORKING_DIRECTORY $<TARGET_FILE_DIR:${Qt}::Svg>
|
||||
COMMENT "Compiling ${SVG_FILENAME} to ${QVG_FILENAME}")
|
||||
endfunction()
|
||||
endif()
|
|
@ -0,0 +1,20 @@
|
|||
find_package(PkgConfig)
|
||||
pkg_check_modules(PKG_HUNSPELL QUIET hunspell)
|
||||
find_path(HUNSPELL_INCLUDE_DIRS
|
||||
NAMES hunspell.hxx
|
||||
PATH_SUFFIXES hunspell
|
||||
HINTS ${PKG_HUNSPELL_INCLUDE_DIRS})
|
||||
find_library(HUNSPELL_LIBRARIES
|
||||
NAMES ${PKG_HUNSPELL_LIBRARIES} hunspell hunspell-1.8 hunspell-1.7 hunspell-1.6 libhunspell
|
||||
HINTS ${PKG_HUNSPELL_LIBRARY_DIRS})
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(HUNSPELL
|
||||
REQUIRED_VARS HUNSPELL_LIBRARIES HUNSPELL_INCLUDE_DIRS
|
||||
VERSION_VAR PKG_HUNSPELL_VERSION)
|
||||
mark_as_advanced(HUNSPELL_INCLUDE_DIRS HUNSPELL_LIBRARIES)
|
||||
|
||||
add_library(hunspell SHARED IMPORTED GLOBAL)
|
||||
set_target_properties(hunspell PROPERTIES IMPORTED_LOCATION ${HUNSPELL_LIBRARIES})
|
||||
target_include_directories(hunspell
|
||||
INTERFACE
|
||||
${HUNSPELL_INCLUDE_DIRS})
|
|
@ -0,0 +1,23 @@
|
|||
find_package(PkgConfig)
|
||||
pkg_check_modules(PKG_PINYIN QUIET pinyin)
|
||||
find_path(PINYIN_INCLUDE_DIRS
|
||||
NAMES pinyinime.h
|
||||
PATH_SUFFIXES pinyin LibIME LibIME/libime/pinyin
|
||||
HINTS ${PKG_PINYIN_INCLUDE_DIRS})
|
||||
find_library(PINYIN_LIBRARIES
|
||||
NAMES ${PKG_PINYIN_LIBRARIES} IMEPinyin imepinyin ime libime libimepinyin
|
||||
HINTS ${PKG_PINYIN_LIBRARY_DIRS})
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(PINYIN
|
||||
REQUIRED_VARS PINYIN_LIBRARIES PINYIN_INCLUDE_DIRS
|
||||
VERSION_VAR PKG_PINYIN_VERSION)
|
||||
mark_as_advanced(PINYIN_INCLUDE_DIRS PINYIN_LIBRARIES)
|
||||
|
||||
add_library(pinyin SHARED IMPORTED GLOBAL)
|
||||
set_target_properties(pinyin PROPERTIES IMPORTED_LOCATION ${PINYIN_LIBRARIES})
|
||||
target_include_directories(pinyin
|
||||
INTERFACE
|
||||
${PINYIN_INCLUDE_DIRS})
|
||||
|
||||
find_package(LibIMEPinyin REQUIRED)
|
||||
find_package(Fcitx5Utils REQUIRED)
|
|
@ -0,0 +1,18 @@
|
|||
#c++
|
||||
add_subdirectory(desktop)
|
||||
add_subdirectory(gallery)
|
||||
add_subdirectory(layouts)
|
||||
add_subdirectory(listbox)
|
||||
add_subdirectory(messagebox)
|
||||
add_subdirectory(mycontrols)
|
||||
add_subdirectory(qvgviewer)
|
||||
add_subdirectory(thumbnails)
|
||||
add_subdirectory(tabview)
|
||||
add_subdirectory(iotdashboard)
|
||||
|
||||
#qml
|
||||
add_subdirectory(boxes)
|
||||
add_subdirectory(buttons)
|
||||
add_subdirectory(frames)
|
||||
add_subdirectory(glabels)
|
||||
add_subdirectory(messageboxQml)
|
|
@ -0,0 +1,20 @@
|
|||
list(APPEND TARGET_HEADERS
|
||||
Box.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
Box.cpp
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME boxes)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES} ${TARGET_HEADERS})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER examples)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
|
@ -0,0 +1,21 @@
|
|||
list(APPEND TARGET_RESSOURCES
|
||||
buttons.qrc)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME buttons)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES} ${TARGET_RESSOURCES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport
|
||||
qskqmlexport)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTORCC ON
|
||||
FOLDER examples)
|
|
@ -0,0 +1,16 @@
|
|||
list(APPEND TARGET_SOURCES
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME desktop)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER examples)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
|
@ -0,0 +1,25 @@
|
|||
list(APPEND TARGET_RESSOURCES
|
||||
frames.qrc)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
Frame.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
Frame.cpp
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME frames)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_RESSOURCES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport
|
||||
qskqmlexport)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTORCC ON
|
||||
FOLDER examples)
|
|
@ -0,0 +1,66 @@
|
|||
list(APPEND TARGET_HEADERS
|
||||
label/LabelPage.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
label/LabelPage.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
slider/SliderPage.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
slider/SliderPage.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
progressbar/ProgressBarPage.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
progressbar/ProgressBarPage.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
button/ButtonPage.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
button/ButtonPage.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
textinput/TextInputPage.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
textinput/TextInputPage.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
selector/SelectorPage.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
selector/SelectorPage.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
dialog/DialogPage.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
dialog/DialogPage.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
Page.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
Page.cpp
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME gallery)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES} ${TARGET_HEADERS})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER examples)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
||||
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_LIST_DIR})
|
|
@ -0,0 +1,21 @@
|
|||
list(APPEND TARGET_RESSOURCES
|
||||
glabels.qrc)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME glabels)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES} ${TARGET_RESSOURCES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport
|
||||
qskqmlexport)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTORCC ON
|
||||
FOLDER examples)
|
|
@ -0,0 +1,101 @@
|
|||
list(APPEND TARGET_SOURCES
|
||||
Box.cpp
|
||||
BoxWithButtons.cpp
|
||||
CircularProgressBar.cpp
|
||||
CircularProgressBarSkinlet.cpp
|
||||
DashboardPage.cpp
|
||||
Diagram.cpp
|
||||
DiagramSkinlet.cpp
|
||||
GraphicProvider.cpp
|
||||
GridBox.cpp
|
||||
LightDisplaySkinlet.cpp
|
||||
LightDisplay.cpp
|
||||
MainItem.cpp
|
||||
MenuBar.cpp
|
||||
MyDevices.cpp
|
||||
PieChart.cpp
|
||||
PieChartPainted.cpp
|
||||
PieChartSkinlet.cpp
|
||||
RoomsPage.cpp
|
||||
RoundedIcon.cpp
|
||||
Skin.cpp
|
||||
TopBar.cpp
|
||||
RoundButton.cpp
|
||||
UsageBox.cpp
|
||||
UsageDiagram.cpp
|
||||
MainWindow.cpp
|
||||
main.cpp)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
nodes/DiagramDataNode.cpp
|
||||
nodes/DiagramSegmentsNode.cpp
|
||||
nodes/RadialTickmarksNode.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
Box.h
|
||||
BoxWithButtons.h
|
||||
CircularProgressBar.h
|
||||
CircularProgressBarSkinlet.h
|
||||
Diagram.h
|
||||
DiagramSkinlet.h
|
||||
GraphicProvider.h
|
||||
GridBox.h
|
||||
LightDisplaySkinlet.h
|
||||
LightDisplay.h
|
||||
DashboardPage.h
|
||||
MainItem.h
|
||||
MainWindow.h
|
||||
MenuBar.h
|
||||
MyDevices.h
|
||||
PieChart.h
|
||||
PieChartPainted.h
|
||||
PieChartSkinlet.h
|
||||
RoomsPage.h
|
||||
RoundedIcon.h
|
||||
Skin.h
|
||||
TopBar.h
|
||||
RoundButton.h
|
||||
UsageBox.h
|
||||
UsageDiagram.h)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
nodes/DiagramDataNode.h
|
||||
nodes/DiagramSegmentsNode.h
|
||||
nodes/RadialTickmarksNode.h)
|
||||
|
||||
list(APPEND TARGET_RESSOURCES
|
||||
images.qrc
|
||||
fonts.qrc)
|
||||
|
||||
set(TARGET_NAME iotdashboard)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE
|
||||
${TARGET_SOURCES}
|
||||
${TARGET_HEADERS}
|
||||
${TARGET_RESSOURCES})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTORCC ON
|
||||
FOLDER examples)
|
||||
|
||||
if(TARGET Qsk::qskinny)
|
||||
# integration test
|
||||
# - qsktestsupport doesn't exists
|
||||
# - qskinny has a namespace Qsk
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
Qsk::qskinny
|
||||
Qt::Svg)
|
||||
else()
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport
|
||||
Qt::Svg)
|
||||
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PRIVATE
|
||||
USE_SHORTCUTS)
|
||||
endif()
|
|
@ -7,7 +7,9 @@
|
|||
#include "GraphicProvider.h"
|
||||
#include "Skin.h"
|
||||
|
||||
#ifdef USE_SHORTCUTS
|
||||
#include <SkinnyShortcut.h>
|
||||
#endif
|
||||
|
||||
#include <QskSetup.h>
|
||||
#include <QskShortcutMap.h>
|
||||
|
@ -75,9 +77,11 @@ int main( int argc, char* argv[] )
|
|||
|
||||
qskSetup->setSkin( "DaytimeSkin" );
|
||||
|
||||
#ifdef USE_SHORTCUTS
|
||||
// With CTRL-B you can rotate a couple of visual debug modes
|
||||
SkinnyShortcut::enable( SkinnyShortcut::RotateSkin | SkinnyShortcut::DebugBackground |
|
||||
SkinnyShortcut::DebugStatistics | SkinnyShortcut::Quit );
|
||||
#endif
|
||||
|
||||
MainWindow window;
|
||||
window.show();
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
cmake_minimum_required(VERSION 3.18)
|
||||
|
||||
project(iotdashboard_smoketest)
|
||||
|
||||
find_package(QSkinny REQUIRED)
|
||||
|
||||
find_package(Qt6 COMPONENTS Core QUIET)
|
||||
if (NOT Qt6_FOUND)
|
||||
find_package(Qt5 5.15 REQUIRED COMPONENTS Core Gui OpenGL Quick Svg Widgets)
|
||||
find_package(Qt5 5.15 OPTIONAL_COMPONENTS QuickWidgets WebEngine WebEngineCore)
|
||||
message(WARNING "using QSkinny's 'qt_add_executable()'")
|
||||
function(qt_add_executable)
|
||||
add_executable(${ARGV})
|
||||
endfunction(qt_add_executable)
|
||||
message(WARNING "using QSkinny's 'qt_add_library()'")
|
||||
function(qt_add_library)
|
||||
add_library(${ARGV})
|
||||
endfunction(qt_add_library)
|
||||
else()
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Gui OpenGL Quick QuickWidgets Svg Widgets)
|
||||
find_package(Qt6 OPTIONAL_COMPONENTS QuickWidgets WebEngineCore WebEngineQuick)
|
||||
endif()
|
||||
|
||||
add_subdirectory(../iotdashboard ${CMAKE_CURRENT_BINARY_DIR}/../iotdashboard)
|
|
@ -0,0 +1,37 @@
|
|||
list(APPEND TARGET_RESSOURCES
|
||||
layouts.qrc)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
TestRectangle.h
|
||||
ButtonBox.h
|
||||
FlowLayoutPage.h
|
||||
GridLayoutPage.h
|
||||
LinearLayoutPage.h
|
||||
DynamicConstraintsPage.h
|
||||
StackLayoutPage.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
TestRectangle.cpp
|
||||
ButtonBox.cpp
|
||||
FlowLayoutPage.cpp
|
||||
GridLayoutPage.cpp
|
||||
LinearLayoutPage.cpp
|
||||
DynamicConstraintsPage.cpp
|
||||
StackLayoutPage.cpp
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME layouts)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_RESSOURCES})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTORCC ON
|
||||
FOLDER examples)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qskqmlexport
|
||||
qsktestsupport)
|
|
@ -0,0 +1,17 @@
|
|||
list(APPEND TARGET_SOURCES
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME listbox)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_RESSOURCES})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTORCC ON
|
||||
FOLDER examples)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
|
@ -0,0 +1,17 @@
|
|||
list(APPEND TARGET_SOURCES
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME messagebox)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTORCC ON
|
||||
FOLDER examples)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
|
@ -0,0 +1,21 @@
|
|||
list(APPEND TARGET_RESSOURCES
|
||||
messagebox.qrc)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME messageboxQml)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES} ${TARGET_RESSOURCES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport
|
||||
qskqmlexport)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTORCC ON
|
||||
FOLDER examples)
|
|
@ -0,0 +1,25 @@
|
|||
list(APPEND TARGET_SOURCES
|
||||
MySkin.cpp
|
||||
MyToggleButton.cpp
|
||||
MyToggleButtonSkinlet.cpp
|
||||
main.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
MyToggleButton.h
|
||||
MyToggleButtonSkinlet.h
|
||||
MySkin.h)
|
||||
|
||||
set(TARGET_NAME mycontrols)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES} ${TARGET_HEADERS})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTORCC ON
|
||||
FOLDER examples)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
|
@ -0,0 +1,60 @@
|
|||
list(APPEND TARGET_HEADERS
|
||||
MainWindow.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
MainWindow.cpp
|
||||
main.cpp)
|
||||
|
||||
list(APPEND TARGET_RESSOURCES
|
||||
qvgviewer.qrc)
|
||||
|
||||
list(APPEND TARGET_SVGS
|
||||
svg/01.01.10.svg
|
||||
svg/01.03.04q.svg
|
||||
svg/01.08.05q.svg
|
||||
svg/01.25.18.svg)
|
||||
|
||||
list(APPEND TARGET_QVGS
|
||||
qvg/01.01.10.qvg
|
||||
qvg/01.03.04q.qvg
|
||||
qvg/01.08.05q.qvg
|
||||
qvg/01.25.18.qvg)
|
||||
|
||||
set(TARGET_NAME qvgviewer)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE
|
||||
${TARGET_SOURCES}
|
||||
${TARGET_HEADERS}
|
||||
${TARGET_RESSOURCES}
|
||||
${TARGET_SVGS})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTORCC ON
|
||||
FOLDER examples)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
||||
|
||||
if(ENABLE_AUTOQVG)
|
||||
qsk_svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.01.10.svg
|
||||
${CMAKE_CURRENT_LIST_DIR}/qvg/01.01.10.qvg)
|
||||
qsk_svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.03.04q.svg
|
||||
${CMAKE_CURRENT_LIST_DIR}/qvg/01.03.04q.qvg)
|
||||
qsk_svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.08.05q.svg
|
||||
${CMAKE_CURRENT_LIST_DIR}/qvg/01.08.05q.qvg)
|
||||
qsk_svg2qvg(${CMAKE_CURRENT_LIST_DIR}/svg/01.25.18.svg
|
||||
${CMAKE_CURRENT_LIST_DIR}/qvg/01.25.18.qvg)
|
||||
else()
|
||||
# When cross compiling we need to have the svg2qvg tool being
|
||||
# compiled for the build environment - not for the one of the target.
|
||||
# So we better have precompiled qvg files in the repository to
|
||||
# make the build process much easier
|
||||
endif()
|
||||
|
||||
target_sources(${TARGET_NAME} PRIVATE ${TARGET_QVGS})
|
||||
source_group("generated" FILES ${TARGET_QVGS})
|
||||
source_group("svg" FILES ${TARGET_SVGS})
|
|
@ -0,0 +1,24 @@
|
|||
list(APPEND TARGET_HEADERS
|
||||
CustomSlider.h
|
||||
CustomSliderSkinlet.h
|
||||
OtherSlider.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
CustomSlider.cpp
|
||||
CustomSliderSkinlet.cpp
|
||||
OtherSlider.cpp
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME tabview)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES} ${TARGET_HEADERS})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER examples)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
|
@ -0,0 +1,16 @@
|
|||
list(APPEND TARGET_SOURCES
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME thumbnails)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER examples)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
|
@ -0,0 +1,173 @@
|
|||
############################################################################
|
||||
# QSkinny - Copyright (C) 2016 Uwe Rathmann
|
||||
# This file may be used under the terms of the QSkinny License, Version 1.0
|
||||
############################################################################
|
||||
|
||||
set(QSK_VERSION ${CMAKE_PROJECT_VERSION})
|
||||
|
||||
# trying the PREFIX environment variable first
|
||||
set(QSK_INSTALL_PREFIX $ENV{PREFIX}) # TODO still required?
|
||||
|
||||
if("${QSK_INSTALL_PREFIX}" STREQUAL "")
|
||||
set(QSK_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") # TODO where does QT_INSTALL_PREFIX come from?
|
||||
|
||||
if (UNIX)
|
||||
set(QSK_INSTALL_PREFIX /usr/local/qskinny-${QSK_VERSION})
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
set(QSK_INSTALL_PREFIX C:/Qskinny-${QSK_VERSION})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# TODO find compiler flag equivalent
|
||||
list(APPEND CONFIG no_private_qt_headers_warning)
|
||||
list(APPEND CONFIG warn_on)
|
||||
list(APPEND CONFIG no_keywords)
|
||||
list(APPEND CONFIG silent)
|
||||
#list(APPEND CONFIG -= depend_includepath) # TODO was -=
|
||||
list(APPEND CONFIG strict_c++)
|
||||
list(APPEND CONFIG c++11)
|
||||
list(APPEND CONFIG pedantic)
|
||||
list(APPEND CONFIG hide_symbols)
|
||||
#list(APPEND CONFIG += debug)
|
||||
#list(APPEND CONFIG += sanitize)
|
||||
|
||||
# TODO
|
||||
# use_no_rpath {
|
||||
# CONFIG -= use_local_rpath use_install_rpath
|
||||
# } else {
|
||||
# cross_compile {
|
||||
# CONFIG *= use_install_rpath
|
||||
# QMAKE_RPATHLINKDIR *= $${QSK_PLUGIN_DIR}/skins
|
||||
# } else {
|
||||
# !use_install_rpath: CONFIG *= use_local_rpath
|
||||
# }
|
||||
# }
|
||||
|
||||
option(BUILD_QSKDLL "Build qskinny as shared library" ON)
|
||||
option(BUILD_EXAMPLES "Build qskinny examples" ON)
|
||||
option(BUILD_PLAYGROUND "Build qskinny playground" ON)
|
||||
option(BUILD_SVG2QVG_STANDALONE "If 'ON' application won't be linked against qskinny library" ON)
|
||||
option(ENABLE_PINYIN "UNIX ONLY OPTION: Enable romanization system for standard mandarin chinese" OFF)
|
||||
option(ENABLE_HUNSPELL "UNIX ONLY OPTION: Enable spell checker" OFF)
|
||||
option(ENABLE_FONT_CONFIG "Enable font config for font caching" ON)
|
||||
option(ENABLE_ENSURE_SKINS "Enabling fall back code, that inserts some skin factories manually when not finding skin factories as plugins" ON)
|
||||
option(ENABLE_AUTOQVG "enable automatic qvg compilation" OFF)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(LINUX TRUE)
|
||||
endif()
|
||||
|
||||
if(LINUX)
|
||||
|
||||
if ("pedantic" IN_LIST CONFIG)
|
||||
|
||||
add_compile_definitions(QT_STRICT_ITERATORS)
|
||||
|
||||
# Qt headers do not stand pedantic checks, so it's better
|
||||
# to exclude them by declaring them as system includes
|
||||
|
||||
list(APPEND CONFIG qtassysteminclude)
|
||||
endif()
|
||||
|
||||
if ("qtassysteminclude" IN_LIST CONFIG)
|
||||
|
||||
# As most distros set QT_INSTALL_HEADERS to /usr/include we
|
||||
# would run into gcc compiler errors and better drop it
|
||||
# from the list below. Should be no problem as we don't
|
||||
# add the Qt module to our includes and therefore don't
|
||||
# need this path.
|
||||
|
||||
# TODO find solution for all platforms
|
||||
# QMAKE_CXXFLAGS += \
|
||||
# -isystem $$[QT_INSTALL_HEADERS]/QtCore \
|
||||
# -isystem $$[QT_INSTALL_HEADERS]/QtCore/$$[QT_VERSION]/QtCore \
|
||||
# -isystem $$[QT_INSTALL_HEADERS]/QtGui \
|
||||
# -isystem $$[QT_INSTALL_HEADERS]/QtGui/$$[QT_VERSION]/QtGui \
|
||||
# -isystem $$[QT_INSTALL_HEADERS]/QtQuick \
|
||||
# -isystem $$[QT_INSTALL_HEADERS]/QtQuick/$$[QT_VERSION]/QtQuick \
|
||||
# -isystem $$[QT_INSTALL_HEADERS]/QtQml \
|
||||
# -isystem $$[QT_INSTALL_HEADERS]/QtQml/$$[QT_VERSION]/QtQml \
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+" OR "${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+-64")
|
||||
# --- optional optimzations
|
||||
if (CMAKE_BUILD_TYPE EQUAL "Debug")
|
||||
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -O0) # TODO check if still required
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -O3 -ffast-math) # TODO check if still required
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if ("pedantic" IN_LIST CONFIG)
|
||||
if ("${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+" OR "${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+-64")
|
||||
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -pedantic-errors)
|
||||
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wextra)
|
||||
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Werror=format-security)
|
||||
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wsuggest-override)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wlogical-op)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wconversion)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wfloat-equal)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wshadow)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wsuggest-final-types)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wsuggest-final-methods)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fanalyzer)
|
||||
endif()
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER}" MATCHES ".*linux-clang")
|
||||
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -pedantic-errors)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Weverything)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-c++98-compat-pedantic)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-global-constructors)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-exit-time-destructors)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-padded)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-float-equal)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-undefined-reinterpret-cast)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-deprecated)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-switch-enum)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-keyword-macro)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-old-style-cast)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-used-but-marked-unused)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-weak-vtables)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-shadow)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-double-promotion)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-conversion)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-documentation-unknown-command)
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wno-unused-macros)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if ("sanitize" IN_LIST CONFIG)
|
||||
|
||||
list(APPEND CONFIG sanitizer)
|
||||
list(APPEND CONFIG sanitize_address)
|
||||
# CONFIG *= sanitize_undefined
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+" OR "${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+-64")
|
||||
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fsanitize-address-use-after-scope)
|
||||
#QMAKE_LFLAGS *= -fsanitize-address-use-after-scope
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (CMAKE_BUILD_TYPE EQUAL "Debug")
|
||||
add_compile_definitions(ITEM_STATISTICS=1)
|
||||
endif()
|
||||
|
||||
# DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x000000
|
||||
|
||||
set(LOCAL_PRI $ENV{QSK_LOCAL_PRI})
|
||||
|
||||
if (${LOCAL_PRI}) # TODO not empty check
|
||||
|
||||
if(EXISTS ${LOCAL_PRI})
|
||||
|
||||
# When not working with the Qt/Creator it is often more convenient
|
||||
# to include the specific options of your local build, than passing
|
||||
# them all on the command line
|
||||
|
||||
include(${LOCAL_PRI})
|
||||
endif()
|
||||
endif()
|
|
@ -0,0 +1,55 @@
|
|||
set(TARGET_NAME qskinputcontext)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
QskInputContextGlobal.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
QskInputContextPlugin.cpp)
|
||||
|
||||
list(APPEND TARGET_OTHER_FILES
|
||||
metadata.json)
|
||||
|
||||
if(ENABLE_PINYIN)
|
||||
list(APPEND TARGET_HEADERS
|
||||
${CMAKE_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.h)
|
||||
list(APPEND TARGET_SOURCES
|
||||
${CMAKE_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.cpp)
|
||||
endif()
|
||||
|
||||
if(ENABLE_HUNSPELL)
|
||||
list(APPEND TARGET_HEADERS
|
||||
${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.h)
|
||||
list(APPEND TARGET_SOURCES
|
||||
${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.cpp)
|
||||
endif()
|
||||
|
||||
qt_add_library(${TARGET_NAME} SHARED ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_OTHER_FILES})
|
||||
|
||||
if(ENABLE_PINYIN)
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
pinyin
|
||||
Fcitx5::Utils)
|
||||
endif()
|
||||
|
||||
if(ENABLE_HUNSPELL)
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
hunspell)
|
||||
endif()
|
||||
|
||||
if(BUILD_QSKDLL)
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PRIVATE
|
||||
QSK_INPUTCONTEXT_MAKEDLL)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
Qt::GuiPrivate)
|
||||
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES
|
||||
AUTOMOC ON)
|
||||
|
||||
install(TARGETS ${TARGET_NAME} DESTINATION ${QSK_INSTALL_PLUGINS}/platforminputcontexts)
|
|
@ -0,0 +1,23 @@
|
|||
add_subdirectory(anchors)
|
||||
add_subdirectory(dials)
|
||||
add_subdirectory(dialogbuttons)
|
||||
add_subdirectory(invoker)
|
||||
add_subdirectory(inputpanel)
|
||||
add_subdirectory(images)
|
||||
add_subdirectory(shadows)
|
||||
|
||||
if (QT_VERSION_MAJOR VERSION_EQUAL "6")
|
||||
if(TARGET Qt::WebEngineCore)
|
||||
if(TARGET Qt::WebEngineQuick)
|
||||
add_subdirectory(webview)
|
||||
endif()
|
||||
endif()
|
||||
elseif(Qt_VERSION VERSION_EQUAL "5")
|
||||
if(TARGET Qt::WebEngine)
|
||||
add_subdirectory(webview)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(TARGET Qt::QuickWidgets)
|
||||
add_subdirectory(grids)
|
||||
endif()
|
|
@ -0,0 +1,36 @@
|
|||
list(APPEND TARGET_HEADERS
|
||||
kiwi/Constraint.h
|
||||
kiwi/Expression.h
|
||||
kiwi/Solver.h
|
||||
kiwi/Strength.h
|
||||
kiwi/Term.h
|
||||
kiwi/Variable.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
kiwi/Expression.cpp
|
||||
kiwi/Constraint.cpp
|
||||
kiwi/Solver.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
AnchorBox.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
AnchorBox.cpp
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME anchors)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE
|
||||
${TARGET_SOURCES}
|
||||
${TARGET_HEADERS}
|
||||
${TARGET_RESSOURCES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER playground)
|
|
@ -0,0 +1,20 @@
|
|||
set(TARGET_NAME qskexample)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
Window.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
Window.cpp
|
||||
main.cpp)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE ${TARGET_SOURCES} ${TARGET_HEADERS})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER playground)
|
|
@ -0,0 +1,32 @@
|
|||
list(APPEND TARGET_HEADERS
|
||||
SkinFactory.h
|
||||
Dial.h
|
||||
DialSkinlet.h
|
||||
Dashboard.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
SkinFactory.cpp
|
||||
Dial.cpp
|
||||
DialSkinlet.cpp
|
||||
Dashboard.cpp
|
||||
main.cpp)
|
||||
|
||||
list(APPEND TARGET_RESSOURCES
|
||||
images.qrc)
|
||||
|
||||
set(TARGET_NAME dials)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE
|
||||
${TARGET_SOURCES}
|
||||
${TARGET_HEADERS}
|
||||
${TARGET_RESSOURCES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER playground)
|
|
@ -0,0 +1,34 @@
|
|||
|
||||
list(APPEND TARGET_HEADERS
|
||||
GridAccessor.h
|
||||
GridSkinny.h
|
||||
GridWidgets.h
|
||||
GridGraphics.h
|
||||
GridQuick.h
|
||||
TestBox.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
GridAccessor.cpp
|
||||
GridSkinny.cpp
|
||||
GridWidgets.cpp
|
||||
GridGraphics.cpp
|
||||
GridQuick.cpp
|
||||
TestBox.cpp
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME grid)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE
|
||||
${TARGET_SOURCES}
|
||||
${TARGET_HEADERS})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport
|
||||
Qt::QuickWidgets)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER playground)
|
|
@ -0,0 +1,27 @@
|
|||
list(APPEND TARGET_RESSOURCES
|
||||
images.qrc)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
Image.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
Image.cpp
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME images)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE
|
||||
${TARGET_SOURCES}
|
||||
${TARGET_HEADERS}
|
||||
${TARGET_RESSOURCES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qskqmlexport
|
||||
qsktestsupport)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER playground)
|
|
@ -0,0 +1,17 @@
|
|||
list(APPEND TARGET_SOURCES
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME inputpanel)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE
|
||||
${TARGET_SOURCES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER playground)
|
|
@ -0,0 +1,24 @@
|
|||
list(APPEND TARGET_HEADERS
|
||||
Callback.h
|
||||
Invoker.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
Callback.cpp
|
||||
Invoker.cpp
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME invoker)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE
|
||||
${TARGET_SOURCES}
|
||||
${TARGET_HEADERS})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTOMOC_MOC_OPTIONS -nw
|
||||
FOLDER playground)
|
|
@ -0,0 +1,22 @@
|
|||
list(APPEND TARGET_HEADERS
|
||||
ShadowedBox.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
ShadowedBox.cpp
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME shadows)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE
|
||||
${TARGET_HEADERS}
|
||||
${TARGET_SOURCES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER playground)
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
list(APPEND TARGET_SOURCES
|
||||
main.cpp)
|
||||
|
||||
set(TARGET_NAME webview)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE
|
||||
${TARGET_SOURCES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
qsktestsupport)
|
||||
|
||||
if (QT_VERSION_MAJOR VERSION_GREATER "5")
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
Qt::WebEngineQuick
|
||||
Qt::WebEngineQuickPrivate)
|
||||
else()
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
Qt::WebEngine
|
||||
Qt::WebEnginePrivate)
|
||||
endif()
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER playground)
|
|
@ -37,7 +37,10 @@ int main( int argc, char* argv[] )
|
|||
QskObjectCounter counter( true );
|
||||
#endif
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 )
|
||||
// namespace QtWebEngine doesn't exist in Qt6: https://doc.qt.io/qt-5/qtwebengine.html
|
||||
QtWebEngine::initialize();
|
||||
#endif
|
||||
|
||||
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||
QGuiApplication app( argc, argv );
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
set(TARGET_NAME qskqmlexport)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
QskQmlGlobal.h
|
||||
QskShortcutQml.h
|
||||
QskLayoutQml.h
|
||||
QskMainQml.h
|
||||
QskQml.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
QskShortcutQml.cpp
|
||||
QskLayoutQml.cpp
|
||||
QskMainQml.cpp
|
||||
QskQml.cpp)
|
||||
|
||||
qt_add_library(${TARGET_NAME} SHARED ${TARGET_SOURCES} ${TARGET_HEADERS})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny)
|
||||
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
if(BUILD_QSKDLL)
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PRIVATE
|
||||
QSK_QML_MAKEDLL)
|
||||
endif()
|
||||
|
||||
install(TARGETS ${TARGET_NAME} DESTINATION qmlexport)
|
|
@ -0,0 +1,2 @@
|
|||
add_subdirectory(squiek)
|
||||
add_subdirectory(material3)
|
|
@ -0,0 +1,35 @@
|
|||
set(QSK_PLUGIN_SUBDIR skins)
|
||||
|
||||
set(TARGET_NAME material3skin)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
QskMaterial3Global.h
|
||||
QskMaterial3Skin.h
|
||||
QskMaterial3SkinFactory.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
QskMaterial3Skin.cpp
|
||||
QskMaterial3SkinFactory.cpp)
|
||||
|
||||
list(APPEND TARGET_OTHER_FILES
|
||||
metadata.json)
|
||||
|
||||
if(BUILD_QSKDLL)
|
||||
qt_add_library(${TARGET_NAME} SHARED ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES})
|
||||
else()
|
||||
qt_add_library(${TARGET_NAME} STATIC ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES})
|
||||
endif()
|
||||
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE qskinny)
|
||||
|
||||
if(BUILD_QSKDLL)
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PRIVATE
|
||||
QSK_MATERIAL3_MAKEDLL)
|
||||
endif()
|
||||
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER skins)
|
||||
|
||||
install(TARGETS ${TARGET_NAME} DESTINATION ${QSK_INSTALL_PLUGINS}/${QSK_PLUGIN_SUBDIR})
|
|
@ -12,9 +12,10 @@
|
|||
class QSK_MATERIAL3_EXPORT QskMaterial3SkinFactory : public QskSkinFactory
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
#if defined( QSK_MATERIAL3_MAKEDLL )
|
||||
Q_PLUGIN_METADATA( IID QskSkinFactoryIID FILE "metadata.json" )
|
||||
Q_INTERFACES( QskSkinFactory )
|
||||
#endif
|
||||
|
||||
public:
|
||||
QskMaterial3SkinFactory( QObject* parent = nullptr );
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
set(QSK_PLUGIN_SUBDIR skins)
|
||||
|
||||
set(TARGET_NAME squiekskin)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
QskSquiekGlobal.h
|
||||
QskSquiekSkin.h
|
||||
QskSquiekSkinFactory.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
QskSquiekSkin.cpp
|
||||
QskSquiekSkinFactory.cpp)
|
||||
|
||||
list(APPEND TARGET_OTHER_FILES
|
||||
metadata.json)
|
||||
|
||||
if(BUILD_QSKDLL)
|
||||
qt_add_library(${TARGET_NAME} SHARED ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES})
|
||||
else()
|
||||
qt_add_library(${TARGET_NAME} STATIC ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES})
|
||||
endif()
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny)
|
||||
|
||||
if(BUILD_QSKDLL)
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PRIVATE
|
||||
QSK_SQUIEK_MAKEDLL)
|
||||
endif()
|
||||
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES
|
||||
AUTOMOC ON
|
||||
FOLDER skins)
|
||||
|
||||
install(TARGETS ${TARGET_NAME} DESTINATION ${QSK_INSTALL_PLUGINS}/${QSK_PLUGIN_SUBDIR})
|
|
@ -13,8 +13,10 @@ class QSK_SQUIEK_EXPORT QskSquiekSkinFactory : public QskSkinFactory
|
|||
{
|
||||
Q_OBJECT
|
||||
|
||||
#if defined( QSK_SQUIEK_MAKEDLL )
|
||||
Q_PLUGIN_METADATA( IID QskSkinFactoryIID FILE "metadata.json" )
|
||||
Q_INTERFACES( QskSkinFactory )
|
||||
#endif
|
||||
|
||||
public:
|
||||
QskSquiekSkinFactory( QObject* parent = nullptr );
|
||||
|
|
|
@ -0,0 +1,456 @@
|
|||
include(${CMAKE_SOURCE_DIR}/cmake/QSkinnyMacros.cmake)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
common/QskArcMetrics.h
|
||||
common/QskAspect.h
|
||||
common/QskBoxBorderColors.h
|
||||
common/QskBoxBorderMetrics.h
|
||||
common/QskBoxShapeMetrics.h
|
||||
common/QskBoxHints.h
|
||||
common/QskFunctions.h
|
||||
common/QskGlobal.h
|
||||
common/QskGradient.h
|
||||
common/QskGradientStop.h
|
||||
common/QskHctColor.h
|
||||
common/QskIntervalF.h
|
||||
common/QskMargins.h
|
||||
common/QskMetaFunction.h
|
||||
common/QskMetaFunction.hpp
|
||||
common/QskMetaInvokable.h
|
||||
common/QskNamespace.h
|
||||
common/QskObjectCounter.h
|
||||
common/QskPlacementPolicy.h
|
||||
common/QskPlatform.h
|
||||
common/QskRgbValue.h
|
||||
common/QskScaleEngine.h
|
||||
common/QskScaleTickmarks.h
|
||||
common/QskShadowMetrics.h
|
||||
common/QskSizePolicy.h
|
||||
common/QskStateCombination.h
|
||||
common/QskTextColors.h
|
||||
common/QskTextOptions.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
common/QskArcMetrics.cpp
|
||||
common/QskAspect.cpp
|
||||
common/QskBoxBorderColors.cpp
|
||||
common/QskBoxBorderMetrics.cpp
|
||||
common/QskBoxShapeMetrics.cpp
|
||||
common/QskBoxHints.cpp
|
||||
common/QskFunctions.cpp
|
||||
common/QskGradient.cpp
|
||||
common/QskGradientStop.cpp
|
||||
common/QskHctColor.cpp
|
||||
common/QskIntervalF.cpp
|
||||
common/QskMargins.cpp
|
||||
common/QskMetaFunction.cpp
|
||||
common/QskMetaInvokable.cpp
|
||||
common/QskObjectCounter.cpp
|
||||
common/QskPlatform.cpp
|
||||
common/QskPlacementPolicy.cpp
|
||||
common/QskRgbValue.cpp
|
||||
common/QskScaleEngine.cpp
|
||||
common/QskScaleTickmarks.cpp
|
||||
common/QskShadowMetrics.cpp
|
||||
common/QskSizePolicy.cpp
|
||||
common/QskTextColors.cpp
|
||||
common/QskTextOptions.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
graphic/QskColorFilter.h
|
||||
graphic/QskGraphic.h
|
||||
graphic/QskGraphicImageProvider.h
|
||||
graphic/QskGraphicIO.h
|
||||
graphic/QskGraphicPaintEngine.h
|
||||
graphic/QskGraphicProvider.h
|
||||
graphic/QskGraphicProviderMap.h
|
||||
graphic/QskGraphicTextureFactory.h
|
||||
graphic/QskPainterCommand.h
|
||||
graphic/QskStandardSymbol.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
graphic/QskColorFilter.cpp
|
||||
graphic/QskGraphic.cpp
|
||||
graphic/QskGraphicImageProvider.cpp
|
||||
graphic/QskGraphicIO.cpp
|
||||
graphic/QskGraphicPaintEngine.cpp
|
||||
graphic/QskGraphicProvider.cpp
|
||||
graphic/QskGraphicProviderMap.cpp
|
||||
graphic/QskGraphicTextureFactory.cpp
|
||||
graphic/QskPainterCommand.cpp
|
||||
graphic/QskStandardSymbol.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
nodes/QskArcNode.h
|
||||
nodes/QskArcRenderer.h
|
||||
nodes/QskBoxNode.h
|
||||
nodes/QskBoxClipNode.h
|
||||
nodes/QskBoxRenderer.h
|
||||
nodes/QskBoxRendererColorMap.h
|
||||
nodes/QskBoxShadowNode.h
|
||||
nodes/QskGraphicNode.h
|
||||
nodes/QskPaintedNode.h
|
||||
nodes/QskPlainTextRenderer.h
|
||||
nodes/QskRichTextRenderer.h
|
||||
nodes/QskScaleRenderer.h
|
||||
nodes/QskSGNode.h
|
||||
nodes/QskShadedBoxNode.h
|
||||
nodes/QskTextNode.h
|
||||
nodes/QskTextRenderer.h
|
||||
nodes/QskTextureRenderer.h
|
||||
nodes/QskTickmarksNode.h
|
||||
nodes/QskVertex.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
nodes/QskArcNode.cpp
|
||||
nodes/QskArcRenderer.cpp
|
||||
nodes/QskBoxNode.cpp
|
||||
nodes/QskBoxClipNode.cpp
|
||||
nodes/QskBoxRendererRect.cpp
|
||||
nodes/QskBoxRendererEllipse.cpp
|
||||
nodes/QskBoxRendererDEllipse.cpp
|
||||
nodes/QskBoxShadowNode.cpp
|
||||
nodes/QskGraphicNode.cpp
|
||||
nodes/QskPaintedNode.cpp
|
||||
nodes/QskPlainTextRenderer.cpp
|
||||
nodes/QskRichTextRenderer.cpp
|
||||
nodes/QskScaleRenderer.cpp
|
||||
nodes/QskSGNode.cpp
|
||||
nodes/QskShadedBoxNode.cpp
|
||||
nodes/QskTextNode.cpp
|
||||
nodes/QskTextRenderer.cpp
|
||||
nodes/QskTextureRenderer.cpp
|
||||
nodes/QskTickmarksNode.cpp
|
||||
nodes/QskVertex.cpp)
|
||||
|
||||
list(APPEND TARGET_RESSOURCES
|
||||
nodes/shaders.qrc)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
controls/QskAbstractButton.h
|
||||
controls/QskAnimationHint.h
|
||||
controls/QskAnimator.h
|
||||
controls/QskApplicationView.h
|
||||
controls/QskBoundedControl.h
|
||||
controls/QskBoundedInput.h
|
||||
controls/QskBoundedRangeInput.h
|
||||
controls/QskBoundedValueInput.h
|
||||
controls/QskBox.h
|
||||
controls/QskBoxSkinlet.h
|
||||
controls/QskCheckBox.h
|
||||
controls/QskCheckBoxSkinlet.h
|
||||
controls/QskControl.h
|
||||
controls/QskControlPrivate.h
|
||||
controls/QskDirtyItemFilter.h
|
||||
controls/QskEvent.h
|
||||
controls/QskFlickAnimator.h
|
||||
controls/QskFocusIndicator.h
|
||||
controls/QskFocusIndicatorSkinlet.h
|
||||
controls/QskGesture.h
|
||||
controls/QskGestureRecognizer.h
|
||||
controls/QskGraphicLabel.h
|
||||
controls/QskGraphicLabelSkinlet.h
|
||||
controls/QskHintAnimator.h
|
||||
controls/QskInputGrabber.h
|
||||
controls/QskListView.h
|
||||
controls/QskListViewSkinlet.h
|
||||
controls/QskMenu.h
|
||||
controls/QskMenuSkinlet.h
|
||||
controls/QskObjectTree.h
|
||||
controls/QskPageIndicator.h
|
||||
controls/QskPageIndicatorSkinlet.h
|
||||
controls/QskPanGestureRecognizer.h
|
||||
controls/QskPopup.h
|
||||
controls/QskPopupSkinlet.h
|
||||
controls/QskPushButton.h
|
||||
controls/QskPushButtonSkinlet.h
|
||||
controls/QskProgressBar.h
|
||||
controls/QskProgressBarSkinlet.h
|
||||
controls/QskQuick.h
|
||||
controls/QskQuickItem.h
|
||||
controls/QskQuickItemPrivate.h
|
||||
controls/QskScrollArea.h
|
||||
controls/QskScrollBox.h
|
||||
controls/QskScrollView.h
|
||||
controls/QskScrollViewSkinlet.h
|
||||
controls/QskSegmentedBar.h
|
||||
controls/QskSegmentedBarSkinlet.h
|
||||
controls/QskSeparator.h
|
||||
controls/QskSeparatorSkinlet.h
|
||||
controls/QskSetup.h
|
||||
controls/QskShortcutMap.h
|
||||
controls/QskSimpleListBox.h
|
||||
controls/QskSkin.h
|
||||
controls/QskSkinFactory.h
|
||||
controls/QskSkinHintTable.h
|
||||
controls/QskSkinHintTableEditor.h
|
||||
controls/QskSkinManager.h
|
||||
controls/QskSkinStateChanger.h
|
||||
controls/QskSkinTransition.h
|
||||
controls/QskSkinlet.h
|
||||
controls/QskSkinnable.h
|
||||
controls/QskSlider.h
|
||||
controls/QskSliderSkinlet.h
|
||||
controls/QskStatusIndicator.h
|
||||
controls/QskStatusIndicatorSkinlet.h
|
||||
controls/QskSubWindowArea.h
|
||||
controls/QskSubWindowAreaSkinlet.h
|
||||
controls/QskSubWindow.h
|
||||
controls/QskSubWindowSkinlet.h
|
||||
controls/QskSwitchButton.h
|
||||
controls/QskSwitchButtonSkinlet.h
|
||||
controls/QskTabBar.h
|
||||
controls/QskTabButton.h
|
||||
controls/QskTabButtonSkinlet.h
|
||||
controls/QskTabView.h
|
||||
controls/QskTabViewSkinlet.h
|
||||
controls/QskTextInput.h
|
||||
controls/QskTextInputSkinlet.h
|
||||
controls/QskTextLabel.h
|
||||
controls/QskTextLabelSkinlet.h
|
||||
controls/QskVariantAnimator.h
|
||||
controls/QskWindow.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
controls/QskAbstractButton.cpp
|
||||
controls/QskAnimator.cpp
|
||||
controls/QskAnimationHint.cpp
|
||||
controls/QskApplicationView.cpp
|
||||
controls/QskBoundedControl.cpp
|
||||
controls/QskBoundedInput.cpp
|
||||
controls/QskBoundedRangeInput.cpp
|
||||
controls/QskBoundedValueInput.cpp
|
||||
controls/QskBox.cpp
|
||||
controls/QskBoxSkinlet.cpp
|
||||
controls/QskCheckBox.cpp
|
||||
controls/QskCheckBoxSkinlet.cpp
|
||||
controls/QskControl.cpp
|
||||
controls/QskControlPrivate.cpp
|
||||
controls/QskDirtyItemFilter.cpp
|
||||
controls/QskEvent.cpp
|
||||
controls/QskFlickAnimator.cpp
|
||||
controls/QskFocusIndicator.cpp
|
||||
controls/QskFocusIndicatorSkinlet.cpp
|
||||
controls/QskGesture.cpp
|
||||
controls/QskGestureRecognizer.cpp
|
||||
controls/QskGraphicLabel.cpp
|
||||
controls/QskGraphicLabelSkinlet.cpp
|
||||
controls/QskHintAnimator.cpp
|
||||
controls/QskInputGrabber.cpp
|
||||
controls/QskListView.cpp
|
||||
controls/QskListViewSkinlet.cpp
|
||||
controls/QskMenuSkinlet.cpp
|
||||
controls/QskMenu.cpp
|
||||
controls/QskObjectTree.cpp
|
||||
controls/QskPageIndicator.cpp
|
||||
controls/QskPageIndicatorSkinlet.cpp
|
||||
controls/QskPanGestureRecognizer.cpp
|
||||
controls/QskPopup.cpp
|
||||
controls/QskPopupSkinlet.cpp
|
||||
controls/QskPushButton.cpp
|
||||
controls/QskPushButtonSkinlet.cpp
|
||||
controls/QskProgressBar.cpp
|
||||
controls/QskProgressBarSkinlet.cpp
|
||||
controls/QskQuick.cpp
|
||||
controls/QskQuickItem.cpp
|
||||
controls/QskQuickItemPrivate.cpp
|
||||
controls/QskScrollArea.cpp
|
||||
controls/QskScrollBox.cpp
|
||||
controls/QskScrollView.cpp
|
||||
controls/QskScrollViewSkinlet.cpp
|
||||
controls/QskSegmentedBar.cpp
|
||||
controls/QskSegmentedBarSkinlet.cpp
|
||||
controls/QskSeparator.cpp
|
||||
controls/QskSeparatorSkinlet.cpp
|
||||
controls/QskSetup.cpp
|
||||
controls/QskShortcutMap.cpp
|
||||
controls/QskSimpleListBox.cpp
|
||||
controls/QskSkin.cpp
|
||||
controls/QskSkinHintTable.cpp
|
||||
controls/QskSkinHintTableEditor.cpp
|
||||
controls/QskSkinFactory.cpp
|
||||
controls/QskSkinManager.cpp
|
||||
controls/QskSkinTransition.cpp
|
||||
controls/QskSkinlet.cpp
|
||||
controls/QskSkinnable.cpp
|
||||
controls/QskSlider.cpp
|
||||
controls/QskSliderSkinlet.cpp
|
||||
controls/QskStatusIndicator.cpp
|
||||
controls/QskStatusIndicatorSkinlet.cpp
|
||||
controls/QskSubWindowArea.cpp
|
||||
controls/QskSubWindowAreaSkinlet.cpp
|
||||
controls/QskSubWindow.cpp
|
||||
controls/QskSubWindowSkinlet.cpp
|
||||
controls/QskSwitchButton.cpp
|
||||
controls/QskSwitchButtonSkinlet.cpp
|
||||
controls/QskTabBar.cpp
|
||||
controls/QskTabButton.cpp
|
||||
controls/QskTabButtonSkinlet.cpp
|
||||
controls/QskTabView.cpp
|
||||
controls/QskTabViewSkinlet.cpp
|
||||
controls/QskTextInput.cpp
|
||||
controls/QskTextInputSkinlet.cpp
|
||||
controls/QskTextLabel.cpp
|
||||
controls/QskTextLabelSkinlet.cpp
|
||||
controls/QskVariantAnimator.cpp
|
||||
controls/QskWindow.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
layouts/QskGridBox.h
|
||||
layouts/QskGridLayoutEngine.h
|
||||
layouts/QskIndexedLayoutBox.h
|
||||
layouts/QskLayoutChain.h
|
||||
layouts/QskLayoutEngine2D.h
|
||||
layouts/QskLayoutElement.h
|
||||
layouts/QskLayoutMetrics.h
|
||||
layouts/QskLinearBox.h
|
||||
layouts/QskLinearLayoutEngine.h
|
||||
layouts/QskStackBoxAnimator.h
|
||||
layouts/QskStackBox.h
|
||||
layouts/QskSubcontrolLayoutEngine.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
layouts/QskGridBox.cpp
|
||||
layouts/QskGridLayoutEngine.cpp
|
||||
layouts/QskIndexedLayoutBox.cpp
|
||||
layouts/QskLayoutChain.cpp
|
||||
layouts/QskLayoutEngine2D.cpp
|
||||
layouts/QskLayoutElement.cpp
|
||||
layouts/QskLayoutMetrics.cpp
|
||||
layouts/QskLinearBox.cpp
|
||||
layouts/QskLinearLayoutEngine.cpp
|
||||
layouts/QskStackBoxAnimator.cpp
|
||||
layouts/QskStackBox.cpp
|
||||
layouts/QskSubcontrolLayoutEngine.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
dialogs/QskDialog.h
|
||||
dialogs/QskDialogButton.h
|
||||
dialogs/QskDialogButtonBox.h
|
||||
dialogs/QskDialogSubWindow.h
|
||||
dialogs/QskDialogWindow.h
|
||||
dialogs/QskMessageSubWindow.h
|
||||
dialogs/QskMessageWindow.h
|
||||
dialogs/QskSelectionSubWindow.h
|
||||
dialogs/QskSelectionWindow.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
dialogs/QskDialogButton.cpp
|
||||
dialogs/QskDialogButtonBox.cpp
|
||||
dialogs/QskDialog.cpp
|
||||
dialogs/QskDialogSubWindow.cpp
|
||||
dialogs/QskDialogWindow.cpp
|
||||
dialogs/QskMessageSubWindow.cpp
|
||||
dialogs/QskMessageWindow.cpp
|
||||
dialogs/QskSelectionSubWindow.cpp
|
||||
dialogs/QskSelectionWindow.cpp)
|
||||
|
||||
list(APPEND TARGET_HEADERS
|
||||
inputpanel/QskTextPredictor.h
|
||||
inputpanel/QskInputContext.h
|
||||
inputpanel/QskInputPanel.h
|
||||
inputpanel/QskInputPanelBox.h
|
||||
inputpanel/QskInputPredictionBar.h
|
||||
inputpanel/QskVirtualKeyboard.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
inputpanel/QskTextPredictor.cpp
|
||||
inputpanel/QskInputContext.cpp
|
||||
inputpanel/QskInputPanel.cpp
|
||||
inputpanel/QskInputPanelBox.cpp
|
||||
inputpanel/QskInputPredictionBar.cpp
|
||||
inputpanel/QskVirtualKeyboard.cpp)
|
||||
|
||||
if(ENABLE_PINYIN)
|
||||
list(APPEND TARGET_HEADERS
|
||||
inputpanel/QskPinyinTextPredictor.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
inputpanel/QskPinyinTextPredictor.cpp)
|
||||
endif()
|
||||
|
||||
if(ENABLE_HUNSPELL)
|
||||
list(APPEND TARGET_HEADERS
|
||||
inputpanel/QskHunspellTextPredictor.h)
|
||||
list(APPEND TARGET_SOURCES
|
||||
inputpanel/QskHunspellTextPredictor.cpp)
|
||||
endif()
|
||||
|
||||
set(TARGET_NAME qskinny)
|
||||
|
||||
if(BUILD_QSKDLL)
|
||||
qt_add_library(${TARGET_NAME} SHARED ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_RESSOURCES})
|
||||
else()
|
||||
qt_add_library(${TARGET_NAME} STATIC ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_RESSOURCES})
|
||||
endif()
|
||||
|
||||
if(BUILD_QSKDLL)
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PUBLIC
|
||||
QSK_DLL
|
||||
PRIVATE
|
||||
QSK_MAKEDLL)
|
||||
endif()
|
||||
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/common>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/controls>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/dialogs>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/graphic>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/inputpanel>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/layouts>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/nodes>)
|
||||
|
||||
target_include_directories(${TARGET_NAME}
|
||||
INTERFACE
|
||||
$<INSTALL_INTERFACE:${QSK_INSTALL_HEADERS}>)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PUBLIC
|
||||
Qt::Core
|
||||
Qt::CorePrivate
|
||||
Qt::Quick
|
||||
Qt::QuickPrivate)
|
||||
|
||||
if (QT_VERSION_MAJOR VERSION_GREATER "5")
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PUBLIC
|
||||
Qt::OpenGL
|
||||
Qt::OpenGLPrivate)
|
||||
endif()
|
||||
|
||||
if(ENABLE_HUNSPELL)
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
hunspell)
|
||||
endif()
|
||||
|
||||
if(ENABLE_PINYIN)
|
||||
target_compile_definitions(${TARGET_NAME} PRIVATE PINYIN)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
pinyin
|
||||
Fcitx5::Utils)
|
||||
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/inputcontext>)
|
||||
endif()
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOMOC ON
|
||||
AUTORCC ON
|
||||
FOLDER libs)
|
||||
|
||||
# TODO hack for standalone qvg2svg
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
AUTOGEN_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/qskinny_autogen)
|
||||
|
||||
list(TRANSFORM TARGET_HEADERS PREPEND "${CMAKE_CURRENT_LIST_DIR}/")
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
PUBLIC_HEADER "${TARGET_HEADERS}")
|
|
@ -0,0 +1,67 @@
|
|||
list(APPEND TARGET_HEADERS
|
||||
SkinnyGlobal.h
|
||||
SkinnyNamespace.h
|
||||
SkinnyShapeFactory.h
|
||||
SkinnyShapeProvider.h
|
||||
SkinnyShortcut.h)
|
||||
|
||||
list(APPEND TARGET_SOURCES
|
||||
SkinnyNamespace.cpp
|
||||
SkinnyShapeFactory.cpp
|
||||
SkinnyShapeProvider.cpp
|
||||
SkinnyShortcut.cpp)
|
||||
|
||||
set(TARGET_NAME qsktestsupport)
|
||||
|
||||
if (BUILD_QSKDLL)
|
||||
qt_add_library(${TARGET_NAME} SHARED ${TARGET_SOURCES} ${TARGET_HEADERS})
|
||||
else()
|
||||
qt_add_library(${TARGET_NAME} STATIC ${TARGET_SOURCES} ${TARGET_HEADERS})
|
||||
endif()
|
||||
|
||||
if(ENABLE_FONT_CONFIG)
|
||||
set(QSK_FONTDIR ${CMAKE_CURRENT_LIST_DIR}/fonts)
|
||||
set(QSK_FONTCACHEDIR ${CMAKE_CURRENT_BINARY_DIR}/fontconfig)
|
||||
set(QSK_FONTCONF_FILE ${QSK_FONTCACHEDIR}/fonts.conf)
|
||||
|
||||
configure_file(fonts.conf.cmake.in ${QSK_FONTCONF_FILE}
|
||||
@ONLY
|
||||
NEWLINE_STYLE LF)
|
||||
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PRIVATE
|
||||
FONTCONFIG_FILE=${QSK_FONTCONF_FILE})
|
||||
endif()
|
||||
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES
|
||||
AUTOMOC ON)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PUBLIC
|
||||
qskinny)
|
||||
|
||||
if (BUILD_QSKDLL)
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PRIVATE
|
||||
SKINNY_MAKEDLL)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PRIVATE
|
||||
PLUGIN_PATH=${CMAKE_INSTALL_PREFIX}/skins)
|
||||
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
if(ENABLE_ENSURE_SKINS)
|
||||
target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/skins)
|
||||
target_compile_definitions(${TARGET_NAME} PRIVATE ENSURE_SKINS)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
squiekskin
|
||||
material3skin)
|
||||
endif()
|
||||
|
||||
install(TARGETS ${TARGET_NAME} DESTINATION ${QSK_INSTALL_LIBS})
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||
<fontconfig>
|
||||
<dir>@QSK_FONTDIR@</dir>
|
||||
<cachedir>@QSK_FONTCACHEDIR@/cache</cachedir>
|
||||
</fontconfig>
|
|
@ -0,0 +1,3 @@
|
|||
if(TARGET Qt::Svg)
|
||||
add_subdirectory(svg2qvg)
|
||||
endif()
|
|
@ -0,0 +1,53 @@
|
|||
set(TARGET_NAME svg2qvg)
|
||||
set(TARGET_SOURCES main.cpp)
|
||||
|
||||
qt_add_executable(${TARGET_NAME} ${TARGET_SOURCES})
|
||||
|
||||
if(BUILD_SVG2QVG_STANDALONE)
|
||||
|
||||
# NOTE: when building standalone some moc files are transitively required.
|
||||
# These files are being created by the qskinny build, hence we add an explicit dependency.
|
||||
# E.g. main.cpp -> #include <QskGraphic.cpp> -> #include "moc_QskGraphic.cpp"
|
||||
add_dependencies(${TARGET_NAME} qskinny)
|
||||
|
||||
# TODO hack for standalone qvg2svg
|
||||
get_target_property(qskinny_AUTOGEN_DIR qskinny AUTOGEN_BUILD_DIR)
|
||||
if (${qskinny_AUTOGEN_DIR} STREQUAL "")
|
||||
message(FATAL_ERROR "Directory '${qskinny_AUTOGEN_DIR}' doesn't exist")
|
||||
endif()
|
||||
|
||||
# TODO fix multi configuration generators
|
||||
if(CMAKE_GENERATOR MATCHES "Visual Studio.*")
|
||||
add_definitions("/I${qskinny_AUTOGEN_DIR}/include_\$(Configuration)")
|
||||
else()
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PRIVATE
|
||||
${qskinny_AUTOGEN_DIR}/include)
|
||||
endif()
|
||||
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/src/common
|
||||
${CMAKE_SOURCE_DIR}/src/graphic)
|
||||
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PRIVATE
|
||||
QSK_STANDALONE)
|
||||
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
Qt::Gui
|
||||
Qt::GuiPrivate
|
||||
Qt::Svg)
|
||||
else()
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE
|
||||
qskinny
|
||||
Qt::Svg)
|
||||
endif()
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
FOLDER tools)
|
||||
|
||||
install(TARGETS ${TARGET_NAME})
|
Loading…
Reference in New Issue