Skip to content

Commit 35ff41c

Browse files
authored
Merge pull request #31 from readdle/restore-32-bit-support
Restore 32 bit support
2 parents c98b127 + a0f315e commit 35ff41c

32 files changed

+244
-47
lines changed

.github/workflows/android_x86.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Android CI x86
2+
3+
on: [push]
4+
5+
jobs:
6+
build:
7+
8+
runs-on: macOS-latest
9+
10+
steps:
11+
- uses: actions/checkout@v1
12+
- name: set up JDK 1.8
13+
uses: actions/setup-java@v1
14+
with:
15+
java-version: 1.8
16+
- name: Install Swift toolchain 5.0.3
17+
run: wget https://swift.org/builds/swift-5.0.3-release/xcode/swift-5.0.3-RELEASE/swift-5.0.3-RELEASE-osx.pkg;
18+
sudo installer -pkg swift-5.0.3-RELEASE-osx.pkg -target /
19+
- name: Install NDK
20+
run: wget https://dl.google.com/android/repository/android-ndk-r17c-darwin-x86_64.zip;
21+
unzip android-ndk-r17c-darwin-x86_64.zip
22+
- name: Install Swift Android Toolchain
23+
run: SWIFT_ANDROID=$(curl -fsSL https://api.bintray.com/packages/readdle/swift-android-toolchain/swift-android-toolchain/versions/_latest | python -c 'import json,sys;print(json.load(sys.stdin))["name"]');
24+
wget https://dl.bintray.com/readdle/swift-android-toolchain/swift-android-$SWIFT_ANDROID.zip;
25+
unzip swift-android-$SWIFT_ANDROID.zip;
26+
swift-android-$SWIFT_ANDROID/bin/swift-android tools --update;
27+
ln -sfn swift-android-$SWIFT_ANDROID swift-android-current
28+
- name: Download Android Emulator
29+
run: $ANDROID_HOME/tools/bin/sdkmanager "system-images;android-29;google_apis;x86"
30+
- name: Create Android Emulator
31+
run: $ANDROID_HOME/tools/bin/avdmanager create avd -n ci-test -k "system-images;android-29;google_apis;x86" -d "pixel" --force
32+
- name: Start Android Emulator
33+
run: $ANDROID_HOME/emulator/emulator -no-window -avd ci-test -noaudio > /dev/null &
34+
- name: Run connected android tests
35+
run: export TOOLCHAINS=org.swift.50320190830a;
36+
export ANDROID_NDK_HOME=$(pwd)/android-ndk-r17c;
37+
export SWIFT_ANDROID_HOME=$(pwd)/swift-android-current;
38+
export PATH=$ANDROID_NDK_HOME:$PATH;
39+
export PATH=$SWIFT_ANDROID_HOME/bin:$SWIFT_ANDROID_HOME/build-tools/current:$PATH;
40+
adb wait-for-device;
41+
./gradlew sample:cAT

.github/workflows/android.yml renamed to .github/workflows/android_x86_64.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Android CI
1+
name: Android CI x86_64
22

33
on: [push]
44

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
buildscript {
2-
ext.kotlin_version = '1.3.61'
2+
ext.kotlin_version = '1.4.21'
33

44
repositories {
55
google()
@@ -9,8 +9,8 @@ buildscript {
99
}
1010

1111
dependencies {
12-
classpath 'com.android.tools.build:gradle:4.1.1'
13-
classpath "com.readdle.android.swift:gradle:1.3.2"
12+
classpath 'com.android.tools.build:gradle:4.1.2'
13+
classpath "com.readdle.android.swift:gradle:1.3.4"
1414
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
1515
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
1616
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4"

compiler/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ archivesBaseName = "compiler"
44

55
dependencies {
66
implementation project(':library')
7-
implementation 'com.google.code.gson:gson:2.8.5'
7+
implementation 'com.google.code.gson:gson:2.8.6'
88
}
99

1010
apply from: rootProject.file('bintray-publish.gradle')

compiler/src/main/java/com/readdle/codegen/SwiftGetterDescriptor.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,10 @@ public void generateCode(SwiftWriter swiftWriter, String javaFullName, String sw
6262

6363
String retType = "";
6464
if (returnSwiftType != null) {
65-
retType = " -> " + returnSwiftType.javaSigType(isReturnTypeOptional) + "?";
65+
retType = " -> " + returnSwiftType.javaSigType(isReturnTypeOptional);
66+
if (isReturnTypeOptional || !returnSwiftType.isPrimitiveType()) {
67+
retType += "?";
68+
}
6669
}
6770

6871
swiftWriter.emit(String.format(")%s {\n", retType));
@@ -75,7 +78,12 @@ public void generateCode(SwiftWriter swiftWriter, String javaFullName, String sw
7578
swiftWriter.emitStatement("}");
7679
swiftWriter.emitStatement("catch {");
7780
Utils.handleRuntimeError(swiftWriter);
78-
swiftWriter.emitStatement(String.format("return%s", returnSwiftType != null ? " nil" : ""));
81+
if (!isReturnTypeOptional && returnSwiftType.isPrimitiveType()) {
82+
swiftWriter.emitStatement("return " + returnSwiftType.primitiveDefaultValue());
83+
}
84+
else {
85+
swiftWriter.emitStatement("return nil");
86+
}
7987
swiftWriter.emitStatement("}");
8088
}
8189

@@ -96,7 +104,12 @@ public void generateCode(SwiftWriter swiftWriter, String javaFullName, String sw
96104
swiftWriter.emitStatement("}");
97105
swiftWriter.emitStatement("catch {");
98106
Utils.handleRuntimeError(swiftWriter);
99-
swiftWriter.emitStatement("return nil");
107+
if (!isReturnTypeOptional && returnSwiftType.isPrimitiveType()) {
108+
swiftWriter.emitStatement("return " + returnSwiftType.primitiveDefaultValue());
109+
}
110+
else {
111+
swiftWriter.emitStatement("return nil");
112+
}
100113
swiftWriter.emitStatement("}");
101114
}
102115

gradle.properties

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
GROUP=com.readdle.swift.java.codegen
2-
VERSION_NAME=0.9.0
2+
VERSION_NAME=0.9.1
33

44
org.gradle.jvmargs=-Xmx1536m
5+
android.useAndroidX=true
6+
android.enableJetifier=true

sample/build.gradle

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ swift {
99
useKapt true
1010
cleanEnabled true
1111
debug {
12-
abiFilters("x86_64")
1312
extraBuildFlags("-Xswiftc", "-DDEBUG")
1413
}
1514
}
@@ -22,7 +21,7 @@ android {
2221
targetSdkVersion 30
2322
versionCode 1
2423
versionName "1.0"
25-
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
24+
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
2625
javaCompileOptions {
2726
annotationProcessorOptions {
2827
arguments = ["com.readdle.codegen.package": """{
@@ -39,8 +38,22 @@ android {
3938
}
4039
buildTypes {
4140
release {
41+
debuggable false
42+
jniDebuggable false
4243
minifyEnabled false
43-
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
44+
shrinkResources false
45+
ndk {
46+
abiFilters = ["armeabi-v7a", "arm64-v8a", "x86", "x86_64"]
47+
}
48+
}
49+
debug {
50+
debuggable true
51+
jniDebuggable true
52+
minifyEnabled false
53+
shrinkResources false
54+
ndk {
55+
abiFilters = ["x86", "x86_64"]
56+
}
4457
}
4558
}
4659

@@ -68,10 +81,10 @@ dependencies {
6881
kapt project(':compiler')
6982
implementation project(':library')
7083

71-
implementation 'com.android.support.constraint:constraint-layout:2.0.4'
84+
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
7285
testImplementation 'junit:junit:4.13.1'
73-
androidTestImplementation 'com.android.support:support-annotations:28.0.0'
74-
androidTestImplementation 'com.android.support.test:runner:1.0.2'
75-
androidTestImplementation 'com.android.support.test:rules:1.0.2'
76-
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
86+
androidTestImplementation 'androidx.annotation:annotation:1.1.0'
87+
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
88+
androidTestImplementation 'androidx.test:rules:1.3.0'
89+
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
7790
}

sample/src/androidTest/java/com/readdle/swiftjava/sample/BoolTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.readdle.swiftjava.sample;
22

3-
import android.support.test.runner.AndroidJUnit4;
3+
import androidx.test.ext.junit.runners.AndroidJUnit4;
44

55
import com.readdle.codegen.anotation.JavaSwift;
66

sample/src/androidTest/java/com/readdle/swiftjava/sample/DoubleTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.readdle.swiftjava.sample;
22

3-
import android.support.test.runner.AndroidJUnit4;
3+
import androidx.test.ext.junit.runners.AndroidJUnit4;
44

55
import com.readdle.codegen.anotation.JavaSwift;
66

sample/src/androidTest/java/com/readdle/swiftjava/sample/FloatTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.readdle.swiftjava.sample;
22

3-
import android.support.test.runner.AndroidJUnit4;
3+
import androidx.test.ext.junit.runners.AndroidJUnit4;
44

55
import com.readdle.codegen.anotation.JavaSwift;
66

0 commit comments

Comments
 (0)