# Copyright (C) 2022 The Qt Company Ltd. # SPDX-License-Identifier: BSD-3-Clause qt_get_tool_target_name(target_name qtgrpcgen) qt_internal_add_tool(${target_name} TARGET_DESCRIPTION "Qt gRPC generator" INSTALL_DIR "${INSTALL_LIBEXECDIR}" TOOLS_TARGET Grpc CORE_LIBRARY None EXCEPTIONS SOURCES main.cpp qgrpcgenerator.cpp qgrpcgenerator.h grpctemplates.cpp grpctemplates.h serverdeclarationprinter.cpp serverdeclarationprinter.h clientdeclarationprinter.cpp clientdeclarationprinter.h clientdefinitionprinter.cpp clientdefinitionprinter.h qmlclientdeclarationprinter.cpp qmlclientdeclarationprinter.h qmlclientdefinitionprinter.cpp qmlclientdefinitionprinter.h EXTRA_CMAKE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${QT_CMAKE_EXPORT_NAMESPACE}GrpcToolsMacros.cmake" EXTRA_CMAKE_INCLUDES "${QT_CMAKE_EXPORT_NAMESPACE}GrpcToolsMacros.cmake" LIBRARIES protobuf::libprotoc QtProtocCommon ATTRIBUTION_FILE_DIR_PATHS ../../../ ATTRIBUTION_ENTRY_INDEX 1 ) qt_internal_return_unless_building_tools() qt_record_extra_package_dependency(${target_name} WrapProtoc "") if(MSVC) # Disable C4251: # `class 'type1' needs to have dll-interface to be used by clients of class 'type2'` # which can be generated from some of the protobuf headers on msvc. # This warning is also disabled globally in Qt in QtCore/qcompilerdetection.h target_compile_options(${target_name} PRIVATE "/wd4251" ) target_compile_definitions(${target_name} PRIVATE "_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING" ) endif()