blob: 0f2013b5448b58ff119370f7e09e50cffa61239e [file] [log] [blame]
Doug Hornc32c6b02019-01-17 14:44:05 -08001// Copyright 2018 Google Inc. All rights reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package config
16
17import (
18 "android/soong/android"
19)
20
21var fuchsiaSysRoot string = "prebuilts/fuchsia_sdk/arch/x64/sysroot"
22var fuchsiaPrebuiltLibsRoot string = "fuchsia/prebuilt_libs"
23
24type toolchainFuchsia struct {
25 cFlags, ldFlags string
26}
27
28type toolchainFuchsiaX8664 struct {
29 toolchain64Bit
30 toolchainFuchsia
31}
32
33func (t *toolchainFuchsiaX8664) Name() string {
34 return "x86_64"
35}
36
37func (t *toolchainFuchsiaX8664) GccRoot() string {
38 return "${config.X86_64GccRoot}"
39}
40
41func (t *toolchainFuchsiaX8664) GccTriple() string {
42 return "x86_64-linux-android"
43}
44
45func (t *toolchainFuchsiaX8664) GccVersion() string {
46 return x86_64GccVersion
47}
48
49func (t *toolchainFuchsiaX8664) Cflags() string {
50 return ""
51}
52
53func (t *toolchainFuchsiaX8664) Cppflags() string {
54 return ""
55}
56
57func (t *toolchainFuchsiaX8664) Ldflags() string {
58 return ""
59}
60
61func (t *toolchainFuchsiaX8664) IncludeFlags() string {
62 return ""
63}
64
65func (t *toolchainFuchsiaX8664) ClangTriple() string {
66 return "x86_64-fuchsia-android"
67}
68
69func (t *toolchainFuchsiaX8664) ClangCppflags() string {
70 return "-Wno-error=deprecated-declarations"
71}
72
73func (t *toolchainFuchsiaX8664) ClangLdflags() string {
74 return "--target=x86_64-fuchsia --sysroot=" + fuchsiaSysRoot + " -L" + fuchsiaPrebuiltLibsRoot + "/x86_64-fuchsia/lib " + "-Lprebuilts/fuchsia_sdk/arch/x64/dist/"
75
76}
77
78func (t *toolchainFuchsiaX8664) ClangLldflags() string {
79 return "--target=x86_64-fuchsia --sysroot=" + fuchsiaSysRoot + " -L" + fuchsiaPrebuiltLibsRoot + "/x86_64-fuchsia/lib " + "-Lprebuilts/fuchsia_sdk/arch/x64/dist/"
80}
81
82func (t *toolchainFuchsiaX8664) ClangCflags() string {
83 return "--target=x86_64-fuchsia --sysroot=" + fuchsiaSysRoot + " -I" + fuchsiaSysRoot + "/include"
84}
85
86func (t *toolchainFuchsiaX8664) Bionic() bool {
87 return false
88}
89
90func (t *toolchainFuchsiaX8664) YasmFlags() string {
91 return "-f elf64 -m amd64"
92}
93
94func (t *toolchainFuchsiaX8664) ToolchainClangCflags() string {
Elliott Hughesb22dcfe2019-07-12 22:40:45 -070095 return "-mssse3"
Doug Hornc32c6b02019-01-17 14:44:05 -080096}
97
98var toolchainFuchsiaSingleton Toolchain = &toolchainFuchsiaX8664{}
99
100func fuchsiaToolchainFactory(arch android.Arch) Toolchain {
101 return toolchainFuchsiaSingleton
102}
103
104func init() {
105 registerToolchainFactory(android.Fuchsia, android.X86_64, fuchsiaToolchainFactory)
106}