mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
80 lines
1.7 KiB
Python
Executable File
80 lines
1.7 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import shutil
|
|
|
|
from upstream_utils import (
|
|
walk_cwd_and_copy_if,
|
|
walk_if,
|
|
Lib,
|
|
)
|
|
|
|
EXCLUDED_FILES = [
|
|
"gtest_main.cc",
|
|
"gtest-all.cc",
|
|
"gmock_main.cc",
|
|
"gmock-all.cc",
|
|
"README.md",
|
|
]
|
|
|
|
|
|
def walk_and_remap_copy(third_party_root, include_prefix):
|
|
gmock_files = walk_if(
|
|
".", lambda dp, f: include_prefix in dp and f not in EXCLUDED_FILES
|
|
)
|
|
|
|
for f in gmock_files:
|
|
dst_file = os.path.join(
|
|
third_party_root, "include", f[len(include_prefix) + 1 :]
|
|
)
|
|
dest_dir = os.path.dirname(dst_file)
|
|
if not os.path.exists(dest_dir):
|
|
os.makedirs(dest_dir)
|
|
shutil.copyfile(f, dst_file)
|
|
|
|
|
|
def copy_upstream_src(wpilib_root):
|
|
third_party_root = os.path.join(wpilib_root, "thirdparty/googletest")
|
|
|
|
# Delete old install
|
|
for d in [
|
|
"include",
|
|
"src",
|
|
]:
|
|
shutil.rmtree(os.path.join(third_party_root, d), ignore_errors=True)
|
|
|
|
walk_cwd_and_copy_if(
|
|
lambda dp, f: "googlemock/src" in dp and f not in EXCLUDED_FILES,
|
|
os.path.join(third_party_root, "src"),
|
|
)
|
|
|
|
walk_cwd_and_copy_if(
|
|
lambda dp, f: "googletest/src" in dp and f not in EXCLUDED_FILES,
|
|
os.path.join(third_party_root, "src"),
|
|
)
|
|
|
|
walk_and_remap_copy(
|
|
third_party_root,
|
|
"./googlemock/include",
|
|
)
|
|
|
|
walk_and_remap_copy(
|
|
third_party_root,
|
|
"./googletest/include",
|
|
)
|
|
|
|
|
|
def main():
|
|
name = "googletest"
|
|
url = "https://github.com/google/googletest.git"
|
|
tag = "v1.14.0"
|
|
|
|
patch_list = []
|
|
|
|
googletest = Lib(name, url, tag, patch_list, copy_upstream_src)
|
|
googletest.main()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|