blob: b022bbccd78663127f82fa1b15d38ede30acbf33 [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',
Alex Vakulenko31a63792015-02-03 12:44:57 -080098 'webservd/protocol_handler.cc',
99 'webservd/request.cc',
100 'webservd/server.cc',
101 'webservd/utils.cc',
Alex Vakulenko039da312015-02-03 08:58:55 -0800102 ],
103 'includes': ['../common-mk/generate-dbus-adaptors.gypi'],
Alex Vakulenko31a63792015-02-03 12:44:57 -0800104 'actions': [
105 {
106 'action_name': 'generate-libwebserv-proxies',
107 'variables': {
108 # Not using dbus_service_config here deliberately in order not to
109 # get tied to some constant service name, since it will be
110 # provided by the consumer of libwebserv library.
111 'dbus_service_config': '',
112 'mock_output_file': 'include/libwebserv/dbus-mocks.h',
113 'proxy_output_file': 'include/libwebserv/dbus-proxies.h',
114 },
115 'sources': [
116 'libwebserv/dbus_bindings/org.chromium.WebServer.RequestHandler.xml',
117 ],
118 'includes': ['../common-mk/generate-dbus-proxies.gypi'],
119 },
120 ],
Alex Vakulenko039da312015-02-03 08:58:55 -0800121 },
Alex Vakulenko664af902015-02-11 15:33:12 -0800122 {
123 'target_name': 'libwebserv-<(libbase_ver)',
124 'type': 'shared_library',
125 'includes': [
126 '../common-mk/deps.gypi',
127 ],
128 'dependencies': [
129 'libwebserv_common',
130 ],
131 'sources': [
132 'libwebserv/_empty.cc',
133 ],
134 },
135 {
136 'target_name': 'webservd',
137 'type': 'executable',
138 'dependencies': [
139 'webservd_common',
140 ],
Bertrand SIMONNETcb3bc272015-08-13 14:27:05 -0700141 'variables': {
142 'deps': [
143 'libminijail',
Alex Vakulenko664af902015-02-11 15:33:12 -0800144 ],
145 },
146 'sources': [
147 'webservd/main.cc',
148 ],
149 },
Alex Vakulenko039da312015-02-03 08:58:55 -0800150 ],
151 'conditions': [
152 ['USE_test == 1', {
153 'targets': [
154 {
155 'target_name': 'libwebserv_testrunner',
156 'type': 'executable',
157 'dependencies': [
Alex Vakulenko664af902015-02-11 15:33:12 -0800158 'libwebserv_common',
Alex Vakulenko039da312015-02-03 08:58:55 -0800159 ],
160 'includes': ['../common-mk/common_test.gypi'],
161 'sources': [
162 'libwebserv/libwebserv_testrunner.cc',
163 ],
164 },
Alex Vakulenko664af902015-02-11 15:33:12 -0800165 {
166 'target_name': 'webservd_testrunner',
167 'type': 'executable',
168 'dependencies': [
169 'webservd_common',
170 ],
171 'includes': ['../common-mk/common_test.gypi'],
172 'sources': [
Alex Vakulenko8db2b532015-02-12 07:41:51 -0800173 'webservd/config_unittest.cc',
Alex Vakulenkoc16c6da2015-02-25 14:35:55 -0800174 'webservd/log_manager_unittest.cc',
Alex Vakulenko664af902015-02-11 15:33:12 -0800175 'webservd/webservd_testrunner.cc',
176 ],
177 },
Alex Vakulenko039da312015-02-03 08:58:55 -0800178 ],
179 }],
180 ],
181}