Windows works
This commit is contained in:
@@ -1,20 +1,25 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
project(qglengine)
|
||||
find_package(QAD REQUIRED)
|
||||
set(_DOMAIN "org.SHS")
|
||||
set(_COMPANY "SHS")
|
||||
find_qt(Qt5 Core Gui OpenGL Xml)
|
||||
if (NOT Qt5)
|
||||
message(WARNING "Building ${PROJECT_NAME} available only on Qt5!")
|
||||
else()
|
||||
find_package(OpenGL REQUIRED)
|
||||
set_version(qglengine
|
||||
MAJOR 1
|
||||
MINOR 0
|
||||
REVISION 0
|
||||
BUILD "${BUILD_NUMBER}"
|
||||
SUFFIX rc
|
||||
OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/core/qglengine_version.h")
|
||||
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")
|
||||
@@ -25,22 +30,23 @@ else()
|
||||
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 SHARED
|
||||
set_deploy_property(qglengine_core ${qglengine_LIB_TYPE}
|
||||
LABEL "QGLEngine core library"
|
||||
FULLNAME "${_DOMAIN}.qglengine_core"
|
||||
COMPANY "${_COMPANY}"
|
||||
FULLNAME "${qglengine_DOMAIN}.qglengine_core"
|
||||
COMPANY "${qglengine_COMPANY}"
|
||||
INFO "QGLEngine core library")
|
||||
make_rc(qglengine_core _RC)
|
||||
qt_add_library(qglengine_core SHARED out_CPP ${_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")
|
||||
qt_target_include_directories(qglengine_core PRIVATE ${QAD_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/core")
|
||||
qt_target_link_libraries(qglengine_core qad_utils qad_widgets assimp ${OPENGL_LIBRARIES})
|
||||
message(STATUS "Building QGLEngine version ${qglengine_VERSION} (SHARED)")
|
||||
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)
|
||||
copy_to_parent("")
|
||||
sdk_install("qglengine" FALSE "qglengine_core" "${out_HDR}" "${out_QM}")
|
||||
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)
|
||||
@@ -52,4 +58,10 @@ else()
|
||||
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")
|
||||
|
||||
if (NOT LOCAL)
|
||||
file(GLOB CMAKES "cmake/*.cmake" "cmake/*.in")
|
||||
install(FILES ${CMAKES} DESTINATION ${CMAKE_ROOT}/Modules)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
103
cmake/FindQGLEngine.cmake
Normal file
103
cmake/FindQGLEngine.cmake
Normal file
@@ -0,0 +1,103 @@
|
||||
#[[
|
||||
|
||||
Create imported targets:
|
||||
* QGLEngine::Core
|
||||
* QGLEngine::Widgets
|
||||
|
||||
These targets include directories and dependencies
|
||||
|
||||
]]
|
||||
|
||||
cmake_policy(SET CMP0011 NEW) # don`t affect includer policies
|
||||
cmake_policy(SET CMP0020 NEW) # Automatically link Qt executables to qtmain target on Windows
|
||||
|
||||
find_package(QAD REQUIRED)
|
||||
include(QtWraps)
|
||||
include(SHSTKMacros)
|
||||
|
||||
shstk_is_parent_exists(hasParent PARENT_DIRECTORY)
|
||||
|
||||
shstk_set_find_dirs(qglengine)
|
||||
set(_SEARCH_DIR ${qglengine_LIBDIR})
|
||||
|
||||
if (NOT BUILDING_qglengine)
|
||||
list(APPEND _SEARCH_DIR $ENV{SMSDK_DIR}/lib)
|
||||
shstk_find_header(qglengine QGLENGINE "qglengine_version.h" "")
|
||||
endif()
|
||||
|
||||
if(QGLENGINE_FIND_VERSION VERSION_GREATER QGLENGINE_VERSION)
|
||||
message(FATAL_ERROR "QGLENGINE version ${QGLENGINE_VERSION} is available, but ${QGLENGINE_FIND_VERSION} requested!")
|
||||
endif()
|
||||
|
||||
set(__libs "core;widgets")
|
||||
|
||||
set(__module_core Core )
|
||||
set(__module_widgets Widgets)
|
||||
|
||||
foreach (_l ${__libs})
|
||||
set( __inc_${_l} "")
|
||||
set(__deps_${_l} "")
|
||||
set(__libs_${_l} "")
|
||||
endforeach()
|
||||
|
||||
set(__deps_core "QAD::Widgets")
|
||||
set(__deps_widgets "QGLEngine::Core")
|
||||
|
||||
#message("find QGLEngine ${BUILDING_qglengine}")
|
||||
|
||||
if (BUILDING_qglengine)
|
||||
|
||||
if (NOT SET_TARGETS_qglengine)
|
||||
set(SET_TARGETS_qglengine ON CACHE BOOL "")
|
||||
#message("create aliases")
|
||||
foreach(_l ${__libs})
|
||||
foreach(_v ${_QT_VERSIONS_})
|
||||
set(_m ${__module_${_l}})
|
||||
if((NOT TARGET QGLEngine::${_m}${_v}) AND TARGET qglengine_${_l}${_v})
|
||||
#message("alias QGLEngine::${_m}${_v} = qglengine_${_l}${_v}")
|
||||
set(MULTILIB_QGLEngine__${_m}_SUFFIX_Qt${_v} ${_v} CACHE STRING "")
|
||||
add_library(QGLEngine::${_m}${_v} ALIAS qglengine_${_l}${_v})
|
||||
endif()
|
||||
endforeach()
|
||||
list(APPEND QT_MULTILIB_LIST QGLEngine::${_m})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
set(QGLENGINE_FOUND ON CACHE BOOL "")
|
||||
|
||||
else()
|
||||
|
||||
#message("create interfaces")
|
||||
foreach(_l ${__libs})
|
||||
foreach(_v ${_QT_VERSIONS_})
|
||||
set(_m ${__module_${_l}})
|
||||
find_library(QGLENGINE_LIBRARY_${_l}${_v} qglengine_${_l}${_v} HINTS ${_SEARCH_DIR})
|
||||
#message("found ${_l}${_v} = ${QGLENGINE_LIBRARY_${_l}${_v}} (${qglengine_INCLUDES})")
|
||||
if((NOT TARGET QGLEngine::${_m}${_v}) AND QGLENGINE_LIBRARY_${_l}${_v})
|
||||
#message("imported QGLEngine::${_m}${_v} = ${QGLENGINE_LIBRARY_${_l}${_v}}")
|
||||
set(MULTILIB_QGLEngine__${_m}_SUFFIX_Qt${_v} ${_v} CACHE STRING "")
|
||||
add_library(QGLEngine::${_m}${_v} UNKNOWN IMPORTED)
|
||||
set(_deps)
|
||||
foreach (_d ${__deps_${_l}})
|
||||
if ((${_d} MATCHES "QAD::.*") OR (${_d} MATCHES "QGLEngine::.*"))
|
||||
list(APPEND _deps ${_d}${_v})
|
||||
else()
|
||||
list(APPEND _deps ${_d})
|
||||
endif()
|
||||
endforeach()
|
||||
set_target_properties(QGLEngine::${_m}${_v} PROPERTIES
|
||||
IMPORTED_LOCATION "${QGLENGINE_LIBRARY_${_l}${_v}}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${qglengine_INCLUDES}"
|
||||
INTERFACE_LINK_LIBRARIES "${_deps}")
|
||||
endif()
|
||||
endforeach()
|
||||
list(APPEND QT_MULTILIB_LIST QGLEngine::${_m})
|
||||
endforeach()
|
||||
|
||||
endif()
|
||||
|
||||
if(hasParent)
|
||||
set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
set(QGLENGINE_FOUND ON CACHE BOOL "")
|
||||
@@ -79,6 +79,7 @@
|
||||
#endif
|
||||
#include <iostream>
|
||||
#include "qglengine_version.h"
|
||||
#include "qglengine_core_export.h"
|
||||
|
||||
|
||||
//#ifdef WINDOWS
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
// This file generated by CMake set_version() version 2
|
||||
|
||||
#ifndef QGLENGINE_QGLENGINE_VERSION_H
|
||||
#define QGLENGINE_QGLENGINE_VERSION_H
|
||||
|
||||
|
||||
// Project
|
||||
|
||||
#define QGLENGINE_VERSION_MAJOR 1
|
||||
#define QGLENGINE_VERSION_MINOR 0
|
||||
#define QGLENGINE_VERSION_REVISION 0
|
||||
#define QGLENGINE_VERSION_BUILD 9999
|
||||
#define QGLENGINE_VERSION_SUFFIX "rc"
|
||||
#define QGLENGINE_VERSION_NAME "1.0.0_rc"
|
||||
#define QGLENGINE_MAKE_VERSION(major, minor, revision) ((major << 16) | (minor << 8) | revision)
|
||||
#define QGLENGINE_VERSION QGLENGINE_MAKE_VERSION(QGLENGINE_VERSION_MAJOR, QGLENGINE_VERSION_MINOR, QGLENGINE_VERSION_REVISION)
|
||||
|
||||
|
||||
// Tools
|
||||
|
||||
#define QGLENGINE_CMAKE_VERSION "3.17.1"
|
||||
#define QGLENGINE_CXX_COMPILER "GNU 8.1.0"
|
||||
#define QGLENGINE_BUILD_DATE "22.08.2020 00:51"
|
||||
#define QGLENGINE_ARCH "i386"
|
||||
|
||||
|
||||
#endif // QGLENGINE_QGLENGINE_VERSION_H
|
||||
@@ -9,18 +9,18 @@ qt_wrap(${SRC} HDRS out_HDR CPPS out_CPP QMS out_QM)
|
||||
file(GLOB PHS "*_p.h")
|
||||
list(REMOVE_ITEM out_HDR "${PHS}")
|
||||
import_version(${PROJECT_NAME} qglengine)
|
||||
set_deploy_property(${PROJECT_NAME} SHARED
|
||||
set_deploy_property(${PROJECT_NAME} ${qglengine_LIB_TYPE}
|
||||
LABEL "QGLEngine widgets library"
|
||||
FULLNAME "${_DOMAIN}.${PROJECT_NAME}"
|
||||
COMPANY "${_COMPANY}"
|
||||
FULLNAME "${qglengine_DOMAIN}.${PROJECT_NAME}"
|
||||
COMPANY "${qglengine_COMPANY}"
|
||||
INFO "QGLEngine widgets library")
|
||||
make_rc(${PROJECT_NAME} _RC)
|
||||
qt_add_library(${PROJECT_NAME} SHARED out_CPP ${_RC})
|
||||
qt_add_library(${PROJECT_NAME} ${qglengine_LIB_TYPE} out_CPP ${_RC})
|
||||
qt_generate_export_header(${PROJECT_NAME})
|
||||
list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h")
|
||||
qt_target_link_libraries(${PROJECT_NAME} qad_utils qad_widgets qglengine_core)
|
||||
qt_target_include_directories(${PROJECT_NAME} PRIVATE ${QAD_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}/../" "${CMAKE_CURRENT_SOURCE_DIR}/../core")
|
||||
qt_target_link_libraries(${PROJECT_NAME} QAD::Widgets qglengine_core)
|
||||
#qt_target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/../core")
|
||||
list(APPEND QT_MULTILIB_LIST ${PROJECT_NAME})
|
||||
copy_to_parent("")
|
||||
shstk_copy_to_parent()
|
||||
#message(STATUS "Building ${PROJECT_NAME}")
|
||||
sdk_install("qglengine" FALSE "${PROJECT_NAME}" "${out_HDR}" "${out_QM}")
|
||||
shstk_qt_install("qglengine" FALSE "${PROJECT_NAME}" "${out_HDR}" "${out_QM}")
|
||||
|
||||
Reference in New Issue
Block a user