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
|
PenaltyExcessCharacter: 1000000
|
||||||
PenaltyReturnTypeOnItsOwnLine: 60
|
PenaltyReturnTypeOnItsOwnLine: 60
|
||||||
PointerAlignment: Left
|
PointerAlignment: Left
|
||||||
RawStringFormats:
|
RawStringFormats:
|
||||||
- Delimiter: pb
|
- Language: TextProto
|
||||||
Language: TextProto
|
Delimiters:
|
||||||
BasedOnStyle: google
|
- 'pb'
|
||||||
|
- 'proto'
|
||||||
|
BasedOnStyle: google
|
||||||
ReflowComments: true
|
ReflowComments: true
|
||||||
SortIncludes: true
|
SortIncludes: true
|
||||||
SortUsingDeclarations: true
|
SortUsingDeclarations: true
|
||||||
|
|
@ -112,5 +114,6 @@ SpacesInSquareBrackets: true
|
||||||
Standard: Cpp11
|
Standard: Cpp11
|
||||||
TabWidth: 4
|
TabWidth: 4
|
||||||
UseTab: Never
|
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
|
*.log
|
||||||
html
|
html
|
||||||
tags
|
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
|
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,
|
and very few core classes from Qt/Quick. It offers a set of lightweight controls,
|
||||||
that can be used from C++ and/or QML.
|
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
|
qt-qmake qtbase5-dev qtbase5-private-dev qtdeclarative5-dev
|
||||||
qtdeclarative5-private-dev libqt5svg5-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
|
If you want to know more about QSkinny - or even like to give it a specific
|
||||||
direction - please contact support@qskinny.org.
|
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 "GraphicProvider.h"
|
||||||
#include "Skin.h"
|
#include "Skin.h"
|
||||||
|
|
||||||
|
#ifdef USE_SHORTCUTS
|
||||||
#include <SkinnyShortcut.h>
|
#include <SkinnyShortcut.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <QskSetup.h>
|
#include <QskSetup.h>
|
||||||
#include <QskShortcutMap.h>
|
#include <QskShortcutMap.h>
|
||||||
|
|
@ -75,9 +77,11 @@ int main( int argc, char* argv[] )
|
||||||
|
|
||||||
qskSetup->setSkin( "DaytimeSkin" );
|
qskSetup->setSkin( "DaytimeSkin" );
|
||||||
|
|
||||||
|
#ifdef USE_SHORTCUTS
|
||||||
// With CTRL-B you can rotate a couple of visual debug modes
|
// With CTRL-B you can rotate a couple of visual debug modes
|
||||||
SkinnyShortcut::enable( SkinnyShortcut::RotateSkin | SkinnyShortcut::DebugBackground |
|
SkinnyShortcut::enable( SkinnyShortcut::RotateSkin | SkinnyShortcut::DebugBackground |
|
||||||
SkinnyShortcut::DebugStatistics | SkinnyShortcut::Quit );
|
SkinnyShortcut::DebugStatistics | SkinnyShortcut::Quit );
|
||||||
|
#endif
|
||||||
|
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
window.show();
|
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 );
|
QskObjectCounter counter( true );
|
||||||
#endif
|
#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();
|
QtWebEngine::initialize();
|
||||||
|
#endif
|
||||||
|
|
||||||
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||||
QGuiApplication app( argc, argv );
|
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
|
class QSK_MATERIAL3_EXPORT QskMaterial3SkinFactory : public QskSkinFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
#if defined( QSK_MATERIAL3_MAKEDLL )
|
||||||
Q_PLUGIN_METADATA( IID QskSkinFactoryIID FILE "metadata.json" )
|
Q_PLUGIN_METADATA( IID QskSkinFactoryIID FILE "metadata.json" )
|
||||||
Q_INTERFACES( QskSkinFactory )
|
Q_INTERFACES( QskSkinFactory )
|
||||||
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QskMaterial3SkinFactory( QObject* parent = nullptr );
|
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
|
Q_OBJECT
|
||||||
|
|
||||||
|
#if defined( QSK_SQUIEK_MAKEDLL )
|
||||||
Q_PLUGIN_METADATA( IID QskSkinFactoryIID FILE "metadata.json" )
|
Q_PLUGIN_METADATA( IID QskSkinFactoryIID FILE "metadata.json" )
|
||||||
Q_INTERFACES( QskSkinFactory )
|
Q_INTERFACES( QskSkinFactory )
|
||||||
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QskSquiekSkinFactory( QObject* parent = nullptr );
|
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