vcpkg子包路径批量获取

2024-09-08 14:04

本文主要是介绍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)

这篇关于vcpkg子包路径批量获取的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1148312

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统