xmake.lua 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515
  1. option("webrtc", {default = false, showmenu = true})
  2. add_rules("mode.debug", "mode.release")
  3. add_requires("protobuf-cpp", "openssl")
  4. if has_config("webrtc") then
  5. add_requires("abseil")
  6. target("webrtc-lite")
  7. add_rules("c++")
  8. set_kind("static")
  9. add_packages("protobuf-cpp")
  10. if is_plat("windows") then
  11. add_defines("WEBRTC_WIN", "NOMINMAX", "WIN32_LEAN_AND_MEAN", "_WINSOCKAPI_")
  12. add_cxflags("/wd4715", "/wd4005", "/wd4996", "/wd4530")
  13. else
  14. add_ldflags("-Wl", "--no-undefined")
  15. add_defines("WEBRTC_POSIX", "WEBRTC_LINUX")
  16. end
  17. local files = {
  18. "src/external/webrtc/api/adaptation/resource.cc",
  19. "src/external/webrtc/api/adaptation/resource.h",
  20. "src/external/webrtc/api/array_view.h",
  21. "src/external/webrtc/api/async_resolver_factory.h",
  22. "src/external/webrtc/api/candidate.cc",
  23. "src/external/webrtc/api/candidate.h",
  24. "src/external/webrtc/api/crypto_params.h",
  25. "src/external/webrtc/api/crypto/crypto_options.cc",
  26. "src/external/webrtc/api/crypto/crypto_options.h",
  27. "src/external/webrtc/api/crypto/frame_decryptor_interface.h",
  28. "src/external/webrtc/api/crypto/frame_encryptor_interface.h",
  29. "src/external/webrtc/api/dtls_transport_interface.cc",
  30. "src/external/webrtc/api/dtls_transport_interface.h",
  31. "src/external/webrtc/api/dtmf_sender_interface.h",
  32. "src/external/webrtc/api/fec_controller_override.h",
  33. "src/external/webrtc/api/fec_controller.h",
  34. "src/external/webrtc/api/frame_transformer_interface.h",
  35. "src/external/webrtc/api/function_view.h",
  36. "src/external/webrtc/api/ice_transport_interface.h",
  37. "src/external/webrtc/api/neteq/neteq_factory.h",
  38. "src/external/webrtc/api/neteq/neteq.cc",
  39. "src/external/webrtc/api/neteq/neteq.h",
  40. "src/external/webrtc/api/network_state_predictor.h",
  41. "src/external/webrtc/api/packet_socket_factory.h",
  42. "src/external/webrtc/api/priority.h",
  43. "src/external/webrtc/api/proxy.cc",
  44. "src/external/webrtc/api/proxy.h",
  45. "src/external/webrtc/api/ref_counted_base.h",
  46. "src/external/webrtc/api/rtc_error.cc",
  47. "src/external/webrtc/api/rtc_error.h",
  48. "src/external/webrtc/api/rtc_event_log/rtc_event.cc",
  49. "src/external/webrtc/api/rtc_event_log/rtc_event.h",
  50. "src/external/webrtc/api/scoped_refptr.h",
  51. "src/external/webrtc/api/task_queue/default_task_queue_factory.h",
  52. "src/external/webrtc/api/task_queue/queued_task.h",
  53. "src/external/webrtc/api/task_queue/task_queue_base.cc",
  54. "src/external/webrtc/api/task_queue/task_queue_base.h",
  55. "src/external/webrtc/api/task_queue/task_queue_factory.h",
  56. "src/external/webrtc/api/transport/bitrate_settings.cc",
  57. "src/external/webrtc/api/transport/bitrate_settings.h",
  58. "src/external/webrtc/api/transport/data_channel_transport_interface.h",
  59. "src/external/webrtc/api/transport/enums.h",
  60. "src/external/webrtc/api/transport/network_control.h",
  61. "src/external/webrtc/api/transport/network_types.cc",
  62. "src/external/webrtc/api/transport/network_types.h",
  63. "src/external/webrtc/api/transport/rtp/dependency_descriptor.cc",
  64. "src/external/webrtc/api/transport/rtp/dependency_descriptor.h",
  65. "src/external/webrtc/api/transport/rtp/rtp_source.h",
  66. "src/external/webrtc/api/transport/stun.cc",
  67. "src/external/webrtc/api/transport/stun.h",
  68. "src/external/webrtc/api/transport/webrtc_key_value_config.h",
  69. "src/external/webrtc/api/turn_customizer.h",
  70. "src/external/webrtc/api/units/data_rate.cc",
  71. "src/external/webrtc/api/units/data_rate.h",
  72. "src/external/webrtc/api/units/data_size.cc",
  73. "src/external/webrtc/api/units/data_size.h",
  74. "src/external/webrtc/api/units/frequency.cc",
  75. "src/external/webrtc/api/units/frequency.h",
  76. "src/external/webrtc/api/units/time_delta.cc",
  77. "src/external/webrtc/api/units/time_delta.h",
  78. "src/external/webrtc/api/units/timestamp.cc",
  79. "src/external/webrtc/api/units/timestamp.h",
  80. "src/external/webrtc/common_types.h",
  81. "src/external/webrtc/logging/rtc_event_log/events/rtc_event_dtls_transport_state.cc",
  82. "src/external/webrtc/logging/rtc_event_log/events/rtc_event_dtls_transport_state.h",
  83. "src/external/webrtc/logging/rtc_event_log/events/rtc_event_dtls_writable_state.cc",
  84. "src/external/webrtc/logging/rtc_event_log/events/rtc_event_dtls_writable_state.h",
  85. "src/external/webrtc/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.cc",
  86. "src/external/webrtc/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h",
  87. "src/external/webrtc/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.cc",
  88. "src/external/webrtc/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h",
  89. "src/external/webrtc/logging/rtc_event_log/ice_logger.cc",
  90. "src/external/webrtc/logging/rtc_event_log/ice_logger.h",
  91. "src/external/webrtc/modules/utility/include/process_thread.h",
  92. "src/external/webrtc/p2p/base/async_stun_tcp_socket.cc",
  93. "src/external/webrtc/p2p/base/async_stun_tcp_socket.h",
  94. "src/external/webrtc/p2p/base/basic_ice_controller.cc",
  95. "src/external/webrtc/p2p/base/basic_ice_controller.h",
  96. "src/external/webrtc/p2p/base/basic_packet_socket_factory.cc",
  97. "src/external/webrtc/p2p/base/basic_packet_socket_factory.cc",
  98. "src/external/webrtc/p2p/base/basic_packet_socket_factory.h",
  99. "src/external/webrtc/p2p/base/candidate_pair_interface.h",
  100. "src/external/webrtc/p2p/base/connection_info.cc",
  101. "src/external/webrtc/p2p/base/connection_info.h",
  102. "src/external/webrtc/p2p/base/connection.cc",
  103. "src/external/webrtc/p2p/base/connection.h",
  104. "src/external/webrtc/p2p/base/dtls_transport_internal.cc",
  105. "src/external/webrtc/p2p/base/dtls_transport_internal.h",
  106. "src/external/webrtc/p2p/base/dtls_transport.cc",
  107. "src/external/webrtc/p2p/base/dtls_transport.h",
  108. "src/external/webrtc/p2p/base/ice_controller_factory_interface.h",
  109. "src/external/webrtc/p2p/base/ice_controller_interface.cc",
  110. "src/external/webrtc/p2p/base/ice_controller_interface.h",
  111. "src/external/webrtc/p2p/base/ice_credentials_iterator.cc",
  112. "src/external/webrtc/p2p/base/ice_credentials_iterator.h",
  113. "src/external/webrtc/p2p/base/ice_transport_internal.cc",
  114. "src/external/webrtc/p2p/base/ice_transport_internal.h",
  115. "src/external/webrtc/p2p/base/p2p_constants.cc",
  116. "src/external/webrtc/p2p/base/p2p_constants.h",
  117. "src/external/webrtc/p2p/base/p2p_transport_channel_ice_field_trials.h",
  118. "src/external/webrtc/p2p/base/p2p_transport_channel.cc",
  119. "src/external/webrtc/p2p/base/p2p_transport_channel.cc",
  120. "src/external/webrtc/p2p/base/p2p_transport_channel.h",
  121. "src/external/webrtc/p2p/base/packet_transport_internal.cc",
  122. "src/external/webrtc/p2p/base/packet_transport_internal.h",
  123. "src/external/webrtc/p2p/base/port_allocator.cc",
  124. "src/external/webrtc/p2p/base/port_allocator.h",
  125. "src/external/webrtc/p2p/base/port_interface.cc",
  126. "src/external/webrtc/p2p/base/port_interface.h",
  127. "src/external/webrtc/p2p/base/port.cc",
  128. "src/external/webrtc/p2p/base/port.h",
  129. "src/external/webrtc/p2p/base/regathering_controller.cc",
  130. "src/external/webrtc/p2p/base/regathering_controller.h",
  131. "src/external/webrtc/p2p/base/stun_port.cc",
  132. "src/external/webrtc/p2p/base/stun_port.h",
  133. "src/external/webrtc/p2p/base/stun_request.cc",
  134. "src/external/webrtc/p2p/base/stun_request.h",
  135. "src/external/webrtc/p2p/base/tcp_port.cc",
  136. "src/external/webrtc/p2p/base/tcp_port.h",
  137. "src/external/webrtc/p2p/base/transport_description_factory.cc",
  138. "src/external/webrtc/p2p/base/transport_description_factory.h",
  139. "src/external/webrtc/p2p/base/transport_description.cc",
  140. "src/external/webrtc/p2p/base/transport_description.h",
  141. "src/external/webrtc/p2p/base/transport_info.h",
  142. "src/external/webrtc/p2p/base/turn_port.cc",
  143. "src/external/webrtc/p2p/base/turn_port.h",
  144. "src/external/webrtc/p2p/base/udp_port.h",
  145. "src/external/webrtc/p2p/client/basic_port_allocator.cc",
  146. "src/external/webrtc/p2p/client/basic_port_allocator.cc",
  147. "src/external/webrtc/p2p/client/basic_port_allocator.h",
  148. "src/external/webrtc/p2p/client/relay_port_factory_interface.h",
  149. "src/external/webrtc/p2p/client/turn_port_factory.cc",
  150. "src/external/webrtc/p2p/client/turn_port_factory.h",
  151. "src/external/webrtc/pc/channel_interface.h",
  152. "src/external/webrtc/pc/channel_manager.cc",
  153. "src/external/webrtc/pc/channel_manager.cc",
  154. "src/external/webrtc/pc/channel_manager.h",
  155. "src/external/webrtc/pc/channel.cc",
  156. "src/external/webrtc/pc/channel.h",
  157. "src/external/webrtc/pc/dtls_transport.cc",
  158. "src/external/webrtc/pc/dtls_transport.h",
  159. "src/external/webrtc/pc/ice_transport.cc",
  160. "src/external/webrtc/pc/ice_transport.h",
  161. "src/external/webrtc/pc/sdp_serializer.cc",
  162. "src/external/webrtc/pc/sdp_serializer.h",
  163. "src/external/webrtc/pc/session_description.cc",
  164. "src/external/webrtc/pc/session_description.h",
  165. "src/external/webrtc/pc/simulcast_description.cc",
  166. "src/external/webrtc/pc/simulcast_description.h",
  167. "src/external/webrtc/pc/transport_stats.cc",
  168. "src/external/webrtc/pc/transport_stats.h",
  169. "src/external/webrtc/pc/used_ids.h",
  170. "src/external/steamwebrtc/webrtc_sdp.cc", -- NOTE: This is a file that we had to hack. See the comments at the top of the file for more info.
  171. "src/external/webrtc/pc/webrtc_sdp.h",
  172. "src/external/webrtc/rtc_base/arraysize.h",
  173. "src/external/webrtc/rtc_base/async_invoker_inl.h",
  174. "src/external/webrtc/rtc_base/async_invoker.cc",
  175. "src/external/webrtc/rtc_base/async_invoker.h",
  176. "src/external/webrtc/rtc_base/async_packet_socket.cc",
  177. "src/external/webrtc/rtc_base/async_packet_socket.h",
  178. "src/external/webrtc/rtc_base/async_resolver_interface.cc",
  179. "src/external/webrtc/rtc_base/async_resolver_interface.h",
  180. "src/external/webrtc/rtc_base/async_socket.cc",
  181. "src/external/webrtc/rtc_base/async_socket.h",
  182. "src/external/webrtc/rtc_base/async_tcp_socket.cc",
  183. "src/external/webrtc/rtc_base/async_tcp_socket.h",
  184. "src/external/webrtc/rtc_base/async_udp_socket.cc",
  185. "src/external/webrtc/rtc_base/async_udp_socket.h",
  186. "src/external/webrtc/rtc_base/atomic_ops.h",
  187. "src/external/webrtc/rtc_base/bind.h",
  188. "src/external/webrtc/rtc_base/bit_buffer.cc",
  189. "src/external/webrtc/rtc_base/buffer_queue.cc",
  190. "src/external/webrtc/rtc_base/buffer_queue.h",
  191. "src/external/webrtc/rtc_base/buffer.h",
  192. "src/external/webrtc/rtc_base/byte_buffer.cc",
  193. "src/external/webrtc/rtc_base/byte_buffer.h",
  194. "src/external/webrtc/rtc_base/byte_order.h",
  195. "src/external/webrtc/rtc_base/callback.h",
  196. "src/external/webrtc/rtc_base/checks.cc",
  197. "src/external/webrtc/rtc_base/checks.h",
  198. "src/external/webrtc/rtc_base/constructor_magic.h",
  199. "src/external/webrtc/rtc_base/copy_on_write_buffer.cc",
  200. "src/external/webrtc/rtc_base/copy_on_write_buffer.h",
  201. "src/external/webrtc/rtc_base/crc32.cc",
  202. "src/external/webrtc/rtc_base/crc32.h",
  203. "src/external/webrtc/rtc_base/critical_section.cc",
  204. "src/external/webrtc/rtc_base/critical_section.h",
  205. "src/external/webrtc/rtc_base/crypt_string.cc",
  206. "src/external/webrtc/rtc_base/crypt_string.h",
  207. "src/external/webrtc/rtc_base/deprecated/signal_thread.cc",
  208. "src/external/webrtc/rtc_base/deprecated/signal_thread.h",
  209. "src/external/webrtc/rtc_base/deprecation.h",
  210. "src/external/webrtc/rtc_base/dscp.h",
  211. "src/external/webrtc/rtc_base/event_tracer.cc",
  212. "src/external/webrtc/rtc_base/event_tracer.cc",
  213. "src/external/webrtc/rtc_base/event_tracer.h",
  214. "src/external/webrtc/rtc_base/event.cc",
  215. "src/external/webrtc/rtc_base/event.h",
  216. "src/external/webrtc/rtc_base/experiments/field_trial_parser.cc",
  217. "src/external/webrtc/rtc_base/experiments/field_trial_parser.h",
  218. "src/external/webrtc/rtc_base/experiments/field_trial_units.cc",
  219. "src/external/webrtc/rtc_base/experiments/field_trial_units.h",
  220. "src/external/webrtc/rtc_base/experiments/struct_parameters_parser.cc",
  221. "src/external/webrtc/rtc_base/experiments/struct_parameters_parser.h",
  222. "src/external/webrtc/rtc_base/helpers.cc",
  223. "src/external/webrtc/rtc_base/helpers.h",
  224. "src/external/webrtc/rtc_base/http_common.cc",
  225. "src/external/webrtc/rtc_base/http_common.cc",
  226. "src/external/webrtc/rtc_base/http_common.h",
  227. "src/external/webrtc/rtc_base/ip_address.cc",
  228. "src/external/webrtc/rtc_base/ip_address.h",
  229. "src/external/webrtc/rtc_base/location.cc",
  230. "src/external/webrtc/rtc_base/location.h",
  231. "src/external/webrtc/rtc_base/logging.cc",
  232. "src/external/webrtc/rtc_base/logging.h",
  233. "src/external/webrtc/rtc_base/mdns_responder_interface.h",
  234. "src/external/webrtc/rtc_base/message_digest.cc",
  235. "src/external/webrtc/rtc_base/message_digest.h",
  236. "src/external/webrtc/rtc_base/message_handler.cc",
  237. "src/external/webrtc/rtc_base/message_handler.h",
  238. "src/external/webrtc/rtc_base/net_helper.cc",
  239. "src/external/webrtc/rtc_base/net_helper.h",
  240. "src/external/webrtc/rtc_base/net_helpers.cc",
  241. "src/external/webrtc/rtc_base/net_helpers.h",
  242. "src/external/webrtc/rtc_base/network_constants.cc",
  243. "src/external/webrtc/rtc_base/network_constants.h",
  244. "src/external/webrtc/rtc_base/network_monitor.cc",
  245. "src/external/webrtc/rtc_base/network_monitor.h",
  246. "src/external/webrtc/rtc_base/network_route.cc",
  247. "src/external/webrtc/rtc_base/network_route.h",
  248. "src/external/webrtc/rtc_base/network.cc",
  249. "src/external/webrtc/rtc_base/network.h",
  250. "src/external/webrtc/rtc_base/network/sent_packet.cc",
  251. "src/external/webrtc/rtc_base/network/sent_packet.h",
  252. "src/external/webrtc/rtc_base/null_socket_server.cc",
  253. "src/external/webrtc/rtc_base/null_socket_server.h",
  254. "src/external/webrtc/rtc_base/numerics/event_based_exponential_moving_average.cc",
  255. "src/external/webrtc/rtc_base/numerics/event_based_exponential_moving_average.h",
  256. "src/external/webrtc/rtc_base/numerics/safe_compare.h",
  257. "src/external/webrtc/rtc_base/numerics/safe_conversions_impl.h",
  258. "src/external/webrtc/rtc_base/numerics/safe_conversions.h",
  259. "src/external/webrtc/rtc_base/numerics/safe_minmax.h",
  260. "src/external/webrtc/rtc_base/openssl_adapter.cc",
  261. "src/external/webrtc/rtc_base/openssl_adapter.h",
  262. "src/external/webrtc/rtc_base/openssl_certificate.cc",
  263. "src/external/webrtc/rtc_base/openssl_certificate.h",
  264. "src/external/webrtc/rtc_base/openssl_digest.cc",
  265. "src/external/webrtc/rtc_base/openssl_digest.h",
  266. "src/external/webrtc/rtc_base/openssl_identity.cc",
  267. "src/external/webrtc/rtc_base/openssl_identity.h",
  268. "src/external/webrtc/rtc_base/openssl_session_cache.cc",
  269. "src/external/webrtc/rtc_base/openssl_session_cache.h",
  270. "src/external/webrtc/rtc_base/openssl_stream_adapter.cc",
  271. "src/external/webrtc/rtc_base/openssl_stream_adapter.h",
  272. "src/external/webrtc/rtc_base/openssl_utility.cc",
  273. "src/external/webrtc/rtc_base/openssl_utility.h",
  274. "src/external/webrtc/rtc_base/openssl.h",
  275. "src/external/webrtc/rtc_base/physical_socket_server.cc",
  276. "src/external/webrtc/rtc_base/physical_socket_server.h",
  277. "src/external/webrtc/rtc_base/platform_thread_types.cc",
  278. "src/external/webrtc/rtc_base/platform_thread_types.h",
  279. "src/external/webrtc/rtc_base/platform_thread.cc",
  280. "src/external/webrtc/rtc_base/platform_thread.cc",
  281. "src/external/webrtc/rtc_base/platform_thread.h",
  282. "src/external/webrtc/rtc_base/proxy_info.cc",
  283. "src/external/webrtc/rtc_base/proxy_info.h",
  284. "src/external/webrtc/rtc_base/rate_tracker.cc",
  285. "src/external/webrtc/rtc_base/rate_tracker.h",
  286. "src/external/webrtc/rtc_base/ref_count.h",
  287. "src/external/webrtc/rtc_base/ref_counted_object.h",
  288. "src/external/webrtc/rtc_base/ref_counter.h",
  289. "src/external/webrtc/rtc_base/rtc_certificate.cc",
  290. "src/external/webrtc/rtc_base/rtc_certificate.h",
  291. "src/external/webrtc/rtc_base/sanitizer.h",
  292. "src/external/webrtc/rtc_base/signal_thread.h",
  293. "src/external/webrtc/rtc_base/socket_adapters.cc",
  294. "src/external/webrtc/rtc_base/socket_adapters.h",
  295. "src/external/webrtc/rtc_base/socket_address.cc",
  296. "src/external/webrtc/rtc_base/socket_address.h",
  297. "src/external/webrtc/rtc_base/socket_factory.h",
  298. "src/external/webrtc/rtc_base/socket_server.h",
  299. "src/external/webrtc/rtc_base/socket.cc",
  300. "src/external/webrtc/rtc_base/socket.h",
  301. "src/external/webrtc/rtc_base/ssl_adapter.cc",
  302. "src/external/webrtc/rtc_base/ssl_adapter.h",
  303. "src/external/webrtc/rtc_base/ssl_certificate.cc",
  304. "src/external/webrtc/rtc_base/ssl_certificate.h",
  305. "src/external/webrtc/rtc_base/ssl_fingerprint.cc",
  306. "src/external/webrtc/rtc_base/ssl_fingerprint.h",
  307. "src/external/webrtc/rtc_base/ssl_identity.cc",
  308. "src/external/webrtc/rtc_base/ssl_identity.h",
  309. "src/external/webrtc/rtc_base/ssl_roots.h",
  310. "src/external/webrtc/rtc_base/ssl_stream_adapter.cc",
  311. "src/external/webrtc/rtc_base/ssl_stream_adapter.h",
  312. "src/external/webrtc/rtc_base/stream.cc",
  313. "src/external/webrtc/rtc_base/stream.h",
  314. "src/external/webrtc/rtc_base/string_encode.cc",
  315. "src/external/webrtc/rtc_base/string_encode.h",
  316. "src/external/webrtc/rtc_base/string_to_number.cc",
  317. "src/external/webrtc/rtc_base/string_to_number.h",
  318. "src/external/webrtc/rtc_base/string_utils.cc",
  319. "src/external/webrtc/rtc_base/string_utils.h",
  320. "src/external/webrtc/rtc_base/stringize_macros.h",
  321. "src/external/webrtc/rtc_base/strings/string_builder.cc",
  322. "src/external/webrtc/rtc_base/strings/string_builder.h",
  323. "src/external/webrtc/rtc_base/synchronization/mutex_critical_section.h",
  324. "src/external/webrtc/rtc_base/synchronization/mutex.cc",
  325. "src/external/webrtc/rtc_base/synchronization/mutex.h",
  326. "src/external/webrtc/rtc_base/synchronization/rw_lock_wrapper.cc",
  327. "src/external/webrtc/rtc_base/synchronization/rw_lock_wrapper.h",
  328. "src/external/webrtc/rtc_base/synchronization/sequence_checker.cc",
  329. "src/external/webrtc/rtc_base/synchronization/sequence_checker.h",
  330. "src/external/webrtc/rtc_base/synchronization/yield_policy.cc",
  331. "src/external/webrtc/rtc_base/synchronization/yield_policy.cc",
  332. "src/external/webrtc/rtc_base/synchronization/yield_policy.h",
  333. "src/external/webrtc/rtc_base/synchronization/yield.cc",
  334. "src/external/webrtc/rtc_base/synchronization/yield.h",
  335. "src/external/webrtc/rtc_base/system/arch.h",
  336. "src/external/webrtc/rtc_base/system/file_wrapper.cc",
  337. "src/external/webrtc/rtc_base/system/file_wrapper.h",
  338. "src/external/webrtc/rtc_base/system/inline.h",
  339. "src/external/webrtc/rtc_base/system/rtc_export.h",
  340. "src/external/webrtc/rtc_base/system/unused.h",
  341. "src/external/webrtc/rtc_base/system/warn_current_thread_is_deadlocked.h",
  342. "src/external/webrtc/rtc_base/task_utils/pending_task_safety_flag.cc",
  343. "src/external/webrtc/rtc_base/task_utils/pending_task_safety_flag.h",
  344. "src/external/webrtc/rtc_base/task_utils/to_queued_task.h",
  345. "src/external/webrtc/rtc_base/third_party/base64/base64.cc",
  346. "src/external/webrtc/rtc_base/third_party/base64/base64.h",
  347. "src/external/webrtc/rtc_base/third_party/sigslot/sigslot.cc",
  348. "src/external/webrtc/rtc_base/third_party/sigslot/sigslot.h",
  349. "src/external/webrtc/rtc_base/thread_annotations.h",
  350. "src/external/webrtc/rtc_base/thread_checker.h",
  351. "src/external/webrtc/rtc_base/thread_message.h",
  352. "src/external/webrtc/rtc_base/thread.cc",
  353. "src/external/webrtc/rtc_base/thread.h",
  354. "src/external/webrtc/rtc_base/time_utils.cc",
  355. "src/external/webrtc/rtc_base/time_utils.h",
  356. "src/external/webrtc/rtc_base/trace_event.h",
  357. "src/external/webrtc/rtc_base/type_traits.h",
  358. "src/external/webrtc/rtc_base/unique_id_generator.cc",
  359. "src/external/webrtc/rtc_base/unique_id_generator.h",
  360. "src/external/webrtc/rtc_base/units/unit_base.h",
  361. "src/external/webrtc/rtc_base/weak_ptr.cc",
  362. "src/external/webrtc/rtc_base/weak_ptr.h",
  363. "src/external/webrtc/rtc_base/zero_memory.cc",
  364. "src/external/webrtc/rtc_base/zero_memory.h",
  365. "src/external/webrtc/system_wrappers/include/clock.h",
  366. "src/external/webrtc/system_wrappers/include/field_trial.h",
  367. "src/external/webrtc/system_wrappers/include/metrics.h",
  368. "src/external/webrtc/system_wrappers/include/ntp_time.h",
  369. "src/external/webrtc/system_wrappers/source/clock.cc",
  370. "src/external/webrtc/system_wrappers/source/field_trial.cc",
  371. "src/external/webrtc/system_wrappers/source/metrics.cc"
  372. }
  373. for _, v in ipairs(files) do
  374. if v:endswith(".cc") then
  375. add_files(v)
  376. end
  377. if v:endswith(".h") then
  378. add_headerfiles(v)
  379. end
  380. end
  381. if is_plat("windows") then
  382. add_files(
  383. "src/external/webrtc/rtc_base/win32.cc",
  384. "src/external/webrtc/rtc_base/synchronization/rw_lock_win.cc"
  385. )
  386. add_headerfiles(
  387. "src/external/webrtc/rtc_base/win32.h",
  388. "src/external/webrtc/rtc_base/synchronization/rw_lock_win.h"
  389. )
  390. on_config(function(target)
  391. io.writefile("src/external/webrtc/base/third_party/libevent/event.h", "#pragma once\n#include <event.h>\n")
  392. end)
  393. add_syslinks("ws2_32", "crypt32", "winmm", "Secur32", "Iphlpapi")
  394. else
  395. add_files(
  396. "src/external/webrtc/rtc_base/synchronization/rw_lock_posix.cc",
  397. "src/external/webrtc/rtc_base/ifaddrs_converter.cc"
  398. )
  399. add_headerfiles(
  400. "src/external/webrtc/rtc_base/synchronization/rw_lock_posix.h"
  401. )
  402. add_syslinks("pthread")
  403. add_cxflags("-Wno-attributes")
  404. end
  405. set_languages("cxx17")
  406. add_packages("openssl", "abseil")
  407. add_includedirs("src/external/webrtc")
  408. target("steamwebrtc")
  409. set_kind("static")
  410. add_rules("c++")
  411. if is_plat("windows") then
  412. add_defines("WEBRTC_WIN", "NOMINMAX", "WIN32_LEAN_AND_MEAN", "_WINSOCKAPI_")
  413. add_cxflags("/wd4715", "/wd4005", "/wd4996", "/wd4530")
  414. else
  415. add_ldflags("-Wl", "--no-undefined")
  416. add_defines("WEBRTC_POSIX", "WEBRTC_LINUX")
  417. end
  418. add_files("src/external/steamwebrtc/ice_session.cpp")
  419. add_includedirs("src/external/webrtc")
  420. set_languages("cxx17")
  421. add_deps("webrtc-lite")
  422. add_packages("abseil")
  423. end
  424. target("gns") -- we need limit path length
  425. set_kind("$(kind)")
  426. add_rules("protobuf.cpp")
  427. set_languages("gnu17", "gnu++17")
  428. add_vectorexts("sse2")
  429. add_packages("protobuf-cpp", "openssl")
  430. set_basename("gamenetworkingsockets")
  431. if is_plat("windows") then
  432. add_syslinks("ws2_32")
  433. add_defines("WIN32", "_WINDOWS")
  434. else
  435. add_syslinks("pthread")
  436. add_defines("POSIX", "LINUX", "GNUC", "GNU_COMPILER")
  437. end
  438. if has_config("webrtc") then
  439. add_defines("STEAMWEBRTC_USE_STATIC_LIBS", "STEAMNETWORKINGSOCKETS_ENABLE_ICE")
  440. add_deps("steamwebrtc")
  441. add_packages("abseil")
  442. end
  443. if is_kind("shared") then
  444. add_defines("STEAMNETWORKINGSOCKETS_FOREXPORT")
  445. else
  446. add_defines("STEAMNETWORKINGSOCKETS_STATIC_LINK", "OPENSSL_USE_STATIC_LIBS")
  447. end
  448. add_defines("STEAMNETWORKINGSOCKETS_CRYPTO_25519_OPENSSL",
  449. "STEAMNETWORKINGSOCKETS_CRYPTO_VALVEOPENSSL",
  450. "OPENSSL_HAS_25519_RAW",
  451. "VALVE_CRYPTO_ENABLE_25519",
  452. "GOOGLE_PROTOBUF_NO_RTTI",
  453. "VALVE_CRYPTO_25519_OPENSSL",
  454. "CRYPTO_DISABLE_ENCRYPT_WITH_PASSWORD",
  455. "ENABLE_OPENSSLCONNECTION")
  456. add_includedirs("include",
  457. "src",
  458. "src/common",
  459. "src/tier0",
  460. "src/tier1",
  461. "src/vstdlib",
  462. "src/steamnetworkingsockets",
  463. "src/steamnetworkingsockets/clientlib",
  464. "src/public")
  465. add_headerfiles("include/(steam/*.h)")
  466. add_headerfiles("include/(minbase/*.h)")
  467. add_headerfiles("src/public/(*/*.h)")
  468. -- OpenSSL specific files
  469. add_files( "src/common/crypto_openssl.cpp",
  470. "src/common/crypto_25519_openssl.cpp",
  471. "src/common/opensslwrapper.cpp")
  472. add_files("src/common/steamnetworkingsockets_messages_certs.proto",
  473. "src/common/steamnetworkingsockets_messages.proto",
  474. "src/common/steamnetworkingsockets_messages_udp.proto")
  475. add_files( "src/common/crypto.cpp",
  476. "src/common/crypto_textencode.cpp",
  477. "src/common/keypair.cpp",
  478. "src/common/steamid.cpp",
  479. "src/vstdlib/strtools.cpp",
  480. "src/tier0/dbg.cpp",
  481. "src/tier0/platformtime.cpp",
  482. "src/tier1/ipv6text.c",
  483. "src/tier1/netadr.cpp",
  484. "src/tier1/utlbuffer.cpp",
  485. "src/tier1/utlmemory.cpp",
  486. "src/steamnetworkingsockets/steamnetworkingsockets_certs.cpp",
  487. "src/steamnetworkingsockets/steamnetworkingsockets_thinker.cpp",
  488. "src/steamnetworkingsockets/steamnetworkingsockets_certstore.cpp",
  489. "src/steamnetworkingsockets/clientlib/steamnetworkingsockets_connections.cpp",
  490. "src/steamnetworkingsockets/clientlib/steamnetworkingsockets_flat.cpp",
  491. "src/steamnetworkingsockets/clientlib/steamnetworkingsockets_lowlevel.cpp",
  492. "src/steamnetworkingsockets/steamnetworkingsockets_shared.cpp",
  493. "src/steamnetworkingsockets/steamnetworkingsockets_stats.cpp",
  494. "src/steamnetworkingsockets/clientlib/steamnetworkingsockets_snp.cpp",
  495. "src/steamnetworkingsockets/clientlib/steamnetworkingsockets_udp.cpp",
  496. "src/steamnetworkingsockets/clientlib/csteamnetworkingmessages.cpp",
  497. "src/steamnetworkingsockets/clientlib/csteamnetworkingsockets.cpp",
  498. "src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p.cpp",
  499. "src/steamnetworkingsockets/clientlib/steamnetworkingsockets_stun.cpp",
  500. "src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p_ice.cpp")