1 Star 0 Fork 5

DoubleByte/gn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
custom_targets.py 7.85 KB
一键复制 编辑 原始数据 按行查看 历史
chengxuya 提交于 2023-05-05 14:26 . [+] custom
# Copyright (c) 2023 DoubleByte. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Write by chengxuya
import sys
from pybuildcc.src.target import Target
BASE = [
'//src/base/command_line.cc',
'//src/base/environment.cc',
'//src/base/files/file.cc',
'//src/base/files/file_enumerator.cc',
'//src/base/files/file_path.cc',
'//src/base/files/file_path_constants.cc',
'//src/base/files/file_util.cc',
'//src/base/files/scoped_file.cc',
'//src/base/files/scoped_temp_dir.cc',
'//src/base/json/json_parser.cc',
'//src/base/json/json_reader.cc',
'//src/base/json/json_writer.cc',
'//src/base/json/string_escape.cc',
'//src/base/logging.cc',
'//src/base/md5.cc',
'//src/base/memory/ref_counted.cc',
'//src/base/memory/weak_ptr.cc',
'//src/base/sha1.cc',
'//src/base/strings/string_number_conversions.cc',
'//src/base/strings/string_split.cc',
'//src/base/strings/string_util.cc',
'//src/base/strings/string_util_constants.cc',
'//src/base/strings/stringprintf.cc',
'//src/base/strings/utf_string_conversion_utils.cc',
'//src/base/strings/utf_string_conversions.cc',
# '//src/base/third_party/icu/icu_utf.cc',
'//src/base/timer/elapsed_timer.cc',
'//src/base/value_iterators.cc',
'//src/base/values.cc',
]
GN_LIB = [
'//src/gn/action_target_generator.cc',
'//src/gn/action_values.cc',
'//src/gn/analyzer.cc',
'//src/gn/args.cc',
'//src/gn/binary_target_generator.cc',
'//src/gn/build_settings.cc',
'//src/gn/builder.cc',
'//src/gn/builder_record.cc',
'//src/gn/builtin_tool.cc',
'//src/gn/bundle_data.cc',
'//src/gn/bundle_data_target_generator.cc',
'//src/gn/bundle_file_rule.cc',
'//src/gn/c_include_iterator.cc',
'//src/gn/c_substitution_type.cc',
'//src/gn/c_tool.cc',
'//src/gn/command_analyze.cc',
'//src/gn/command_args.cc',
'//src/gn/command_check.cc',
'//src/gn/command_clean.cc',
'//src/gn/command_clean_stale.cc',
'//src/gn/command_desc.cc',
'//src/gn/command_format.cc',
'//src/gn/command_gen.cc',
'//src/gn/command_help.cc',
'//src/gn/command_ls.cc',
'//src/gn/command_meta.cc',
'//src/gn/command_outputs.cc',
'//src/gn/command_path.cc',
'//src/gn/command_refs.cc',
'//src/gn/commands.cc',
'//src/gn/compile_commands_writer.cc',
'//src/gn/rust_project_writer.cc',
'//src/gn/config.cc',
'//src/gn/config_values.cc',
'//src/gn/config_values_extractors.cc',
'//src/gn/config_values_generator.cc',
'//src/gn/copy_target_generator.cc',
'//src/gn/create_bundle_target_generator.cc',
'//src/gn/deps_iterator.cc',
'//src/gn/desc_builder.cc',
'//src/gn/eclipse_writer.cc',
'//src/gn/err.cc',
'//src/gn/escape.cc',
'//src/gn/exec_process.cc',
'//src/gn/filesystem_utils.cc',
'//src/gn/file_writer.cc',
'//src/gn/frameworks_utils.cc',
'//src/gn/function_exec_script.cc',
'//src/gn/function_filter.cc',
'//src/gn/function_foreach.cc',
'//src/gn/function_forward_variables_from.cc',
'//src/gn/function_get_label_info.cc',
'//src/gn/function_get_path_info.cc',
'//src/gn/function_get_target_outputs.cc',
'//src/gn/function_process_file_template.cc',
'//src/gn/function_read_file.cc',
'//src/gn/function_rebase_path.cc',
'//src/gn/function_set_default_toolchain.cc',
'//src/gn/function_set_defaults.cc',
'//src/gn/function_template.cc',
'//src/gn/function_toolchain.cc',
'//src/gn/function_write_file.cc',
'//src/gn/functions.cc',
'//src/gn/functions_target.cc',
'//src/gn/general_tool.cc',
'//src/gn/generated_file_target_generator.cc',
'//src/gn/group_target_generator.cc',
'//src/gn/header_checker.cc',
'//src/gn/import_manager.cc',
'//src/gn/inherited_libraries.cc',
'//src/gn/input_conversion.cc',
'//src/gn/input_file.cc',
'//src/gn/input_file_manager.cc',
'//src/gn/item.cc',
'//src/gn/json_project_writer.cc',
'//src/gn/label.cc',
'//src/gn/label_pattern.cc',
'//src/gn/lib_file.cc',
'//src/gn/loader.cc',
'//src/gn/location.cc',
'//src/gn/metadata.cc',
'//src/gn/metadata_walk.cc',
'//src/gn/ninja_action_target_writer.cc',
'//src/gn/ninja_binary_target_writer.cc',
'//src/gn/ninja_build_writer.cc',
'//src/gn/ninja_bundle_data_target_writer.cc',
'//src/gn/ninja_c_binary_target_writer.cc',
'//src/gn/ninja_copy_target_writer.cc',
'//src/gn/ninja_create_bundle_target_writer.cc',
'//src/gn/ninja_generated_file_target_writer.cc',
'//src/gn/ninja_group_target_writer.cc',
'//src/gn/ninja_rust_binary_target_writer.cc',
'//src/gn/ninja_target_command_util.cc',
'//src/gn/ninja_target_writer.cc',
'//src/gn/ninja_toolchain_writer.cc',
'//src/gn/ninja_tools.cc',
'//src/gn/ninja_utils.cc',
'//src/gn/ninja_writer.cc',
'//src/gn/operators.cc',
'//src/gn/output_conversion.cc',
'//src/gn/output_file.cc',
'//src/gn/parse_node_value_adapter.cc',
'//src/gn/parse_tree.cc',
'//src/gn/parser.cc',
'//src/gn/path_output.cc',
'//src/gn/pattern.cc',
'//src/gn/pool.cc',
'//src/gn/qt_creator_writer.cc',
'//src/gn/runtime_deps.cc',
'//src/gn/rust_substitution_type.cc',
'//src/gn/rust_tool.cc',
'//src/gn/rust_values.cc',
'//src/gn/rust_values_generator.cc',
'//src/gn/rust_variables.cc',
'//src/gn/scheduler.cc',
'//src/gn/scope.cc',
'//src/gn/scope_per_file_provider.cc',
'//src/gn/settings.cc',
'//src/gn/setup.cc',
'//src/gn/source_dir.cc',
'//src/gn/source_file.cc',
'//src/gn/standard_out.cc',
'//src/gn/string_atom.cc',
'//src/gn/string_output_buffer.cc',
'//src/gn/string_utils.cc',
'//src/gn/substitution_list.cc',
'//src/gn/substitution_pattern.cc',
'//src/gn/substitution_type.cc',
'//src/gn/substitution_writer.cc',
'//src/gn/swift_values.cc',
'//src/gn/swift_values_generator.cc',
'//src/gn/swift_variables.cc',
'//src/gn/switches.cc',
'//src/gn/target.cc',
'//src/gn/target_generator.cc',
'//src/gn/template.cc',
'//src/gn/token.cc',
'//src/gn/tokenizer.cc',
'//src/gn/tool.cc',
'//src/gn/toolchain.cc',
'//src/gn/trace.cc',
'//src/gn/value.cc',
'//src/gn/value_extractors.cc',
'//src/gn/variables.cc',
'//src/gn/version.cc',
'//src/gn/visibility.cc',
'//src/gn/visual_studio_utils.cc',
'//src/gn/visual_studio_writer.cc',
'//src/gn/xcode_object.cc',
'//src/gn/xcode_writer.cc',
'//src/gn/xml_element_writer.cc',
'//src/util/atomic_write.cc',
'//src/util/exe_path.cc',
'//src/util/msg_loop.cc',
'//src/util/semaphore.cc',
'//src/util/sys_info.cc',
'//src/util/ticks.cc',
'//src/util/worker_pool.cc',
]
SOURCES = [
'//src/gn/gn_main.cc',
]
SOURCES += BASE
SOURCES += GN_LIB
DEFINES = []
LIBS = []
if sys.platform == 'win32':
SOURCES += [
'//src/base/files/file_enumerator_win.cc',
'//src/base/files/file_util_win.cc',
'//src/base/files/file_win.cc',
'//src/base/win/registry.cc',
'//src/base/win/scoped_handle.cc',
'//src/base/win/scoped_process_information.cc',
]
DEFINES += ['UNICODE']
LIBS += ['src/libws2_32.a', 'src/libshlwapi.a']
else:
SOURCES += [
'//src/base/files/file_enumerator_posix.cc',
'//src/base/files/file_posix.cc',
'//src/base/files/file_util_posix.cc',
'//src/base/posix/file_descriptor_shuffle.cc',
'//src/base/posix/safe_strerror.cc',
]
LIBS += ['pthread']
class GN(Target):
def __init__(self, src_dir: str, out_dir: str):
super().__init__('gn', src_dir, SOURCES, ['//src'], DEFINES, ['-O3'], LIBS)
super().build(out_dir)
def build_targets(root_dir: str, target: str):
out_dir = root_dir + '/out'
src_dir = root_dir
GN(src_dir, out_dir)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/doublebyte/gn.git
git@gitee.com:doublebyte/gn.git
doublebyte
gn
gn
master

搜索帮助