From 8d6d1f67f1d52a28fdd89e4290d0ee5b359ddaff Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 28 Nov 2017 09:00:58 -0800 Subject: [PATCH] Support RELEASE_TYPE and RELEASE_NUM for Android --- android/app/build.gradle | 17 ++++++++-- android/build.gradle | 40 ++++++++++++++--------- cmake/macros/SetFromEnv.cmake | 17 ++++++++++ cmake/macros/SetPackagingParameters.cmake | 9 ++--- cmake/macros/SetupQt.cmake | 14 ++------ 5 files changed, 63 insertions(+), 34 deletions(-) create mode 100644 cmake/macros/SetFromEnv.cmake diff --git a/android/app/build.gradle b/android/app/build.gradle index 005ec1a3ad..199bc6f0c8 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,5 +1,10 @@ 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 { compileSdkVersion 26 defaultConfig { @@ -17,7 +22,9 @@ android { '-DANDROID_STL=c++_shared', '-DQT_CMAKE_PREFIX_PATH=' + HIFI_ANDROID_PRECOMPILED + '/qt/lib/cmake', '-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 { @@ -27,6 +34,12 @@ android { } buildTypes { + applicationVariants.all { variant -> + variant.outputs.all { + outputFileName = "app_" + RELEASE_NUMBER + "_" + RELEASE_TYPE + ".apk" + } + } + release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' @@ -45,4 +58,4 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.vr:sdk-audio:1.80.0' compile 'com.google.vr:sdk-base:1.80.0' -} \ No newline at end of file +} diff --git a/android/build.gradle b/android/build.gradle index a4c6da1432..cfa979909f 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -93,7 +93,7 @@ task copyDependencies(dependsOn: extractDependencies) { } } -task setupScribe(type: Exec) { +task setupScribe { def scribeFile='scribe_linux_x86_64' def scribeLocalFile='scribe' if (Os.isFamily(Os.FAMILY_MAC)) { @@ -110,30 +110,38 @@ task setupScribe(type: Exec) { onlyIfNewer true } } - if (!Os.isFamily(Os.FAMILY_WINDOWS)) { - commandLine 'chmod', 'a+x', HIFI_ANDROID_PRECOMPILED + '/' + scribeLocalFile + doLast { + if (!Os.isFamily(Os.FAMILY_WINDOWS)) { + commandLine 'chmod', 'a+x', HIFI_ANDROID_PRECOMPILED + '/' + scribeLocalFile + } } } -task setupDependencies(dependsOn: [setupScribe, copyDependencies]) { +task extractGvrBinaries(dependsOn: extractDependencies) { doLast { 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 -> - if (element.file.toString().endsWith('arm64-v8a/libgvr_audio.so')) { - 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')) { - copy { from element.file; into gvrLibFolder } - } - } - fileTree(gvrLibFolder).visit { element -> + zipTree(new File(HIFI_ANDROID_PRECOMPILED, 'gvr/gvr-android-sdk-1.101.0/libraries/sdk-audio-1.101.0.aar')).visit { element -> + def fileName = element.file.toString(); + 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 -> + def fileName = element.file.toString(); + if (fileName.endsWith('libgvr.so') && fileName.contains('arm64-v8a')) { + copy { from element.file; into gvrLibFolder } + } + } + fileTree(gvrLibFolder).visit { element -> if (element.file.toString().endsWith('.so')) { copy { from element.file; into jniFolder } } - } + } } + +} + +task setupDependencies(dependsOn: [setupScribe, copyDependencies, extractGvrBinaries]) { } task cleanDependencies(type: Delete) { diff --git a/cmake/macros/SetFromEnv.cmake b/cmake/macros/SetFromEnv.cmake new file mode 100644 index 0000000000..0832c5a536 --- /dev/null +++ b/cmake/macros/SetFromEnv.cmake @@ -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() diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index 8faa4e6d96..e26f81edd9 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -15,13 +15,14 @@ macro(SET_PACKAGING_PARAMETERS) set(PR_BUILD 0) set(PRODUCTION_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(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 BRANCH environment variable is: $ENV{BRANCH}") message(STATUS "The RELEASE_TYPE variable is: ${RELEASE_TYPE}") diff --git a/cmake/macros/SetupQt.cmake b/cmake/macros/SetupQt.cmake index ac67e12044..00a398761b 100644 --- a/cmake/macros/SetupQt.cmake +++ b/cmake/macros/SetupQt.cmake @@ -1,21 +1,11 @@ # -# Copyright 2015 High Fidelity, Inc. -# Created by Bradley Austin Davis on 2015/10/10 +# Created by Bradley Austin Davis on 2017/09/02 +# 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() - # Construct a default QT location from a root path, a version and an architecture function(calculate_default_qt_dir _RESULT_NAME) if (ANDROID)