Files
qglengine/CMakeLists.txt
2022-08-08 15:48:06 +03:00

81 lines
2.8 KiB
CMake

cmake_minimum_required(VERSION 3.0)
cmake_policy(SET CMP0072 NEW) # FindOpenGL prefers GLVND by default
if (POLICY CMP0057)
cmake_policy(SET CMP0057 NEW)
endif()
if (POLICY CMP0054)
cmake_policy(SET CMP0054 NEW)
endif()
project(QGLEngine)
find_package(QAD REQUIRED)
shstk_qt_founded(QtVersions)
set(_qgl_ok 0)
if ("Qt5" IN_LIST QtVersions)
set(_qgl_ok 1)
endif()
if ("Qt6" IN_LIST QtVersions)
set(_qgl_ok 1)
endif()
if (NOT _qgl_ok)
message(WARNING "Building ${PROJECT_NAME} available only on Qt5/6!")
else()
qad_find_qt(Core Gui OpenGL OpenGLWidgets Xml)
find_package(OpenGL REQUIRED)
include(SHSTKQtMacros)
set(QGLEngine_MAJOR 1)
set(QGLEngine_MINOR 0)
set(QGLEngine_REVISION 0)
set(QGLEngine_SUFFIX "rc")
set(QGLEngine_COMPANY SHS)
set(QGLEngine_DOMAIN org.SHS)
if ("x${CMAKE_MODULE_PATH}" STREQUAL "x")
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
endif()
shstk_begin_project(QGLEngine)
qad_sources(SRC)
qad_sources(FSRC DIR "formats")
list(APPEND SRC ${FSRC})
qad_sources(FSRC DIR "core")
list(APPEND SRC ${FSRC})
qad_wrap(${SRC} HDRS out_HDR CPPS out_CPP QMS out_QM)
file(GLOB PHS "*_p.h" "formats/*_p.h" "core/*_p.h")
list(REMOVE_ITEM out_HDR "${PHS}")
import_version(qglengine_core QGLEngine)
set_deploy_property(qglengine_core ${QGLEngine_LIB_TYPE}
LABEL "QGLEngine core library"
FULLNAME "${QGLEngine_DOMAIN}.qglengine_core"
COMPANY "${QGLEngine_COMPANY}"
INFO "QGLEngine core library")
make_rc(qglengine_core _RC)
qad_add_library(qglengine_core ${QGLEngine_LIB_TYPE} out_CPP ${_RC})
qad_generate_export_header(qglengine_core)
list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/qglengine_core_export.h")
list(APPEND out_HDR "${QGLEngine_VERSION_FILE}")
qad_target_include_directories(qglengine_core PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/core")
qad_target_link_libraries(qglengine_core QAD::Widgets assimp ${OPENGL_LIBRARIES})
message(STATUS "Building QGLEngine version ${QGLEngine_VERSION} (${QGLEngine_LIB_TYPE_MSG}) for ${QtVersions}")
list(APPEND QT_MULTILIB_LIST qglengine_core)
add_subdirectory(widgets)
shstk_copy_to_parent()
shstk_qad_install("qglengine" FALSE "qglengine_core" "${out_HDR}" "out_QM")
if (NOT DEFINED ANDROID_PLATFORM)
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/plugin")
#add_subdirectory(plugin)
endif()
endif()
qad_sources(test_SRC DIR "qglview_test")
qad_wrap(${test_SRC} CPPS test_CPP)
qad_add_executable(qglengine_test test_CPP)
qad_target_link_libraries(qglengine_test qglengine_core qglengine_widgets)
qad_target_include_directories(qglengine_test PRIVATE ${QAD_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/core" "${CMAKE_CURRENT_SOURCE_DIR}/widgets")
file(GLOB CMAKES "cmake/*.cmake" "cmake/*.in")
install(FILES ${CMAKES} DESTINATION ${CMAKE_ROOT}/Modules)
endif()