blob: 5b291d37cdec1531c5e74b06337dec8f1a4e4f9d [file] [log] [blame]
# Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
# Definitions for building standalone Dart binaries to run on Fuchsia.
{
'variables': {
'fuchsia_tools': '<(PRODUCT_DIR)/../../third_party/fuchsia_tools/',
}, # variables
'target_defaults': {
'configurations': {
'Dart_Fuchsia_Base': {
'abstract': 1,
'cflags': [
'-Werror',
'<@(common_gcc_warning_flags)',
'-Wnon-virtual-dtor',
'-Wvla',
'-Woverloaded-virtual',
'-g3',
'-ggdb3',
'-fno-rtti',
'-fno-exceptions',
'-fstack-protector',
'-Wa,--noexecstack',
],
'target_conditions': [
['_toolset=="target"', {
'cflags!': [
'-pthread', # Not supported by Android toolchain.
],
}],
],
},
'Dart_Fuchsia_Debug': {
'abstract': 1,
'defines': [
'DEBUG',
],
'cflags': [
'-fno-omit-frame-pointer',
],
},
'Dart_Fuchsia_Release': {
'abstract': 1,
'defines': [
'NDEBUG',
],
'cflags!': [
'-O2',
'-Os',
],
'cflags': [
'-fno-omit-frame-pointer',
'-fdata-sections',
'-ffunction-sections',
'-O3',
],
},
'Dart_Fuchsia_Product': {
'abstract': 1,
'defines': [
'NDEBUG',
'PRODUCT',
],
'cflags!': [
'-O2',
'-Os',
],
'cflags': [
'-fdata-sections',
'-ffunction-sections',
'-O3',
],
},
'Dart_Fuchsia_x64_Base': {
'abstract': 1,
'variables': {
'fuchsia_sysroot': '<(fuchsia_tools)/sysroot/x86_64',
'fuchsia_include': '<(fuchsia_sysroot)/usr/include',
'fuchsia_lib': '<(fuchsia_sysroot)/usr/lib',
},
'target_conditions': [
['_toolset=="target"', {
'defines': [
'TARGET_OS_FUCHSIA',
],
'cflags': [
'--sysroot=<(fuchsia_sysroot)',
'-I<(fuchsia_include)',
'-fno-threadsafe-statics',
],
'ldflags': [
'x64', '>(_type)', 'target',
'-nostdlib',
'-T<(fuchsia_sysroot)/usr/user.ld',
'-L<(fuchsia_lib)',
'-Wl,-z,noexecstack',
'-Wl,-z,now',
'-Wl,-z,relro',
'<(fuchsia_lib)/crt1.o',
'<(fuchsia_lib)/crti.o',
],
'ldflags!': [
'-pthread',
],
}],
['_toolset=="host"', {
'cflags': [ '-pthread' ],
'ldflags': [ '-pthread' ],
}],
],
},
'Dart_Fuchsia_arm64_Base': {
'abstract': 1,
'variables': {
'fuchsia_sysroot': '<(fuchsia_tools)/sysroot/arm64',
'fuchsia_include': '<(fuchsia_sysroot)/usr/include',
'fuchsia_lib': '<(fuchsia_sysroot)/usr/lib',
},
'target_conditions': [
['_toolset=="target"', {
'defines': [
'TARGET_OS_FUCHSIA',
],
'cflags': [
'--sysroot=<(fuchsia_sysroot)',
'-I<(fuchsia_include)',
'-fno-threadsafe-statics',
],
'ldflags': [
'arm64', '>(_type)', 'target',
'-nostdlib',
'-L<(fuchsia_lib)',
'-Wl,-z,noexecstack',
'-Wl,-z,now',
'-Wl,-z,relro',
],
'ldflags!': [
'-pthread',
],
}],
['_toolset=="host"', {
'cflags': [ '-pthread' ],
'ldflags': [ '-pthread' ],
}],
],
}, # Dart_Fuchsia_arm64_Base
}, # configurations
}, # target_defaults
}