cmake_minimum_required(VERSION 3.0) project(qglengine) find_package(QAD REQUIRED) find_qt(Qt5 Core Gui OpenGL Xml) if (NOT Qt5) message(WARNING "Building ${PROJECT_NAME} available only on Qt5!") else() 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 QGLENGINE) qt_sources(SRC) qt_sources(FSRC DIR "formats") list(APPEND SRC ${FSRC}) qt_sources(FSRC DIR "core") list(APPEND SRC ${FSRC}) qt_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) qt_add_library(qglengine_core ${qglengine_LIB_TYPE} out_CPP ${_RC}) qt_generate_export_header(qglengine_core) list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/qglengine_core_export.h") list(APPEND out_HDR "${qglengine_VERSION_FILE}") qt_target_include_directories(qglengine_core PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/core") qt_target_link_libraries(qglengine_core QAD::Widgets assimp ${OPENGL_LIBRARIES}) message(STATUS "Building QGLEngine version ${qglengine_VERSION} (${qglengine_LIB_TYPE_MSG})") list(APPEND QT_MULTILIB_LIST qglengine_core) add_subdirectory(widgets) shstk_copy_to_parent() shstk_qt_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() qt_sources(test_SRC DIR "qglview_test") qt_wrap(${test_SRC} CPPS test_CPP) qt_add_executable(qglengine_test test_CPP) qt_target_link_libraries(qglengine_test qglengine_core qglengine_widgets) qt_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()