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