Windows works
This commit is contained in:
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 "")
|
||||
Reference in New Issue
Block a user