Files
allwpilib/upstream_utils/glfw.py

80 lines
1.6 KiB
Python
Executable File

#!/usr/bin/env python3
import os
import shutil
from upstream_utils import (
walk_cwd_and_copy_if,
Lib,
)
def matches(dp, f, allowed_files):
path = os.path.join(dp, f)
return path in allowed_files
def walk_and_copy_if_matches(allowed_files, output_directory):
walk_cwd_and_copy_if(
lambda dp, f: matches(dp, f, allowed_files),
output_directory,
)
def copy_upstream_src(wpilib_root):
glfw = os.path.join(wpilib_root, "thirdparty", "imgui_suite", "glfw")
# Delete old install
for d in ["include", "src", "CMake"]:
shutil.rmtree(os.path.join(glfw, d), ignore_errors=True)
hdr_allow_list = [
"./include/GLFW/glfw3.h",
"./include/GLFW/glfw3native.h",
]
walk_and_copy_if_matches(hdr_allow_list, glfw)
def src_filter(dp, f):
if f.endswith("CMakeLists.txt"):
return False
if dp.startswith(os.path.join(".", "src")):
return True
return False
src_files = walk_cwd_and_copy_if(
src_filter,
os.path.join(glfw),
)
def cmake_filter(dp, f):
if dp.startswith(os.path.join(".", "CMake")):
return True
path = os.path.join(dp, f)
if path in ["./src/CMakeLists.txt", "./CMakeLists.txt"]:
return True
return False
# Copy CMAKE files
walk_cwd_and_copy_if(
cmake_filter,
os.path.join(glfw),
)
def main():
name = "glfw"
url = "https://github.com/glfw/glfw.git"
tag = "6b57e08bb0078c9834889eab871bac2368198c15"
glfw = Lib(name, url, tag, copy_upstream_src)
glfw.main()
if __name__ == "__main__":
main()