当前位置: 首页 > news >正文

vcpkg子包路径批量获取

获取vcpkg 子包的路径,并拼接为set(CMAKE_PREFIX_PATH “拼接路径” )


import osdef find_directories_with_subdirs(root_dir):# 构建根目录下的 "packages" 文件夹路径root_packages_dir = os.path.join(root_dir, "packages")# 如果 "packages" 目录不存在,则提前返回if not os.path.isdir(root_packages_dir):return# 初始化一个列表来存储所有匹配的目录路径matching_dirs = []# 定义要排除的目录名称集合exclude_dirs = {"detect_compiler_x64-windows", "vcpkg-cmake_x64-windows", "vcpkg-cmake-config_x64-windows"}# 定义要包含的子目录名称集合include_dirs = {"bin", "debug", "include", "lib"}# 遍历 "packages" 目录下的所有顶级条目for entry in os.listdir(root_packages_dir):# 构建每个顶级条目的完整路径entry_path = os.path.join(root_packages_dir, entry)# 如果当前条目是一个目录,并且不在排除列表中if os.path.isdir(entry_path) and entry not in exclude_dirs:# 将该顶级目录添加到匹配目录列表中matching_dirs.append(entry_path)# 遍历该顶级目录下的所有子目录for subentry in os.listdir(entry_path):# 构建子目录的完整路径subentry_path = os.path.join(entry_path, subentry)# 如果当前子目录存在,并且其名称在包含列表中if os.path.isdir(subentry_path) and subentry in include_dirs:# 将该子目录添加到匹配目录列表中matching_dirs.append(subentry_path)# 使用分号连接所有匹配的目录路径joined_paths = ';'.join(matching_dirs)# 按照 CMake 变量设置的格式输出结果print(f'set(CMAKE_PREFIX_PATH "{joined_paths}")')# 要开始遍历的根目录
root_directory = 'C:/Opensource/vcpkg-master'# 执行函数,找到包含所有指定子目录的目录并输出结果
find_directories_with_subdirs(root_directory)

http://www.mrgr.cn/news/22059.html

相关文章:

  • 新160个crackme - 051-Keygenning4newbies
  • 大量数据相似度加速计算
  • 【Spring基础1】- Spring 启示录-理解IoC控制反转
  • NX Unigraphics发展简史及下载
  • 使用ChatGPT润色论文的10大分步技巧,效果立竿见影
  • FreeRTOS内部机制学习02(消息队列深度学习)
  • RLVF:避免过度泛化地从口头反馈中学习
  • 如何打造高效办公楼物业管理系统?Java SpringBoot+Vue架构详解,实现智能化管理,提升工作效率
  • 解决虚拟机,指定的虚拟磁盘需要进行修复 打不开磁盘
  • Docker 的安装和使用
  • 串口通信协议(UART)
  • 一份热乎的数据分析(数仓)面试题 | 每天一点点,收获不止一点
  • 3280. 将日期转换为二进制表示
  • ROS - C++实现RosBag包录制
  • 【LeetCode热题100】前缀和
  • JVM 调优篇2 jvm的内存结构
  • 【Hot100】LeetCode—55. 跳跃游戏
  • 起点中文网防止网页调试的代码展示
  • 基于人工智能的手写数字识别系统
  • 【实习】C++方向面试经验3