fix gitignoer for build dir
This commit is contained in:
parent
9b56e3ab0e
commit
0838c133fe
|
@ -1,4 +1,5 @@
|
|||
build/
|
||||
/build/
|
||||
downloads/
|
||||
sstate-cache/
|
||||
.vscode/
|
||||
/src/kernel/linux/v4.4/tools/build/
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../../../README
|
|
@ -0,0 +1 @@
|
|||
/home/hx/mtk8516/mt8516_avs_share-master/build/tmp/work/aud8516p1v2_consys_slc_128-poky-linux/tee-mtee/1.0-r0/temp
|
|
@ -0,0 +1 @@
|
|||
/home/hx/mtk8516/mt8516_avs_share-master/build/tmp/work/aud8516p1v2_consys_slc_128-poky-linux/tee-mtee/1.0-r0
|
|
@ -0,0 +1,2 @@
|
|||
The "tz" directory is intended for Mediatek solution TrustZone.
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
mw_config_path = ""
|
||||
mw_include_path = ""
|
||||
mw_alsa_inc_path = ""
|
||||
asound_inc_path = ""
|
||||
mw_alsa_uploader_inc_path = ""
|
||||
bt_sys_log_flag = ""
|
||||
bt_tmp_path = ""
|
||||
bt_misc_path = ""
|
||||
bt_etc_path = ""
|
||||
bt_backtrace = ""
|
||||
rpc_dbg_flag = ""
|
||||
libbt_playback_link = ""
|
||||
libbt_uploader_link = ""
|
||||
}
|
||||
|
||||
assert(mw_config_path != "", "mw_config_path build argument wasn't provided.")
|
||||
assert(mw_include_path != "", "mw_include_path build argument wasn't provided.")
|
||||
assert(mw_alsa_inc_path != "", "mw_alsa_inc_path build argument wasn't provided.")
|
||||
assert(mw_alsa_uploader_inc_path != "", "mw_alsa_uploader_inc_path build argument wasn't provided.")
|
||||
assert(bt_tmp_path != "", "bt_tmp_path build argument wasn't provided.")
|
||||
assert(bt_misc_path != "", "bt_misc_path build argument wasn't provided.")
|
||||
assert(bt_etc_path != "", "bt_etc_path build argument wasn't provided.")
|
||||
|
||||
|
||||
config("default_include_dirs") {
|
||||
# TODO(armansito): Remove "core_include_path" once the cutils includes have
|
||||
# been removed.
|
||||
assert(mw_config_path != "",
|
||||
"mw_config_path build argument wasn't provided.")
|
||||
assert(mw_include_path != "",
|
||||
"mw_include_path build argument wasn't provided.")
|
||||
|
||||
include_dirs = [
|
||||
mw_config_path,
|
||||
mw_include_path,
|
||||
mw_alsa_uploader_inc_path,
|
||||
mw_alsa_inc_path,
|
||||
asound_inc_path,
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
"-Wall",
|
||||
#"-Werror",
|
||||
"-g",
|
||||
"-Os",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
bt_sys_log_flag,
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
# "_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"HAS_NO_BDROID_BUILDCFG",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
"OS_GENERIC",
|
||||
|
||||
"BT_TMP_PATH=\"$bt_tmp_path/\"",
|
||||
"BT_MISC_PATH=\"$bt_misc_path/\"",
|
||||
"BT_ETC_PATH=\"$bt_etc_path/\"",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,108 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
libbt_mw_path = ""
|
||||
external_libs_path = ""
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(libbt_mw_path != "", "libbt_mw_path build argument wasn't provided.")
|
||||
assert(external_libs_path != "", "external_libs_path build argument wasn't provided.")
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname $libbt_mw_path $external_libs_path @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group $libbt_mw_path $external_libs_path {{libs}}"
|
||||
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,106 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
mw_inc_path = ""
|
||||
asound_inc_path = ""
|
||||
bt_alsa_flag = ""
|
||||
bt_sys_log_flag = ""
|
||||
bt_tmp_path = ""
|
||||
bt_misc_path = ""
|
||||
bt_etc_path = ""
|
||||
stack_include_path = ""
|
||||
stack_root_path = ""
|
||||
}
|
||||
|
||||
assert(mw_inc_path != "", "mw_inc_path build argument wasn't provided.")
|
||||
assert(asound_inc_path != "", "asound_inc_path build argument wasn't provided.")
|
||||
#print(mw_inc_path)
|
||||
|
||||
assert(bt_tmp_path != "", "bt_tmp_path build argument wasn't provided.")
|
||||
assert(bt_misc_path != "", "bt_misc_path build argument wasn't provided.")
|
||||
assert(bt_etc_path != "", "bt_etc_path build argument wasn't provided.")
|
||||
assert(stack_include_path != "", "stack_include_path build argument wasn't provided.")
|
||||
assert(stack_root_path != "", "stack_include_path build argument wasn't provided.")
|
||||
|
||||
#print(asound_inc_path)
|
||||
|
||||
config("default_include_dirs") {
|
||||
# TODO(armansito): Remove "core_include_path" once the cutils includes have
|
||||
# been removed.
|
||||
assert(mw_inc_path != "",
|
||||
"mw_inc_path build argument wasn't provided.")
|
||||
assert(asound_inc_path != "",
|
||||
"asound_inc_path build argument wasn't provided.")
|
||||
include_dirs = [
|
||||
mw_inc_path,
|
||||
asound_inc_path,
|
||||
stack_include_path,
|
||||
stack_root_path,
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
"-Wall",
|
||||
#"-Werror",
|
||||
"-g",
|
||||
"-Os",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
bt_alsa_flag,
|
||||
bt_sys_log_flag,
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
"_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"HAS_NO_BDROID_BUILDCFG",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
"OS_GENERIC",
|
||||
|
||||
"BT_TMP_PATH=\"$bt_tmp_path/\"",
|
||||
"BT_MISC_PATH=\"$bt_misc_path/\"",
|
||||
"BT_ETC_PATH=\"$bt_etc_path/\"",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,108 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
libasound_path = ""
|
||||
bluedroid_libs_path = ""
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(libasound_path != "", "libasound_path build argument wasn't provided.")
|
||||
assert(bluedroid_libs_path != "", "bluedroid_libs_path build argument wasn't provided.")
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname $libasound_path $bluedroid_libs_path @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group {{libs}}"
|
||||
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,109 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
mw_config_path = ""
|
||||
mw_include_path = ""
|
||||
mw_alsa_inc_path = ""
|
||||
mw_alsa_uploader_inc_path = ""
|
||||
bt_sys_log_flag = ""
|
||||
bt_tmp_path = ""
|
||||
bt_misc_path = ""
|
||||
bt_etc_path = ""
|
||||
bt_backtrace = ""
|
||||
rpc_dbg_flag = ""
|
||||
libbt_playback_link = ""
|
||||
libbt_uploader_link = ""
|
||||
}
|
||||
|
||||
assert(mw_config_path != "", "mw_config_path build argument wasn't provided.")
|
||||
assert(mw_include_path != "", "mw_include_path build argument wasn't provided.")
|
||||
|
||||
assert(bt_tmp_path != "", "bt_tmp_path build argument wasn't provided.")
|
||||
assert(bt_misc_path != "", "bt_misc_path build argument wasn't provided.")
|
||||
assert(bt_etc_path != "", "bt_etc_path build argument wasn't provided.")
|
||||
|
||||
config("default_include_dirs") {
|
||||
# TODO(armansito): Remove "core_include_path" once the cutils includes have
|
||||
# been removed.
|
||||
assert(mw_config_path != "",
|
||||
"mw_config_path build argument wasn't provided.")
|
||||
assert(mw_include_path != "",
|
||||
"mw_include_path build argument wasn't provided.")
|
||||
|
||||
include_dirs = [
|
||||
mw_config_path,
|
||||
mw_include_path,
|
||||
mw_alsa_inc_path,
|
||||
mw_alsa_uploader_inc_path,
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
#TODO(jpawlowski): uncomment once we have no warnings on linux build
|
||||
"-Wall",
|
||||
#"-Werror",
|
||||
"-g",
|
||||
"-rdynamic",
|
||||
"-funwind-tables",
|
||||
"-Os",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
bt_sys_log_flag,
|
||||
bt_backtrace,
|
||||
rpc_dbg_flag,
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
# "_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"HAS_NO_BDROID_BUILDCFG",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
"OS_GENERIC",
|
||||
|
||||
"BT_TMP_PATH=\"$bt_tmp_path/\"",
|
||||
"BT_MISC_PATH=\"$bt_misc_path/\"",
|
||||
"BT_ETC_PATH=\"$bt_etc_path/\"",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,107 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
libbt_mw_path = ""
|
||||
libz_path = ""
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(libbt_mw_path != "", "libbt_mw_path build argument wasn't provided.")
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive $libbt_mw_path $libz_path {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group $libbt_mw_path $libz_path {{libs}}"
|
||||
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
mw_include_path = ""
|
||||
mw_config_path = ""
|
||||
mw_alsa_inc_path = ""
|
||||
asound_inc_path = ""
|
||||
mw_alsa_uploader_inc_path = ""
|
||||
mtk_rpc_ipc_inc_path = ""
|
||||
bt_sys_log_flag = ""
|
||||
bt_tmp_path = ""
|
||||
bt_misc_path = ""
|
||||
bt_etc_path = ""
|
||||
libbt_playback_link = ""
|
||||
libbt_uploader_link = ""
|
||||
}
|
||||
|
||||
|
||||
assert(mw_include_path != "", "mw_include_path build argument wasn't provided.")
|
||||
assert(mw_config_path != "", "mw_config_path build argument wasn't provided.")
|
||||
|
||||
assert(bt_tmp_path != "", "bt_tmp_path build argument wasn't provided.")
|
||||
assert(bt_misc_path != "", "bt_misc_path build argument wasn't provided.")
|
||||
assert(bt_etc_path != "", "bt_etc_path build argument wasn't provided.")
|
||||
|
||||
config("default_include_dirs") {
|
||||
# TODO(armansito): Remove "core_include_path" once the cutils includes have
|
||||
# been removed.
|
||||
include_dirs = [
|
||||
mw_include_path,
|
||||
mw_config_path,
|
||||
mw_alsa_inc_path,
|
||||
asound_inc_path,
|
||||
mtk_rpc_ipc_inc_path,
|
||||
mw_alsa_uploader_inc_path,
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
#TODO(jpawlowski): uncomment once we have no warnings on linux build
|
||||
"-Wall",
|
||||
#"-Werror",
|
||||
"-g",
|
||||
"-Os",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
bt_sys_log_flag,
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
"_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"HAS_NO_BDROID_BUILDCFG",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
"OS_GENERIC",
|
||||
|
||||
"BT_TMP_PATH=\"$bt_tmp_path/\"",
|
||||
"BT_MISC_PATH=\"$bt_misc_path/\"",
|
||||
"BT_ETC_PATH=\"$bt_etc_path/\"",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,107 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
libbt_mw_path = ""
|
||||
libbt_aud_hw_path = ""
|
||||
libz_path = ""
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group $libbt_mw_path $libbt_aud_hw_path $libz_path {{libs}}"
|
||||
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
storage_path = ""
|
||||
conf_path = ""
|
||||
platform_libs_path = ""
|
||||
bt_sys_log_flag = ""
|
||||
bt_tmp_path = ""
|
||||
bt_misc_path = ""
|
||||
bt_etc_path = ""
|
||||
rpc_dbg_flag = ""
|
||||
stack_include_path = ""
|
||||
stack_root_path = ""
|
||||
}
|
||||
|
||||
assert(storage_path != "", "storage_path build argument wasn't provided.")
|
||||
assert(conf_path != "", "conf_path build argument wasn't provided.")
|
||||
assert(platform_libs_path != "", "storage_path build argument wasn't provided.")
|
||||
|
||||
assert(bt_tmp_path != "", "bt_tmp_path build argument wasn't provided.")
|
||||
assert(bt_misc_path != "", "bt_misc_path build argument wasn't provided.")
|
||||
assert(bt_etc_path != "", "bt_etc_path build argument wasn't provided.")
|
||||
assert(stack_include_path != "", "stack_include_path build argument wasn't provided.")
|
||||
assert(stack_root_path != "", "stack_include_path build argument wasn't provided.")
|
||||
|
||||
config("default_include_dirs") {
|
||||
include_dirs = [
|
||||
"//inc",
|
||||
"//inc/hardware",
|
||||
storage_path,
|
||||
platform_libs_path,
|
||||
stack_include_path,
|
||||
stack_root_path,
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
"-Wall",
|
||||
#"-Werror",
|
||||
"-g",
|
||||
"-Os",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
"-DMTK_BLUEDROID_PATCH",
|
||||
bt_sys_log_flag,
|
||||
rpc_dbg_flag,
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
# "_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"HAS_NO_BDROID_BUILDCFG",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
"OS_GENERIC",
|
||||
"MTK_LINUX",
|
||||
"MW_STORAGE_PATH=\"$storage_path\"",
|
||||
"CONFIG_PATH=\"$conf_path\"",
|
||||
"PLATFORM_LIB_PATH=\"$platform_libs_path\"",
|
||||
"BT_TMP_PATH=\"$bt_tmp_path/\"",
|
||||
"BT_MISC_PATH=\"$bt_misc_path/\"",
|
||||
"BT_ETC_PATH=\"$bt_etc_path/\"",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,106 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
bluedroid_libs_path = ""
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(bluedroid_libs_path != "", "bluedroid_libs_path build argument wasn't provided.")
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive $bluedroid_libs_path {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group {{libs}}"
|
||||
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
mw_inc_path = ""
|
||||
asound_inc_path = ""
|
||||
bt_alsa_flag = ""
|
||||
}
|
||||
|
||||
assert(mw_inc_path != "", "mw_inc_path build argument wasn't provided.")
|
||||
assert(asound_inc_path != "", "asound_inc_path build argument wasn't provided.")
|
||||
#print(mw_inc_path)
|
||||
#print(asound_inc_path)
|
||||
|
||||
config("default_include_dirs") {
|
||||
# TODO(armansito): Remove "core_include_path" once the cutils includes have
|
||||
# been removed.
|
||||
assert(mw_inc_path != "",
|
||||
"mw_inc_path build argument wasn't provided.")
|
||||
assert(asound_inc_path != "",
|
||||
"asound_inc_path build argument wasn't provided.")
|
||||
include_dirs = [
|
||||
mw_inc_path,
|
||||
asound_inc_path,
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
"-Wall",
|
||||
# "-Werror",
|
||||
"-g",
|
||||
"-Os",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
bt_alsa_flag,
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
"_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"HAS_NO_BDROID_BUILDCFG",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
"OS_GENERIC",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,108 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
libbt_mw_path = ""
|
||||
libasound_path = ""
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(libbt_mw_path != "", "libbt_mw_path build argument wasn't provided.")
|
||||
assert(libasound_path != "", "libasound_path build argument wasn't provided.")
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname $libasound_path @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group $libbt_mw_path {{libs}}"
|
||||
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,111 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
libhw_include_path = ""
|
||||
core_include_path = ""
|
||||
btif_include_path = ""
|
||||
stack_include_path = ""
|
||||
utils_include_path = ""
|
||||
mtk_bt_include_path = ""
|
||||
bt_sys_log_flag = ""
|
||||
|
||||
bt_tmp_path = ""
|
||||
bt_misc_path = ""
|
||||
bt_etc_path = ""
|
||||
}
|
||||
|
||||
assert(libhw_include_path != "", "libhw_include_path build argument wasn't provided.")
|
||||
assert(core_include_path != "", "core_include_path build argument wasn't provided.")
|
||||
assert(btif_include_path != "", "btif_include_path build argument wasn't provided.")
|
||||
assert(stack_include_path != "", "stack_include_path build argument wasn't provided.")
|
||||
assert(utils_include_path != "", "utils_include_path build argument wasn't provided.")
|
||||
assert(mtk_bt_include_path != "", "mtk_bt_include_path build argument wasn't provided.")
|
||||
|
||||
assert(bt_tmp_path != "", "bt_tmp_path build argument wasn't provided.")
|
||||
assert(bt_misc_path != "", "bt_misc_path build argument wasn't provided.")
|
||||
assert(bt_etc_path != "", "bt_etc_path build argument wasn't provided.")
|
||||
|
||||
#print(libhw_include_path)
|
||||
#print(core_include_path)
|
||||
#print(btif_include_path)
|
||||
#print(stack_include_path)
|
||||
#print(utils_include_path)
|
||||
#print(mtk_bt_include_path)
|
||||
|
||||
config("default_include_dirs") {
|
||||
include_dirs = [
|
||||
libhw_include_path,
|
||||
core_include_path,
|
||||
btif_include_path,
|
||||
stack_include_path,
|
||||
utils_include_path,
|
||||
mtk_bt_include_path,
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
"-Wall",
|
||||
#"-Werror",
|
||||
"-g",
|
||||
"-Os",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
"-DHAS_MDROID_BUILDCFG",
|
||||
"-DMTK_BT_COMMON",
|
||||
bt_sys_log_flag,
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
"_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"HAS_NO_BDROID_BUILDCFG",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
"OS_GENERIC",
|
||||
|
||||
"BT_TMP_PATH=\"$bt_tmp_path/\"",
|
||||
"BT_MISC_PATH=\"$bt_misc_path/\"",
|
||||
"BT_ETC_PATH=\"$bt_etc_path/\"",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,107 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
bluedroid_libs_path = ""
|
||||
external_libs_path = ""
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(bluedroid_libs_path != "", "bluedroid_libs_path build argument wasn't provided.")
|
||||
assert(external_libs_path != "", "external_libs_path build argument wasn't provided.")
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group $bluedroid_libs_path $external_libs_path {{libs}}"
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
mtk_rpcipc_inc_path = ""
|
||||
mtk_inc_rpc_path = ""
|
||||
}
|
||||
|
||||
assert(mtk_rpcipc_inc_path != "", "mtk_rpcipc_inc_path build argument wasn't provided.")
|
||||
assert(mtk_inc_rpc_path != "", "mtk_inc_rpc_path build argument wasn't provided.")
|
||||
|
||||
config("default_include_dirs") {
|
||||
# TODO(armansito): Remove "core_include_path" once the cutils includes have
|
||||
# been removed.
|
||||
include_dirs = [
|
||||
mtk_rpcipc_inc_path,
|
||||
mtk_inc_rpc_path,
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
#TODO(jpawlowski): uncomment once we have no warnings on linux build
|
||||
"-Wall",
|
||||
#"-Werror",
|
||||
"-g",
|
||||
"-Os",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
"_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"HAS_NO_BDROID_BUILDCFG",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
"OS_GENERIC",
|
||||
"BT_RPC_DBG_CLIENT",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,108 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
libipcrpc_path = ""
|
||||
libmtk_bt_service_client_path = ""
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(libipcrpc_path != "", "libipcrpc_path build argument wasn't provided.")
|
||||
assert(libmtk_bt_service_client_path != "", "libmtk_bt_service_client_path build argument wasn't provided.")
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
print(libmtk_bt_service_client_path)
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive $libipcrpc_path $libmtk_bt_service_client_path {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group $libipcrpc_path $libmtk_bt_service_client_path {{libs}}"
|
||||
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
#
|
||||
# Copyright (C) 2017 MediaTek, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
boots_socket_path = ""
|
||||
}
|
||||
|
||||
#assert(boots_socket_path != "", "boots_socket_path build argument wasn't provided.")
|
||||
|
||||
config("default_include_dirs") {
|
||||
include_dirs = [
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
"-Wall",
|
||||
#"-Werror",
|
||||
"-g",
|
||||
"-O0",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
"_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
|
||||
"BOOTS_SOCKET_PATH=\"$boots_socket_path/\"",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2017 MediaTek, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
#
|
||||
# Copyright (C) 2017 MediaTek, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group {{libs}}"
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
|
||||
}
|
||||
|
||||
config("default_include_dirs") {
|
||||
include_dirs = [
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
"-Wall",
|
||||
#"-Werror",
|
||||
"-g",
|
||||
"-O0",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
"_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
"OS_GENERIC",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group {{libs}}"
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,130 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
mtk_include_path = ""
|
||||
bluedroid_hci_include_path = ""
|
||||
|
||||
libhw_include_path = ""
|
||||
|
||||
nvram_include_path = ""
|
||||
cutils_include_path = ""
|
||||
sysprop_include_path = ""
|
||||
external_include_for_vendor_path = ""
|
||||
|
||||
chip_flag = ""
|
||||
bdaddr_flag = ""
|
||||
c4a_flag = ""
|
||||
nvram_flag = ""
|
||||
|
||||
cutils_link = ""
|
||||
file_op_link = ""
|
||||
nvram_custom_link = ""
|
||||
nvram_link = ""
|
||||
bt_sys_log_flag = ""
|
||||
bt_tmp_path = ""
|
||||
bt_misc_path = ""
|
||||
bt_etc_path = ""
|
||||
rpc_dbg_flag = ""
|
||||
merge_interface = ""
|
||||
}
|
||||
|
||||
assert(mtk_include_path != "", "mtk_include_path build argument wasn't provided.")
|
||||
assert(bluedroid_hci_include_path != "", "bluedroid_hci_include_path build argument wasn't provided.")
|
||||
|
||||
assert(nvram_include_path != "", "nvram_include_path build argument wasn't provided.")
|
||||
assert(cutils_include_path != "", "cutils_include_path build argument wasn't provided.")
|
||||
assert(sysprop_include_path != "", "sysprop_include_path build argument wasn't provided.")
|
||||
assert(external_include_for_vendor_path != "", "external_include_for_vendor_path build argument wasn't provided.")
|
||||
|
||||
assert(chip_flag != "", "chip_flag build argument wasn't provided.")
|
||||
|
||||
assert(bt_tmp_path != "", "bt_tmp_path build argument wasn't provided.")
|
||||
assert(bt_misc_path != "", "bt_misc_path build argument wasn't provided.")
|
||||
assert(bt_etc_path != "", "bt_etc_path build argument wasn't provided.")
|
||||
|
||||
config("default_include_dirs") {
|
||||
include_dirs = [
|
||||
mtk_include_path,
|
||||
bluedroid_hci_include_path,
|
||||
libhw_include_path,
|
||||
nvram_include_path,
|
||||
cutils_include_path,
|
||||
sysprop_include_path,
|
||||
external_include_for_vendor_path,
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
"-Wall",
|
||||
#"-Werror",
|
||||
"-g",
|
||||
"-O0",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
"-DHAS_MDROID_BUILDCFG",
|
||||
"-DMTK_BLUEDROID_PATCH",
|
||||
chip_flag,
|
||||
bdaddr_flag,
|
||||
c4a_flag,
|
||||
nvram_flag,
|
||||
bt_sys_log_flag,
|
||||
rpc_dbg_flag,
|
||||
merge_interface,
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
"_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"HAS_NO_BDROID_BUILDCFG",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
"OS_GENERIC",
|
||||
"MTK_COMBO_SUPPORT",
|
||||
"HAVE_SYS_UIO_H",
|
||||
|
||||
"BT_TMP_PATH=\"$bt_tmp_path/\"",
|
||||
"BT_MISC_PATH=\"$bt_misc_path/\"",
|
||||
"BT_ETC_PATH=\"$bt_etc_path/\"",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
external_libs_for_vendor_path = ""
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(external_libs_for_vendor_path != "", "zlib_path build argument wasn't provided.")
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive $external_libs_for_vendor_path {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group $external_libs_for_vendor_path {{libs}}"
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,117 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
libhw_include_path = ""
|
||||
core_include_path = ""
|
||||
audio_include_path = ""
|
||||
zlib_include_path = ""
|
||||
conf_path = ""
|
||||
cache_path = ""
|
||||
|
||||
bt_tmp_path = ""
|
||||
bt_misc_path = ""
|
||||
bt_etc_path = ""
|
||||
bt_sys_log_flag = ""
|
||||
bt_performance_analysis_flag = ""
|
||||
rpc_dbg_flag = ""
|
||||
enable_aac = ""
|
||||
aac_include_path = ""
|
||||
aac_link = ""
|
||||
}
|
||||
|
||||
assert(libhw_include_path != "", "libhw_include_path build argument wasn't provided.")
|
||||
assert(core_include_path != "", "core_include_path build argument wasn't provided.")
|
||||
assert(audio_include_path != "", "audio_include_path build argument wasn't provided.")
|
||||
assert(zlib_include_path != "", "zlib_include_path build argument wasn't provided.")
|
||||
assert(conf_path != "", "conf_path build argument wasn't provided.")
|
||||
assert(cache_path != "", "cache_path build argument wasn't provided.")
|
||||
|
||||
assert(bt_tmp_path != "", "bt_tmp_path build argument wasn't provided.")
|
||||
assert(bt_misc_path != "", "bt_misc_path build argument wasn't provided.")
|
||||
assert(bt_etc_path != "", "bt_etc_path build argument wasn't provided.")
|
||||
|
||||
config("default_include_dirs") {
|
||||
include_dirs = [
|
||||
libhw_include_path,
|
||||
core_include_path,
|
||||
audio_include_path,
|
||||
zlib_include_path,
|
||||
"//mediatek/include",
|
||||
"//hci/include",
|
||||
aac_include_path,
|
||||
]
|
||||
}
|
||||
|
||||
config("linux") {
|
||||
# TODO(keybuk): AndroidConfig.h or equivalent
|
||||
|
||||
cflags = [
|
||||
"-Wall",
|
||||
#"-Werror",
|
||||
"-g",
|
||||
"-rdynamic",
|
||||
"-funwind-tables",
|
||||
"-Os",
|
||||
"-fpic",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-fvisibility=hidden",
|
||||
"-DMTK_BLUEDROID_PATCH",
|
||||
bt_sys_log_flag,
|
||||
bt_performance_analysis_flag,
|
||||
rpc_dbg_flag,
|
||||
enable_aac,
|
||||
]
|
||||
|
||||
cflags_c = [ "-std=c99" ]
|
||||
|
||||
cflags_cc = [
|
||||
#TODO(jpawlowski): we should use same c++ version as Android, which is c++11,
|
||||
# but we use some c++14 features. Uncomment when this get fixed in code.:
|
||||
"-std=c++1y",
|
||||
"-fno-exceptions",
|
||||
]
|
||||
|
||||
defines = [
|
||||
"_FORTIFY_SOURCE=2",
|
||||
"_GNU_SOURCE",
|
||||
"HAS_NO_BDROID_BUILDCFG",
|
||||
"LOG_NDEBUG=1",
|
||||
"EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
|
||||
"KERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE",
|
||||
|
||||
# This is a macro to that can be used by source code to detect if the
|
||||
# current build is done by GN or via Android.mk. This is a temporary
|
||||
# workaround until we can remove all Android-specific dependencies.
|
||||
"OS_GENERIC",
|
||||
"MTK_LINUX",
|
||||
"BT_CONF_PATH=\"$conf_path/\"",
|
||||
"BT_CACHE_PATH=\"$cache_path/\"",
|
||||
|
||||
"BT_TMP_PATH=\"$bt_tmp_path/\"",
|
||||
"BT_MISC_PATH=\"$bt_misc_path/\"",
|
||||
"BT_ETC_PATH=\"$bt_etc_path/\"",
|
||||
]
|
||||
}
|
||||
|
||||
config("pic") {
|
||||
cflags = [ "-fPIC" ]
|
||||
}
|
||||
|
||||
config("gc") {
|
||||
ldflags = [ "-Wl,--gc-sections" ]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set_default_toolchain("//build/toolchain/gcc")
|
||||
|
||||
set_defaults("executable") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("shared_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("source_set") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
||||
|
||||
set_defaults("static_library") {
|
||||
configs = [
|
||||
"//build:linux",
|
||||
"//build:gc",
|
||||
"//build:default_include_dirs",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
#
|
||||
# Copyright (C) 2015 Google, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at:
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
declare_args() {
|
||||
zlib_path = ""
|
||||
cc = ""
|
||||
cxx = ""
|
||||
}
|
||||
|
||||
assert(zlib_path != "", "zlib_path build argument wasn't provided.")
|
||||
assert(cc != "", "cc build argument wasn't provided.")
|
||||
assert(cxx != "", "cxx build argument wasn't provided.")
|
||||
|
||||
toolchain("gcc") {
|
||||
tool("cc") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CC {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("cxx") {
|
||||
depfile = "{{output}}.d"
|
||||
command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
|
||||
depsformat = "gcc"
|
||||
description = "CXX {{output}}"
|
||||
outputs = [
|
||||
"{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o",
|
||||
]
|
||||
}
|
||||
|
||||
tool("alink") {
|
||||
rspfile = "{{output}}.rsp"
|
||||
command = "rm -f {{output}} && ar rcs {{output}} @$rspfile"
|
||||
description = "AR {{target_output_name}}{{output_extension}}"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
"{{target_out_dir}}/{{target_output_name}}{{output_extension}}",
|
||||
]
|
||||
default_output_extension = ".a"
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("solink") {
|
||||
soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
|
||||
rspfile = soname + ".rsp"
|
||||
|
||||
command =
|
||||
"$cxx -shared {{ldflags}} -o $soname -Wl,-soname=$soname @$rspfile"
|
||||
rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive $zlib_path {{libs}}"
|
||||
|
||||
description = "SOLINK $soname"
|
||||
|
||||
# Use this for {{output_extension}} expansions unless a target manually
|
||||
# overrides it (in which case {{output_extension}} will be what the target
|
||||
# specifies).
|
||||
default_output_extension = ".so"
|
||||
|
||||
outputs = [
|
||||
soname,
|
||||
]
|
||||
link_output = soname
|
||||
depend_output = soname
|
||||
|
||||
output_prefix = "lib"
|
||||
}
|
||||
|
||||
tool("link") {
|
||||
outfile = "{{target_output_name}}{{output_extension}}"
|
||||
rspfile = "$outfile.rsp"
|
||||
command = "$cxx {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group {{libs}}"
|
||||
description = "LINK $outfile"
|
||||
rspfile_content = "{{inputs}}"
|
||||
outputs = [
|
||||
outfile,
|
||||
]
|
||||
}
|
||||
|
||||
tool("stamp") {
|
||||
command = "touch {{output}}"
|
||||
description = "STAMP {{output}}"
|
||||
}
|
||||
|
||||
tool("copy") {
|
||||
command = "cp -af {{source}} {{output}}"
|
||||
description = "COPY {{source}} {{output}}"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue