Merge pull request #16731 from jtattermusch/build_yaml_cleanup

build.yaml cleanup: legacy visual studio fields
pull/16746/head
Jan Tattermusch 6 years ago committed by GitHub
commit 92b45c8eef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 58
      build.yaml
  2. 10
      grpc.gyp
  3. 39
      templates/README.md
  4. 13
      tools/run_tests/generated/sources_and_headers.json

@ -1437,7 +1437,6 @@ libs:
filegroups:
- gpr_base
secure: false
vs_project_guid: '{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}'
- name: gpr_test_util
build: private
language: c
@ -1448,7 +1447,6 @@ libs:
deps:
- gpr
secure: false
vs_project_guid: '{EAB0A629-17A9-44DB-B5FF-E91A721FE037}'
- name: grpc
build: all
language: c
@ -1481,10 +1479,6 @@ libs:
- grpc_server_backward_compatibility
generate_plugin_registry: true
secure: true
vs_packages:
- grpc.dependencies.openssl
- grpc.dependencies.zlib
vs_project_guid: '{29D16885-7228-4C31-81ED-5F9187C7F2A9}'
- name: grpc_cronet
build: all
language: c
@ -1501,27 +1495,6 @@ libs:
platforms:
- linux
secure: true
- name: grpc_dll
build: private
language: c
src: []
deps:
- gpr
- grpc
build_system:
- visual_studio
deps_linkage: static
dll_def: grpc.def
vs_config_type: DynamicLibrary
vs_packages:
- grpc.dependencies.openssl
- grpc.dependencies.zlib
vs_project_guid: '{A2F6CBBA-A553-41B3-A7DE-F26DECCC27F0}'
vs_props:
- zlib
- openssl
- winsock
- global
- name: grpc_test_util
build: private
language: c
@ -1540,7 +1513,6 @@ libs:
- grpc
filegroups:
- grpc_test_util_base
vs_project_guid: '{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}'
- name: grpc_test_util_unsecure
build: private
language: c
@ -1551,7 +1523,6 @@ libs:
filegroups:
- grpc_test_util_base
secure: false
vs_project_guid: '{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}'
- name: grpc_unsecure
build: all
language: c
@ -1582,7 +1553,6 @@ libs:
- grpc_server_backward_compatibility
generate_plugin_registry: true
secure: false
vs_project_guid: '{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}'
- name: reconnect_server
build: private
language: c
@ -1636,7 +1606,6 @@ libs:
- grpc++_codegen_proto
- grpc++_codegen_base_src
secure: check
vs_project_guid: '{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}'
- name: grpc++_core_stats
build: private
language: c++
@ -1682,7 +1651,6 @@ libs:
deps:
- grpc++
baselib: true
vs_project_guid: '{9F58AD72-49E1-4D10-B826-9E190AB0AAC0}'
- name: grpc++_proto_reflection_desc_db
build: private
language: c++
@ -1795,7 +1763,6 @@ libs:
- grpc++_codegen_base
- grpc++_codegen_base_src
secure: false
vs_project_guid: '{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}'
- name: grpc_benchmark
build: test
language: c++
@ -1870,9 +1837,6 @@ libs:
filegroups:
- grpc++_config_proto
secure: false
vs_project_guid: '{B6E81D84-2ACB-41B8-8781-493A944C7817}'
vs_props:
- protoc
- name: grpcpp_channelz
build: all
language: c++
@ -2027,16 +1991,6 @@ libs:
LDFLAGS: $(if $(subst Linux,,$(SYSTEM)),,-Wl$(comma)-wrap$(comma)memcpy)
deps_linkage: static
dll: only
vs_config_type: DynamicLibrary
vs_packages:
- grpc.dependencies.openssl
- grpc.dependencies.zlib
vs_project_guid: '{D64C6D63-4458-4A88-AB38-35678384A7E4}'
vs_props:
- zlib
- openssl
- winsock
- global
targets:
- name: algorithm_test
build: test
@ -4732,8 +4686,6 @@ targets:
deps:
- grpc_plugin_support
secure: false
vs_config_type: Application
vs_project_guid: '{7E51A25F-AC59-488F-906C-C60FAAE706AA}'
- name: grpc_csharp_plugin
build: protoc
language: c++
@ -4742,8 +4694,6 @@ targets:
deps:
- grpc_plugin_support
secure: false
vs_config_type: Application
vs_project_guid: '{3C813052-A49A-4662-B90A-1ADBEC7EE453}'
- name: grpc_linux_system_roots_test
gtest: true
build: test
@ -4763,7 +4713,6 @@ targets:
deps:
- grpc_plugin_support
secure: false
vs_config_type: Application
- name: grpc_objective_c_plugin
build: protoc
language: c++
@ -4772,8 +4721,6 @@ targets:
deps:
- grpc_plugin_support
secure: false
vs_config_type: Application
vs_project_guid: '{19564640-CEE6-4921-ABA5-676ED79A36F6}'
- name: grpc_php_plugin
build: protoc
language: c++
@ -4782,7 +4729,6 @@ targets:
deps:
- grpc_plugin_support
secure: false
vs_config_type: Application
- name: grpc_python_plugin
build: protoc
language: c++
@ -4791,8 +4737,6 @@ targets:
deps:
- grpc_plugin_support
secure: false
vs_config_type: Application
vs_project_guid: '{DF52D501-A6CF-4E6F-BA38-6EBE2E8DAFB2}'
- name: grpc_ruby_plugin
build: protoc
language: c++
@ -4801,8 +4745,6 @@ targets:
deps:
- grpc_plugin_support
secure: false
vs_config_type: Application
vs_project_guid: '{069E9D05-B78B-4751-9252-D21EBAE7DE8E}'
- name: grpc_tool_test
gtest: true
build: test

