|
|
|
@ -1,7 +1,7 @@
@@ -1,7 +1,7 @@
|
|
|
|
|
################################################################################ |
|
|
|
|
## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ## |
|
|
|
|
## ## |
|
|
|
|
## Project for working with OpenGL and Qt5 widgets ## |
|
|
|
|
## Project for working with OpenGL and Qt6 widgets ## |
|
|
|
|
################################################################################ |
|
|
|
|
cmake_minimum_required(VERSION 3.5) |
|
|
|
|
|
|
|
|
@ -19,19 +19,18 @@ set(CMAKE_AUTORCC ON)
@@ -19,19 +19,18 @@ set(CMAKE_AUTORCC ON)
|
|
|
|
|
set(CMAKE_CXX_STANDARD 11) |
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON) |
|
|
|
|
|
|
|
|
|
# Find all Qt package components required for this project |
|
|
|
|
find_package(Qt5 COMPONENTS Core LinguistTools Gui Widgets REQUIRED) |
|
|
|
|
#find_package(QT NAMES Qt6 COMPONENTS Widgets REQUIRED) |
|
|
|
|
find_package(Qt6 COMPONENTS Widgets OpenGLWidgets OpenGL REQUIRED) |
|
|
|
|
|
|
|
|
|
# Add our Qt resources.qrc file to our application |
|
|
|
|
set(SOURCES app/main.cpp) |
|
|
|
|
qt5_add_resources(SOURCES resources.qrc) |
|
|
|
|
qt6_add_resources(SOURCES resources.qrc) |
|
|
|
|
|
|
|
|
|
add_executable( |
|
|
|
|
qtk # Executable name |
|
|
|
|
${SOURCES} # Executable source code |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################ |
|
|
|
|
# External Libraries |
|
|
|
|
################################################################################ |
|
|
|
@ -57,23 +56,24 @@ target_link_libraries(main-widget PRIVATE ${OPENGL_LIBRARIES})
@@ -57,23 +56,24 @@ target_link_libraries(main-widget PRIVATE ${OPENGL_LIBRARIES})
|
|
|
|
|
# Input |
|
|
|
|
add_library(input lib/input.cpp) |
|
|
|
|
target_include_directories(input PUBLIC lib/) |
|
|
|
|
target_link_libraries(input PUBLIC Qt5::Widgets) |
|
|
|
|
target_link_libraries(input PUBLIC Qt${QT_VERSION_MAJOR}::Widgets) |
|
|
|
|
|
|
|
|
|
# Mesh |
|
|
|
|
add_library(mesh lib/mesh.cpp) |
|
|
|
|
target_include_directories(mesh PUBLIC lib/) |
|
|
|
|
target_link_libraries(mesh PUBLIC Qt5::Widgets) |
|
|
|
|
target_link_libraries(mesh PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) |
|
|
|
|
|
|
|
|
|
# Texture |
|
|
|
|
add_library(texture lib/texture.cpp) |
|
|
|
|
target_include_directories(texture PUBLIC lib/) |
|
|
|
|
target_link_libraries(texture PUBLIC Qt5::Widgets) |
|
|
|
|
target_link_libraries(texture PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) |
|
|
|
|
|
|
|
|
|
# Object |
|
|
|
|
add_library(object lib/object.cpp) |
|
|
|
|
target_include_directories(object PUBLIC lib/) |
|
|
|
|
target_link_libraries(object PUBLIC Qt5::Widgets) |
|
|
|
|
target_link_libraries(object INTERFACE mesh) |
|
|
|
|
target_link_libraries(object PUBLIC Qt${QT_VERSION_MAJOR}::OpenGL) |
|
|
|
|
target_link_libraries(object PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) |
|
|
|
|
|
|
|
|
|
# MeshRenderer |
|
|
|
|
add_library(meshrenderer lib/meshrenderer.cpp) |
|
|
|
@ -84,25 +84,28 @@ target_link_libraries(meshrenderer PUBLIC object)
@@ -84,25 +84,28 @@ target_link_libraries(meshrenderer PUBLIC object)
|
|
|
|
|
add_library(camera3d lib/camera3d.cpp) |
|
|
|
|
target_include_directories(camera3d PUBLIC lib/) |
|
|
|
|
target_link_libraries(camera3d INTERFACE input) |
|
|
|
|
target_link_libraries(camera3d PUBLIC Qt5::Widgets) |
|
|
|
|
target_link_libraries(camera3d PUBLIC Qt${QT_VERSION_MAJOR}::Widgets) |
|
|
|
|
|
|
|
|
|
# Skybox |
|
|
|
|
add_library(skybox lib/skybox.cpp) |
|
|
|
|
# Skybox needs Mesh, Camera3D, and Qt5::Widgets |
|
|
|
|
# Skybox needs Mesh, Camera3D, and Qt6::Widgets |
|
|
|
|
target_link_libraries(skybox PRIVATE mesh) |
|
|
|
|
target_link_libraries(skybox PRIVATE camera3d) |
|
|
|
|
target_link_libraries(skybox PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) |
|
|
|
|
|
|
|
|
|
# Transform3D |
|
|
|
|
add_library(transform3d lib/transform3D.cpp) |
|
|
|
|
target_include_directories(transform3d PUBLIC lib/) |
|
|
|
|
target_link_libraries(transform3d PUBLIC Qt5::Widgets) |
|
|
|
|
target_link_libraries(transform3d PUBLIC Qt${QT_VERSION_MAJOR}::Widgets) |
|
|
|
|
|
|
|
|
|
# Model |
|
|
|
|
add_library(model lib/model.cpp) |
|
|
|
|
target_include_directories(model PUBLIC lib/) |
|
|
|
|
target_link_libraries(model PRIVATE assimp) |
|
|
|
|
# Model library requires transform3d and Qt5::Widgets |
|
|
|
|
target_link_libraries(model PUBLIC Qt${QT_VERSION_MAJOR}::OpenGL) |
|
|
|
|
# Model library requires transform3d and Qt6::Widgets |
|
|
|
|
target_link_libraries(model PUBLIC transform3d) |
|
|
|
|
target_link_libraries(model PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) |
|
|
|
|
|
|
|
|
|
# Scene |
|
|
|
|
add_library(scene lib/scene.cpp) |
|
|
|
@ -111,13 +114,13 @@ target_link_libraries(scene PUBLIC model)
@@ -111,13 +114,13 @@ target_link_libraries(scene PUBLIC model)
|
|
|
|
|
target_link_libraries(scene PUBLIC meshrenderer) |
|
|
|
|
target_link_libraries(scene PUBLIC skybox) |
|
|
|
|
target_link_libraries(scene PUBLIC texture) |
|
|
|
|
target_link_libraries(scene PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################ |
|
|
|
|
# Final Application |
|
|
|
|
################################################################################ |
|
|
|
|
|
|
|
|
|
#target_link_libraries(main-widget PRIVATE input) |
|
|
|
|
target_link_libraries(main-widget PRIVATE mesh) |
|
|
|
|
target_link_libraries(main-widget PUBLIC scene) |
|
|
|
|
|
|
|
|
|