#!/usr/bin/env python3 import os import shutil from pathlib import Path from upstream_utils import Lib, has_prefix, walk_cwd_and_copy_if EXCLUDED_FILES = [ "gtest_main.cc", "gtest-all.cc", "gmock_main.cc", "gmock-all.cc", "README.md", ] def copy_upstream_src(wpilib_root: Path): upstream_root = Path(".").absolute() third_party_root = wpilib_root / "thirdparty/googletest" # Delete old install for d in [ "include", "src", ]: shutil.rmtree(third_party_root / d, ignore_errors=True) walk_cwd_and_copy_if( lambda dp, f: has_prefix(dp, Path("googlemock/src")) and f not in EXCLUDED_FILES, third_party_root / "src", ) walk_cwd_and_copy_if( lambda dp, f: has_prefix(dp, Path("googletest/src")) and f not in EXCLUDED_FILES, third_party_root / "src", ) os.chdir(upstream_root / "googlemock/include") walk_cwd_and_copy_if( lambda dp, f: f not in EXCLUDED_FILES, third_party_root / "include", ) os.chdir(upstream_root / "googletest/include") walk_cwd_and_copy_if( lambda dp, f: f not in EXCLUDED_FILES, third_party_root / "include", ) def main(): name = "googletest" url = "https://github.com/google/googletest.git" # main on 2026-04-11 tag = "d72f9c8aea6817cdf1ca0ac10887f328de7f3da2" googletest = Lib(name, url, tag, copy_upstream_src) googletest.main() if __name__ == "__main__": main()