1*cd0cc2e3SAndroid Build Coastguard Workerproject(Conscrypt) 2*cd0cc2e3SAndroid Build Coastguard Workercmake_minimum_required(VERSION 3.22.1) 3*cd0cc2e3SAndroid Build Coastguard Workeradd_library(conscrypt_jni 4*cd0cc2e3SAndroid Build Coastguard Worker SHARED 5*cd0cc2e3SAndroid Build Coastguard Worker ../common/src/jni/main/cpp/conscrypt/compatibility_close_monitor.cc 6*cd0cc2e3SAndroid Build Coastguard Worker ../common/src/jni/main/cpp/conscrypt/jniload.cc 7*cd0cc2e3SAndroid Build Coastguard Worker ../common/src/jni/main/cpp/conscrypt/jniutil.cc 8*cd0cc2e3SAndroid Build Coastguard Worker ../common/src/jni/main/cpp/conscrypt/native_crypto.cc 9*cd0cc2e3SAndroid Build Coastguard Worker ../common/src/jni/main/cpp/conscrypt/netutil.cc 10*cd0cc2e3SAndroid Build Coastguard Worker ) 11*cd0cc2e3SAndroid Build Coastguard Workerinclude_directories(../common/src/jni/main/include/ 12*cd0cc2e3SAndroid Build Coastguard Worker ../common/src/jni/unbundled/include/ 13*cd0cc2e3SAndroid Build Coastguard Worker ${BORINGSSL_HOME}/include) 14*cd0cc2e3SAndroid Build Coastguard Worker 15*cd0cc2e3SAndroid Build Coastguard Workerfind_library(android-log-lib log) 16*cd0cc2e3SAndroid Build Coastguard Workertarget_link_libraries(conscrypt_jni ${android-log-lib} ssl crypto) 17*cd0cc2e3SAndroid Build Coastguard Worker 18*cd0cc2e3SAndroid Build Coastguard Workeradd_definitions(-DANDROID 19*cd0cc2e3SAndroid Build Coastguard Worker -fvisibility=hidden 20*cd0cc2e3SAndroid Build Coastguard Worker -DBORINGSSL_SHARED_LIBRARY 21*cd0cc2e3SAndroid Build Coastguard Worker -DBORINGSSL_IMPLEMENTATION 22*cd0cc2e3SAndroid Build Coastguard Worker -DOPENSSL_SMALL 23*cd0cc2e3SAndroid Build Coastguard Worker -D_XOPEN_SOURCE=700 24*cd0cc2e3SAndroid Build Coastguard Worker -Wno-unused-parameter 25*cd0cc2e3SAndroid Build Coastguard Worker # The following two lines are taken from BoringSSL's build file. As written there: 26*cd0cc2e3SAndroid Build Coastguard Worker # 27*cd0cc2e3SAndroid Build Coastguard Worker # Clang's -Wtautological-constant-compare is far too aggressive and does not 28*cd0cc2e3SAndroid Build Coastguard Worker # account for, say, wanting the same code to work on both 32-bit and 64-bit 29*cd0cc2e3SAndroid Build Coastguard Worker # platforms. 30*cd0cc2e3SAndroid Build Coastguard Worker # 31*cd0cc2e3SAndroid Build Coastguard Worker # TODO: Remove these when the NDK no longer includes a version that has 32*cd0cc2e3SAndroid Build Coastguard Worker # -Wtautological-constant-compare enabled as part of -Wall 33*cd0cc2e3SAndroid Build Coastguard Worker -Wno-tautological-constant-compare 34*cd0cc2e3SAndroid Build Coastguard Worker -Wtautological-constant-out-of-range-compare) 35*cd0cc2e3SAndroid Build Coastguard Worker 36*cd0cc2e3SAndroid Build Coastguard Workerif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64") 37*cd0cc2e3SAndroid Build Coastguard Worker set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -march=armv8-a+crypto") 38*cd0cc2e3SAndroid Build Coastguard Workerendif() 39*cd0cc2e3SAndroid Build Coastguard Worker 40*cd0cc2e3SAndroid Build Coastguard Workeradd_subdirectory(${BORINGSSL_HOME} ${CMAKE_CURRENT_BINARY_DIR}/boringssl) 41