#[[ shstk_qad_install(dir is_app target h_files qm_files) shstk_qad_plugin(name modules libs) shstk_qad_project(name is_app domain modules libs) ]] set(_ok TRUE) if (NOT BUILDING_qad) include(SHSTKMacros) include(QtWraps) qad_find_qt(Core QUIET) find_package(QAD REQUIRED) set(_ok ${QAD_FOUND}) endif() if (_ok) macro(shstk_qt_founded _out) qad_find_qt(Core QUIET) set(${_out}) foreach(_v ${_QT_VERSIONS_}) #message("Qt${_v} -> ${LOCAL_FOUND${_v}}") if (LOCAL_FOUND${_v}) list(APPEND ${_out} Qt${_v}) endif() endforeach() endmacro() macro(shstk_qad_install _dir is_app _target _h_files _qm_files) #message("QM=${_qm_files}") if((NOT ${is_app}) AND (NOT "x${_h_files}" STREQUAL "x")) if(LOCAL) install(FILES ${_h_files} DESTINATION include/${_dir}) else() if(WIN32) install(FILES ${_h_files} DESTINATION ${MINGW_INCLUDE}/${_dir}) else() install(FILES ${_h_files} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${_dir}) endif() endif() endif() if(NOT "x${_qm_files}" STREQUAL "x") if(LOCAL) qad_install(LANG ${_qm_files} DESTINATION lang) else() qad_install(LANG ${_qm_files} DESTINATION QtLang) endif() endif() if (NOT "x${_target}" STREQUAL "x") if(LOCAL) if(${is_app}) qad_install(TARGETS ${_target} DESTINATION bin) else() if(WIN32) qad_install(TARGETS ${_target} RUNTIME DESTINATION bin) qad_install(TARGETS ${_target} ARCHIVE DESTINATION lib) else() qad_install(TARGETS ${_target} DESTINATION lib) endif() endif() else() if(WIN32) if (${is_app}) qad_install(TARGETS ${_target} DESTINATION ${MINGW_BIN}) qad_install(TARGETS ${_target} DESTINATION QtBin) else() qad_install(TARGETS ${_target} ARCHIVE DESTINATION ${MINGW_LIB}) qad_install(TARGETS ${_target} RUNTIME DESTINATION ${MINGW_BIN}) qad_install(TARGETS ${_target} RUNTIME DESTINATION QtBin) endif() else() if (${is_app}) qad_install(TARGETS ${_target} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) else() qad_install(TARGETS ${_target} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) endif() endif() endif() endif() endmacro() macro(shstk_qad_plugin NAME _MODULES _LIBS) if (NOT STATIC_LIB) if(DESIGNER_PLUGINS) set(PROJ_NAME ${NAME}_plugin) include_directories("..") add_definitions(-DQT_PLUGIN) add_definitions(-DQT_NO_DEBUG) add_definitions(-DQT_SHARED) add_definitions(-DQDESIGNER_EXPORT_WIDGETS) qad_find_qt(${QtVersions} Core Designer ${_MODULES}) qad_sources(SRC) qad_wrap(${SRC} CPPS out_CPP QMS out_QM) qad_add_library(${PROJ_NAME} SHARED out_CPP) qad_target_link_libraries(${PROJ_NAME} ${_LIBS} ${_${NAME}_PLUGIN_LIBS}) if (WIN32) qad_install(TARGETS ${PROJ_NAME} RUNTIME DESTINATION QtPlugins/designer) else() qad_install(TARGETS ${PROJ_NAME} DESTINATION QtPlugins/designer) endif() list(APPEND _qt_plugs ${NAME}) shstk_copy_to_parent() endif() endif() endmacro() macro(shstk_qad_project NAME IS_APP DOMAIN _MODULES _LIBS) project(${NAME}) #message("qad_find_qt ${NAME} ${IS_APP} \"${QtVersions}\" \"${_MODULES}\"") qad_find_qt(${QtVersions} Core ${_MODULES}) qad_sources(SRC) import_version(${PROJECT_NAME} ${DOMAIN}) import_deploy_properties(${PROJECT_NAME} ${DOMAIN}) if (${IS_APP}) list(APPEND _qt_apps ${PROJECT_NAME}) set_deploy_property(${PROJECT_NAME} LABEL ${PROJECT_NAME} FULLNAME "${${DOMAIN}_DOMAIN}.${PROJECT_NAME}" INFO "${APP_INFO}" ICON "${APP_ICON}") else() list(APPEND _qt_libs ${PROJECT_NAME}) set_deploy_property(${PROJECT_NAME} SHARED LABEL ${PROJECT_NAME} FULLNAME "${${DOMAIN}_DOMAIN}.${PROJECT_NAME}" INFO "${DOMAIN} ${NAME} library") endif() make_rc(${PROJECT_NAME} out_RC) qad_wrap(${SRC} HDRS out_HDR CPPS out_CPP QMS out_QM ${out_RC}) #message("add_exe proj ${NAME}, ${${DOMAIN}_DOMAIN}.${PROJECT_NAME}") if (${IS_APP}) set(_DEBUG_FLAG_) if (NOT CMAKE_BUILD_TYPE MATCHES Debug) set(_DEBUG_FLAG_ "WIN32") endif() qad_add_executable(${PROJECT_NAME} ${_DEBUG_FLAG_} out_CPP ${${DOMAIN}_EXPORT_HEADER} ${ARGN}) else() set(_libtype SHARED) if (NOT "x${${DOMAIN}_LIB_TYPE}" STREQUAL "x") set(_libtype ${${DOMAIN}_LIB_TYPE}) endif() qad_add_library(${PROJECT_NAME} ${_libtype} out_CPP ${${DOMAIN}_EXPORT_HEADER} ${ARGN}) #if(NOT ${DOMAIN}_STATIC_LIB) # qad_target_compile_definitions(${PROJECT_NAME} PRIVATE ${DOMAIN}_SHARED_DEFINE) #endif() qad_generate_export_header(${PROJECT_NAME}) list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h") list(APPEND QT_MULTILIB_LIST ${PROJECT_NAME}) #message("${QT_MULTILIB_LIST}") #set(QT_MULTILIB_LIST "${QT_MULTILIB_LIST}" CACHE STRING "") endif() qad_target_link_libraries(${PROJECT_NAME} ${_LIBS}) file(GLOB_RECURSE PHS "*_p.h") if ((NOT "x${out_HDR}" STREQUAL "x") AND (NOT "x${PHS}" STREQUAL "x")) list(REMOVE_ITEM out_HDR ${PHS}) endif() #message(STATUS "Building ${PROJECT_NAME}") if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/plugin") set(_${NAME}_PLUGIN_LIBS "${_LIBS}") add_subdirectory(plugin) endif() shstk_copy_to_parent() endmacro() endif()