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 "${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()