@ -592,16 +592,6 @@
'src/core/plugin_registry/grpc_plugin_registry.cc',
],
},
{
'target_name': 'grpc_dll',
'type': 'static_library',
'dependencies': [
'gpr',
'grpc',
],
'sources': [
],
},
{
'target_name': 'grpc_test_util',
'type': 'static_library',

@ -1,9 +1,13 @@
# Regenerating project files
Prerequisites: `python`, `pip install mako`, `go`
Prerequisites
- `python`
- `pip install mako` (the template processor)
- `pip install pyyaml` (to read the yaml files)
- `go` (required by boringssl dependency)
```
# Regenerate the projects files using templates
# Regenerate the projects files (and other generated files) using templates
tools/buildgen/generate_projects.sh
```
@ -19,25 +23,13 @@ So instead we decided to work the following way:
targets and files needed to build grpc and its tests, as well as a basic system
for dependency description.
* Each project file (Makefile, Visual Studio project files, Bazel's BUILD) is
a [YAML](http://yaml.org) file used by the `build.yaml` file to generate the
final output file.
* Most of the build systems supported by gRPC (e.g. Makefile, cmake, XCode) have a template defined in this directory. The templates use the information from the `build.yaml` file to generate the project files specific to a given build system.
This way we can maintain as many project system as we see fit, without having
to manually maintain them when we add or remove new code to the repository.
Only the structure of the project file is relevant to the template. The actual
list of source code and targets isn't.
We currently have template files for GNU Make, Visual Studio 2013,
[Bazel](http://bazel.io) and [gyp](https://gyp.gsrc.io/) (albeit only for
Node.js). In the future, we
would like to expand to also generate [cmake](https://cmake.org)
project files, XCode project files, and an Android.mk file allowing to compile
gRPC using Android's NDK.
We'll gladly accept contribution that'd create additional project files
using that system.
# Structure of `build.yaml`
The `build.yaml` file has the following structure:
@ -87,7 +79,6 @@ src: # list of files to compile
secure: boolean, # see below
baselib: boolean, # this is a low level library that has system
# dependencies
vs_project_guid: '{...}', # Visual Studio's unique guid for that project
filegroups: # list of filegroups to merge to that project
# note that this will be expanded automatically
deps: # list of libraries this target depends on
@ -95,12 +86,6 @@ deps_linkage: "..." # "static" or "dynamic". Used by the Makefile only to
# determine the way dependencies are linkned. Defaults
# to "dynamic".
dll: "..." # see below.
dll_def: "..." # Visual Studio's dll definition file.
vs_props: # List of property sheets to attach to that project.
vs_config_type: "..." # DynamicLibrary/StaticLibrary. Used only when
# creating a library. Specifies if we're building a
# static library or a dll. Use in conjunction with `dll_def`.
vs_packages: # List of nuget packages this project depends on.
```
## The `"build"` tag
@ -137,23 +122,17 @@ protobuf is for `"c++"` ones.
## The `"dll"` tag
Used only by Visual Studio's project files. "true" means the project will be
Currently only used by cmake. "true" means the project will be
built with both static and dynamic runtimes. "false" means it'll only be built
with static runtime. "only" means it'll only be built with the dll runtime.
## The `"dll_def"` tag
Specifies the visual studio's dll definition file. When creating a DLL, you
sometimes (not always) need a def file (see grpc.def).
# The template system
We're currently using the [mako templates](http://www.makotemplates.org/)
renderer. That choice enables us to simply render text files without dragging
with us a lot of other features. Feel free to explore the current templates
in that directory. The simplest one is probably [BUILD.template](BUILD.template)
which is used to create the [Bazel](http://bazel.io/) project file.
in that directory.
## The renderer engine

@ -7089,19 +7089,6 @@
"third_party": false,
"type": "lib"
},
{
"deps": [
"gpr",
"grpc"
],
"headers": [],
"is_filegroup": false,
"language": "c",
"name": "grpc_dll",
"src": [],
"third_party": false,
"type": "lib"
},
{
"deps": [
"gpr",

Loading…
Cancel
Save