-
Notifications
You must be signed in to change notification settings - Fork 117
/
binding.gyp
724 lines (722 loc) · 44.7 KB
/
binding.gyp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
{
'targets': [
{
'target_name': 'exokit',
'conditions': [
['"<!(echo $LUMIN$ANDROID)"!="1"', {
'conditions': [
['OS=="win"', {
'sources': [
'exokit.cpp',
'deps/exokit-bindings/bindings/src/bindings.cc',
'deps/exokit-bindings/util/src/defines.cc',
'deps/exokit-bindings/console/src/console.cc',
'deps/exokit-bindings/cache/src/cache.cc',
'deps/exokit-bindings/threadpool/src/threadpool.cc',
'deps/exokit-bindings/browser/src/browser.cpp',
'deps/exokit-bindings/browser/src/browser-android.cpp',
'deps/exokit-bindings/browser/src/browser-common.cpp',
'deps/exokit-bindings/browser/src/browser-ml.cpp',
'deps/exokit-bindings/browser/src/Servo2D.cpp',
'deps/exokit-bindings/canvas/src/Color.cpp',
'deps/exokit-bindings/canvas/src/csscolorparser.cpp',
'deps/exokit-bindings/canvas/src/dxt.cpp',
'deps/exokit-bindings/canvas/src/FloydSteinberg.cpp',
'deps/exokit-bindings/canvas/src/Image.cpp',
'deps/exokit-bindings/canvas/src/ImageData.cpp',
'deps/exokit-bindings/canvas/src/PackedImageData.cpp',
'deps/exokit-bindings/canvas/src/Path2D.cpp',
'deps/exokit-bindings/canvas/src/Resource.cpp',
'deps/exokit-bindings/canvas/src/rg_etc1.cpp',
'deps/exokit-bindings/canvas/src/web_color.cpp',
'deps/exokit-bindings/canvas/src/web_font.cpp',
'deps/exokit-bindings/canvas/src/web_string.cpp',
'deps/exokit-bindings/nanosvg/src/nanosvg.cpp',
'deps/exokit-bindings/canvascontext/src/canvas-context.cc',
'deps/exokit-bindings/canvascontext/src/canvas-gradient.cc',
'deps/exokit-bindings/canvascontext/src/canvas-pattern.cc',
'deps/exokit-bindings/canvascontext/src/imageBitmap-context.cc',
'deps/exokit-bindings/canvascontext/src/image-context.cc',
'deps/exokit-bindings/canvascontext/src/imageData-context.cc',
'deps/exokit-bindings/canvascontext/src/path2d-context.cc',
'deps/exokit-bindings/webglcontext/src/webgl.cc',
'deps/exokit-bindings/webaudiocontext/src/AnalyserNode.cpp',
'deps/exokit-bindings/webaudiocontext/src/Audio.cpp',
'deps/exokit-bindings/webaudiocontext/src/AudioBuffer.cpp',
'deps/exokit-bindings/webaudiocontext/src/AudioContext.cpp',
'deps/exokit-bindings/webaudiocontext/src/AudioDestinationGenericImpl.cpp',
'deps/exokit-bindings/webaudiocontext/src/AudioDestinationNode.cpp',
'deps/exokit-bindings/webaudiocontext/src/AudioListener.cpp',
'deps/exokit-bindings/webaudiocontext/src/AudioNode.cpp',
'deps/exokit-bindings/webaudiocontext/src/AudioParam.cpp',
'deps/exokit-bindings/webaudiocontext/src/AudioSourceNode.cpp',
'deps/exokit-bindings/webaudiocontext/src/FakeAudioParam.cpp',
'deps/exokit-bindings/webaudiocontext/src/GainNode.cpp',
'deps/exokit-bindings/webaudiocontext/src/MediaStreamTrack.cpp',
'deps/exokit-bindings/webaudiocontext/src/MicrophoneMediaStream.cpp',
'deps/exokit-bindings/webaudiocontext/src/OscillatorNode.cpp',
'deps/exokit-bindings/webaudiocontext/src/PannerNode.cpp',
'deps/exokit-bindings/webaudiocontext/src/ScriptProcessorNode.cpp',
'deps/exokit-bindings/webaudiocontext/src/StereoPannerNode.cpp',
'deps/exokit-bindings/windowsystem/src/windowsystem.cc',
'deps/exokit-bindings/glfw/src/glfw.cc',
'deps/exokit-bindings/webrtc/src/binding.cc',
'deps/exokit-bindings/webrtc/src/create-answer-observer.cc',
'deps/exokit-bindings/webrtc/src/create-offer-observer.cc',
'deps/exokit-bindings/webrtc/src/datachannel.cc',
'deps/exokit-bindings/webrtc/src/peerconnection.cc',
'deps/exokit-bindings/webrtc/src/peerconnectionfactory.cc',
'deps/exokit-bindings/webrtc/src/rtcstatsreport.cc',
'deps/exokit-bindings/webrtc/src/rtcstatsresponse.cc',
'deps/exokit-bindings/webrtc/src/set-local-description-observer.cc',
'deps/exokit-bindings/webrtc/src/set-remote-description-observer.cc',
'deps/exokit-bindings/webrtc/src/stats-observer.cc',
'deps/exokit-bindings/videocontext/src/Video.cpp',
'deps/exokit-bindings/videocontext/src/VideoCamera.cpp',
'deps/exokit-bindings/videocontext/src/VideoMode.cpp',
'deps/exokit-bindings/videocontext/src/win/VideoMode_win.cpp',
'deps/oculus/src/oculus-bindings.cpp',
'deps/oculus/src/ovrsession.cpp',
'deps/openvr/src/ivrcompositor.cpp',
'deps/openvr/src/ivrsystem.cpp',
'deps/openvr/src/openvr-bindings.cpp',
'deps/exokit-bindings/leapmotion/src/leapmotion.cc',
],
'include_dirs': [
"<!(node -e \"console.log(require.resolve('nan').slice(0, -16))\")",
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/core')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/config')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/gpu')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/effects')\")",
"<!(node -e \"console.log(require.resolve('native-audio-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/include/webrtc')\")",
"<!(node -e \"console.log(require.resolve('native-oculus-deps').slice(0, -9) + '/Include')\")",
"<!(node -e \"console.log(require.resolve('native-openvr-deps').slice(0, -9) + '/headers')\")",
"<!(node -e \"console.log(require.resolve('leapmotion').slice(0, -9) + '/include')\")",
'<(module_root_dir)/deps/exokit-bindings',
'<(module_root_dir)/deps/exokit-bindings/utf8',
'<(module_root_dir)/deps/exokit-bindings/node',
'<(module_root_dir)/deps/oculus-mobile/deps/native_app_glue',
'<(module_root_dir)/deps/exokit-bindings/util/include',
'<(module_root_dir)/deps/exokit-bindings/console/include',
'<(module_root_dir)/deps/exokit-bindings/cache/include',
'<(module_root_dir)/deps/exokit-bindings/threadpool/include',
'<(module_root_dir)/deps/exokit-bindings/bindings/include',
'<(module_root_dir)/deps/exokit-bindings/canvas/include',
'<(module_root_dir)/deps/exokit-bindings/browser/include',
'<(module_root_dir)/deps/exokit-bindings/nanosvg/include',
'<(module_root_dir)/deps/exokit-bindings/canvascontext/include',
'<(module_root_dir)/deps/exokit-bindings/webglcontext/include',
'<(module_root_dir)/deps/exokit-bindings/webaudiocontext/include',
'<(module_root_dir)/deps/exokit-bindings/videocontext/include',
'<(module_root_dir)/deps/exokit-bindings/windowsystem/include',
'<(module_root_dir)/deps/exokit-bindings/glfw/include',
'<(module_root_dir)/deps/exokit-bindings/webrtc/include',
'<(module_root_dir)/deps/oculus/include',
'<(module_root_dir)/deps/openvr/include',
'<(module_root_dir)/deps/exokit-bindings/leapmotion/include',
],
'library_dirs': [
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/lib/windows/glew')\")",
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/lib/windows/glfw')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/lib/windows')\")",
"<!(node -e \"console.log(require.resolve('native-audio-deps').slice(0, -9) + '/lib/windows')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/windows')\")",
"<!(node -e \"console.log(require.resolve('native-oculus-deps').slice(0, -9) + '/Lib/Windows/x64/Release/VS2017')\")",
"<!(node -e \"console.log(require.resolve('native-openvr-deps').slice(0, -9) + '/lib/win64')\")",
"<!(node -e \"console.log(require.resolve('leapmotion').slice(0, -9) + '/lib/win')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/lib/windows')\")",
],
'libraries': [
'opengl32.lib',
'glew32.lib',
'glfw3dll.lib',
'gdiplus.lib',
'skia.lib',
'LabSound.lib',
'avformat.lib',
'avcodec.lib',
'avutil.lib',
'avdevice.lib',
'swscale.lib',
'swresample.lib',
'openvr_api.lib',
'Leap.lib',
'LibOVR.lib',
'webrtc.lib',
'winmm.lib',
'wmcodecdspuuid.lib',
'secur32.lib',
'msdmo.lib',
'dmoguids.lib',
],
'copies': [
{
'destination': '<(module_root_dir)/build/Release/',
'files': [
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/lib/windows/glew/glew32.dll')\")",
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/lib/windows/glfw/glfw3.dll')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/windows/avformat-58.dll')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/windows/avcodec-58.dll')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/windows/avutil-56.dll')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/windows/avdevice-58.dll')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/windows/avfilter-7.dll')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/windows/postproc-55.dll')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/windows/swscale-5.dll')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/windows/swresample-3.dll')\")",
"<!(node -e \"console.log(require.resolve('native-oculus-deps').slice(0, -9) + '/Lib/Windows/x64/Release/VS2017')\")",
"<!(node -e \"console.log(require.resolve('native-openvr-deps').slice(0, -9) + '/bin/win64/openvr_api.dll')\")",
"<!(node -e \"console.log(require.resolve('leapmotion').slice(0, -9) + '/lib/win/Leap.dll')\")",
]
},
],
'defines': [
'NOMINMAX',
'OCULUSVR',
'OPENVR',
'LEAPMOTION',
'WEBRTC_WIN',
],
}],
['OS=="linux"', {
'conditions': [
['"<!(node -e \"console.log(process.arch)\")"=="x64"', {
'sources': [
'exokit.cpp',
'<!@(ls -1 deps/exokit-bindings/bindings/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/util/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/console/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/cache/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/threadpool/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/browser/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/canvas/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/nanosvg/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/canvascontext/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webglcontext/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webaudiocontext/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/videocontext/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/videocontext/src/linux/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/windowsystem/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/glfw/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webrtc/src/*.cc)',
'<!@(ls -1 deps/openvr/src/*.cpp)',
],
'include_dirs': [
"<!(node -e \"console.log(require.resolve('nan').slice(0, -16))\")",
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/core')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/config')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/gpu')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/effects')\")",
"<!(node -e \"console.log(require.resolve('native-audio-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/include/webrtc')\")",
"<!(node -e \"console.log(require.resolve('native-openvr-deps').slice(0, -9) + '/headers')\")",
'<(module_root_dir)/deps/exokit-bindings',
'<(module_root_dir)/deps/exokit-bindings/utf8',
'<(module_root_dir)/deps/exokit-bindings/node',
'<(module_root_dir)/deps/oculus-mobile/deps/native_app_glue',
'<(module_root_dir)/deps/exokit-bindings/util/include',
'<(module_root_dir)/deps/exokit-bindings/console/include',
'<(module_root_dir)/deps/exokit-bindings/cache/include',
'<(module_root_dir)/deps/exokit-bindings/threadpool/include',
'<(module_root_dir)/deps/exokit-bindings/bindings/include',
'<(module_root_dir)/deps/exokit-bindings/canvas/include',
'<(module_root_dir)/deps/exokit-bindings/browser/include',
'<(module_root_dir)/deps/exokit-bindings/nanosvg/include',
'<(module_root_dir)/deps/exokit-bindings/canvascontext/include',
'<(module_root_dir)/deps/exokit-bindings/webglcontext/include',
'<(module_root_dir)/deps/exokit-bindings/webaudiocontext/include',
'<(module_root_dir)/deps/exokit-bindings/videocontext/include',
'<(module_root_dir)/deps/exokit-bindings/windowsystem/include',
'<(module_root_dir)/deps/exokit-bindings/glfw/include',
'<(module_root_dir)/deps/exokit-bindings/webrtc/include',
'<(module_root_dir)/deps/openvr/include',
],
'library_dirs': [
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/lib/linux/glew')\")",
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/lib/linux/glfw')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/lib/linux')\")",
"<!(node -e \"console.log(require.resolve('native-audio-deps').slice(0, -9) + '/lib/linux')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/linux')\")",
"<!(node -e \"console.log(require.resolve('native-openvr-deps').slice(0, -9) + '/lib/linux64')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/lib/linux')\")",
],
'libraries': [
'-lGL',
'-lGLU',
'-lX11',
'-lGLEW',
'-lglfw3',
'-lfontconfig',
'-lfreetype',
'-lpng16',
'-lskia',
'-lLabSound',
'-lavformat',
'-lavcodec',
'-lavutil',
'-lavdevice',
'-lswscale',
'-lswresample',
'-lx264',
'-lopenvr_api',
'-luuid',
'-lXcursor',
'-lXinerama',
'-lXxf86vm',
'-lXrandr',
'-lXi',
'-lasound',
'-lexpat',
'-lwebrtc',
],
'ldflags': [
'-Wl,-Bsymbolic', # required for ffmpeg asm linkage
'-Wl,--no-as-needed', # required to prevent elision of shared object linkage
"-Wl,-rpath,./node_modules/native-graphics-deps/lib/linux/glew",
"-Wl,-rpath,./node_modules/native-graphics-deps/lib/linux/glfw",
"-Wl,-rpath,./node_modules/native-canvas-deps/lib/linux",
"-Wl,-rpath,./node_modules/native-audio-deps/lib/linux",
"-Wl,-rpath,./node_modules/native-video-deps/lib/linux/libavformat",
"-Wl,-rpath,./node_modules/native-video-deps/lib/linux/libavcodec",
"-Wl,-rpath,./node_modules/native-video-deps/lib/linux/libavutil",
"-Wl,-rpath,./node_modules/native-video-deps/lib/linux/libavdevice",
"-Wl,-rpath,./node_modules/native-video-deps/lib/linux/libavfilter",
"-Wl,-rpath,./node_modules/native-video-deps/lib/linux/libswscale",
"-Wl,-rpath,./node_modules/native-video-deps/lib/linux/libswresample",
"-Wl,-rpath,./node_modules/native-webrtc-deps/lib/linux",
"-Wl,-rpath,./node_modules/native-openvr-deps/bin/linux64",
],
'defines': [
'NOMINMAX',
'OPENVR',
'WEBRTC_POSIX',
],
}],
['"<!(node -e \"console.log(process.arch)\")"=="arm64"', {
'sources': [
'exokit.cpp',
'<!@(ls -1 deps/exokit-bindings/bindings/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/util/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/console/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/cache/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/threadpool/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/canvas/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/nanosvg/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/canvascontext/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webglcontext/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webaudiocontext/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/videocontext/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/videocontext/src/linux/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/windowsystem/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/glfw/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webrtc/src/*.cc)',
],
'include_dirs': [
"<!(node -e \"console.log(require.resolve('nan').slice(0, -16))\")",
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/core')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/config')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/gpu')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/effects')\")",
"<!(node -e \"console.log(require.resolve('native-audio-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/include')\")",
'<(module_root_dir)/deps/exokit-bindings',
'<(module_root_dir)/deps/exokit-bindings/utf8',
'<(module_root_dir)/deps/exokit-bindings/node',
'<(module_root_dir)/deps/oculus-mobile/deps/native_app_glue',
'<(module_root_dir)/deps/exokit-bindings/util/include',
'<(module_root_dir)/deps/exokit-bindings/console/include',
'<(module_root_dir)/deps/exokit-bindings/cache/include',
'<(module_root_dir)/deps/exokit-bindings/threadpool/include',
'<(module_root_dir)/deps/exokit-bindings/bindings/include',
'<(module_root_dir)/deps/exokit-bindings/canvas/include',
'<(module_root_dir)/deps/exokit-bindings/nanosvg/include',
'<(module_root_dir)/deps/exokit-bindings/canvascontext/include',
'<(module_root_dir)/deps/exokit-bindings/webglcontext/include',
'<(module_root_dir)/deps/exokit-bindings/webaudiocontext/include',
'<(module_root_dir)/deps/exokit-bindings/videocontext/include',
'<(module_root_dir)/deps/exokit-bindings/windowsystem/include',
'<(module_root_dir)/deps/exokit-bindings/glfw/include',
'<(module_root_dir)/deps/exokit-bindings/webrtc/include',
],
'library_dirs': [
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/lib2/arm64/glew')\")",
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/lib2/arm64/glfw')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/lib2/arm64')\")",
"<!(node -e \"console.log(require.resolve('native-audio-deps').slice(0, -9) + '/lib2/arm64')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib2/arm64')\")",
],
'libraries': [
'-lGL',
'-lEGL',
'-lGLU',
'-lX11',
'-lGLEW',
'-lglfw3',
'-lfontconfig',
'-lfreetype',
'-lpng16',
'-lskia',
'-lc++_static',
'-lLabSound',
'-lavformat',
'-lavcodec',
'-lavutil',
'-lavdevice',
'-lswscale',
'-lswresample',
'-luuid',
'-lXcursor',
'-lXinerama',
'-lXxf86vm',
'-lXrandr',
'-lXi',
'-lasound',
'-lexpat',
],
'ldflags': [
'-Wl,-Bsymbolic', # required for ffmpeg asm linkage
'-Wl,--no-as-needed', # required to prevent elision of shared object linkage
"-Wl,-rpath,./../node_modules/native-graphics-deps/lib2/arm64/glew",
"-Wl,-rpath,./../node_modules/native-graphics-deps/lib2/arm64/glfw",
"-Wl,-rpath,./../node_modules/native-canvas-deps/lib2/arm64",
"-Wl,-rpath,./../node_modules/native-audio-deps/lib2/arm64",
"-Wl,-rpath,./../node_modules/native-video-deps/lib2/arm64/libavformat",
"-Wl,-rpath,./../node_modules/native-video-deps/lib2/arm64/libavcodec",
"-Wl,-rpath,./../node_modules/native-video-deps/lib2/arm64/libavutil",
"-Wl,-rpath,./../node_modules/native-video-deps/lib2/arm64/libavdevice",
"-Wl,-rpath,./../node_modules/native-video-deps/lib2/arm64/libavfilter",
"-Wl,-rpath,./../node_modules/native-video-deps/lib2/arm64/libswscale",
"-Wl,-rpath,./../node_modules/native-video-deps/lib2/arm64/libswresample",
],
'defines': [
'NOMINMAX',
'WEBRTC_POSIX',
],
}],
],
}],
['OS=="mac"', {
'sources': [
'exokit.cpp',
'<!@(ls -1 deps/exokit-bindings/bindings/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/util/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/console/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/cache/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/threadpool/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/browser/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/canvas/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/nanosvg/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/canvascontext/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webglcontext/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webaudiocontext/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/videocontext/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/videocontext/src/mac/*.mm)',
'<!@(ls -1 deps/exokit-bindings/windowsystem/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/glfw/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webrtc/src/*.cc)',
'<!@(ls -1 deps/openvr/src/*.cpp)',
],
'include_dirs': [
"<!(node -e \"console.log(require.resolve('nan').slice(0, -16))\")",
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/core')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/config')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/gpu')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/effects')\")",
"<!(node -e \"console.log(require.resolve('native-audio-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/include/webrtc')\")",
"<!(node -e \"console.log(require.resolve('native-openvr-deps').slice(0, -9) + '/headers')\")",
'<(module_root_dir)/deps/exokit-bindings',
'<(module_root_dir)/deps/exokit-bindings/utf8',
'<(module_root_dir)/deps/exokit-bindings/node',
'<(module_root_dir)/deps/oculus-mobile/deps/native_app_glue',
'<(module_root_dir)/deps/exokit-bindings/util/include',
'<(module_root_dir)/deps/exokit-bindings/console/include',
'<(module_root_dir)/deps/exokit-bindings/cache/include',
'<(module_root_dir)/deps/exokit-bindings/threadpool/include',
'<(module_root_dir)/deps/exokit-bindings/bindings/include',
'<(module_root_dir)/deps/exokit-bindings/canvas/include',
'<(module_root_dir)/deps/exokit-bindings/browser/include',
'<(module_root_dir)/deps/exokit-bindings/nanosvg/include',
'<(module_root_dir)/deps/exokit-bindings/canvascontext/include',
'<(module_root_dir)/deps/exokit-bindings/webglcontext/include',
'<(module_root_dir)/deps/exokit-bindings/webaudiocontext/include',
'<(module_root_dir)/deps/exokit-bindings/videocontext/include',
'<(module_root_dir)/deps/exokit-bindings/windowsystem/include',
'<(module_root_dir)/deps/exokit-bindings/glfw/include',
'<(module_root_dir)/deps/exokit-bindings/webrtc/include',
'<(module_root_dir)/deps/openvr/include',
],
'library_dirs': [
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/lib/macos/glew')\")",
"<!(node -e \"console.log(require.resolve('native-graphics-deps').slice(0, -9) + '/lib/macos/glfw')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/lib/macos')\")",
"<!(node -e \"console.log(require.resolve('native-audio-deps').slice(0, -9) + '/lib/macos')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/macos')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/lib/macos')\")",
],
'libraries': [
'-framework OpenGL',
'-framework Cocoa',
'-lGLEW',
'-lglfw3',
'-lskia',
'-framework CoreAudio',
'-framework AVFoundation',
'-framework AudioUnit',
'-framework AudioToolbox',
'-llabsound',
'-lavformat.58',
'-lavcodec.58',
'-lavutil.56',
'-lavdevice.58',
'-lavfilter.7',
'-lswscale.5',
'-lswresample.3',
'-lpostproc.55',
"-F <!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/lib/macos')\")",
'-lwebrtc',
"-F <!(node -e \"console.log(require.resolve('native-openvr-deps').slice(0, -9) + '/bin/osx64')\")",
"-framework OpenVR",
],
'link_settings': {
'libraries': [
"-Wl,-rpath,<!(node -e \"console.log(require.resolve('native-audio-deps').slice(0, -9) + '/lib/macos')\")",
"-Wl,-rpath,<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/macos')\")",
"-Wl,-rpath,<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/lib/macos')\")",
"-Wl,-rpath,<!(node -e \"console.log(require.resolve('native-openvr-deps').slice(0, -9) + '/bin/osx64')\")",
'-framework OpenVR',
],
},
'copies': [
{
'destination': '<(module_root_dir)/build/Release/',
'files': [
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/macos/libavformat.58.dylib')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/macos/libavcodec.58.dylib')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/macos/libavutil.56.dylib')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/macos/libavdevice.58.dylib')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/macos/libavfilter.7.dylib')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/macos/libswscale.5.dylib')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/macos/libswresample.3.dylib')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/lib/macos/libpostproc.55.dylib')\")",
]
}
],
'defines': [
'OPENVR',
'WEBRTC_POSIX',
],
}],
],
}],
['"<!(echo $LUMIN)"=="1"', {
'sources': [
'exokit.cpp',
'<!@(ls -1 deps/exokit-bindings/bindings/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/util/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/console/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/cache/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/threadpool/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/browser/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/canvas/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/nanosvg/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/canvascontext/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webglcontext/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webaudiocontext/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/videocontext/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/videocontext/src/linux/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/windowsystem/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/egl/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webrtc/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/magicleap/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/magicleap/deps/sjpeg/src/*.cc)',
],
'include_dirs': [
"<!(node -e \"console.log(require.resolve('nan').slice(0, -16))\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/core')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/config')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/gpu')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/effects')\")",
"<!(node -e \"console.log(require.resolve('native-audio-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-browser-deps').slice(0, -9) + '/lib')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/include/webrtc')\")",
'<(module_root_dir)/deps/exokit-bindings',
'<(module_root_dir)/deps/exokit-bindings/utf8',
'<(module_root_dir)/deps/exokit-bindings/node',
'<(module_root_dir)/deps/oculus-mobile/deps/native_app_glue',
'<(module_root_dir)/deps/exokit-bindings/util/include',
'<(module_root_dir)/deps/exokit-bindings/console/include',
'<(module_root_dir)/deps/exokit-bindings/cache/include',
'<(module_root_dir)/deps/exokit-bindings/threadpool/include',
'<(module_root_dir)/deps/exokit-bindings/bindings/include',
'<(module_root_dir)/deps/exokit-bindings/canvas/include',
'<(module_root_dir)/deps/exokit-bindings/browser/include',
'<(module_root_dir)/deps/exokit-bindings/nanosvg/include',
'<(module_root_dir)/deps/exokit-bindings/canvascontext/include',
'<(module_root_dir)/deps/exokit-bindings/webglcontext/include',
'<(module_root_dir)/deps/exokit-bindings/webaudiocontext/include',
'<(module_root_dir)/deps/exokit-bindings/videocontext/include',
'<(module_root_dir)/deps/exokit-bindings/windowsystem/include',
'<(module_root_dir)/deps/exokit-bindings/egl/include',
'<(module_root_dir)/deps/exokit-bindings/webrtc/include',
'<(module_root_dir)/deps/exokit-bindings/magicleap/include',
'<(module_root_dir)/deps/exokit-bindings/magicleap/deps/sjpeg/src',
"<!(echo $MLSDK)/lumin/stl/libc++/include",
"<!(echo $MLSDK)/lumin/usr/include",
"<!(echo $MLSDK)/include",
],
'library_dirs': [
"<!(echo $MLSDK)/lumin/stl/libc++/lib",
"<!(echo $MLSDK)/lumin/usr/lib",
"<!(echo $MLSDK)/lib/lumin",
"<(module_root_dir)/node_modules/native-canvas-deps/lib2/magicleap",
"<(module_root_dir)/node_modules/native-audio-deps/lib2/magicleap",
"<(module_root_dir)/node_modules/native-video-deps/lib2/magicleap",
"<(module_root_dir)/node_modules/native-browser-deps-magicleap/lib5/magicleap",
"<(module_root_dir)/node_modules/native-webrtc-deps/lib2/magicleap",
],
'libraries': [
'-lskia',
'-lLabSound',
'-lavformat',
'-lavcodec',
'-lavutil',
'-lavdevice',
'-lswscale',
'-lswresample',
'-lopus',
'-llog',
'-lwebrtc',
],
'ldflags': [
],
'defines': [
'NOMINMAX',
'LUMIN',
'WEBRTC_POSIX',
],
}],
['"<!(echo $ANDROID)"=="1"', {
'xcode_settings': {
'ARCHS': ['aarch64'],
'CLANG_CXX_LIBRARY': 'libstdc++'
},
'sources': [
'exokit.cpp',
'<!@(ls -1 deps/exokit-bindings/bindings/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/util/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/console/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/cache/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/threadpool/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/browser/src/browser-android.cpp)',
'<!@(ls -1 deps/exokit-bindings/canvas/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/nanosvg/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/canvascontext/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webglcontext/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webaudiocontext/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/videocontext/src/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/videocontext/src/linux/*.cpp)',
'<!@(ls -1 deps/exokit-bindings/windowsystem/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/egl/src/*.cc)',
'<!@(ls -1 deps/exokit-bindings/webrtc/src/*.cc)',
'<!@(ls -1 deps/oculus-mobile/src/*.cpp)',
'<!@(ls -1 deps/oculus-mobile/deps/oboe/src/common/*.cpp)',
'<!@(ls -1 deps/oculus-mobile/deps/oboe/src/fifo/*.cpp)',
'<!@(ls -1 deps/oculus-mobile/deps/oboe/src/opensles/*.cpp)',
'<!@(ls -1 deps/oculus-mobile/deps/oboe/src/aaudio/*.cpp)',
],
'include_dirs': [
"<!(node -e \"console.log(require.resolve('nan').slice(0, -16))\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/core')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/config')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/gpu')\")",
"<!(node -e \"console.log(require.resolve('native-canvas-deps').slice(0, -9) + '/include/effects')\")",
"<!(node -e \"console.log(require.resolve('native-audio-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-video-deps').slice(0, -9) + '/include')\")",
# "<!(node -e \"console.log(require.resolve('native-browser-deps').slice(0, -9) + '/lib')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/include')\")",
"<!(node -e \"console.log(require.resolve('native-webrtc-deps').slice(0, -9) + '/include/webrtc')\")",
"<!(node -e \"console.log(require.resolve('native-oculus-mobile-deps').slice(0, -9) + '/lib/include')\")",
"<!(echo $TOOLCHAIN_LIB)",
"<!(echo $TOOLCHAIN_INCLUDE_LIB)",
"<!(echo $TOOLCHAIN_INCLUDE_SYSROOT)/EGL",
"<!(echo $TOOLCHAIN_INCLUDE_SYSROOT)",
"<!(echo $TOOLCHAIN_INCLUDE_SYSROOT)/c++/v1",
'<(module_root_dir)/deps/exokit-bindings',
'<(module_root_dir)/deps/exokit-bindings/utf8',
'<(module_root_dir)/deps/exokit-bindings/node',
'<(module_root_dir)/deps/oculus-mobile/deps/native_app_glue',
'<(module_root_dir)/deps/exokit-bindings/util/include',
'<(module_root_dir)/deps/exokit-bindings/console/include',
'<(module_root_dir)/deps/exokit-bindings/cache/include',
'<(module_root_dir)/deps/exokit-bindings/threadpool/include',
'<(module_root_dir)/deps/exokit-bindings/bindings/include',
'<(module_root_dir)/deps/exokit-bindings/canvas/include',
'<(module_root_dir)/deps/exokit-bindings/browser/include',
'<(module_root_dir)/deps/exokit-bindings/nanosvg/include',
'<(module_root_dir)/deps/exokit-bindings/canvascontext/include',
'<(module_root_dir)/deps/exokit-bindings/webglcontext/include',
'<(module_root_dir)/deps/exokit-bindings/webaudiocontext/include',
'<(module_root_dir)/deps/exokit-bindings/videocontext/include',
'<(module_root_dir)/deps/exokit-bindings/windowsystem/include',
'<(module_root_dir)/deps/exokit-bindings/egl/include',
'<(module_root_dir)/deps/exokit-bindings/webrtc/include',
'<(module_root_dir)/deps/oculus-mobile/include',
'<(module_root_dir)/deps/oculus-mobile/deps/oboe/include',
'<(module_root_dir)/deps/oculus-mobile/deps/oboe/src',
],
'library_dirs': [
"<!(echo $TOOLCHAIN_USR)",
"<!(echo $TOOLCHAIN_LIB)",
"<!(echo $TOOLCHAIN_LIB_64)",
"<!(echo $TOOLCHAIN_LIB_CXX)",
"<(module_root_dir)/node_modules/native-canvas-deps/lib2/android",
"<(module_root_dir)/node_modules/native-audio-deps/lib2/magicleap",
"<(module_root_dir)/node_modules/native-video-deps/lib2/magicleap",
"<(module_root_dir)/node_modules/native-webrtc-deps/lib2/magicleap",
"<(module_root_dir)/node_modules/native-oculus-mobile-deps/lib/android/arm64-v8a"
],
'libraries': [
'-lskia',
'-lavformat',
'-lavcodec',
'-lavutil',
'-lavdevice',
'-lLabSound',
'-lswscale',
'-lswresample',
'-lopus',
'-lwebrtc',
'-lvrapi',
],
'defines': [
'ANDROID',
'NOMINMAX',
'WEBRTC_POSIX',
],
'copies': [
{
'destination': '<(module_root_dir)/build/Release/',
'files': [
"<!(echo $TOOLCHAIN_LIB)/aarch64-linux-android/21/libEGL.so",
"<!(echo $TOOLCHAIN_LIB)/aarch64-linux-android/21/libGLESv2.so"
]
},
],
}],
],
},
],
}