Support RELEASE_TYPE and RELEASE_NUM for Android

This commit is contained in:
Brad Davis 2017-11-28 09:00:58 -08:00
parent 9293391297
commit 8d6d1f67f1
5 changed files with 63 additions and 34 deletions

View file

@ -1,5 +1,10 @@
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
ext.RELEASE_NUMBER = project.hasProperty('RELEASE_NUMBER') ? project.getProperty('RELEASE_NUMBER') : '0'
ext.RELEASE_TYPE = project.hasProperty('RELEASE_TYPE') ? project.getProperty('RELEASE_TYPE') : 'DEV'
android { android {
compileSdkVersion 26 compileSdkVersion 26
defaultConfig { defaultConfig {
@ -17,7 +22,9 @@ android {
'-DANDROID_STL=c++_shared', '-DANDROID_STL=c++_shared',
'-DQT_CMAKE_PREFIX_PATH=' + HIFI_ANDROID_PRECOMPILED + '/qt/lib/cmake', '-DQT_CMAKE_PREFIX_PATH=' + HIFI_ANDROID_PRECOMPILED + '/qt/lib/cmake',
'-DNATIVE_SCRIBE=' + HIFI_ANDROID_PRECOMPILED + '/scribe', '-DNATIVE_SCRIBE=' + HIFI_ANDROID_PRECOMPILED + '/scribe',
'-DHIFI_ANDROID_PRECOMPILED=' + HIFI_ANDROID_PRECOMPILED '-DHIFI_ANDROID_PRECOMPILED=' + HIFI_ANDROID_PRECOMPILED,
'-DRELEASE_NUMBER=' + RELEASE_NUMBER,
'-DRELEASE_TYPE=' + RELEASE_TYPE
} }
} }
compileOptions { compileOptions {
@ -27,6 +34,12 @@ android {
} }
buildTypes { buildTypes {
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "app_" + RELEASE_NUMBER + "_" + RELEASE_TYPE + ".apk"
}
}
release { release {
minifyEnabled false minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
@ -45,4 +58,4 @@ dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.vr:sdk-audio:1.80.0' compile 'com.google.vr:sdk-audio:1.80.0'
compile 'com.google.vr:sdk-base:1.80.0' compile 'com.google.vr:sdk-base:1.80.0'
} }

View file

@ -93,7 +93,7 @@ task copyDependencies(dependsOn: extractDependencies) {
} }
} }
task setupScribe(type: Exec) { task setupScribe {
def scribeFile='scribe_linux_x86_64' def scribeFile='scribe_linux_x86_64'
def scribeLocalFile='scribe' def scribeLocalFile='scribe'
if (Os.isFamily(Os.FAMILY_MAC)) { if (Os.isFamily(Os.FAMILY_MAC)) {
@ -110,30 +110,38 @@ task setupScribe(type: Exec) {
onlyIfNewer true onlyIfNewer true
} }
} }
if (!Os.isFamily(Os.FAMILY_WINDOWS)) { doLast {
commandLine 'chmod', 'a+x', HIFI_ANDROID_PRECOMPILED + '/' + scribeLocalFile if (!Os.isFamily(Os.FAMILY_WINDOWS)) {
commandLine 'chmod', 'a+x', HIFI_ANDROID_PRECOMPILED + '/' + scribeLocalFile
}
} }
} }
task setupDependencies(dependsOn: [setupScribe, copyDependencies]) { task extractGvrBinaries(dependsOn: extractDependencies) {
doLast { doLast {
def gvrLibFolder = new File(HIFI_ANDROID_PRECOMPILED, 'gvr/gvr-android-sdk-1.101.0/libraries'); def gvrLibFolder = new File(HIFI_ANDROID_PRECOMPILED, 'gvr/gvr-android-sdk-1.101.0/libraries');
zipTree(new File(HIFI_ANDROID_PRECOMPILED, 'gvr/gvr-android-sdk-1.101.0/libraries/sdk-audio-1.101.0.aar')).visit { element -> zipTree(new File(HIFI_ANDROID_PRECOMPILED, 'gvr/gvr-android-sdk-1.101.0/libraries/sdk-audio-1.101.0.aar')).visit { element ->
if (element.file.toString().endsWith('arm64-v8a/libgvr_audio.so')) { def fileName = element.file.toString();
copy { from element.file; into gvrLibFolder } if (fileName.endsWith('libgvr_audio.so') && fileName.contains('arm64-v8a')) {
} copy { from element.file; into gvrLibFolder }
} }
zipTree(new File(HIFI_ANDROID_PRECOMPILED, 'gvr/gvr-android-sdk-1.101.0/libraries/sdk-base-1.101.0.aar')).visit { element -> }
if (element.file.toString().endsWith('arm64-v8a/libgvr.so')) { zipTree(new File(HIFI_ANDROID_PRECOMPILED, 'gvr/gvr-android-sdk-1.101.0/libraries/sdk-base-1.101.0.aar')).visit { element ->
copy { from element.file; into gvrLibFolder } def fileName = element.file.toString();
} if (fileName.endsWith('libgvr.so') && fileName.contains('arm64-v8a')) {
} copy { from element.file; into gvrLibFolder }
fileTree(gvrLibFolder).visit { element -> }
}
fileTree(gvrLibFolder).visit { element ->
if (element.file.toString().endsWith('.so')) { if (element.file.toString().endsWith('.so')) {
copy { from element.file; into jniFolder } copy { from element.file; into jniFolder }
} }
} }
} }
}
task setupDependencies(dependsOn: [setupScribe, copyDependencies, extractGvrBinaries]) {
} }
task cleanDependencies(type: Delete) { task cleanDependencies(type: Delete) {

View file

@ -0,0 +1,17 @@
#
# Created by Bradley Austin Davis on 2017/11/27
# Copyright 2013-2017 High Fidelity, Inc.
#
# Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
#
function(set_from_env _RESULT_NAME _ENV_VAR_NAME _DEFAULT_VALUE)
if (NOT DEFINED ${_RESULT_NAME})
if ("$ENV{${_ENV_VAR_NAME}}" STREQUAL "")
set (${_RESULT_NAME} ${_DEFAULT_VALUE} PARENT_SCOPE)
else()
set (${_RESULT_NAME} $ENV{${_ENV_VAR_NAME}} PARENT_SCOPE)
endif()
endif()
endfunction()

View file

@ -15,13 +15,14 @@ macro(SET_PACKAGING_PARAMETERS)
set(PR_BUILD 0) set(PR_BUILD 0)
set(PRODUCTION_BUILD 0) set(PRODUCTION_BUILD 0)
set(DEV_BUILD 0) set(DEV_BUILD 0)
set(RELEASE_TYPE $ENV{RELEASE_TYPE})
set(RELEASE_NUMBER $ENV{RELEASE_NUMBER})
string(TOLOWER "$ENV{BRANCH}" BUILD_BRANCH)
set(BUILD_GLOBAL_SERVICES "DEVELOPMENT") set(BUILD_GLOBAL_SERVICES "DEVELOPMENT")
set(USE_STABLE_GLOBAL_SERVICES 0) set(USE_STABLE_GLOBAL_SERVICES 0)
set_from_env(RELEASE_TYPE RELEASE_TYPE "DEV")
set_from_env(RELEASE_NUMBER RELEASE_NUMBER "")
set_from_env(BUILD_BRANCH BRANCH "")
string(TOLOWER "${BUILD_BRANCH}" BUILD_BRANCH)
message(STATUS "The BUILD_BRANCH variable is: ${BUILD_BRANCH}") message(STATUS "The BUILD_BRANCH variable is: ${BUILD_BRANCH}")
message(STATUS "The BRANCH environment variable is: $ENV{BRANCH}") message(STATUS "The BRANCH environment variable is: $ENV{BRANCH}")
message(STATUS "The RELEASE_TYPE variable is: ${RELEASE_TYPE}") message(STATUS "The RELEASE_TYPE variable is: ${RELEASE_TYPE}")

View file

@ -1,21 +1,11 @@
# #
# Copyright 2015 High Fidelity, Inc. # Created by Bradley Austin Davis on 2017/09/02
# Created by Bradley Austin Davis on 2015/10/10 # Copyright 2013-2017 High Fidelity, Inc.
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
# #
function(set_from_env _RESULT_NAME _ENV_VAR_NAME _DEFAULT_VALUE)
if (NOT DEFINED ${_RESULT_NAME})
if ("$ENV{${_ENV_VAR_NAME}}" STREQUAL "")
set (${_RESULT_NAME} ${_DEFAULT_VALUE} PARENT_SCOPE)
else()
set (${_RESULT_NAME} $ENV{${_ENV_VAR_NAME}} PARENT_SCOPE)
endif()
endif()
endfunction()
# Construct a default QT location from a root path, a version and an architecture # Construct a default QT location from a root path, a version and an architecture
function(calculate_default_qt_dir _RESULT_NAME) function(calculate_default_qt_dir _RESULT_NAME)
if (ANDROID) if (ANDROID)