Allow compilation of Dawn on Android

BUG=dawn:286

Change-Id: Ia65b57fde12a1260d29913f61f9b24eded7dbc30
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13822
Reviewed-by: David Turner <digit@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
Corentin Wallez 2019-11-28 09:40:54 +00:00 committed by Commit Bot service account
parent 00b1e38f3b
commit 673146475f
4 changed files with 15 additions and 3 deletions

View File

@ -12,8 +12,9 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import("dawn_overrides_with_defaults.gni") import("//build_overrides/build.gni")
import("dawn_features.gni") import("dawn_features.gni")
import("dawn_overrides_with_defaults.gni")
############################################################################### ###############################################################################
# Template to produce a component for one of Dawn's libraries. # Template to produce a component for one of Dawn's libraries.
@ -95,6 +96,14 @@ template("dawn_component") {
defines = [] defines = []
} }
defines += [ "${invoker.DEFINE_PREFIX}_IMPLEMENTATION" ] defines += [ "${invoker.DEFINE_PREFIX}_IMPLEMENTATION" ]
# Chromium adds a config that uses a special linker script that removes
# all symbols except JNI ones. Remove this config so that our
# shared_library symbols are visible. This matches what Chromium's
# component template does.
if (build_with_chromium && is_android) {
configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
}
} }
static_library("${libname}_static") { static_library("${libname}_static") {

View File

@ -36,7 +36,7 @@ declare_args() {
dawn_enable_opengl = is_linux && !is_chromeos dawn_enable_opengl = is_linux && !is_chromeos
# Enables the compilation of Dawn's Vulkan backend # Enables the compilation of Dawn's Vulkan backend
dawn_enable_vulkan = is_linux || is_win || is_fuchsia dawn_enable_vulkan = is_linux || is_win || is_fuchsia || is_android
# Enable use of reflection compiler in spirv-cross. This is needed # Enable use of reflection compiler in spirv-cross. This is needed
# if performing reflection on systems that the platform language # if performing reflection on systems that the platform language

View File

@ -79,7 +79,7 @@ config("dawn_internal") {
# This GN file is discovered by all Chromium builds, but common doesn't support # This GN file is discovered by all Chromium builds, but common doesn't support
# all of Chromium's OSes so we explicitly make the target visible only on # all of Chromium's OSes so we explicitly make the target visible only on
# systems we know Dawn is able to compile on. # systems we know Dawn is able to compile on.
if (is_win || is_linux || is_mac || is_fuchsia) { if (is_win || is_linux || is_mac || is_fuchsia || is_android) {
static_library("common") { static_library("common") {
sources = [ sources = [
"Assert.cpp", "Assert.cpp",

View File

@ -21,6 +21,9 @@
#elif defined(__linux__) #elif defined(__linux__)
# define DAWN_PLATFORM_LINUX 1 # define DAWN_PLATFORM_LINUX 1
# define DAWN_PLATFORM_POSIX 1 # define DAWN_PLATFORM_POSIX 1
# if defined(__ANDROID__)
# define DAWN_PLATFORM_ANDROID 1
# endif
#elif defined(__APPLE__) #elif defined(__APPLE__)
# define DAWN_PLATFORM_APPLE 1 # define DAWN_PLATFORM_APPLE 1