Add instructions to install with qt-base-dev.
This commit is contained in:
parent
a3e7dc47d8
commit
310f337f57
@ -4,7 +4,7 @@
|
|||||||
## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
|
## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
|
||||||
## All Content (c) 2025 Shaun Reed, all rights reserved ##
|
## All Content (c) 2025 Shaun Reed, all rights reserved ##
|
||||||
################################################################################
|
################################################################################
|
||||||
cmake_minimum_required(VERSION 3.23)
|
cmake_minimum_required(VERSION 3.28)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Constants
|
# Constants
|
||||||
@ -84,7 +84,7 @@ endif()
|
|||||||
set(QT_INSTALL_DIR "$ENV{HOME}/Qt/6.5.0/gcc_64/lib/cmake" CACHE PATH "Path to Qt6 install.")
|
set(QT_INSTALL_DIR "$ENV{HOME}/Qt/6.5.0/gcc_64/lib/cmake" CACHE PATH "Path to Qt6 install.")
|
||||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install")
|
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install")
|
||||||
endif ()
|
endif()
|
||||||
|
|
||||||
set(QTK_RESOURCES "${CMAKE_SOURCE_DIR}/resources")
|
set(QTK_RESOURCES "${CMAKE_SOURCE_DIR}/resources")
|
||||||
set(QTK_OSX_ICONS ${CMAKE_SOURCE_DIR}/resources/icons/osx/kilroy.icns)
|
set(QTK_OSX_ICONS ${CMAKE_SOURCE_DIR}/resources/icons/osx/kilroy.icns)
|
||||||
@ -205,3 +205,25 @@ foreach(VAR_NAME IN LISTS VAR_NAMES VAR_PATHS)
|
|||||||
message(STATUS "[Qtk] ${VAR_NAME}=${${VAR_NAME}}")
|
message(STATUS "[Qtk] ${VAR_NAME}=${${VAR_NAME}}")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
message(STATUS "[Qtk] Installation prefix: ${CMAKE_INSTALL_PREFIX}")
|
||||||
|
message(STATUS "[Qtk] Found Qt6: ${Qt6Core_VERSION}")
|
||||||
|
|
||||||
|
# qt_generate_deploy_app_script is supported on Linux in QtCore >= 6.5.0.
|
||||||
|
# qt_generate_deploy_app_script supports Windows and OSX in QtCore >= 6.3.
|
||||||
|
# https://doc.qt.io/qt-6.5/qt-generate-deploy-app-script.html
|
||||||
|
# https://doc.qt.io/archives/qt-6.4/qt-generate-deploy-app-script.html
|
||||||
|
# The application can still build and run, we just can't install.
|
||||||
|
if(QTK_GUI OR QTK_EXAMPLE)
|
||||||
|
if(UNIX AND NOT APPLE)
|
||||||
|
# Ubuntu 24.04 provides QtCore 6.4.2 in qt-base-dev.
|
||||||
|
# This version of qt_generate_deploy_app_script does not support Linux.
|
||||||
|
if (Qt6_VERSION VERSION_LESS "6.5.0")
|
||||||
|
message(WARNING "[Qtk] Installation is only supported on Qt >=6.5.\n")
|
||||||
|
endif()
|
||||||
|
elseif(APPLE OR WIN32)
|
||||||
|
# Predates qt_generate_deploy_app_script.
|
||||||
|
if (Qt6_VERSION VERSION_LESS "6.3.0")
|
||||||
|
message(WARNING "[Qtk] Installation is only supported on Qt >=6.5.\n")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
26
README.md
26
README.md
@ -67,7 +67,7 @@ Key features that are planned:
|
|||||||
- [ ] Basic text editor for quickly modifying shaders attached to objects.
|
- [ ] Basic text editor for quickly modifying shaders attached to objects.
|
||||||
- [ ] Reduce size of application resources and git references.
|
- [ ] Reduce size of application resources and git references.
|
||||||
|
|
||||||
For examples of using the libqtk API, see the [example-app](./example-app)
|
For examples of using libqtk, see the [example-app](./example-app)
|
||||||
project in the root of this repository.
|
project in the root of this repository.
|
||||||
|
|
||||||
To get textures loading on models look
|
To get textures loading on models look
|
||||||
@ -82,13 +82,19 @@ Simply open the root `CMakeLists.txt` with either of these editors and default
|
|||||||
configurations will be loaded. To simplify providing Qt to the build, Qt Creator
|
configurations will be loaded. To simplify providing Qt to the build, Qt Creator
|
||||||
is the recommended option.
|
is the recommended option.
|
||||||
|
|
||||||
This project has been ported to **Qt 6.6.0**, which is not yet available in
|
If you have manually installed [Qt6 Open Source Binaries](https://www.qt.io/download-qt-installer)
|
||||||
Ubuntu apt repositories.
|
for your system, be sure to correctly set your `CMAKE_PREFIX_PATH` in the next steps.
|
||||||
To run this project, you will *need* to
|
On Ubuntu 24.04 the default installation directory to use for this path using Qt 6.5.0 is `$HOME/Qt/6.5.0/gcc_64/lib/cmake`.
|
||||||
install [Qt6 Open Source Binaries](https://www.qt.io/download-qt-installer) for
|
|
||||||
your system, **version 6.6.0** or later.
|
The Ubuntu apt repositories contain all the packages we need to build all targets.
|
||||||
Be sure to take note of the Qt6 installation directory, as we will need it to
|
To build Qtk desktop application with the scene in the screenshots below run the following commands.
|
||||||
correctly set our `CMAKE_PREFIX_PATH` in the next steps.
|
|
||||||
|
```bash
|
||||||
|
sudo apt update && sudo apt install cmake build-essential git ccache libxkbcommon-dev libassimp-dev qt6-base-dev qt6-tools-dev
|
||||||
|
cmake -DQTK_GUI_SCENE=ON -B build
|
||||||
|
cmake --build build
|
||||||
|
./build/bin/qtk_gui
|
||||||
|
```
|
||||||
|
|
||||||
#### Build Options
|
#### Build Options
|
||||||
|
|
||||||
@ -146,7 +152,7 @@ For this example we will configure the build with all options enabled.
|
|||||||
In the separate sections below we can install individual components with cmake.
|
In the separate sections below we can install individual components with cmake.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt update -y && sudo apt install libassimp-dev cmake build-essential git ccache libgl1-mesa-dev libglvnd-dev zlib1g-dev -y
|
sudo apt update -y && sudo apt install cmake build-essential git ccache libxkbcommon-dev libassimp-dev qt6-base-dev qt6-tools-dev -y
|
||||||
git clone https://github.com/shaunrd0/qtk
|
git clone https://github.com/shaunrd0/qtk
|
||||||
cd qtk
|
cd qtk
|
||||||
# Configure the build with all components enabled
|
# Configure the build with all components enabled
|
||||||
@ -265,7 +271,7 @@ This project is using `clang-format` version `>=15.0.5`.
|
|||||||
On Ubuntu 24.04, clang-format 18 is available to install in apt repositories.
|
On Ubuntu 24.04, clang-format 18 is available to install in apt repositories.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install clang-format
|
sudo apt install clang-format clang-tidy
|
||||||
```
|
```
|
||||||
|
|
||||||
If `clang-format --version` is any earlier than `15.0.0`, running `clang-format` will fail because this project uses configuration options made available since `15.0.0`.
|
If `clang-format --version` is any earlier than `15.0.0`, running `clang-format` will fail because this project uses configuration options made available since `15.0.0`.
|
||||||
|
@ -80,17 +80,24 @@ target_link_libraries(qtk_example PUBLIC Qt6::Widgets Qt6::OpenGLWidgets Qt6::Co
|
|||||||
target_link_libraries(qtk_example PUBLIC Qtk::qtk)
|
target_link_libraries(qtk_example PUBLIC Qtk::qtk)
|
||||||
target_include_directories(qtk_example PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
target_include_directories(qtk_example PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
|
|
||||||
install(
|
# qt_generate_deploy_app_script supports Windows and OSX in QtCore >= 6.3.
|
||||||
TARGETS qtk_example
|
# qt_generate_deploy_app_script is supported on Linux in QtCore >= 6.5.0.
|
||||||
COMPONENT qtk_example
|
if((Qt6_VERSION VERSION_GREATER_EQUAL "6.3.0" AND (WIN32 OR APPLE))
|
||||||
BUNDLE DESTINATION .
|
OR Qt6_VERSION VERSION_GREATER_EQUAL "6.5.0")
|
||||||
LIBRARY DESTINATION lib
|
install(
|
||||||
ARCHIVE DESTINATION lib/static
|
TARGETS qtk_example
|
||||||
RUNTIME DESTINATION bin
|
COMPONENT qtk_example
|
||||||
)
|
BUNDLE DESTINATION .
|
||||||
qt_generate_deploy_app_script(
|
LIBRARY DESTINATION lib
|
||||||
TARGET qtk_example
|
ARCHIVE DESTINATION lib/static
|
||||||
OUTPUT_SCRIPT QTK_EXAMPLE_DEPLOY_SCRIPT
|
RUNTIME DESTINATION bin
|
||||||
NO_UNSUPPORTED_PLATFORM_ERROR
|
)
|
||||||
)
|
qt_generate_deploy_app_script(
|
||||||
install(SCRIPT ${QTK_EXAMPLE_DEPLOY_SCRIPT} COMPONENT qtk_example)
|
TARGET qtk_example
|
||||||
|
OUTPUT_SCRIPT QTK_EXAMPLE_DEPLOY_SCRIPT
|
||||||
|
NO_UNSUPPORTED_PLATFORM_ERROR
|
||||||
|
)
|
||||||
|
install(SCRIPT ${QTK_EXAMPLE_DEPLOY_SCRIPT} COMPONENT qtk_example)
|
||||||
|
elseif(NOT Qtk_IS_TOP_LEVEL)
|
||||||
|
message(WARNING "[Qtk] Installation is only supported on Qt >=6.5.\n")
|
||||||
|
endif()
|
@ -37,7 +37,7 @@ qt_add_executable(qtk_gui ${QTK_GUI_SOURCES})
|
|||||||
target_link_libraries(qtk_gui PRIVATE qtk_plugin_library)
|
target_link_libraries(qtk_gui PRIVATE qtk_plugin_library)
|
||||||
|
|
||||||
if (QTK_GUI_SCENE)
|
if (QTK_GUI_SCENE)
|
||||||
target_compile_definitions(qtk_gui PUBLIC QTK_GUI_SCENE)
|
target_compile_definitions(qtk_gui PRIVATE -DQTK_GUI_SCENE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
@ -56,21 +56,25 @@ elseif(APPLE)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(
|
# qt_generate_deploy_app_script supports Windows and OSX in QtCore >= 6.3.
|
||||||
TARGETS qtk_gui
|
# qt_generate_deploy_app_script is supported on Linux in QtCore >= 6.5.0.
|
||||||
COMPONENT qtk_gui
|
if((Qt6_VERSION VERSION_GREATER_EQUAL "6.3.0" AND (WIN32 OR APPLE))
|
||||||
BUNDLE DESTINATION .
|
OR Qt6_VERSION VERSION_GREATER_EQUAL "6.5.0")
|
||||||
LIBRARY DESTINATION lib
|
install(
|
||||||
ARCHIVE DESTINATION lib
|
TARGETS qtk_gui
|
||||||
RUNTIME DESTINATION bin
|
COMPONENT qtk_gui
|
||||||
)
|
BUNDLE DESTINATION .
|
||||||
|
LIBRARY DESTINATION lib
|
||||||
qt_generate_deploy_app_script(
|
ARCHIVE DESTINATION lib
|
||||||
TARGET qtk_gui
|
RUNTIME DESTINATION bin
|
||||||
OUTPUT_SCRIPT QTK_DEPLOY_SCRIPT
|
)
|
||||||
NO_UNSUPPORTED_PLATFORM_ERROR
|
qt_generate_deploy_app_script(
|
||||||
)
|
TARGET qtk_gui
|
||||||
install(SCRIPT ${QTK_DEPLOY_SCRIPT} COMPONENT qtk_gui)
|
OUTPUT_SCRIPT QTK_DEPLOY_SCRIPT
|
||||||
|
NO_UNSUPPORTED_PLATFORM_ERROR
|
||||||
|
)
|
||||||
|
install(SCRIPT ${QTK_DEPLOY_SCRIPT} COMPONENT qtk_gui)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(MSVC AND TARGET Qt6::qmake)
|
if(MSVC AND TARGET Qt6::qmake)
|
||||||
|
@ -55,7 +55,7 @@ target_sources(
|
|||||||
)
|
)
|
||||||
|
|
||||||
if(QTK_DEBUG)
|
if(QTK_DEBUG)
|
||||||
target_compile_definitions(qtk PUBLIC QTK_DEBUG)
|
target_compile_definitions(qtk PUBLIC -DQTK_DEBUG)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_target_properties(
|
set_target_properties(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user