#[[ Also create imported targets: * QAD::Utils * QAD::Widgets * QAD::Application * QAD::Blockview * QAD::Graphic * QAD::SQLTable * QAD::TouchWidgets * QAD::Doc 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 LIBPROJECT) include(QtWraps) endif() get_directory_property(hasParent PARENT_DIRECTORY) set(_SEARCH_DIR) if(WIN32) find_package(MinGW REQUIRED) endif() set(_QAD_INCDIR) set(_QAD_LIBDIR) if(MINGW_INCLUDE) list(APPEND _QAD_INCDIR "${MINGW_INCLUDE}/qad") list(APPEND _QAD_LIBDIR "${MINGW_LIB}") endif() if(CMAKE_CROSSCOMPILING) list(APPEND _QAD_INCDIR "${CMAKE_PREFIX_PATH}/include/qad") list(APPEND _QAD_LIBDIR "${CMAKE_PREFIX_PATH}/lib") #if (DEFINED ANDROID_PLATFORM) # list(APPEND _PIP_INCDIR ${CMAKE_PREFIX_PATH}/include/qad) # list(APPEND _PIP_LIBDIR ${CMAKE_PREFIX_PATH}/lib) #endif() include_directories(${CMAKE_PREFIX_PATH}/include) link_directories(${CMAKE_PREFIX_PATH}/lib) else() if(NOT WIN32) list(APPEND _QAD_INCDIR "/usr/include/qad" "/usr/local/include/qad") list(APPEND _QAD_LIBDIR "/usr/lib" "/usr/local/lib") endif() if(APPLE) include_directories(/usr/local/include) link_directories(/usr/local/lib) endif() endif() 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) set(_QAD_LIBS utils widgets application blockview graphic sql_table touch_widgets doc) set(_ITN_utils "Utils" ) set(_ITN_widgets "Widgets" ) set(_ITN_application "Application" ) set(_ITN_blockview "Blockview" ) set(_ITN_graphic "Graphic" ) set(_ITN_sql_table "SQLTable" ) set(_ITN_touch_widgets "TouchWidgets") set(_ITN_doc "Doc" ) set(_ITLL_widgets "QAD::Utils") set(_ITLL_application "QAD::Widgets") set(_ITLL_blockview "QAD::Widgets") set(_ITLL_graphic "QAD::Widgets") set(_ITLL_sql_table "QAD::Widgets") set(_ITLL_touch_widgets "") set(_ITLL_doc "") if(LIBPROJECT) set(QAD_INCLUDES ${QAD_DIR}) endif() foreach(_Q ${_QAD_LIBS}) string(TOUPPER ${_Q} _QU) if(LIBPROJECT) set(QAD_${_QU}_LIBRARY qad_${_Q}) list(APPEND QAD_INCLUDES ${QAD_DIR}/${_Q}) else() foreach(_v ${_QT_VERSIONS_}) find_library(QAD${_v}_${_QU}_LIBRARY qad_${_Q}${_v} HINTS ${_SEARCH_DIR}) set(MULTILIB_qad_${_Q}_SUFFIX_Qt${_v} ${_v}) if(hasParent) set(MULTILIB_qad_${_Q}_SUFFIX_Qt${_v} ${_v} PARENT_SCOPE) endif() #message(STATUS "MULTILIB_qad_${_Q}_SUFFIX_Qt${_v} = ${_v}") endforeach() endif() #message(STATUS "Library qad_${_Q}5 (${_QU}) -> ${QAD5_${_QU}_LIBRARY} found in ${_SEARCH_DIR}") list(APPEND QT_MULTILIB_LIST qad_${_Q}) endforeach() set(_PIQT_LIBS piqt piqt_utils) foreach(_Q ${_PIQT_LIBS}) foreach(_v ${_QT_VERSIONS_}) set(MULTILIB_${_Q}_SUFFIX_Qt${_v} ${_v}) if(hasParent) set(MULTILIB_${_Q}_SUFFIX_Qt${_v} ${_v} PARENT_SCOPE) endif() #message(STATUS "MULTILIB_${_Q}_SUFFIX_Qt${_v} = ${_v}") endforeach() #message(STATUS "Library ${_Q}5 (${_QU}) -> ${QAD5_${_QU}_LIBRARY} found in ${_SEARCH_DIR}") list(APPEND QT_MULTILIB_LIST ${_Q}) endforeach() foreach(_Q ${_QAD_LIBS}) string(TOUPPER ${_Q} _QU) set(_target QAD::${_ITN_${_Q}}) string(REPLACE ":" "_" _target_str "${_target}") foreach(_v ${_QT_VERSIONS_}) if(NOT TARGET ${_target}${_v}) set(_link_list) foreach(_l ${_ITLL_${_Q}}) list(APPEND _link_list ${_l}${_v}) endforeach() add_library(${_target}${_v} UNKNOWN IMPORTED) set_target_properties(${_target}${_v} PROPERTIES IMPORTED_LOCATION "${QAD${_v}_${_QU}_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${QAD_INCLUDES}" INTERFACE_LINK_LIBRARIES "${_link_list}") set(MULTILIB_${_target_str}_SUFFIX_Qt${_v} ${_v}) if(hasParent) set(MULTILIB_${_target_str}_SUFFIX_Qt${_v} ${_v} PARENT_SCOPE) endif() #message(STATUS "add imported ${_target}${_v}") #message(STATUS "add MULTILIB MULTILIB_${_target_str}_SUFFIX_Qt${_v} ${_v}") endif() endforeach() list(APPEND QT_MULTILIB_LIST ${_target}) endforeach() list(APPEND QT_MULTILIB_LIST qglview qglengine_core qglengine_widgets) foreach(_v ${_QT_VERSIONS_}) find_library(QGLVIEW${_v}_LIBRARY qglview${_v} ${_SEARCH_DIR}) set(MULTILIB_qglview_SUFFIX_Qt${_v} ${_v}) if(hasParent) set(MULTILIB_qglview_SUFFIX_Qt${_v} ${_v} PARENT_SCOPE) endif() endforeach() if(hasParent) set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE) endif() if(NOT LIBPROJECT) if(NOT QAD_VERSION) include(CheckSymbolExists) check_symbol_exists(QAD_VERSION_NAME "${QAD_INCLUDES}/qad_version.h" HAVE_QAD_VERSION) if (HAVE_QAD_VERSION) file(STRINGS "${QAD_INCLUDES}/qad_version.h" _VERSION REGEX "^[ \t]*#define[ \t]+QAD_VERSION_NAME+[ \t]+.*$") string(REGEX MATCH "\".*\"" _VERSION ${_VERSION}) string(LENGTH ${_VERSION} SL) math(EXPR SL ${SL}-2) string(SUBSTRING ${_VERSION} 1 ${SL} _VERSION) set(QAD_VERSION ${_VERSION} CACHE STRING "VERSION") else() message(FATAL_ERROR "Can`t find QAD version file!") endif() endif() if(QAD_FIND_VERSION VERSION_GREATER QAD_VERSION) message(FATAL_ERROR "QAD version ${QAD_VERSION} is available, but ${QAD_FIND_VERSION} requested!") endif() if (NOT _QAD_MSG) set(_QAD_MSG 1 CACHE BOOL "msg_qad" FORCE) message(STATUS "Found QAD (version \"${QAD_VERSION}\")") endif() endif()