diff --git a/src/protobuf/QtProtobufProperties.cmake.in b/src/protobuf/QtProtobufProperties.cmake.in index 8fcd48e7..a51f0466 100644 --- a/src/protobuf/QtProtobufProperties.cmake.in +++ b/src/protobuf/QtProtobufProperties.cmake.in @@ -11,5 +11,28 @@ if(NOT QT_NO_CREATE_TARGETS) QT_PROTO_INCLUDES "${CMAKE_STAGING_PREFIX}/${proto_include_dir}") endif() endforeach() + + foreach(proto_include_dir IN LISTS _@target@_proto_external_include_dirs) + if(NOT IS_ABSOLUTE "${proto_include_dir}") + if(NOT QT_NO_WARN_PROTOBUF_BROKEN_INCLUDES) + message(WRANING "The protobuf include directory ${proto_include_dir} must be an" + " absolute path. Skipping adding it to the @target@ module QT_PROTO_INCLUDES." + " Use QT_NO_WARN_PROTOBUF_BROKEN_INCLUDES to suppress this warning.") + endif() + continue() + endif() + if(NOT EXISTS "${proto_include_dir}") + if(NOT QT_NO_WARN_PROTOBUF_BROKEN_INCLUDES) + message(WARNING "The protobuf include directory ${proto_include_dir} doesn't exist." + " Skipping adding it to the @target@ module QT_PROTO_INCLUDES." + " Use QT_NO_WARN_PROTOBUF_BROKEN_INCLUDES to suppress this warning.") + endif() + continue() + endif() + + set_property(TARGET ${QT_CMAKE_EXPORT_NAMESPACE}::@target@ APPEND PROPERTY + QT_PROTO_INCLUDES "${proto_include_dir}") + endforeach() + unset(_@target@_proto_include_dirs) endif()