Skip to content

Commit 075c4c1

Browse files
Add Android support to the Gyp build files
1 parent 624bc8d commit 075c4c1

17 files changed

Lines changed: 378 additions & 290 deletions

config/android.gypi

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
'variables':
3+
{
4+
'mobile': 1,
5+
6+
'variables':
7+
{
8+
'java_sdk_path%': '<!(echo ${JAVA_SDK:-/usr/lib/jvm/java-6-openjdk-amd64})',
9+
'android_sdk_path%': '<!(echo ${ANDROID_SDK})',
10+
'android_ndk_path%': '<!(echo ${ANDROID_NDK})',
11+
'android_platform%': '<!(echo ${ANDROID_PLATFORM})',
12+
'android_build_tools%': '<!(echo ${ANDROID_BUILD_TOOLS})',
13+
},
14+
15+
'javac_path': '<(java_sdk_path)/bin/javac',
16+
'jar_path': '<(java_sdk_path)/bin/jar',
17+
18+
'aidl_path': '<(android_sdk_path)/build-tools/<(android_build_tools)/aidl',
19+
20+
'aidl_framework_path': '<(android_sdk_path)/platforms/<(android_platform)/framework.aidl',
21+
22+
'java_classpath': '<(android_sdk_path)/platforms/<(android_platform)/android.jar',
23+
},
24+
25+
'target_defaults':
26+
{
27+
'cflags_cc':
28+
[
29+
'-fno-exceptions',
30+
'-fno-rtti',
31+
],
32+
33+
'defines':
34+
[
35+
'TARGET_PLATFORM_MOBILE',
36+
'TARGET_SUBPLATFORM_ANDROID',
37+
'ANDROID',
38+
'_MOBILE',
39+
'ANDROID_NDK',
40+
],
41+
},
42+
}

config/arch.gypi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
},
4141
],
4242
[
43-
'uname_s == "Darwin"',
43+
'OS == "mac" or OS == "ios" or uname_s == "Darwin"',
4444
{
4545
'host_os': 'mac',
4646
},
@@ -52,7 +52,7 @@
5252
},
5353
],
5454
[
55-
'uname_s != "Darwin" and uname_s != "win"',
55+
'OS != "mac" and OS != "ios" and uname_s != "Darwin" and uname_s != "win"',
5656
{
5757
'host_os': 'linux',
5858
},

config/configurations.gypi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
{
66
'server_mode': 0, # Target being built for a server deployment
77
'library_for_module': 0, # Static library will be included in a dynamic lib
8+
'commercial': 0, # Commercial or community build
89
},
910

1011
'configurations':

config/exclusions.gypi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
[
4949
['exclude', '_android.cpp$'],
5050
['exclude', '(^|/)mblandroid.*\\.cpp$'],
51-
['exclude', '\\.java$'],
51+
['exclude', '\\.(java|aidl)$'],
5252
],
5353
},
5454
],

