refactoring...

This commit is contained in:
2020-09-05 01:22:09 +03:00
parent 5a49104273
commit 23b275d17d
65 changed files with 193 additions and 214 deletions

View File

@@ -1,16 +1,8 @@
#[[
Create imported targets:
* QAD::Utils
* QAD::Widgets
* QAD::Application
* QAD::Blockview
* QAD::Graphic
* QAD::SQLTable
* QAD::TouchWidgets
* QAD::Doc
* QAD::PIQt
* QAD::PIQtUtils
* CD::Core
* CD::Qt
These targets include directories and dependencies
@@ -18,124 +10,128 @@ 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()
find_package(PIP REQUIRED)
find_package(QAD QUIET)
include(QtWraps)
include(SHSTKMacros)
shstk_is_parent_exists(hasParent PARENT_DIRECTORY)
set(_SEARCH_DIR)
if(WIN32)
find_package(MinGW REQUIRED)
shstk_set_find_dirs(cd)
set(_SEARCH_DIR ${cd_LIBDIR})
if (NOT BUILDING_cd)
list(APPEND _SEARCH_DIR $ENV{SMSDK_DIR}/lib)
shstk_find_header(cd CD "cd_version.h" "")
endif()
shstk_set_find_dirs(qad)
if (NOT BUILDING_qad)
find_file(QAD_H_INCLUDE "qad_types.h" HINTS ${PIP_DIR}/include/qad ${qad_INCDIR} $ENV{SMSDK_DIR}/include/qad)
#if (DEFINED ANDROID_PLATFORM)
# set(QAD_INCLUDES ${ANDROID_SYSTEM_LIBRARY_PATH}/usr/include/qad)
#else()
get_filename_component(QAD_INCLUDES ${QAD_H_INCLUDE} PATH)
#endif()
set(_SEARCH_DIR ${qad_LIBDIR} $ENV{SMSDK_DIR}/lib)
shstk_find_header(QAD "qad_version.h" "")
if(CD_FIND_VERSION VERSION_GREATER CD_VERSION)
message(FATAL_ERROR "CD version ${CD_VERSION} is available, but ${CD_FIND_VERSION} requested!")
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")
if (PIP_FOUND OR BUILDING_pip)
list(APPEND __libs "piqt;piqt_utils")
endif()
set(__libs "core")
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_piqt PIQt )
set(__module_piqt_utils PIQtUtils )
set(__module_core Core)
set( __inc_core "")
set(__libs_core "")
set(__deps_core "PIP")
foreach (_l ${__libs})
set( __inc_${_l} "")
set(__deps_${_l} "")
set(__libs_${_l} "")
endforeach()
if (BUILDING_cd)
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_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}})
string(REPLACE ":" "_" _m_str "${_m}")
if((NOT TARGET QAD::${_m}${_v}) AND TARGET qad_${_l}${_v})
#message("alias QAD::${_m}${_v} = qad_${_l}${_v}")
set(MULTILIB_qad_${_l}_SUFFIX_Qt${_v} ${_v} CACHE STRING "")
add_library(QAD::${_m}${_v} ALIAS qad_${_l}${_v})
endif()
endforeach()
list(APPEND QT_MULTILIB_LIST QAD::${_m})
if (NOT SET_TARGETS_cd)
message("create aliases")
foreach (_l ${__libs})
set(_m ${__module_${_l}})
if((NOT TARGET CD::${_m}) AND TARGET cd_${_l})
message("alias CD::${_m} = cd_${_l}")
add_library(CD::${_m} ALIAS cd_${_l})
endif()
endforeach()
endif()
set(QAD_FOUND ON CACHE BOOL "")
else()
#message("create interfaces")
foreach(_l ${__libs})
foreach(_v ${_QT_VERSIONS_})
set(_m ${__module_${_l}})
string(REPLACE ":" "_" _m_str "${_m}")
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_${_l}_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})
message("create interfaces")
foreach (_l ${__libs})
set(_m ${__module_${_l}})
find_library(CD_LIBRARY_${_l} cd_${_l} HINTS ${_SEARCH_DIR})
if((NOT TARGET CD::${_m}) AND CD_LIBRARY_${_l})
add_library(CD::${_m} UNKNOWN IMPORTED)
set_target_properties(CD::${_m} PROPERTIES
IMPORTED_LOCATION "${CD_LIBRARY_${_l}}"
INTERFACE_INCLUDE_DIRECTORIES "${cd_INCLUDES};${__inc_${_l}}"
INTERFACE_LINK_LIBRARIES "${__deps_${_l}};${__libs_${_l}}")
message("imported CD::${_m} = ${CD_LIBRARY_${_l}} ${__deps_${_l}} ${__libs_${_l}} ${__inc_${_l}}")
endif()
endforeach()
endif()
if (QAD_FOUND OR BUILDING_qad)
set(__libs "qt")
set(__module_qt Qt)
set( __inc_qt "")
set(__libs_qt "")
set(__deps_qt "QAD::PIQt;QAD::Graphic;CD::Core")
if (BUILDING_cd)
if (NOT SET_TARGETS_cd)
set(SET_TARGETS_cd ON CACHE BOOL "")
message("create aliases")
foreach(_l ${__libs})
foreach(_v ${_QT_VERSIONS_})
set(_m ${__module_${_l}})
if((NOT TARGET CD::${_m}${_v}) AND TARGET cd_${_l}${_v})
message("alias CD::${_m}${_v} = cd_${_l}${_v}")
set(MULTILIB_CD__${_m}_SUFFIX_Qt${_v} ${_v} CACHE STRING "")
add_library(CD::${_m}${_v} ALIAS cd_${_l}${_v})
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()
list(APPEND QT_MULTILIB_LIST CD::${_m})
endforeach()
endif()
else()
message("create interfaces")
foreach(_l ${__libs})
foreach(_v ${_QT_VERSIONS_})
set(_m ${__module_${_l}})
find_library(CD_LIBRARY_${_l}${_v} cd_${_l}${_v} HINTS ${cd_LIBDIR})
#message("found ${_l}${_v} = ${CD_LIBRARY_${_l}${_v}}")
if((NOT TARGET CD::${_m}${_v}) AND CD_LIBRARY_${_l}${_v})
message("imported CD::${_m}${_v} = ${CD_LIBRARY_${_l}${_v}}")
set(MULTILIB_CD__${_m}_SUFFIX_Qt${_v} ${_v} CACHE STRING "")
add_library(CD::${_m}${_v} UNKNOWN IMPORTED)
set(_deps)
foreach (_d ${__deps_${_l}})
if (${_d} MATCHES "CD::*")
list(APPEND _deps ${_d}${_v})
else()
list(APPEND _deps ${_d})
endif()
endforeach()
set_target_properties(CD::${_m}${_v} PROPERTIES
IMPORTED_LOCATION "${CD_LIBRARY_${_l}${_v}}"
INTERFACE_INCLUDE_DIRECTORIES "${cd_INCLUDES}"
INTERFACE_LINK_LIBRARIES "${_deps}")
endif()
endforeach()
list(APPEND QT_MULTILIB_LIST CD::${_m})
endforeach()
list(APPEND QT_MULTILIB_LIST QAD::${_m})
endforeach()
endif()
if(hasParent)
set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE)
endif()
endif()
if(hasParent)
set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE)
endif()
set(QAD_FOUND ON CACHE BOOL "")
set(CD_FOUND ON CACHE BOOL "")