137 lines
3.7 KiB
CMake
137 lines
3.7 KiB
CMake
#[[
|
|
|
|
Create imported targets:
|
|
* QAD::Utils
|
|
* QAD::Widgets
|
|
* QAD::Application
|
|
* QAD::Blockview
|
|
* QAD::Graphic
|
|
* QAD::SQLTable
|
|
* QAD::TouchWidgets
|
|
* QAD::Doc
|
|
* QAD::PIQt
|
|
* QAD::PIQtUtils
|
|
|
|
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
|
|
|
|
if(NOT BUILDING_QAD)
|
|
find_package(PIP QUIET)
|
|
include(QtWraps)
|
|
include(SHSTKMacros)
|
|
endif()
|
|
|
|
shstk_is_parent_exists(hasParent PARENT_DIRECTORY)
|
|
|
|
shstk_set_find_dirs(QAD)
|
|
|
|
qad_find_qt(Core QUIET)
|
|
if(NOT SOME_QT_FOUND)
|
|
message(WARNING "No Qt found, please install Qt")
|
|
set(QAD_FOUND OFF CACHE BOOL "")
|
|
return()
|
|
endif()
|
|
|
|
if (NOT BUILDING_QAD)
|
|
shstk_find_header(QAD "qad_version.h" ${QAD_INCDIR})
|
|
endif()
|
|
|
|
if(QAD_FIND_VERSION VERSION_GREATER QAD_VERSION)
|
|
message(FATAL_ERROR "QAD version ${QAD_VERSION} is available, but ${QAD_FIND_VERSION} requested!")
|
|
endif()
|
|
|
|
set(__libs "utils;widgets;application;blockview;graphic;sql_table;touch_widgets;doc;map")
|
|
if (PIP_FOUND OR BUILDING_PIP)
|
|
list(APPEND __libs "piqt;piqt_utils")
|
|
endif()
|
|
|
|
set(__module_utils Utils )
|
|
set(__module_widgets Widgets )
|
|
set(__module_application Application )
|
|
set(__module_blockview Blockview )
|
|
set(__module_graphic Graphic )
|
|
set(__module_sql_table SQLTable )
|
|
set(__module_touch_widgets TouchWidgets )
|
|
set(__module_doc Doc )
|
|
set(__module_map Map )
|
|
set(__module_piqt PIQt )
|
|
set(__module_piqt_utils PIQtUtils )
|
|
|
|
foreach (_l ${__libs})
|
|
set( __inc_${_l} "")
|
|
set(__deps_${_l} "")
|
|
set(__libs_${_l} "")
|
|
endforeach()
|
|
|
|
set(__deps_widgets "QAD::Utils")
|
|
set(__deps_application "QAD::Widgets")
|
|
set(__deps_blockview "QAD::Widgets")
|
|
set(__deps_graphic "QAD::Widgets")
|
|
set(__deps_sql_table "QAD::Widgets")
|
|
set(__deps_map "QAD::Utils")
|
|
set(__deps_piqt "QAD::Widgets;PIP")
|
|
set(__deps_piqt_utils "QAD::Blockview;QAD::PIQt")
|
|
|
|
#message("find QAD ${BUILDING_QAD}")
|
|
|
|
if (BUILDING_QAD)
|
|
|
|
if (NOT SET_TARGETS_QAD)
|
|
set(SET_TARGETS_QAD ON CACHE BOOL "")
|
|
#message("create aliases")
|
|
foreach(_l ${__libs})
|
|
foreach(_v ${_QT_VERSIONS_})
|
|
set(_m ${__module_${_l}})
|
|
if((NOT TARGET QAD::${_m}${_v}) AND TARGET qad_${_l}${_v})
|
|
#message("alias QAD::${_m}${_v} = qad_${_l}${_v}")
|
|
set(MULTILIB_QAD__${_m}_SUFFIX_Qt${_v} ${_v} CACHE STRING "")
|
|
add_library(QAD::${_m}${_v} ALIAS qad_${_l}${_v})
|
|
endif()
|
|
endforeach()
|
|
list(APPEND QT_MULTILIB_LIST QAD::${_m})
|
|
endforeach()
|
|
endif()
|
|
|
|
set(QAD_FOUND ON CACHE BOOL "")
|
|
|
|
else()
|
|
|
|
#message("create interfaces")
|
|
foreach(_l ${__libs})
|
|
foreach(_v ${_QT_VERSIONS_})
|
|
set(_m ${__module_${_l}})
|
|
find_library(QAD_LIBRARY_${_l}${_v} qad_${_l}${_v} HINTS ${QAD_LIBDIR})
|
|
#message("found ${_l}${_v} = ${QAD_LIBRARY_${_l}${_v}}")
|
|
if((NOT TARGET QAD::${_m}${_v}) AND QAD_LIBRARY_${_l}${_v})
|
|
#message("imported QAD::${_m}${_v} = ${QAD_LIBRARY_${_l}${_v}}")
|
|
set(MULTILIB_QAD__${_m}_SUFFIX_Qt${_v} ${_v} CACHE STRING "")
|
|
add_library(QAD::${_m}${_v} UNKNOWN IMPORTED)
|
|
set(_deps)
|
|
foreach (_d ${__deps_${_l}})
|
|
if (${_d} MATCHES "QAD::.*")
|
|
list(APPEND _deps ${_d}${_v})
|
|
else()
|
|
list(APPEND _deps ${_d})
|
|
endif()
|
|
endforeach()
|
|
set_target_properties(QAD::${_m}${_v} PROPERTIES
|
|
IMPORTED_LOCATION "${QAD_LIBRARY_${_l}${_v}}"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${QAD_INCLUDES}"
|
|
INTERFACE_LINK_LIBRARIES "${_deps}")
|
|
endif()
|
|
endforeach()
|
|
list(APPEND QT_MULTILIB_LIST QAD::${_m})
|
|
endforeach()
|
|
|
|
endif()
|
|
|
|
if(hasParent)
|
|
set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE)
|
|
endif()
|
|
|
|
set(QAD_FOUND ON CACHE BOOL "")
|