From acef4db1dbf75b31c35baed5102a42916c522108 Mon Sep 17 00:00:00 2001 From: Ivan Pelipenko Date: Sat, 22 Aug 2020 00:58:46 +0300 Subject: [PATCH] QAD and PIQt overall messages (as at recent PIP) --- CMakeLists.txt | 97 ++++++++++++++++++++++++++++++-- SDKMacros.cmake | 24 +++++--- piqt/CMakeLists.txt | 38 +------------ qad/CMakeLists.txt | 28 +-------- qad/cmake/QADMacros.cmake | 8 ++- qglengine/CMakeLists.txt | 2 +- qglengine/widgets/CMakeLists.txt | 2 +- 7 files changed, 118 insertions(+), 81 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 68e7ed9..c62ba4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,9 @@ project(libs) set(PIP_CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/pip/cmake") set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" "${PIP_CMAKE_MODULE_PATH}" "${CMAKE_CURRENT_SOURCE_DIR}/qad/cmake") set(LIBPROJECT 1) +set(_qt_libs ) +set(_qt_apps ) +set(_qt_plugs) include(GenerateExportHeader) include(SDKMacros) include(QADMacros) @@ -21,11 +24,14 @@ if("x${BUILD_NUMBER}" STREQUAL "x") set(BUILD_NUMBER 0) endif() + if(STATIC_LIB) set(QAD_LIB_TYPE STATIC) add_definitions(-DQAD_STATIC_DEFINE) + set(QAD_LIB_TYPE_MSG "Static") else() set(QAD_LIB_TYPE SHARED) + set(QAD_LIB_TYPE_MSG "Shared") endif() set(_QAD_MAJOR 1) @@ -45,6 +51,39 @@ set_version(QAD set_deploy_property(QAD ${QAD_LIB_TYPE} FULLNAME "${_QAD_DOMAIN}.*" COMPANY "${_QAD_COMPANY}") + + +if(STATIC_LIB) + set(PIQt_LIB_TYPE STATIC) + add_definitions(-DPIQt_STATIC_DEFINE) + set(PIQt_LIB_TYPE_MSG "Static") +else() + set(PIQt_LIB_TYPE SHARED) + set(PIQt_LIB_TYPE_MSG "Shared") +endif() + +set(_PIQt_MAJOR 1) +set(_PIQt_MINOR 0) +set(_PIQt_REVISION 0) +set(_PIQt_SUFFIX ) +set(_PIQt_COMPANY SHS) +set(_PIQt_DOMAIN org.SHS) +if(NOT DEFINED BUILD_NUMBER) + set(BUILD_NUMBER 9999) +endif() +set(PIQt_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/piqt/piqt_version.h") +set_version(PIQt + MAJOR "${_PIQt_MAJOR}" + MINOR "${_PIQt_MINOR}" + REVISION "${_PIQt_REVISION}" + BUILD "${BUILD_NUMBER}" + SUFFIX "${_PIQt_SUFFIX}" + OUTPUT "${PIQt_VERSION_FILE}") +set_deploy_property(PIQt ${_PIQt_LIB_TYPE} + FULLNAME "${_PIQt_DOMAIN}.*" + COMPANY "${_PIQt_COMPANY}") + + include_directories(${CMAKE_CURRENT_BINARY_DIR}/pip) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/qad) include_directories(${CMAKE_CURRENT_BINARY_DIR}/piqt) @@ -168,11 +207,11 @@ else() endif() endforeach() - if(UTILS) - message(STATUS "Building with utils") - else() - message(STATUS "Building only libraries") - endif() + #if(UTILS) + # message(STATUS "Building with utils") + #else() + # message(STATUS "Building only libraries") + #endif() add_subdirectory(pip) foreach(F ${PIP_MAIN_FOLDERS}) @@ -182,7 +221,7 @@ else() include_directories("${CMAKE_CURRENT_SOURCE_DIR}/cd_utils" "${CMAKE_CURRENT_BINARY_DIR}/cd_utils") set(_DIRS) if (SomeQtFound) - message(STATUS "Building Qt-derived targets for ${QtVersions}") + #message(STATUS "Building Qt-derived targets for ${QtVersions}") add_subdirectory(qad) include_directories(${qad_includes}) add_subdirectory(piqt) @@ -200,6 +239,52 @@ else() list(APPEND QT_MULTILIB_LIST ${_D}) add_subdirectory(${_D}) endforeach(_D) + + macro(align_list _list _out) + set(_max_len 0) + foreach(_m ${_list}) + string(LENGTH "${_m}" _clen) + if (_clen GREATER _max_len) + set(_max_len ${_clen}) + endif() + endforeach() + set(${_out}) + foreach(_m ${_list}) + set(_am "${_m}") + while(TRUE) + string(LENGTH "${_am}" _clen) + if (_clen GREATER_EQUAL ${_max_len}) + break() + endif() + string(APPEND _am " ") + endwhile() + list(APPEND ${_out} "${_am}") + endforeach() + endmacro() + + macro(print_list _list _name) + message("") + if (NOT "x${_list}" STREQUAL "x") + message(" ${_name}:") + #align_list("${_list}" _alist) + foreach(_m ${_list}) + message(" * ${_m}") + endforeach() + endif() + endmacro() + + message("----------Qt-----------") + message(" Build for ${QtVersions}") + message(" QAD Version: ${QAD_VERSION}") + message(" QAD Linkage: ${QAD_LIB_TYPE_MSG}") + message(" PIQt Version: ${PIQt_VERSION}") + message(" PIQt Linkage: ${PIQt_LIB_TYPE_MSG}") + print_list("${_qt_libs}" "Libraries") + print_list("${_qt_apps}" "Applications") + print_list("${_qt_plugs}" "Plugins") + message("-----------------------") + message("") + else() message(STATUS "None of Qt found, skip Qt-derived targets") endif() diff --git a/SDKMacros.cmake b/SDKMacros.cmake index 73f89a7..de07b6a 100644 --- a/SDKMacros.cmake +++ b/SDKMacros.cmake @@ -52,6 +52,20 @@ macro(sdk_install _DIR IS_APP _TARGET _H_FILES _QM_FILES) endmacro() +macro(copy_to_parent _inc_var) + set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE) + set(_qt_libs ${_qt_libs} PARENT_SCOPE) + set(_qt_apps ${_qt_apps} PARENT_SCOPE) + set(_qt_plugs ${_qt_plugs} PARENT_SCOPE) + if (NOT "x${_inc_var}" STREQUAL "x") + set(${_inc_var} ${${_inc_var}} PARENT_SCOPE) + endif() + if (LIB) + set(_ALL_TARGETS ${_ALL_TARGETS} PARENT_SCOPE) + endif() +endmacro() + + macro(add_directories_with_include multilib_prefix) set(DIRS) file(GLOB _dl "[^.]*") @@ -75,11 +89,7 @@ macro(add_directories_with_include multilib_prefix) add_subdirectory(${_d}) endforeach() - set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE) - set(${inc_var} ${${inc_var}} PARENT_SCOPE) - if (LIB) - set(_ALL_TARGETS ${_ALL_TARGETS} PARENT_SCOPE) - endif() + copy_to_parent(${inc_var}) endmacro() @@ -92,8 +102,6 @@ macro(add_directories multilib_prefix) endif() endforeach() - if (LIB) - set(_ALL_TARGETS ${_ALL_TARGETS} PARENT_SCOPE) - endif() + copy_to_parent(${multilib_prefix}includes) endmacro() diff --git a/piqt/CMakeLists.txt b/piqt/CMakeLists.txt index 9366a34..08e8ef9 100644 --- a/piqt/CMakeLists.txt +++ b/piqt/CMakeLists.txt @@ -1,35 +1,5 @@ cmake_minimum_required(VERSION 3.0) cmake_policy(SET CMP0017 NEW) # need include() with .cmake -set(_PIQt_MAJOR 1) -set(_PIQt_MINOR 0) -set(_PIQt_REVISION 0) -set(_PIQt_SUFFIX ) -set(_PIQt_COMPANY SHS) -set(_PIQt_DOMAIN org.SHS) -if(NOT DEFINED BUILD_NUMBER) - set(BUILD_NUMBER 9999) -endif() - -include(QADMacros) - -if(STATIC_LIB) - set(PIQt_LIB_TYPE STATIC) - add_definitions(-DPIQt_STATIC_DEFINE) -else() - set(PIQt_LIB_TYPE SHARED) -endif() - -set(PIQt_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/piqt_version.h") -set_version(PIQt - MAJOR "${_PIQt_MAJOR}" - MINOR "${_PIQt_MINOR}" - REVISION "${_PIQt_REVISION}" - BUILD "${BUILD_NUMBER}" - SUFFIX "${_PIQt_SUFFIX}" - OUTPUT "${PIQt_VERSION_FILE}") -set_deploy_property(PIQt ${_PIQt_LIB_TYPE} - FULLNAME "${_PIQt_DOMAIN}.*" - COMPANY "${_PIQt_COMPANY}") macro(piqt_library NAME _MODULES _LIBS) _qt_project(${NAME} FALSE "PIQt" "${_MODULES}" "pip;${_LIBS}" ${ARGN}) @@ -48,10 +18,4 @@ if (UTILS) add_subdirectory(utils) endif() - -set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE) -set(piqt_includes ${piqt_includes} PARENT_SCOPE) -if (LIB) - set(_ALL_TARGETS ${_ALL_TARGETS} PARENT_SCOPE) -endif() - +copy_to_parent(piqt_includes) diff --git a/qad/CMakeLists.txt b/qad/CMakeLists.txt index df0d80e..05f1d54 100644 --- a/qad/CMakeLists.txt +++ b/qad/CMakeLists.txt @@ -16,27 +16,7 @@ endif() if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/qad_version.h") file(REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/qad_version.h") endif() -message(STATUS "Building QAD version ${QAD_VERSION} (${QAD_LIB_TYPE})") - - -if (NOT LIBPROJECT) - if (LIB) - if(WIN32) - if(MINGW) - set(CMAKE_INSTALL_PREFIX ${MINGW_DIR}) - endif() - else() - if (DEFINED ANDROID_PLATFORM) - set(CMAKE_INSTALL_PREFIX ${ANDROID_SYSTEM_LIBRARY_PATH}/usr) - else() - set(CMAKE_INSTALL_PREFIX /usr/local) - endif() - endif() - message(STATUS "Install ${PROJECT_NAME} to system \"${CMAKE_INSTALL_PREFIX}\"") - else() - message(STATUS "Install ${PROJECT_NAME} to local \"bin\", \"lib\" and \"include\"") - endif() -endif() +#message(STATUS "Building QAD version ${QAD_VERSION} (${QAD_LIB_TYPE})") file(GLOB CMAKES "cmake/*.cmake" "cmake/*.in") @@ -56,9 +36,5 @@ if (UTILS) add_subdirectory(utils) endif() -set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE) -set(qad_includes ${qad_includes} PARENT_SCOPE) -if (LIB) - set(_ALL_TARGETS ${_ALL_TARGETS} PARENT_SCOPE) -endif() +copy_to_parent(qad_includes) diff --git a/qad/cmake/QADMacros.cmake b/qad/cmake/QADMacros.cmake index c799ce3..3f1b73d 100644 --- a/qad/cmake/QADMacros.cmake +++ b/qad/cmake/QADMacros.cmake @@ -23,6 +23,8 @@ macro(_qt_plugin NAME _MODULES _LIBS) else() qt_install(TARGETS ${PROJ_NAME} DESTINATION QtPlugins/designer) endif() + list(APPEND _qt_plugs ${NAME}) + copy_to_parent("") endif() endif() endmacro() @@ -35,12 +37,14 @@ macro(_qt_project NAME IS_APP DOMAIN _MODULES _LIBS) import_version(${PROJ_NAME} ${DOMAIN}) import_deploy_properties(${PROJ_NAME} ${DOMAIN}) if (${IS_APP}) + list(APPEND _qt_apps ${PROJ_NAME}) set_deploy_property(${PROJ_NAME} LABEL ${PROJ_NAME} FULLNAME "${_${DOMAIN}_DOMAIN}.${PROJ_NAME}" INFO "${APP_INFO}" ICON "${APP_ICON}") else() + list(APPEND _qt_libs ${PROJ_NAME}) set_deploy_property(${PROJ_NAME} SHARED LABEL ${PROJ_NAME} FULLNAME "${_${DOMAIN}_DOMAIN}.${PROJ_NAME}" @@ -60,12 +64,12 @@ macro(_qt_project NAME IS_APP DOMAIN _MODULES _LIBS) endif() qt_target_link_libraries(${PROJ_NAME} ${_LIBS}) list(APPEND QT_MULTILIB_LIST ${PROJ_NAME}) - set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE) - message(STATUS "Building ${PROJ_NAME}") + #message(STATUS "Building ${PROJ_NAME}") if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/plugin") set(_${NAME}_PLUGIN_LIBS "${_LIBS}") add_subdirectory(plugin) endif() + copy_to_parent("") endmacro() diff --git a/qglengine/CMakeLists.txt b/qglengine/CMakeLists.txt index b7e6f0f..2d483f9 100644 --- a/qglengine/CMakeLists.txt +++ b/qglengine/CMakeLists.txt @@ -39,7 +39,7 @@ else() message(STATUS "Building QGLEngine version ${qglengine_VERSION} (SHARED)") list(APPEND QT_MULTILIB_LIST qglengine_core) add_subdirectory(widgets) - set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE) + copy_to_parent("") sdk_install("qglengine" FALSE "qglengine_core" "${out_HDR}" "${out_QM}") if (NOT DEFINED ANDROID_PLATFORM) if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/plugin") diff --git a/qglengine/widgets/CMakeLists.txt b/qglengine/widgets/CMakeLists.txt index 731a819..31b3b2e 100644 --- a/qglengine/widgets/CMakeLists.txt +++ b/qglengine/widgets/CMakeLists.txt @@ -21,6 +21,6 @@ list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h") qt_target_link_libraries(${PROJECT_NAME} qad_utils qad_widgets qglengine_core) qt_target_include_directories(${PROJECT_NAME} PRIVATE ${QAD_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}/../" "${CMAKE_CURRENT_SOURCE_DIR}/../core") list(APPEND QT_MULTILIB_LIST ${PROJECT_NAME}) -set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE) +copy_to_parent("") #message(STATUS "Building ${PROJECT_NAME}") sdk_install("qglengine" FALSE "${PROJECT_NAME}" "${out_HDR}" "${out_QM}")