blob: 17af7f5dadda46509977b982543ed4785bffa1bd [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 },
56 ],
57 },
58 {
Alex Vakulenko664af902015-02-11 15:33:12 -080059 'target_name': 'webservd_common',
60 'type': 'static_library',
Alex Vakulenko039da312015-02-03 08:58:55 -080061 'variables': {
62 'exported_deps': [
63 'libmicrohttpd',
Alex Vakulenko31a63792015-02-03 12:44:57 -080064 'openssl',
Alex Vakulenko039da312015-02-03 08:58:55 -080065 ],
66 'deps': ['<@(exported_deps)'],
67 'dbus_adaptors_out_dir': 'include/webservd',
68 'dbus_service_config': 'webservd/dbus_bindings/dbus-service-config.json',
69 },
Alex Vakulenko664af902015-02-11 15:33:12 -080070 'all_dependent_settings': {
71 'variables': {
72 'deps': [
73 '<@(exported_deps)',
74 ],
75 },
Alex Vakulenko31a63792015-02-03 12:44:57 -080076 },
Alex Vakulenko039da312015-02-03 08:58:55 -080077 'sources': [
Alex Vakulenko31a63792015-02-03 12:44:57 -080078 'webservd/dbus_bindings/org.chromium.WebServer.ProtocolHandler.xml',
Alex Vakulenko039da312015-02-03 08:58:55 -080079 'webservd/dbus_bindings/org.chromium.WebServer.Server.xml',
Alex Vakulenko31a63792015-02-03 12:44:57 -080080 'webservd/dbus_protocol_handler.cc',
81 'webservd/dbus_request_handler.cc',
Alex Vakulenko31a63792015-02-03 12:44:57 -080082 'webservd/protocol_handler.cc',
83 'webservd/request.cc',
84 'webservd/server.cc',
85 'webservd/utils.cc',
Alex Vakulenko039da312015-02-03 08:58:55 -080086 ],
87 'includes': ['../common-mk/generate-dbus-adaptors.gypi'],
Alex Vakulenko31a63792015-02-03 12:44:57 -080088 'actions': [
89 {
90 'action_name': 'generate-libwebserv-proxies',
91 'variables': {
92 # Not using dbus_service_config here deliberately in order not to
93 # get tied to some constant service name, since it will be
94 # provided by the consumer of libwebserv library.
95 'dbus_service_config': '',
96 'mock_output_file': 'include/libwebserv/dbus-mocks.h',
97 'proxy_output_file': 'include/libwebserv/dbus-proxies.h',
98 },
99 'sources': [
100 'libwebserv/dbus_bindings/org.chromium.WebServer.RequestHandler.xml',
101 ],
102 'includes': ['../common-mk/generate-dbus-proxies.gypi'],
103 },
104 ],
Alex Vakulenko039da312015-02-03 08:58:55 -0800105 },
Alex Vakulenko664af902015-02-11 15:33:12 -0800106 {
107 'target_name': 'libwebserv-<(libbase_ver)',
108 'type': 'shared_library',
109 'includes': [
110 '../common-mk/deps.gypi',
111 ],
112 'dependencies': [
113 'libwebserv_common',
114 ],
115 'sources': [
116 'libwebserv/_empty.cc',
117 ],
118 },
119 {
120 'target_name': 'webservd',
121 'type': 'executable',
122 'dependencies': [
123 'webservd_common',
124 ],
125 'link_settings': {
126 'libraries': [
127 '-lminijail',
128 ],
129 },
130 'sources': [
131 'webservd/main.cc',
132 ],
133 },
Alex Vakulenko039da312015-02-03 08:58:55 -0800134 ],
135 'conditions': [
136 ['USE_test == 1', {
137 'targets': [
138 {
139 'target_name': 'libwebserv_testrunner',
140 'type': 'executable',
141 'dependencies': [
Alex Vakulenko664af902015-02-11 15:33:12 -0800142 'libwebserv_common',
Alex Vakulenko039da312015-02-03 08:58:55 -0800143 ],
144 'includes': ['../common-mk/common_test.gypi'],
145 'sources': [
146 'libwebserv/libwebserv_testrunner.cc',
147 ],
148 },
Alex Vakulenko664af902015-02-11 15:33:12 -0800149 {
150 'target_name': 'webservd_testrunner',
151 'type': 'executable',
152 'dependencies': [
153 'webservd_common',
154 ],
155 'includes': ['../common-mk/common_test.gypi'],
156 'sources': [
157 'webservd/webservd_testrunner.cc',
158 ],
159 },
Alex Vakulenko039da312015-02-03 08:58:55 -0800160 ],
161 }],
162 ],
163}