blob: 478e7d9f38535c3d16657b40b171ce267212d7fa [file] [log] [blame]
Alex Vakulenko039da312015-02-03 08:58:55 -08001{
2 'target_defaults': {
3 'variables': {
4 'deps': [
5 'libchrome-<(libbase_ver)',
6 'libchromeos-<(libbase_ver)',
7 ],
8 },
9 'include_dirs': ['.'],
10 },
11 'targets': [
12 {
Alex Vakulenko664af902015-02-11 15:33:12 -080013 'target_name': 'libwebserv_common',
14 'type': 'static_library',
Alex Vakulenko039da312015-02-03 08:58:55 -080015 'variables': {
Alex Vakulenko31a63792015-02-03 12:44:57 -080016 # Not using dbus_service_config here deliberately in order not to
17 # get tied to some constant service name, since it will be
18 # provided by the consumer of libwebserv library.
19 'dbus_service_config': '',
20 'dbus_adaptors_out_dir': 'include/libwebserv',
Alex Vakulenko039da312015-02-03 08:58:55 -080021 },
Alex Vakulenko664af902015-02-11 15:33:12 -080022 # This static library is used in libwebserv shared library, which means
23 # we must generate position-independent code for the files comprising
24 # this library. Since this option is disabled by default for targets
25 # other than 'shared_library', turn it on explicitly for this lib.
26 # Turn off the default -fPIE flag (which is set for static_library
27 # in ../common-mk/common.gypi) and replace it with -fPIC.
28 'cflags!': ['-fPIE'],
29 'cflags': ['-fPIC'],
Alex Vakulenko31a63792015-02-03 12:44:57 -080030 'includes': [
Alex Vakulenko31a63792015-02-03 12:44:57 -080031 '../common-mk/generate-dbus-adaptors.gypi'
32 ],
Alex Vakulenko039da312015-02-03 08:58:55 -080033 'sources': [
Alex Vakulenko31a63792015-02-03 12:44:57 -080034 'libwebserv/protocol_handler.cc',
Alex Vakulenko039da312015-02-03 08:58:55 -080035 'libwebserv/request.cc',
36 'libwebserv/request_handler_callback.cc',
Alex Vakulenko31a63792015-02-03 12:44:57 -080037 'libwebserv/response.cc',
Alex Vakulenko039da312015-02-03 08:58:55 -080038 'libwebserv/server.cc',
Alex Vakulenko31a63792015-02-03 12:44:57 -080039 'libwebserv/dbus_bindings/org.chromium.WebServer.RequestHandler.xml',
Alex Vakulenko039da312015-02-03 08:58:55 -080040 ],
41 'actions': [
42 {
43 'action_name': 'generate-webservd-proxies',
44 'variables': {
45 'dbus_service_config': 'webservd/dbus_bindings/dbus-service-config.json',
46 'mock_output_file': 'include/webservd/dbus-mocks.h',
47 'proxy_output_file': 'include/webservd/dbus-proxies.h',
Alex Vakulenko31a63792015-02-03 12:44:57 -080048 'dbus_adaptors_out_dir': '',
Alex Vakulenko039da312015-02-03 08:58:55 -080049 },
50 'sources': [
Alex Vakulenko31a63792015-02-03 12:44:57 -080051 'webservd/dbus_bindings/org.chromium.WebServer.ProtocolHandler.xml',
Alex Vakulenko039da312015-02-03 08:58:55 -080052 'webservd/dbus_bindings/org.chromium.WebServer.Server.xml',
53 ],
54 'includes': ['../common-mk/generate-dbus-proxies.gypi'],
55 },
Alex Vakulenko53131232015-02-13 15:38:12 -080056 {
57 'action_name': 'generate-permission_broker-proxies',
58 'variables': {
59 'dbus_service_config': '<(platform2_root)/permission_broker/dbus_bindings/dbus-service-config.json',
60 'mock_output_file': 'include/permission_broker/dbus-mocks.h',
61 'proxy_output_file': 'include/permission_broker/dbus-proxies.h',
62 'dbus_adaptors_out_dir': '',
63 },
64 'sources': [
65 '<(platform2_root)/permission_broker/dbus_bindings/org.chromium.PermissionBroker.xml',
66 ],
67 'includes': ['../common-mk/generate-dbus-proxies.gypi'],
68 },
Alex Vakulenko039da312015-02-03 08:58:55 -080069 ],
70 },
71 {
Alex Vakulenko664af902015-02-11 15:33:12 -080072 'target_name': 'webservd_common',
73 'type': 'static_library',
Alex Vakulenko039da312015-02-03 08:58:55 -080074 'variables': {
75 'exported_deps': [
76 'libmicrohttpd',
Alex Vakulenko31a63792015-02-03 12:44:57 -080077 'openssl',
Alex Vakulenko039da312015-02-03 08:58:55 -080078 ],
79 'deps': ['<@(exported_deps)'],
80 'dbus_adaptors_out_dir': 'include/webservd',
81 'dbus_service_config': 'webservd/dbus_bindings/dbus-service-config.json',
82 },
Alex Vakulenko664af902015-02-11 15:33:12 -080083 'all_dependent_settings': {
84 'variables': {
85 'deps': [
86 '<@(exported_deps)',
87 ],
88 },
Alex Vakulenko31a63792015-02-03 12:44:57 -080089 },
Alex Vakulenko039da312015-02-03 08:58:55 -080090 'sources': [
Alex Vakulenko8db2b532015-02-12 07:41:51 -080091 'webservd/config.cc',
Alex Vakulenko31a63792015-02-03 12:44:57 -080092 'webservd/dbus_bindings/org.chromium.WebServer.ProtocolHandler.xml',
Alex Vakulenko039da312015-02-03 08:58:55 -080093 'webservd/dbus_bindings/org.chromium.WebServer.Server.xml',
Alex Vakulenko31a63792015-02-03 12:44:57 -080094 'webservd/dbus_protocol_handler.cc',
95 'webservd/dbus_request_handler.cc',
Alex Vakulenko8db2b532015-02-12 07:41:51 -080096 'webservd/error_codes.cc',
Alex Vakulenkoc16c6da2015-02-25 14:35:55 -080097 'webservd/log_manager.cc',
Gilad Arnolde14a6182015-08-13 12:01:00 -070098 'webservd/permission_broker_firewall.cc',
Alex Vakulenko31a63792015-02-03 12:44:57 -080099 'webservd/protocol_handler.cc',
100 'webservd/request.cc',
101 'webservd/server.cc',
102 'webservd/utils.cc',
Alex Vakulenko039da312015-02-03 08:58:55 -0800103 ],
104 'includes': ['../common-mk/generate-dbus-adaptors.gypi'],
Alex Vakulenko31a63792015-02-03 12:44:57 -0800105 'actions': [
106 {
107 'action_name': 'generate-libwebserv-proxies',
108 'variables': {
109 # Not using dbus_service_config here deliberately in order not to
110 # get tied to some constant service name, since it will be
111 # provided by the consumer of libwebserv library.
112 'dbus_service_config': '',
113 'mock_output_file': 'include/libwebserv/dbus-mocks.h',
114 'proxy_output_file': 'include/libwebserv/dbus-proxies.h',
115 },
116 'sources': [
117 'libwebserv/dbus_bindings/org.chromium.WebServer.RequestHandler.xml',
118 ],
119 'includes': ['../common-mk/generate-dbus-proxies.gypi'],
120 },
121 ],
Alex Vakulenko039da312015-02-03 08:58:55 -0800122 },
Alex Vakulenko664af902015-02-11 15:33:12 -0800123 {
124 'target_name': 'libwebserv-<(libbase_ver)',
125 'type': 'shared_library',
126 'includes': [
127 '../common-mk/deps.gypi',
128 ],
129 'dependencies': [
130 'libwebserv_common',
131 ],
132 'sources': [
133 'libwebserv/_empty.cc',
134 ],
135 },
136 {
137 'target_name': 'webservd',
138 'type': 'executable',
139 'dependencies': [
140 'webservd_common',
141 ],
Bertrand SIMONNETcb3bc272015-08-13 14:27:05 -0700142 'variables': {
143 'deps': [
144 'libminijail',
Alex Vakulenko664af902015-02-11 15:33:12 -0800145 ],
146 },
147 'sources': [
148 'webservd/main.cc',
149 ],
150 },
Alex Vakulenko039da312015-02-03 08:58:55 -0800151 ],
152 'conditions': [
153 ['USE_test == 1', {
154 'targets': [
155 {
156 'target_name': 'libwebserv_testrunner',
157 'type': 'executable',
158 'dependencies': [
Alex Vakulenko664af902015-02-11 15:33:12 -0800159 'libwebserv_common',
Alex Vakulenko039da312015-02-03 08:58:55 -0800160 ],
161 'includes': ['../common-mk/common_test.gypi'],
162 'sources': [
163 'libwebserv/libwebserv_testrunner.cc',
164 ],
165 },
Alex Vakulenko664af902015-02-11 15:33:12 -0800166 {
167 'target_name': 'webservd_testrunner',
168 'type': 'executable',
169 'dependencies': [
170 'webservd_common',
171 ],
172 'includes': ['../common-mk/common_test.gypi'],
173 'sources': [
Alex Vakulenko8db2b532015-02-12 07:41:51 -0800174 'webservd/config_unittest.cc',
Alex Vakulenkoc16c6da2015-02-25 14:35:55 -0800175 'webservd/log_manager_unittest.cc',
Alex Vakulenko664af902015-02-11 15:33:12 -0800176 'webservd/webservd_testrunner.cc',
177 ],
178 },
Alex Vakulenko039da312015-02-03 08:58:55 -0800179 ],
180 }],
181 ],
182}