brightray.gyp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. {
  2. 'variables': {
  3. # The libraries brightray will be compiled to.
  4. 'linux_system_libraries': 'gtk+-2.0 dbus-1 x11 x11-xcb xcb xi xcursor xdamage xrandr xcomposite xext xfixes xrender xtst xscrnsaver gconf-2.0 gmodule-2.0 nss'
  5. },
  6. 'includes': [
  7. 'filenames.gypi',
  8. ],
  9. 'targets': [
  10. {
  11. 'target_name': 'brightray',
  12. 'type': 'static_library',
  13. 'include_dirs': [
  14. '..',
  15. '<(libchromiumcontent_src_dir)',
  16. '<(libchromiumcontent_src_dir)/skia/config',
  17. '<(libchromiumcontent_src_dir)/third_party/boringssl/src/include',
  18. '<(libchromiumcontent_src_dir)/third_party/skia/include/core',
  19. '<(libchromiumcontent_src_dir)/third_party/mojo/src',
  20. '<(libchromiumcontent_src_dir)/third_party/WebKit',
  21. '<(libchromiumcontent_dir)/gen',
  22. ],
  23. 'direct_dependent_settings': {
  24. 'include_dirs': [
  25. '../vendor',
  26. '<(libchromiumcontent_src_dir)',
  27. '<(libchromiumcontent_src_dir)/gpu',
  28. '<(libchromiumcontent_src_dir)/skia/config',
  29. '<(libchromiumcontent_src_dir)/third_party/boringssl/src/include',
  30. '<(libchromiumcontent_src_dir)/third_party/skia/include/core',
  31. '<(libchromiumcontent_src_dir)/third_party/skia/include/config',
  32. '<(libchromiumcontent_src_dir)/third_party/icu/source/common',
  33. '<(libchromiumcontent_src_dir)/third_party/mojo/src',
  34. '<(libchromiumcontent_src_dir)/third_party/khronos',
  35. '<(libchromiumcontent_src_dir)/third_party/WebKit',
  36. '<(libchromiumcontent_dir)/gen',
  37. '<(libchromiumcontent_dir)/gen/third_party/WebKit',
  38. ],
  39. },
  40. 'sources': [ '<@(brightray_sources)' ],
  41. 'conditions': [
  42. # Link with libraries of libchromiumcontent.
  43. ['OS=="linux" and libchromiumcontent_component==0', {
  44. # On Linux we have to use "--whole-archive" to force executable
  45. # to include all symbols, otherwise we will have plenty of
  46. # unresolved symbols errors.
  47. 'direct_dependent_settings': {
  48. 'ldflags': [
  49. '-Wl,--whole-archive',
  50. '<@(libchromiumcontent_libraries)',
  51. '-Wl,--no-whole-archive',
  52. ],
  53. }
  54. }, { # (Release build on Linux)
  55. 'link_settings': {
  56. 'libraries': [ '<@(libchromiumcontent_libraries)' ]
  57. },
  58. }], # (Normal builds)
  59. # Linux specific link settings.
  60. ['OS=="linux"', {
  61. 'link_settings': {
  62. 'ldflags': [
  63. '<!@(<(pkg-config) --libs-only-L --libs-only-other <(linux_system_libraries))',
  64. ],
  65. 'libraries': [
  66. '-lpthread',
  67. '<!@(<(pkg-config) --libs-only-l <(linux_system_libraries))',
  68. ],
  69. },
  70. 'cflags': [
  71. '<!@(<(pkg-config) --cflags <(linux_system_libraries))',
  72. # Needed by using libgtkui:
  73. '-Wno-deprecated-register',
  74. '-Wno-sentinel',
  75. ],
  76. 'cflags_cc': [
  77. '-Wno-reserved-user-defined-literal',
  78. ],
  79. 'direct_dependent_settings': {
  80. 'cflags': [
  81. '<!@(<(pkg-config) --cflags <(linux_system_libraries))',
  82. '-Wno-deprecated-register',
  83. '-Wno-sentinel',
  84. ],
  85. },
  86. 'conditions': [
  87. ['libchromiumcontent_component', {
  88. 'link_settings': {
  89. 'libraries': [
  90. # Following libraries are always linked statically.
  91. '<(libchromiumcontent_dir)/libgtkui.a',
  92. '<(libchromiumcontent_dir)/libhttp_server.a',
  93. '<(libchromiumcontent_dir)/libdesktop_capture.a',
  94. '<(libchromiumcontent_dir)/libdom_keycode_converter.a',
  95. '<(libchromiumcontent_dir)/libsystem_wrappers.a',
  96. '<(libchromiumcontent_dir)/librtc_base.a',
  97. '<(libchromiumcontent_dir)/librtc_base_approved.a',
  98. '<(libchromiumcontent_dir)/libwebrtc_common.a',
  99. '<(libchromiumcontent_dir)/libyuv.a',
  100. '<(libchromiumcontent_dir)/librenderer.a',
  101. '<(libchromiumcontent_dir)/libsecurity_state.a',
  102. # Friends of libpdf.a:
  103. # On Linux we have to use "--whole-archive" to include
  104. # all symbols, otherwise there will be plenty of
  105. # unresolved symbols errors.
  106. '-Wl,--whole-archive',
  107. '<(libchromiumcontent_dir)/libpdf.a',
  108. '<(libchromiumcontent_dir)/libppapi_cpp_objects.a',
  109. '<(libchromiumcontent_dir)/libppapi_internal_module.a',
  110. '<(libchromiumcontent_dir)/libjpeg.a',
  111. '<(libchromiumcontent_dir)/libpdfium.a',
  112. '<(libchromiumcontent_dir)/libfdrm.a',
  113. '<(libchromiumcontent_dir)/libformfiller.a',
  114. '<(libchromiumcontent_dir)/libfpdfapi.a',
  115. '<(libchromiumcontent_dir)/libfpdfdoc.a',
  116. '<(libchromiumcontent_dir)/libfpdftext.a',
  117. '<(libchromiumcontent_dir)/libfxcodec.a',
  118. '<(libchromiumcontent_dir)/libfxedit.a',
  119. '<(libchromiumcontent_dir)/libfxge.a',
  120. '<(libchromiumcontent_dir)/libfxjs.a',
  121. '<(libchromiumcontent_dir)/libjavascript.a',
  122. '<(libchromiumcontent_dir)/libpdfwindow.a',
  123. '<(libchromiumcontent_dir)/libfx_agg.a',
  124. '<(libchromiumcontent_dir)/libfx_lcms2.a',
  125. '<(libchromiumcontent_dir)/libfx_libopenjpeg.a',
  126. '<(libchromiumcontent_dir)/libfx_zlib.a',
  127. '-Wl,--no-whole-archive',
  128. ],
  129. },
  130. }, {
  131. 'link_settings': {
  132. 'libraries': [
  133. # Link with ffmpeg.
  134. '<(libchromiumcontent_dir)/libffmpeg.so',
  135. # Following libraries are required by libchromiumcontent:
  136. '-lasound',
  137. '-lcap',
  138. '-lcups',
  139. '-lrt',
  140. '-ldl',
  141. '-lresolv',
  142. '-lfontconfig',
  143. '-lfreetype',
  144. '-lexpat',
  145. ],
  146. },
  147. }],
  148. ['target_arch=="arm"', {
  149. 'link_settings': {
  150. 'libraries!': [
  151. '<(libchromiumcontent_dir)/libdesktop_capture_differ_sse2.a',
  152. ],
  153. },
  154. }],
  155. ],
  156. }], # OS=="linux"
  157. ['OS=="mac"', {
  158. 'link_settings': {
  159. 'libraries': [
  160. '$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
  161. # Required by webrtc:
  162. '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
  163. '$(SDKROOT)/System/Library/Frameworks/IOKit.framework',
  164. # Required by media:
  165. '$(SDKROOT)/System/Library/Frameworks/VideoToolbox.framework',
  166. ],
  167. },
  168. 'conditions': [
  169. ['libchromiumcontent_component', {
  170. 'link_settings': {
  171. 'libraries': [
  172. # Following libraries are always linked statically.
  173. '<(libchromiumcontent_dir)/libhttp_server.a',
  174. '<(libchromiumcontent_dir)/libdesktop_capture.a',
  175. '<(libchromiumcontent_dir)/libdom_keycode_converter.a',
  176. '<(libchromiumcontent_dir)/librtc_base.a',
  177. '<(libchromiumcontent_dir)/librtc_base_approved.a',
  178. '<(libchromiumcontent_dir)/libsystem_wrappers.a',
  179. '<(libchromiumcontent_dir)/libwebrtc_common.a',
  180. '<(libchromiumcontent_dir)/libyuv.a',
  181. '<(libchromiumcontent_dir)/librenderer.a',
  182. '<(libchromiumcontent_dir)/libsecurity_state.a',
  183. # Friends of libpdf.a:
  184. '<(libchromiumcontent_dir)/libpdf.a',
  185. '<(libchromiumcontent_dir)/libppapi_cpp_objects.a',
  186. '<(libchromiumcontent_dir)/libppapi_internal_module.a',
  187. '<(libchromiumcontent_dir)/libjpeg.a',
  188. '<(libchromiumcontent_dir)/libpdfium.a',
  189. '<(libchromiumcontent_dir)/libfdrm.a',
  190. '<(libchromiumcontent_dir)/libformfiller.a',
  191. '<(libchromiumcontent_dir)/libfpdfapi.a',
  192. '<(libchromiumcontent_dir)/libfpdfdoc.a',
  193. '<(libchromiumcontent_dir)/libfpdftext.a',
  194. '<(libchromiumcontent_dir)/libfxcodec.a',
  195. '<(libchromiumcontent_dir)/libfxcrt.a',
  196. '<(libchromiumcontent_dir)/libfxedit.a',
  197. '<(libchromiumcontent_dir)/libfxge.a',
  198. '<(libchromiumcontent_dir)/libfxjs.a',
  199. '<(libchromiumcontent_dir)/libjavascript.a',
  200. '<(libchromiumcontent_dir)/libpdfwindow.a',
  201. '<(libchromiumcontent_dir)/libfx_agg.a',
  202. '<(libchromiumcontent_dir)/libfx_freetype.a',
  203. '<(libchromiumcontent_dir)/libfx_lcms2.a',
  204. '<(libchromiumcontent_dir)/libfx_libopenjpeg.a',
  205. '<(libchromiumcontent_dir)/libfx_zlib.a',
  206. ],
  207. },
  208. }, {
  209. 'link_settings': {
  210. 'libraries': [
  211. # Link with ffmpeg.
  212. '<(libchromiumcontent_dir)/libffmpeg.dylib',
  213. # Link with system frameworks.
  214. # ui_base.gypi:
  215. '$(SDKROOT)/System/Library/Frameworks/Accelerate.framework',
  216. # net.gypi:
  217. '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
  218. '$(SDKROOT)/System/Library/Frameworks/Security.framework',
  219. '$(SDKROOT)/System/Library/Frameworks/SystemConfiguration.framework',
  220. '-lresolv',
  221. # media.gyp:
  222. '$(SDKROOT)/System/Library/Frameworks/AudioToolbox.framework',
  223. '$(SDKROOT)/System/Library/Frameworks/AudioUnit.framework',
  224. '$(SDKROOT)/System/Library/Frameworks/AVFoundation.framework',
  225. '$(SDKROOT)/System/Library/Frameworks/CoreAudio.framework',
  226. '$(SDKROOT)/System/Library/Frameworks/CoreMedia.framework',
  227. '$(SDKROOT)/System/Library/Frameworks/CoreMIDI.framework',
  228. '$(SDKROOT)/System/Library/Frameworks/CoreVideo.framework',
  229. # surface.gyp:
  230. '$(SDKROOT)/System/Library/Frameworks/IOSurface.framework',
  231. # content_common.gypi:
  232. '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
  233. # base.gyp:
  234. '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework',
  235. '$(SDKROOT)/System/Library/Frameworks/Carbon.framework',
  236. '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
  237. # device/gamepad/BUILD.gn:
  238. '$(SDKROOT)/System/Library/Frameworks/GameController.framework',
  239. # content_browser.gypi:
  240. '-lbsm',
  241. # content_common.gypi:
  242. '-lsandbox',
  243. # bluetooth.gyp:
  244. '$(SDKROOT)/System/Library/Frameworks/IOBluetooth.framework',
  245. # components/wifi/BUILD.gn:
  246. '$(SDKROOT)/System/Library/Frameworks/CoreWLAN.framework',
  247. # printing/BUILD.gn:
  248. '-lcups',
  249. ],
  250. },
  251. }],
  252. ]
  253. }], # OS=="mac"
  254. ['OS=="win"', {
  255. 'conditions': [
  256. ['libchromiumcontent_component', {
  257. 'link_settings': {
  258. 'libraries': [
  259. # Needed by desktop_capture.lib:
  260. '-ld3d11.lib',
  261. '-ldxgi.lib',
  262. # Following libs are always linked statically.
  263. '<(libchromiumcontent_dir)/base_static.lib',
  264. '<(libchromiumcontent_dir)/sandbox.lib',
  265. '<(libchromiumcontent_dir)/sandbox_helper_win.lib',
  266. '<(libchromiumcontent_dir)/http_server.lib',
  267. '<(libchromiumcontent_dir)/desktop_capture.lib',
  268. '<(libchromiumcontent_dir)/dom_keycode_converter.lib',
  269. '<(libchromiumcontent_dir)/rtc_base.lib',
  270. '<(libchromiumcontent_dir)/rtc_base_approved.lib',
  271. '<(libchromiumcontent_dir)/system_wrappers.lib',
  272. '<(libchromiumcontent_dir)/webrtc_common.lib',
  273. '<(libchromiumcontent_dir)/libyuv.lib',
  274. '<(libchromiumcontent_dir)/renderer.lib',
  275. '<(libchromiumcontent_dir)/security_state.lib',
  276. # Friends of pdf.lib:
  277. '<(libchromiumcontent_dir)/pdf.lib',
  278. '<(libchromiumcontent_dir)/ppapi_cpp_objects.lib',
  279. '<(libchromiumcontent_dir)/ppapi_internal_module.lib',
  280. '<(libchromiumcontent_dir)/libjpeg.lib',
  281. '<(libchromiumcontent_dir)/pdfium.lib',
  282. '<(libchromiumcontent_dir)/fdrm.lib',
  283. '<(libchromiumcontent_dir)/formfiller.lib',
  284. '<(libchromiumcontent_dir)/fpdfapi.lib',
  285. '<(libchromiumcontent_dir)/fpdfdoc.lib',
  286. '<(libchromiumcontent_dir)/fpdftext.lib',
  287. '<(libchromiumcontent_dir)/fpdftext.lib',
  288. '<(libchromiumcontent_dir)/fxcodec.lib',
  289. '<(libchromiumcontent_dir)/fxcrt.lib',
  290. '<(libchromiumcontent_dir)/fxedit.lib',
  291. '<(libchromiumcontent_dir)/fxge.lib',
  292. '<(libchromiumcontent_dir)/fxjs.lib',
  293. '<(libchromiumcontent_dir)/javascript.lib',
  294. '<(libchromiumcontent_dir)/pdfwindow.lib',
  295. '<(libchromiumcontent_dir)/fx_agg.lib',
  296. '<(libchromiumcontent_dir)/fx_freetype.lib',
  297. '<(libchromiumcontent_dir)/fx_lcms2.lib',
  298. '<(libchromiumcontent_dir)/fx_libopenjpeg.lib',
  299. '<(libchromiumcontent_dir)/fx_zlib.lib',
  300. ],
  301. },
  302. }, {
  303. # Link with system libraries.
  304. 'link_settings': {
  305. 'libraries': [
  306. # Link with ffmpeg.
  307. '<(libchromiumcontent_dir)/ffmpeg.dll',
  308. # content_browser.gypi:
  309. '-lsensorsapi.lib',
  310. '-lportabledeviceguids.lib',
  311. # content_common.gypi:
  312. '-ld3d9.lib',
  313. '-ld3d11.lib',
  314. '-ldxgi.lib',
  315. '-ldxva2.lib',
  316. '-lstrmiids.lib',
  317. '-lmf.lib',
  318. '-lmfplat.lib',
  319. '-lmfuuid.lib',
  320. # media.gyp:
  321. '-ldxguid.lib',
  322. '-lmfreadwrite.lib',
  323. '-lmfuuid.lib',
  324. ],
  325. 'msvs_settings': {
  326. 'VCLinkerTool': {
  327. 'AdditionalDependencies': [
  328. 'advapi32.lib',
  329. 'dbghelp.lib',
  330. 'delayimp.lib',
  331. 'dwmapi.lib',
  332. 'gdi32.lib',
  333. 'netapi32.lib',
  334. 'oleacc.lib',
  335. 'user32.lib',
  336. 'usp10.lib',
  337. 'version.lib',
  338. 'winspool.lib',
  339. 'wtsapi32.lib',
  340. # bluetooth.gyp:
  341. 'Bthprops.lib',
  342. 'BluetoothApis.lib',
  343. # base.gyp:
  344. 'cfgmgr32.lib',
  345. 'powrprof.lib',
  346. 'setupapi.lib',
  347. # net_common.gypi:
  348. 'crypt32.lib',
  349. 'dhcpcsvc.lib',
  350. 'ncrypt.lib',
  351. 'rpcrt4.lib',
  352. 'secur32.lib',
  353. 'urlmon.lib',
  354. 'winhttp.lib',
  355. # ui/gfx/BUILD.gn:
  356. 'dwrite.lib',
  357. # skia/BUILD.gn:
  358. 'fontsub.lib',
  359. ],
  360. 'DelayLoadDLLs': [
  361. 'wtsapi32.dll',
  362. # content_common.gypi:
  363. 'd3d9.dll',
  364. 'd3d11.dll',
  365. 'dxva2.dll',
  366. # media.gyp:
  367. 'mf.dll',
  368. 'mfplat.dll',
  369. 'mfreadwrite.dll',
  370. # bluetooth.gyp:
  371. 'BluetoothApis.dll',
  372. 'Bthprops.cpl',
  373. 'setupapi.dll',
  374. # base.gyp:
  375. 'cfgmgr32.dll',
  376. 'powrprof.dll',
  377. 'setupapi.dll',
  378. # net_common.gypi:
  379. 'crypt32.dll',
  380. 'dhcpcsvc.dll',
  381. 'rpcrt4.dll',
  382. 'secur32.dll',
  383. 'urlmon.dll',
  384. 'winhttp.dll',
  385. # windows runtime
  386. 'API-MS-WIN-CORE-WINRT-L1-1-0.DLL',
  387. 'API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL',
  388. ],
  389. },
  390. },
  391. },
  392. }], # libchromiumcontent_component
  393. ],
  394. }], # OS=="win"
  395. ],
  396. },
  397. ],
  398. }