|  | include(${protobuf_SOURCE_DIR}/src/file_lists.cmake) | 
|  | include(${protobuf_SOURCE_DIR}/cmake/protobuf-configure-target.cmake) | 
|  |  | 
|  | set(bootstrap_cmake_dir ${protobuf_SOURCE_DIR}/upb_generator/cmake) | 
|  | set(bootstrap_sources | 
|  | ${bootstrap_cmake_dir}/google/protobuf/compiler/plugin.upb.h | 
|  | ${bootstrap_cmake_dir}/google/protobuf/compiler/plugin.upb_minitable.h | 
|  | ${bootstrap_cmake_dir}/google/protobuf/compiler/plugin.upb_minitable.c | 
|  | ) | 
|  |  | 
|  | foreach(generator upb upbdefs upb_minitable) | 
|  | add_executable(protoc-gen-${generator} | 
|  | ${protoc-gen-${generator}_srcs} | 
|  | ${protoc-gen-${generator}_hdrs} | 
|  | ${bootstrap_sources} | 
|  | ${protobuf_version_rc_file} | 
|  | ) | 
|  | protobuf_configure_target(protoc-gen-${generator}) | 
|  | target_include_directories(protoc-gen-${generator} PRIVATE ${bootstrap_cmake_dir}) | 
|  | if(protobuf_BUILD_SHARED_LIBS) | 
|  | # TODO These binaries should depend on libprotoc. | 
|  | target_compile_definitions(protoc-gen-${generator} | 
|  | PRIVATE LIBPROTOC_EXPORTS PROTOBUF_USE_DLLS) | 
|  | endif() | 
|  | target_link_libraries(protoc-gen-${generator} | 
|  | libprotobuf | 
|  | utf8_validity | 
|  | ${protobuf_LIB_UPB} | 
|  | ${protobuf_ABSL_USED_TARGETS} | 
|  | ) | 
|  | set_target_properties(protoc-gen-${generator} PROPERTIES VERSION ${protobuf_VERSION}) | 
|  | add_executable(protobuf::protoc-gen-${generator} ALIAS protoc-gen-${generator}) | 
|  | endforeach() |