xref: /aosp_15_r20/external/conscrypt/platform/build.gradle (revision cd0cc2e34ba52cdf454361820a14d744e4bd531d)
1*cd0cc2e3SAndroid Build Coastguard Workerbuildscript {
2*cd0cc2e3SAndroid Build Coastguard Worker    repositories {
3*cd0cc2e3SAndroid Build Coastguard Worker        google()
4*cd0cc2e3SAndroid Build Coastguard Worker        mavenCentral()
5*cd0cc2e3SAndroid Build Coastguard Worker    }
6*cd0cc2e3SAndroid Build Coastguard Worker    dependencies {
7*cd0cc2e3SAndroid Build Coastguard Worker        classpath(libs.android.tools)
8*cd0cc2e3SAndroid Build Coastguard Worker    }
9*cd0cc2e3SAndroid Build Coastguard Worker}
10*cd0cc2e3SAndroid Build Coastguard Worker
11*cd0cc2e3SAndroid Build Coastguard Workerdescription = 'Conscrypt: Android Platform'
12*cd0cc2e3SAndroid Build Coastguard Worker
13*cd0cc2e3SAndroid Build Coastguard Workerext {
14*cd0cc2e3SAndroid Build Coastguard Worker    androidHome = "$System.env.ANDROID_HOME"
15*cd0cc2e3SAndroid Build Coastguard Worker    androidSdkInstalled = file("$androidHome").exists()
16*cd0cc2e3SAndroid Build Coastguard Worker    androidVersionCode = 1
17*cd0cc2e3SAndroid Build Coastguard Worker    androidVersionName = "$version"
18*cd0cc2e3SAndroid Build Coastguard Worker    // Platform is always built against head, so we can use newer API versions.
19*cd0cc2e3SAndroid Build Coastguard Worker    androidMinSdkVersion = 26
20*cd0cc2e3SAndroid Build Coastguard Worker    androidTargetSdkVersion = 26
21*cd0cc2e3SAndroid Build Coastguard Worker}
22*cd0cc2e3SAndroid Build Coastguard Worker
23*cd0cc2e3SAndroid Build Coastguard Workerif (androidSdkInstalled) {
24*cd0cc2e3SAndroid Build Coastguard Worker    apply plugin: 'com.android.library'
25*cd0cc2e3SAndroid Build Coastguard Worker
26*cd0cc2e3SAndroid Build Coastguard Worker    android {
27*cd0cc2e3SAndroid Build Coastguard Worker        namespace "org.conscrypt"
28*cd0cc2e3SAndroid Build Coastguard Worker        compileSdkVersion androidTargetSdkVersion
29*cd0cc2e3SAndroid Build Coastguard Worker
30*cd0cc2e3SAndroid Build Coastguard Worker        compileOptions {
31*cd0cc2e3SAndroid Build Coastguard Worker            sourceCompatibility androidMinJavaVersion;
32*cd0cc2e3SAndroid Build Coastguard Worker            targetCompatibility androidMinJavaVersion
33*cd0cc2e3SAndroid Build Coastguard Worker        }
34*cd0cc2e3SAndroid Build Coastguard Worker
35*cd0cc2e3SAndroid Build Coastguard Worker        defaultConfig {
36*cd0cc2e3SAndroid Build Coastguard Worker            minSdkVersion androidMinSdkVersion
37*cd0cc2e3SAndroid Build Coastguard Worker            targetSdkVersion androidTargetSdkVersion
38*cd0cc2e3SAndroid Build Coastguard Worker            versionCode androidVersionCode
39*cd0cc2e3SAndroid Build Coastguard Worker            versionName androidVersionName
40*cd0cc2e3SAndroid Build Coastguard Worker
41*cd0cc2e3SAndroid Build Coastguard Worker            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
42*cd0cc2e3SAndroid Build Coastguard Worker
43*cd0cc2e3SAndroid Build Coastguard Worker            consumerProguardFiles 'proguard-rules.pro'
44*cd0cc2e3SAndroid Build Coastguard Worker
45*cd0cc2e3SAndroid Build Coastguard Worker            externalNativeBuild {
46*cd0cc2e3SAndroid Build Coastguard Worker                cmake {
47*cd0cc2e3SAndroid Build Coastguard Worker                    arguments '-DANDROID=True',
48*cd0cc2e3SAndroid Build Coastguard Worker                            '-DANDROID_STL=c++_static',
49*cd0cc2e3SAndroid Build Coastguard Worker                            "-DBORINGSSL_HOME=$boringsslHome"
50*cd0cc2e3SAndroid Build Coastguard Worker                    cFlags '-fvisibility=hidden',
51*cd0cc2e3SAndroid Build Coastguard Worker                            '-DBORINGSSL_SHARED_LIBRARY',
52*cd0cc2e3SAndroid Build Coastguard Worker                            '-DBORINGSSL_IMPLEMENTATION',
53*cd0cc2e3SAndroid Build Coastguard Worker                            '-DOPENSSL_SMALL',
54*cd0cc2e3SAndroid Build Coastguard Worker                            '-D_XOPEN_SOURCE=700',
55*cd0cc2e3SAndroid Build Coastguard Worker                            '-Wno-unused-parameter'
56*cd0cc2e3SAndroid Build Coastguard Worker                }
57*cd0cc2e3SAndroid Build Coastguard Worker            }
58*cd0cc2e3SAndroid Build Coastguard Worker            ndk {
59*cd0cc2e3SAndroid Build Coastguard Worker                abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
60*cd0cc2e3SAndroid Build Coastguard Worker            }
61*cd0cc2e3SAndroid Build Coastguard Worker        }
62*cd0cc2e3SAndroid Build Coastguard Worker        buildTypes {
63*cd0cc2e3SAndroid Build Coastguard Worker            release {
64*cd0cc2e3SAndroid Build Coastguard Worker                minifyEnabled false
65*cd0cc2e3SAndroid Build Coastguard Worker                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
66*cd0cc2e3SAndroid Build Coastguard Worker            }
67*cd0cc2e3SAndroid Build Coastguard Worker        }
68*cd0cc2e3SAndroid Build Coastguard Worker        sourceSets {
69*cd0cc2e3SAndroid Build Coastguard Worker            main {
70*cd0cc2e3SAndroid Build Coastguard Worker                java {
71*cd0cc2e3SAndroid Build Coastguard Worker                    srcDirs = [
72*cd0cc2e3SAndroid Build Coastguard Worker                            "${rootDir}/common/src/main/java",
73*cd0cc2e3SAndroid Build Coastguard Worker                            "src/main/java",
74*cd0cc2e3SAndroid Build Coastguard Worker                    ]
75*cd0cc2e3SAndroid Build Coastguard Worker                    excludes = [ 'org/conscrypt/Platform.java' ]
76*cd0cc2e3SAndroid Build Coastguard Worker                }
77*cd0cc2e3SAndroid Build Coastguard Worker            }
78*cd0cc2e3SAndroid Build Coastguard Worker        }
79*cd0cc2e3SAndroid Build Coastguard Worker        lintOptions {
80*cd0cc2e3SAndroid Build Coastguard Worker            lintConfig file('lint.xml')
81*cd0cc2e3SAndroid Build Coastguard Worker        }
82*cd0cc2e3SAndroid Build Coastguard Worker    }
83*cd0cc2e3SAndroid Build Coastguard Worker
84*cd0cc2e3SAndroid Build Coastguard Worker    configurations {
85*cd0cc2e3SAndroid Build Coastguard Worker        publicApiDocs
86*cd0cc2e3SAndroid Build Coastguard Worker    }
87*cd0cc2e3SAndroid Build Coastguard Worker
88*cd0cc2e3SAndroid Build Coastguard Worker    dependencies {
89*cd0cc2e3SAndroid Build Coastguard Worker        implementation project(path: ':conscrypt-openjdk', configuration: 'platform')
90*cd0cc2e3SAndroid Build Coastguard Worker        publicApiDocs project(':conscrypt-api-doclet')
91*cd0cc2e3SAndroid Build Coastguard Worker        androidTestImplementation('androidx.test.espresso:espresso-core:3.1.1', {
92*cd0cc2e3SAndroid Build Coastguard Worker            exclude module: 'support-annotations'
93*cd0cc2e3SAndroid Build Coastguard Worker            exclude module: 'support-v4'
94*cd0cc2e3SAndroid Build Coastguard Worker            exclude module: 'support-v13'
95*cd0cc2e3SAndroid Build Coastguard Worker            exclude module: 'recyclerview-v7'
96*cd0cc2e3SAndroid Build Coastguard Worker            exclude module: 'appcompat-v7'
97*cd0cc2e3SAndroid Build Coastguard Worker            exclude module: 'design'
98*cd0cc2e3SAndroid Build Coastguard Worker        })
99*cd0cc2e3SAndroid Build Coastguard Worker        testCompileOnly project(':conscrypt-android-stub'),
100*cd0cc2e3SAndroid Build Coastguard Worker                        project(':conscrypt-libcore-stub')
101*cd0cc2e3SAndroid Build Coastguard Worker        testImplementation project(path: ":conscrypt-testing", configuration: "shadow"),
102*cd0cc2e3SAndroid Build Coastguard Worker                           libs.junit
103*cd0cc2e3SAndroid Build Coastguard Worker        compileOnly project(':conscrypt-android-stub'),
104*cd0cc2e3SAndroid Build Coastguard Worker                    project(':conscrypt-libcore-stub')
105*cd0cc2e3SAndroid Build Coastguard Worker
106*cd0cc2e3SAndroid Build Coastguard Worker        // Adds the constants module as a dependency so that we can include its generated source
107*cd0cc2e3SAndroid Build Coastguard Worker        compileOnly project(':conscrypt-constants')
108*cd0cc2e3SAndroid Build Coastguard Worker    }
109*cd0cc2e3SAndroid Build Coastguard Worker
110*cd0cc2e3SAndroid Build Coastguard Worker    // Disable running the tests.
111*cd0cc2e3SAndroid Build Coastguard Worker    tasks.withType(Test).configureEach {
112*cd0cc2e3SAndroid Build Coastguard Worker        enabled = false
113*cd0cc2e3SAndroid Build Coastguard Worker    }
114*cd0cc2e3SAndroid Build Coastguard Worker
115*cd0cc2e3SAndroid Build Coastguard Worker} else {
116*cd0cc2e3SAndroid Build Coastguard Worker    logger.warn('Android SDK has not been detected. The Android Platform module will not be built.')
117*cd0cc2e3SAndroid Build Coastguard Worker
118*cd0cc2e3SAndroid Build Coastguard Worker    // Disable all tasks
119*cd0cc2e3SAndroid Build Coastguard Worker    tasks.configureEach {
120*cd0cc2e3SAndroid Build Coastguard Worker        it.enabled = false
121*cd0cc2e3SAndroid Build Coastguard Worker    }
122*cd0cc2e3SAndroid Build Coastguard Worker}
123