Test packaging
This commit is contained in:
parent
cf433ad7fc
commit
6f7b1396d2
|
@ -13,11 +13,11 @@ jobs:
|
||||||
os: [ubuntu-latest, windows-latest, macos-latest]
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.3.1/gcc_64/"
|
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.5.0/gcc_64/"
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
cmake: -DCMAKE_PREFIX_PATH="D:/a/qtk/qtk/Qt/6.3.1/mingw81_64/"
|
cmake: -DCMAKE_PREFIX_PATH="D:/a/qtk/qtk/Qt/6.5.0/mingw81_64/"
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.3.1/gcc_64/"
|
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.5.0/gcc_64/"
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
|
@ -26,19 +26,47 @@ jobs:
|
||||||
- name: Install Qt
|
- name: Install Qt
|
||||||
uses: jurplel/install-qt-action@v2
|
uses: jurplel/install-qt-action@v2
|
||||||
with:
|
with:
|
||||||
version: '6.3.1'
|
version: '6.5.0'
|
||||||
|
|
||||||
- name: Chocolatey Action
|
- name: Chocolatey Action
|
||||||
if: matrix.os == 'windows-latest'
|
if: matrix.os == 'windows-latest'
|
||||||
uses: crazy-max/ghaction-chocolatey@v2.0.0
|
uses: crazy-max/ghaction-chocolatey@v2
|
||||||
with:
|
with:
|
||||||
args: install pkgconfiglite --checksum e87b5ea3c9142256af60f2d5b917aa63b571e6a0 --checksum-type sha1
|
args: install pkgconfiglite
|
||||||
|
|
||||||
- name: Build Qtk
|
- name: Build Qtk
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
cmake -S . -B build/ ${{ matrix.cmake }} -DQTK_UPDATE_SUBMODULES=ON && cmake --build build/ \
|
cmake -B build/ ${{ matrix.cmake }} -DQTK_UPDATE_SUBMODULES=ON
|
||||||
--target qtk-main
|
cmake --build build/
|
||||||
|
|
||||||
|
- name: Package Qtk
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cmake --build build/ --target package
|
||||||
|
|
||||||
|
- name: Package Qtk Sources
|
||||||
|
if: matrix.os != 'macos-latest'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cmake --build build/ --target package_source
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: qtk-packages-${{ matrix.os }}
|
||||||
|
path: |
|
||||||
|
build/packages/
|
||||||
|
!build/packages/_CPack_Packages/*
|
||||||
|
|
||||||
|
- name: Install Qtk
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cmake --install build/
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: qtk-${{ matrix.os }}
|
||||||
|
path: install/*
|
||||||
|
|
||||||
Build-Qtk-Assimp-Targets:
|
Build-Qtk-Assimp-Targets:
|
||||||
strategy:
|
strategy:
|
||||||
|
@ -47,9 +75,9 @@ jobs:
|
||||||
os: [ubuntu-latest, macos-latest]
|
os: [ubuntu-latest, macos-latest]
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.3.1/gcc_64/"
|
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.5.0/gcc_64/"
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.3.1/gcc_64/" -DASSIMP_NEW_INTERFACE=ON
|
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.5.0/gcc_64/" -DASSIMP_NEW_INTERFACE=ON
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
|
@ -58,7 +86,7 @@ jobs:
|
||||||
- name: Install Qt
|
- name: Install Qt
|
||||||
uses: jurplel/install-qt-action@v2
|
uses: jurplel/install-qt-action@v2
|
||||||
with:
|
with:
|
||||||
version: '6.3.1'
|
version: '6.5.0'
|
||||||
|
|
||||||
- name: Install Assimp MacOS
|
- name: Install Assimp MacOS
|
||||||
if: matrix.os == 'macos-latest'
|
if: matrix.os == 'macos-latest'
|
||||||
|
@ -75,5 +103,49 @@ jobs:
|
||||||
- name: Build Qtk
|
- name: Build Qtk
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
cmake -S . -B build/ ${{ matrix.cmake }} && cmake --build build/ \
|
cmake -B build/ ${{ matrix.cmake }} && cmake --build build/ --target qtk-main
|
||||||
--target qtk-main
|
|
||||||
|
# TODO: Enable with tag only when done testing
|
||||||
|
# Release-Qtk:
|
||||||
|
# needs: Build-Qtk
|
||||||
|
# if: "always()"
|
||||||
|
# strategy:
|
||||||
|
# fail-fast: false
|
||||||
|
# matrix:
|
||||||
|
# os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
|
# include:
|
||||||
|
# - os: ubuntu-latest
|
||||||
|
# cqt: CQtDeployer.deb
|
||||||
|
# url: https://github.com/QuasarApp/CQtDeployer/releases/download/v1.6.2277/CQtDeployer_1.6.2277.ecc6eed_Linux_x86_64.deb
|
||||||
|
# qmake: /home/runner/work/qtk/Qt/6.5.0/gcc_64/bin/qmake
|
||||||
|
# - os: windows-latest
|
||||||
|
# cqt: CQtDeployer.exe
|
||||||
|
# url: https://github.com/QuasarApp/CQtDeployer/releases/download/v1.6.2277/CQtDeployer_1.6.2277.ecc6eed_Windows_AMD64.exe
|
||||||
|
# qmake: D:/a/qtk/qtk/Qt/6.5.0/mingw81_64/bin/qmake
|
||||||
|
# - os: macos-latest
|
||||||
|
# cqt: CQtDeployer.run
|
||||||
|
# url: https://github.com/QuasarApp/CQtDeployer/releases/download/v1.6.2277/CQtDeployer_1.6.2277.ecc6eed_Linux_x86_64.run
|
||||||
|
# qmake: /home/runner/work/qtk/Qt/6.5.0/gcc_64/bin/qmake
|
||||||
|
# runs-on: ${{ matrix.os }}
|
||||||
|
#
|
||||||
|
# steps:
|
||||||
|
# - uses: actions/download-artifact@v3
|
||||||
|
# with:
|
||||||
|
# name: qtk-${{ matrix.os }}
|
||||||
|
#
|
||||||
|
# - name: Install Qt
|
||||||
|
# uses: jurplel/install-qt-action@v2
|
||||||
|
# with:
|
||||||
|
# version: '6.5.0'
|
||||||
|
#
|
||||||
|
# - name: Package Qtk
|
||||||
|
# shell: bash
|
||||||
|
# run: |
|
||||||
|
# wget -O ${{ matrix.cqt }} ${{ matrix.url }}
|
||||||
|
# apt install -y ./${{ matrix.cqt }}
|
||||||
|
# cqtdeployer -bin qtk-main -qmake ${{ matrix.qmake }}
|
||||||
|
#
|
||||||
|
# - uses: actions/upload-artifact@v3
|
||||||
|
# with:
|
||||||
|
# name: qtk-installer-${{ matrix.os }}
|
||||||
|
# path: DistributionKit/
|
||||||
|
|
|
@ -55,7 +55,7 @@ option(
|
||||||
OFF
|
OFF
|
||||||
)
|
)
|
||||||
|
|
||||||
set(QT_DIR "$ENV{HOME}/Code/Clones/Qt/" CACHE PATH "Path to Qt6")
|
set(QT_DIR "$ENV{HOME}/Qt/" CACHE PATH "Path to Qt6")
|
||||||
|
|
||||||
# Qt Designer will look in different locations if WIN / Unix.
|
# Qt Designer will look in different locations if WIN / Unix.
|
||||||
# These paths are for using Qt Designer integrated within Qt Creator.
|
# These paths are for using Qt Designer integrated within Qt Creator.
|
||||||
|
@ -70,7 +70,7 @@ else()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# This should be set to your Qt6 installation directory.
|
# This should be set to your Qt6 installation directory.
|
||||||
set(QT_INSTALL_DIR "${QT_DIR}/6.3.1/gcc_64/" CACHE PATH "Path to Qt6 install")
|
set(QT_INSTALL_DIR "${QT_DIR}/6.5.0/gcc_64" CACHE PATH "Path to Qt6 install")
|
||||||
# Point CMAKE_PREFIX_PATH to Qt6 install directory
|
# Point CMAKE_PREFIX_PATH to Qt6 install directory
|
||||||
# If Qtk is built within Qt Creator this is not required.
|
# If Qtk is built within Qt Creator this is not required.
|
||||||
list(APPEND CMAKE_PREFIX_PATH "${QT_INSTALL_DIR}")
|
list(APPEND CMAKE_PREFIX_PATH "${QT_INSTALL_DIR}")
|
||||||
|
@ -98,6 +98,7 @@ endforeach()
|
||||||
################################################################################
|
################################################################################
|
||||||
# Find Qt
|
# Find Qt
|
||||||
find_package(Qt6 COMPONENTS Core UiPlugin OpenGLWidgets)
|
find_package(Qt6 COMPONENTS Core UiPlugin OpenGLWidgets)
|
||||||
|
qt_standard_project_setup()
|
||||||
if(NOT Qt6_FOUND)
|
if(NOT Qt6_FOUND)
|
||||||
message(
|
message(
|
||||||
SEND_ERROR "[Qtk] Error: Unable to find Qt6 at CMAKE_PREFIX_PATH: "
|
SEND_ERROR "[Qtk] Error: Unable to find Qt6 at CMAKE_PREFIX_PATH: "
|
||||||
|
@ -127,37 +128,3 @@ endif()
|
||||||
# Qtk
|
# Qtk
|
||||||
################################################################################
|
################################################################################
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
get_target_property(_qt6_qmake_location Qt6::qmake IMPORTED_LOCATION)
|
|
||||||
execute_process(
|
|
||||||
COMMAND "${_qt6_qmake_location}" -query QT_INSTALL_PREFIX
|
|
||||||
RESULT_VARIABLE return_code
|
|
||||||
OUTPUT_VARIABLE qt6_install_prefix
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
)
|
|
||||||
file(TO_NATIVE_PATH "${qt6_install_prefix}/bin" qt6_install_prefix)
|
|
||||||
|
|
||||||
if(TARGET Qt6::windeployqt)
|
|
||||||
add_custom_command(
|
|
||||||
TARGET qtk-main
|
|
||||||
POST_BUILD
|
|
||||||
COMMAND set PATH=%PATH%$<SEMICOLON>${qt6_install_prefix}
|
|
||||||
COMMAND Qt6::windeployqt --dir "${CMAKE_BINARY_DIR}/windeployqt" "$<TARGET_FILE_DIR:qtk-main>/$<TARGET_FILE_NAME:qtk-main>"
|
|
||||||
)
|
|
||||||
install(DIRECTORY "${CMAKE_BINARY_DIR}/windeployqt/" DESTINATION bin)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(MSVC AND TARGET Qt6::qmake)
|
|
||||||
set(VSUSER_FILE "${CMAKE_CURRENT_BINARY_DIR}/qtk-main.vcxproj.user")
|
|
||||||
file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/extern/assimp/assimp/bin" assimp_bin)
|
|
||||||
file(WRITE ${VSUSER_FILE} "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} "<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} " <PropertyGroup>\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} " <LocalDebuggerEnvironment>Path=$(SolutionDir)\\lib\\$(Configuration);${qt6_install_prefix};${assimp_bin};$(Path)\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} "$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} " <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} " </PropertyGroup>\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} "</Project>\n")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ Key features that are planned:
|
||||||
* Save / load for scene data. The current inheritance model is temporary.
|
* Save / load for scene data. The current inheritance model is temporary.
|
||||||
* Basic text editor for quickly modifying shaders attached to objects.
|
* Basic text editor for quickly modifying shaders attached to objects.
|
||||||
* Shader / object properties panel to modify related settings.
|
* Shader / object properties panel to modify related settings.
|
||||||
|
* Reduce size of application resources and git references.
|
||||||
|
|
||||||
The Qtk desktop application provides a model loader using [Assimp](https://assimp.org/) within a Qt widget application.
|
The Qtk desktop application provides a model loader using [Assimp](https://assimp.org/) within a Qt widget application.
|
||||||
|
|
||||||
|
@ -101,6 +102,13 @@ If you see a small triangle floating by a model it represents the light source
|
||||||
that is being used for the shader rendering the model. These appear on models
|
that is being used for the shader rendering the model. These appear on models
|
||||||
using phong, specular, and diffuse lighting techniques.
|
using phong, specular, and diffuse lighting techniques.
|
||||||
|
|
||||||
|
Object names can be double-clicked in the tree view panel for quick camera
|
||||||
|
navigation. All panels and toolbars are dockable widgets that can be popped out
|
||||||
|
and reorganized as needed. Panels can be stacked to create a docked widget with
|
||||||
|
tabs. The central widget that provides the camera view into the scene cannot be
|
||||||
|
detached from the main window in this way. See the `View` menu to enable debug
|
||||||
|
console widgets for open scenes or reopen previously closed panels.
|
||||||
|
|
||||||
![](resources/screenshot.png)
|
![](resources/screenshot.png)
|
||||||
|
|
||||||
Spartan with no normals -
|
Spartan with no normals -
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 406 KiB After Width: | Height: | Size: 316 KiB |
|
@ -41,4 +41,11 @@ set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
|
||||||
set(CPACK_PACKAGE_VENDOR "Shaun Reed")
|
set(CPACK_PACKAGE_VENDOR "Shaun Reed")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Qt OpenGL 3D graphics library.")
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Qt OpenGL 3D graphics library.")
|
||||||
set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/shaunrd0/qtk")
|
set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/shaunrd0/qtk")
|
||||||
|
set(CPACK_SOURCE_IGNORE_FILES build;install;\.git;\.github;\.idea)
|
||||||
|
set(CPACK_PACKAGE_DIRECTORY packages/)
|
||||||
|
if(WIN32)
|
||||||
|
set(CPACK_SOURCE_GENERATOR ZIP)
|
||||||
|
else()
|
||||||
|
set(CPACK_SOURCE_GENERATOR TGZ)
|
||||||
|
endif()
|
||||||
include(CPack)
|
include(CPack)
|
||||||
|
|
|
@ -11,13 +11,16 @@
|
||||||
# Create a library of widgets used to build Qtk GUI
|
# Create a library of widgets used to build Qtk GUI
|
||||||
set(
|
set(
|
||||||
QTK_PLUGIN_LIBRARY_SOURCES
|
QTK_PLUGIN_LIBRARY_SOURCES
|
||||||
qtkwidget.cpp qtkwidget.h
|
qtkwidget.cpp
|
||||||
debugconsole.cpp debugconsole.ui
|
debugconsole.cpp debugconsole.ui
|
||||||
toolbox.cpp toolbox.ui
|
toolbox.cpp toolbox.ui
|
||||||
treeview.cpp treeview.ui
|
treeview.cpp treeview.ui
|
||||||
|
qtkmainwindow.cpp qtkmainwindow.ui
|
||||||
)
|
)
|
||||||
set(
|
set(
|
||||||
QTK_PLUGIN_LIBRARY_HEADERS
|
QTK_PLUGIN_LIBRARY_HEADERS
|
||||||
|
qtkmainwindow.h
|
||||||
|
qtkwidget.h
|
||||||
debugconsole.h
|
debugconsole.h
|
||||||
toolbox.h
|
toolbox.h
|
||||||
treeview.h
|
treeview.h
|
||||||
|
@ -72,12 +75,9 @@ install(
|
||||||
set(
|
set(
|
||||||
QTK_APP_SOURCES
|
QTK_APP_SOURCES
|
||||||
examplescene.cpp examplescene.h
|
examplescene.cpp examplescene.h
|
||||||
qtkmainwindow.cpp qtkmainwindow.ui
|
|
||||||
qtkmainwindow.h
|
|
||||||
main.cpp
|
main.cpp
|
||||||
)
|
)
|
||||||
# TODO: Qtk library should not depend on these resources. (qtkapi.h)
|
|
||||||
# Or should some resources be installed somewhere?
|
|
||||||
qt6_add_resources(QTK_APP_SOURCES "${QTK_RESOURCES}/resources.qrc")
|
qt6_add_resources(QTK_APP_SOURCES "${QTK_RESOURCES}/resources.qrc")
|
||||||
configure_file(
|
configure_file(
|
||||||
resources.h.in
|
resources.h.in
|
||||||
|
@ -102,3 +102,44 @@ install(
|
||||||
RUNTIME DESTINATION bin
|
RUNTIME DESTINATION bin
|
||||||
LIBRARY DESTINATION bin/lib
|
LIBRARY DESTINATION bin/lib
|
||||||
)
|
)
|
||||||
|
|
||||||
|
qt_generate_deploy_app_script(
|
||||||
|
TARGET qtk-main
|
||||||
|
FILENAME_VARIABLE deploy_script
|
||||||
|
NO_UNSUPPORTED_PLATFORM_ERROR
|
||||||
|
)
|
||||||
|
install(SCRIPT ${deploy_script})
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
get_target_property(_qt6_qmake_location Qt6::qmake IMPORTED_LOCATION)
|
||||||
|
execute_process(
|
||||||
|
COMMAND "${_qt6_qmake_location}" -query QT_INSTALL_PREFIX
|
||||||
|
RESULT_VARIABLE return_code
|
||||||
|
OUTPUT_VARIABLE qt6_install_prefix
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
file(TO_NATIVE_PATH "${qt6_install_prefix}/bin" qt6_install_prefix)
|
||||||
|
|
||||||
|
if(TARGET Qt6::windeployqt)
|
||||||
|
add_custom_command(
|
||||||
|
TARGET qtk-main
|
||||||
|
POST_BUILD
|
||||||
|
COMMAND set PATH=%PATH%$<SEMICOLON>${qt6_install_prefix}
|
||||||
|
COMMAND Qt6::windeployqt --dir "${CMAKE_BINARY_DIR}/windeployqt" "$<TARGET_FILE_DIR:qtk-main>/$<TARGET_FILE_NAME:qtk-main>"
|
||||||
|
)
|
||||||
|
install(DIRECTORY "${CMAKE_BINARY_DIR}/windeployqt/" DESTINATION bin)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MSVC AND TARGET Qt6::qmake)
|
||||||
|
set(VSUSER_FILE "${CMAKE_CURRENT_BINARY_DIR}/qtk-main.vcxproj.user")
|
||||||
|
file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/extern/assimp/assimp/bin" assimp_bin)
|
||||||
|
file(WRITE ${VSUSER_FILE} "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} "<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} " <PropertyGroup>\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} " <LocalDebuggerEnvironment>Path=$(SolutionDir)\\lib\\$(Configuration);${qt6_install_prefix};${assimp_bin};$(Path)\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} "$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} " <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} " </PropertyGroup>\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} "</Project>\n")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
|
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
|
||||||
##############################################################################*/
|
##############################################################################*/
|
||||||
|
|
||||||
#include "examplescene.h"
|
|
||||||
#include "qtkmainwindow.h"
|
#include "qtkmainwindow.h"
|
||||||
|
#include "examplescene.h"
|
||||||
#include "ui_qtkmainwindow.h"
|
#include "ui_qtkmainwindow.h"
|
||||||
|
|
||||||
MainWindow * MainWindow::mainWindow_ = Q_NULLPTR;
|
MainWindow * MainWindow::mainWindow_ = Q_NULLPTR;
|
||||||
|
|
|
@ -27,7 +27,9 @@
|
||||||
* This cannot be defined within any namespace, but can be called by ctors.
|
* This cannot be defined within any namespace, but can be called by ctors.
|
||||||
* See object.h for example.
|
* See object.h for example.
|
||||||
*/
|
*/
|
||||||
inline void initResources() { Q_INIT_RESOURCE(resources); }
|
inline void initResources() {
|
||||||
|
Q_INIT_RESOURCE(resources);
|
||||||
|
}
|
||||||
|
|
||||||
namespace Qtk {
|
namespace Qtk {
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue