1*65c59e02SInna Palant/* 2*65c59e02SInna Palant * Copyright (c) Facebook, Inc. and its affiliates. 3*65c59e02SInna Palant * 4*65c59e02SInna Palant * Licensed under the Apache License, Version 2.0 (the "License"); 5*65c59e02SInna Palant * you may not use this file except in compliance with the License. 6*65c59e02SInna Palant * You may obtain a copy of the License at 7*65c59e02SInna Palant * 8*65c59e02SInna Palant * http://www.apache.org/licenses/LICENSE-2.0 9*65c59e02SInna Palant * 10*65c59e02SInna Palant * Unless required by applicable law or agreed to in writing, software 11*65c59e02SInna Palant * distributed under the License is distributed on an "AS IS" BASIS, 12*65c59e02SInna Palant * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*65c59e02SInna Palant * See the License for the specific language governing permissions and 14*65c59e02SInna Palant * limitations under the License. 15*65c59e02SInna Palant */ 16*65c59e02SInna Palant 17*65c59e02SInna Palantplugins { 18*65c59e02SInna Palant id 'com.android.library' version '8.1.2' 19*65c59e02SInna Palant id 'maven-publish' 20*65c59e02SInna Palant id 'com.vanniktech.maven.publish' version '0.25.3' 21*65c59e02SInna Palant} 22*65c59e02SInna Palant 23*65c59e02SInna Palantrepositories { 24*65c59e02SInna Palant google() 25*65c59e02SInna Palant mavenCentral() 26*65c59e02SInna Palant} 27*65c59e02SInna Palant 28*65c59e02SInna Palantandroid { 29*65c59e02SInna Palant compileSdk 34 30*65c59e02SInna Palant ndkVersion '27.1.12297006' 31*65c59e02SInna Palant 32*65c59e02SInna Palant externalNativeBuild { 33*65c59e02SInna Palant cmake { 34*65c59e02SInna Palant path 'CMakeLists.txt' 35*65c59e02SInna Palant } 36*65c59e02SInna Palant } 37*65c59e02SInna Palant 38*65c59e02SInna Palant defaultConfig { 39*65c59e02SInna Palant minSdkVersion 21 40*65c59e02SInna Palant targetSdkVersion 34 41*65c59e02SInna Palant buildConfigField "boolean", "IS_INTERNAL_BUILD", 'true' 42*65c59e02SInna Palant namespace "com.facebook.fbjni" 43*65c59e02SInna Palant 44*65c59e02SInna Palant sourceSets { 45*65c59e02SInna Palant main { 46*65c59e02SInna Palant java.srcDir 'java' 47*65c59e02SInna Palant } 48*65c59e02SInna Palant } 49*65c59e02SInna Palant 50*65c59e02SInna Palant ndk { 51*65c59e02SInna Palant abiFilters 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a' 52*65c59e02SInna Palant } 53*65c59e02SInna Palant 54*65c59e02SInna Palant externalNativeBuild { 55*65c59e02SInna Palant cmake { 56*65c59e02SInna Palant arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_shared', '-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON' 57*65c59e02SInna Palant targets 'fbjni' 58*65c59e02SInna Palant version '3.22.1' 59*65c59e02SInna Palant } 60*65c59e02SInna Palant } 61*65c59e02SInna Palant 62*65c59e02SInna Palant buildFeatures { 63*65c59e02SInna Palant buildConfig true 64*65c59e02SInna Palant prefabPublishing true 65*65c59e02SInna Palant } 66*65c59e02SInna Palant 67*65c59e02SInna Palant compileOptions { 68*65c59e02SInna Palant sourceCompatibility JavaVersion.VERSION_1_8 69*65c59e02SInna Palant targetCompatibility JavaVersion.VERSION_1_8 70*65c59e02SInna Palant } 71*65c59e02SInna Palant 72*65c59e02SInna Palant prefab { 73*65c59e02SInna Palant fbjni { 74*65c59e02SInna Palant headers 'cxx/' 75*65c59e02SInna Palant } 76*65c59e02SInna Palant } 77*65c59e02SInna Palant } 78*65c59e02SInna Palant} 79*65c59e02SInna Palant 80*65c59e02SInna Palant 81*65c59e02SInna Palantdependencies { 82*65c59e02SInna Palant compileOnly 'com.google.code.findbugs:jsr305:3.0.2' 83*65c59e02SInna Palant implementation 'com.facebook.soloader:nativeloader:0.10.5' 84*65c59e02SInna Palant} 85*65c59e02SInna Palant 86*65c59e02SInna Palanttask headersJar(type: Jar) { 87*65c59e02SInna Palant archiveClassifier.set('headers') 88*65c59e02SInna Palant from("$rootDir/cxx/") { 89*65c59e02SInna Palant include '**/*.h' 90*65c59e02SInna Palant } 91*65c59e02SInna Palant} 92*65c59e02SInna Palant 93*65c59e02SInna Palantpublishing { 94*65c59e02SInna Palant publications { 95*65c59e02SInna Palant withType(MavenPublication).configureEach { 96*65c59e02SInna Palant artifact(headersJar) 97*65c59e02SInna Palant } 98*65c59e02SInna Palant } 99*65c59e02SInna Palant} 100