mirror of
https://github.com/openharmony/third_party_re2.git
synced 2026-07-01 09:20:39 -04:00
720274a4cd
Signed-off-by:ganchuantao1<ganchuantao1@huawei.com> Signed-off-by: ganchuantao1 <ganchuantao1@huawei.com>
99 lines
2.3 KiB
Python
99 lines
2.3 KiB
Python
# Copyright 2019 The RE2 Authors. All Rights Reserved.
|
|
# Use of this source code is governed by a BSD-style
|
|
# license that can be found in the LICENSE file.
|
|
|
|
import os
|
|
import shutil
|
|
import sys
|
|
import sysconfig
|
|
|
|
|
|
def generate():
|
|
include = sysconfig.get_path('include')
|
|
libs = os.path.join(include, '../libs')
|
|
|
|
mydir = os.path.dirname(sys.argv[0]) or '.'
|
|
shutil.copytree(include, f'{mydir}/include')
|
|
try:
|
|
shutil.copytree(libs, f'{mydir}/libs')
|
|
except FileNotFoundError:
|
|
# We must not be running on Windows. :)
|
|
pass
|
|
|
|
with open(f'{mydir}/BUILD.bazel', 'x') as file:
|
|
file.write(
|
|
"""\
|
|
load("@rules_python//python/cc:py_cc_toolchain.bzl", "py_cc_toolchain")
|
|
load("@rules_python//python:py_runtime.bzl", "py_runtime")
|
|
load("@rules_python//python:py_runtime_pair.bzl", "py_runtime_pair")
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
toolchain(
|
|
name = "py",
|
|
toolchain = ":py_toolchain",
|
|
toolchain_type = "@rules_python//python:toolchain_type",
|
|
)
|
|
|
|
py_runtime_pair(
|
|
name = "py_toolchain",
|
|
py3_runtime = ":interpreter",
|
|
)
|
|
|
|
py_runtime(
|
|
name = "interpreter",
|
|
interpreter_path = "{interpreter_path}",
|
|
interpreter_version_info = {{
|
|
"major": "{major}",
|
|
"minor": "{minor}",
|
|
}},
|
|
python_version = "PY3",
|
|
)
|
|
|
|
toolchain(
|
|
name = "py_cc",
|
|
toolchain = ":py_cc_toolchain",
|
|
toolchain_type = "@rules_python//python/cc:toolchain_type",
|
|
)
|
|
|
|
py_cc_toolchain(
|
|
name = "py_cc_toolchain",
|
|
headers = ":headers",
|
|
libs = ":libraries",
|
|
python_version = "{major}.{minor}",
|
|
)
|
|
|
|
cc_library(
|
|
name = "headers",
|
|
hdrs = glob(["include/**/*.h"]),
|
|
includes = ["include"],
|
|
deps = select({{
|
|
"@platforms//os:windows": [":interface_library"],
|
|
"//conditions:default": [],
|
|
}}),
|
|
)
|
|
|
|
cc_import(
|
|
name = "interface_library",
|
|
interface_library = select({{
|
|
"@platforms//os:windows": "libs/python{major}{minor}.lib",
|
|
"//conditions:default": None,
|
|
}}),
|
|
system_provided = True,
|
|
)
|
|
|
|
# Not actually necessary for our purposes. :)
|
|
cc_library(
|
|
name = "libraries",
|
|
)
|
|
""".format(
|
|
interpreter_path=sys.executable.replace('\\', '/'),
|
|
major=sys.version_info.major,
|
|
minor=sys.version_info.minor,
|
|
)
|
|
)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
generate()
|