Files
qglengine/cmake/FindQGLEngine.cmake
2022-08-07 22:07:56 +03:00

104 lines
3.0 KiB
CMake

#[[
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 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 "")