Windows works
This commit is contained in:
@@ -1,20 +1,25 @@
|
|||||||
cmake_minimum_required(VERSION 3.0)
|
cmake_minimum_required(VERSION 3.0)
|
||||||
project(qglengine)
|
project(qglengine)
|
||||||
find_package(QAD REQUIRED)
|
find_package(QAD REQUIRED)
|
||||||
set(_DOMAIN "org.SHS")
|
|
||||||
set(_COMPANY "SHS")
|
|
||||||
find_qt(Qt5 Core Gui OpenGL Xml)
|
find_qt(Qt5 Core Gui OpenGL Xml)
|
||||||
if (NOT Qt5)
|
if (NOT Qt5)
|
||||||
message(WARNING "Building ${PROJECT_NAME} available only on Qt5!")
|
message(WARNING "Building ${PROJECT_NAME} available only on Qt5!")
|
||||||
else()
|
else()
|
||||||
find_package(OpenGL REQUIRED)
|
find_package(OpenGL REQUIRED)
|
||||||
set_version(qglengine
|
include(SHSTKQtMacros)
|
||||||
MAJOR 1
|
|
||||||
MINOR 0
|
set(qglengine_MAJOR 1)
|
||||||
REVISION 0
|
set(qglengine_MINOR 0)
|
||||||
BUILD "${BUILD_NUMBER}"
|
set(qglengine_REVISION 0)
|
||||||
SUFFIX rc
|
set(qglengine_SUFFIX "rc")
|
||||||
OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/core/qglengine_version.h")
|
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(SRC)
|
||||||
qt_sources(FSRC DIR "formats")
|
qt_sources(FSRC DIR "formats")
|
||||||
@@ -25,22 +30,23 @@ else()
|
|||||||
file(GLOB PHS "*_p.h" "formats/*_p.h" "core/*_p.h")
|
file(GLOB PHS "*_p.h" "formats/*_p.h" "core/*_p.h")
|
||||||
list(REMOVE_ITEM out_HDR "${PHS}")
|
list(REMOVE_ITEM out_HDR "${PHS}")
|
||||||
import_version(qglengine_core qglengine)
|
import_version(qglengine_core qglengine)
|
||||||
set_deploy_property(qglengine_core SHARED
|
set_deploy_property(qglengine_core ${qglengine_LIB_TYPE}
|
||||||
LABEL "QGLEngine core library"
|
LABEL "QGLEngine core library"
|
||||||
FULLNAME "${_DOMAIN}.qglengine_core"
|
FULLNAME "${qglengine_DOMAIN}.qglengine_core"
|
||||||
COMPANY "${_COMPANY}"
|
COMPANY "${qglengine_COMPANY}"
|
||||||
INFO "QGLEngine core library")
|
INFO "QGLEngine core library")
|
||||||
make_rc(qglengine_core _RC)
|
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)
|
qt_generate_export_header(qglengine_core)
|
||||||
list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/qglengine_core_export.h")
|
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")
|
list(APPEND out_HDR "${qglengine_VERSION_FILE}")
|
||||||
qt_target_link_libraries(qglengine_core qad_utils qad_widgets assimp ${OPENGL_LIBRARIES})
|
qt_target_include_directories(qglengine_core PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/core")
|
||||||
message(STATUS "Building QGLEngine version ${qglengine_VERSION} (SHARED)")
|
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)
|
list(APPEND QT_MULTILIB_LIST qglengine_core)
|
||||||
add_subdirectory(widgets)
|
add_subdirectory(widgets)
|
||||||
copy_to_parent("")
|
shstk_copy_to_parent()
|
||||||
sdk_install("qglengine" FALSE "qglengine_core" "${out_HDR}" "${out_QM}")
|
shstk_qt_install("qglengine" FALSE "qglengine_core" "${out_HDR}" "${out_QM}")
|
||||||
if (NOT DEFINED ANDROID_PLATFORM)
|
if (NOT DEFINED ANDROID_PLATFORM)
|
||||||
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/plugin")
|
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/plugin")
|
||||||
#add_subdirectory(plugin)
|
#add_subdirectory(plugin)
|
||||||
@@ -52,4 +58,10 @@ else()
|
|||||||
qt_add_executable(qglengine_test test_CPP)
|
qt_add_executable(qglengine_test test_CPP)
|
||||||
qt_target_link_libraries(qglengine_test qglengine_core qglengine_widgets)
|
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")
|
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()
|
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
|
#endif
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "qglengine_version.h"
|
#include "qglengine_version.h"
|
||||||
|
#include "qglengine_core_export.h"
|
||||||
|
|
||||||
|
|
||||||
//#ifdef WINDOWS
|
//#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")
|
file(GLOB PHS "*_p.h")
|
||||||
list(REMOVE_ITEM out_HDR "${PHS}")
|
list(REMOVE_ITEM out_HDR "${PHS}")
|
||||||
import_version(${PROJECT_NAME} qglengine)
|
import_version(${PROJECT_NAME} qglengine)
|
||||||
set_deploy_property(${PROJECT_NAME} SHARED
|
set_deploy_property(${PROJECT_NAME} ${qglengine_LIB_TYPE}
|
||||||
LABEL "QGLEngine widgets library"
|
LABEL "QGLEngine widgets library"
|
||||||
FULLNAME "${_DOMAIN}.${PROJECT_NAME}"
|
FULLNAME "${qglengine_DOMAIN}.${PROJECT_NAME}"
|
||||||
COMPANY "${_COMPANY}"
|
COMPANY "${qglengine_COMPANY}"
|
||||||
INFO "QGLEngine widgets library")
|
INFO "QGLEngine widgets library")
|
||||||
make_rc(${PROJECT_NAME} _RC)
|
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})
|
qt_generate_export_header(${PROJECT_NAME})
|
||||||
list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h")
|
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_link_libraries(${PROJECT_NAME} QAD::Widgets qglengine_core)
|
||||||
qt_target_include_directories(${PROJECT_NAME} PRIVATE ${QAD_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}/../" "${CMAKE_CURRENT_SOURCE_DIR}/../core")
|
#qt_target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/../core")
|
||||||
list(APPEND QT_MULTILIB_LIST ${PROJECT_NAME})
|
list(APPEND QT_MULTILIB_LIST ${PROJECT_NAME})
|
||||||
copy_to_parent("")
|
shstk_copy_to_parent()
|
||||||
#message(STATUS "Building ${PROJECT_NAME}")
|
#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