config/paths.gypi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
'conditions':
55
[
66
[
7-
'OS == "linux"',
7+
'OS == "linux" or OS == "android"',
88
{
99
'src_top_dir_abs': '$(abs_srcdir)',
1010
},

config/revolution.gypi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@
55
[
66
# Location of the prebuilt engine
77
[
8-
'OS == "mac" or OS == "ios" or OS == "android"',
8+
'host_os == "mac"',
99
{
1010
'revolution_path': '../prebuilt/bin/Revolution.osx',
1111
'perfect_path': '../prebuilt/bin/perfect.osx',
1212
},
1313
],
1414
[
15-
'OS == "win"',
15+
'host_os == "win"',
1616
{
1717
'revolution_path': '$(SolutionDir)/../prebuilt/bin/Revolution.exe',
1818
'perfect_path': '$(SolutionDir)/../prebuilt/bin/perfect.exe',
1919
},
2020
],
2121
[
22-
'OS == "linux"',
22+
'host_os == "linux"',
2323
{
2424
'revolution_path': '../prebuilt/bin/Revolution.lnx',
2525
'perfect_path': '../prebuilt/bin/perfect.lnx',

config/target_os.gypi

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,15 @@
2424
],
2525
},
2626
],
27+
[
28+
'OS == "android"',
29+
{
30+
'includes':
31+
[
32+
'android.gypi',
33+
],
34+
},
35+
],
2736
[
2837
'OS == "win"',
2938
{

engine/engine-sources.gypi

Lines changed: 100 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@
107107
'src/funcsm.cpp',
108108
'src/handler.cpp',
109109
'src/hndlrlst.cpp',
110-
'src/internal.cpp',
111110
'src/keywords.cpp',
112111
'src/literal.cpp',
113112
'src/keywords.cpp',
@@ -339,69 +338,40 @@
339338

340339
# Group "Mobile - Android"
341340
'src/mblandroid.h',
341+
'src/mblandroidcontrol.h',
342342
'src/mblandroidjava.h',
343+
'src/mblandroidtypeface.h',
343344
'src/mblandroidutil.h',
344345
'src/mblandroid.cpp',
346+
'src/mblandroidalert.cpp',
347+
'src/mblandroidbrowser.cpp',
348+
'src/mblandroidbusyindicator.cpp',
349+
'src/mblandroidcalendar.cpp',
350+
'src/mblandroidcontact.cpp',
351+
'src/mblandroidcontrol.cpp',
345352
'src/mblandroiddc.cpp',
346353
'src/mblandroiddialog.cpp',
354+
'src/mblandroidfont.cpp',
347355
'src/mblandroidfs.cpp',
356+
'src/mblandroidinput.cpp',
348357
'src/mblandroidio.cpp',
349358
'src/mblandroidjava.cpp',
359+
'src/mblandroidmail.cpp',
350360
'src/mblandroidmisc.cpp',
351361
'src/mblandroidmm.cpp',
352362
'src/mblandroidnetwork.cpp',
353-
'src/mblandroidprocess.cpp',
354-
'src/mblandroidmail.cpp',
363+
'src/mblandroidnotification.cpp',
355364
'src/mblandroidorientation.cpp',
365+
'src/mblandroidplayer.cpp',
366+
'src/mblandroidprocess.cpp',
367+
'src/mblandroidscroller.cpp',
368+
'src/mblandroidsensor.cpp',
369+
'src/mblandroidstore.cpp',
370+
'src/mblandroidsound.cpp',
356371
'src/mblandroidtextlayout.cpp',
372+
'src/mblandroidtextmessaging.cpp',
373+
'src/mblandroidtypeface.cpp',
357374
'src/mblandroidurl.cpp',
358-
'src/mblandroid.java',
359-
'src/java/com/android/vending/billing/IInAppBillingService.aidl',
360-
'src/java/com/android/vending/billing/IMarketBillingService.aidl',
361-
'src/java/com/android/vending/billing/IMarketBillingService.java',
362-
'src/java/com/runrev/android/AccelerationChangeListener.java',
363-
'src/java/com/runrev/android/AdModule.java',
364-
'src/java/com/runrev/android/Alert.java',
365-
'src/java/com/runrev/android/AttachmentProvider.java',
366-
'src/java/com/runrev/android/BitmapView.java',
367-
'src/java/com/runrev/android/BusyIndicator.java',
368-
'src/java/com/runrev/android/CalendarEvents.java',
369-
'src/java/com/runrev/android/CameraCompat.java',
370-
'src/java/com/runrev/android/Contact.java',
371-
'src/java/com/runrev/android/DialogModule.java',
372-
'src/java/com/runrev/android/Email.java',
373-
'src/java/com/runrev/android/Engine.java',
374-
'src/java/com/runrev/android/EngineApi.java',
375-
'src/java/com/runrev/android/EngineReceiver.java',
376-
'src/java/com/runrev/android/LiveCodeActivity.java',
377-
'src/java/com/runrev/android/NetworkModule.java',
378-
'src/java/com/runrev/android/NotificationModule.java',
379-
'src/java/com/runrev/android/OpenGLView.java',
380-
'src/java/com/runrev/android/PushReceiver.java',
381-
'src/java/com/runrev/android/ScreenOrientationEventListener.java',
382-
'src/java/com/runrev/android/SensorModule.java',
383-
'src/java/com/runrev/android/ShakeEventListener.java',
384-
'src/java/com/runrev/android/SoundModule.java',
385-
'src/java/com/runrev/android/TextMessaging.java',
386-
'src/java/com/runrev/android/URLLoader.java',
387-
'src/java/com/runrev/android/Utils.java',
388-
'src/java/com/runrev/android/billing/BillingProvider.java',
389-
'src/java/com/runrev/android/billing/BillingModule.java',
390-
'src/java/com/runrev/android/billing/PurchaseObserver.java',
391-
'src/java/com/runrev/android/billing/ResponseHandler.java',
392-
'src/java/com/runrev/android/billing/amazon/AmazonBillingProvider.java',
393-
'src/java/com/runrev/android/billing/amazon/MyPurchasingObserver.java',
394-
'src/java/com/runrev/android/billing/google/Base64.java',
395-
'src/java/com/runrev/android/billing/google/Base64DecoderException.java',
396-
'src/java/com/runrev/android/billing/google/IabException.java',
397-
'src/java/com/runrev/android/billing/google/IabHelper.java',
398-
'src/java/com/runrev/android/billing/google/IabResult.java',
399-
'src/java/com/runrev/android/billing/google/Inventory.java',
400-
'src/java/com/runrev/android/billing/google/Purchase.java',
401-
'src/java/com/runrev/android/billing/google/SkuDetails.java',
402-
'src/java/com/runrev/android/billing/google/Security.java',
403-
'src/java/com/runrev/android/billing/google/GoogleBillingProvider.java',
404-
'src/java/com/runrev/android/billing/samsung/SamsungBillingProvider.java',
405375

406376
# Group "Mobile - iOS"
407377
'src/mbliphone.h',
@@ -663,6 +633,7 @@
663633
'src/deploy_windows.cpp',
664634
'src/deploysecurity.cpp',
665635
'src/ide.cpp',
636+
'src/internal.cpp',
666637
'src/internal_development.cpp',
667638
'src/mode_development.cpp',
668639
],
@@ -672,6 +643,7 @@
672643
[
673644
'src/minizip.h',
674645
'src/bsdiff_apply.cpp',
646+
'src/internal.cpp',
675647
'src/minizip.cpp',
676648
'src/mode_installer.cpp',
677649
'src/mode_installer_lnx.cpp',
@@ -714,6 +686,69 @@
714686
'src/srvstack.cpp',
715687
],
716688

689+
# Java sources for Android
690+
'engine_java_source_files':
691+
[
692+
'src/java/com/runrev/android/AccelerationChangeListener.java',
693+
'src/java/com/runrev/android/Alert.java',
694+
'src/java/com/runrev/android/AttachmentProvider.java',
695+
'src/java/com/runrev/android/BitmapView.java',
696+
'src/java/com/runrev/android/BusyIndicator.java',
697+
'src/java/com/runrev/android/CalendarEvents.java',
698+
'src/java/com/runrev/android/CameraCompat.java',
699+
'src/java/com/runrev/android/Contact.java',
700+
'src/java/com/runrev/android/DialogModule.java',
701+
'src/java/com/runrev/android/Email.java',
702+
'src/java/com/runrev/android/Engine.java',
703+
'src/java/com/runrev/android/EngineApi.java',
704+
'src/java/com/runrev/android/EngineReceiver.java',
705+
'src/java/com/runrev/android/LiveCodeActivity.java',
706+
'src/java/com/runrev/android/NetworkModule.java',
707+
'src/java/com/runrev/android/NotificationModule.java',
708+
'src/java/com/runrev/android/OpenGLView.java',
709+
'src/java/com/runrev/android/PushReceiver.java',
710+
'src/java/com/runrev/android/ScreenOrientationEventListener.java',
711+
'src/java/com/runrev/android/SensorModule.java',
712+
'src/java/com/runrev/android/ShakeEventListener.java',
713+
'src/java/com/runrev/android/SoundModule.java',
714+
'src/java/com/runrev/android/TextMessaging.java',
715+
'src/java/com/runrev/android/URLLoader.java',
716+
'src/java/com/runrev/android/Utils.java',
717+
'src/java/com/runrev/android/billing/BillingProvider.java',
718+
'src/java/com/runrev/android/billing/BillingModule.java',
719+
'src/java/com/runrev/android/billing/PurchaseObserver.java',
720+
#'src/java/com/runrev/android/billing/ResponseHandler.java',
721+
'src/java/com/runrev/android/billing/google/Base64.java',
722+
'src/java/com/runrev/android/billing/google/Base64DecoderException.java',
723+
'src/java/com/runrev/android/billing/google/IabException.java',
724+
'src/java/com/runrev/android/billing/google/IabHelper.java',
725+
'src/java/com/runrev/android/billing/google/IabResult.java',
726+
'src/java/com/runrev/android/billing/google/Inventory.java',
727+
'src/java/com/runrev/android/billing/google/Purchase.java',
728+
'src/java/com/runrev/android/billing/google/SkuDetails.java',
729+
'src/java/com/runrev/android/billing/google/Security.java',
730+
'src/java/com/runrev/android/billing/google/GoogleBillingProvider.java',
731+
'src/java/com/runrev/android/billing/samsung/SamsungBillingProvider.java',
732+
],
733+
734+
# AIDL sources for Android
735+
'engine_aidl_source_files':
736+
[
737+
'src/java/com/android/vending/billing/IInAppBillingService.aidl',
738+
'src/java/com/android/vending/billing/IMarketBillingService.aidl',
739+
'src/java/com/sec/android/iap/IAPServiceCallback.aidl',
740+
'src/java/com/sec/android/iap/IAPConnector.aidl',
741+
],
742+
743+
# Sources only used in Commercial Android builds
744+
'engine_commercial_java_files':
745+
[
746+
'src/java/com/runrev/android/AdModule.java',
747+
'src/java/com/runrev/android/billing/amazon/AmazonBillingProvider.java',
748+
'src/java/com/runrev/android/billing/amazon/MyPurchasingObserver.java',
749+
],
750+
751+
717752
# Files to be excluded from server builds
718753
'engine_server_exclude_files':
719754
[
@@ -876,6 +911,19 @@
876911
]
877912
},
878913
],
914+
[
915+
'OS == "android"',
916+
{
917+
'sources!':
918+
[
919+
'src/opensslsocket.cpp',
920+
'src/player-platform.cpp',
921+
'src/socket_resolve.cpp',
922+
'src/stacktile.cpp',
923+
'src/sysunxnetwork.cpp',
924+
],
925+
},
926+
],
879927
[
880928
'OS == "ios"',
881929
{
@@ -896,6 +944,7 @@
896944
[
897945
# Note that this does *not* exclude player.cpp
898946
['exclude', '^src/player.+\\.(cpp|mm)$'],
947+
['exclude', '^src/dsk.*\\.(cpp|mm)$'],
899948
],
900949
},
901950
],
@@ -904,7 +953,7 @@
904953
'target_conditions':
905954
[
906955
[
907-
'server_mode == 0 and (OS == "mac" or OS == "win" or OS == "linux")',
956+
'server_mode == 0 and (OS != "ios" and OS != "android")',
908957
{
909958
'sources!':
910959
[

engine/engine.gyp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,24 @@
222222
],
223223
},
224224
],
225+
[
226+
# On Android, this needs to be built as a shared library
227+
'OS == "android"',
228+
{
229+
'product_name': 'Standalone-Community',
230+
'product_prefix': '',
231+
'product_suffix': '',
232+
'type': 'loadable_module',
233+
234+
'ldflags':
235+
[
236+
# Helpful for catching build problems
237+
'-Wl,-no-undefined',
238+
239+
'-Wl,-T,<(src_top_dir_abs)/engine/linux.link',
240+
],
241+
},
242+
],
225243
],
226244
},
227245

0 commit comments

Comments
 (0)