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

相关文章

hdu2544(单源最短路径)

模板题: //题意:求1到n的最短路径,模板题#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#i

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

【408DS算法题】039进阶-判断图中路径是否存在

Index 题目分析实现总结 题目 对于给定的图G,设计函数实现判断G中是否含有从start结点到stop结点的路径。 分析实现 对于图的路径的存在性判断,有两种做法:(本文的实现均基于邻接矩阵存储方式的图) 1.图的BFS BFS的思路相对比较直观——从起始结点出发进行层次遍历,遍历过程中遇到结点i就表示存在路径start->i,故只需判断每个结点i是否就是stop

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

图的最短路径算法——《啊哈!算法》

图的实现方式 邻接矩阵法 int[][] map;// 图的邻接矩阵存储法map = new int[5][5];map[0] = new int[] {0, 1, 2, 3, 4};map[1] = new int[] {1, 0, 2, 6, 4};map[2] = new int[] {2, 999, 0, 3, 999};map[3] = new int[] {3, 7

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

Python脚本:对文件进行批量重命名

字符替换:批量对文件名中指定字符进行替换添加前缀:批量向原文件名添加前缀添加后缀:批量向原文件名添加后缀 import osdef Rename_CharReplace():#对文件名中某字符进行替换(已完结)re_dir = os.getcwd()re_list = os.listdir(re_dir)original_char = input('请输入你要替换的字符:')replace_ch

Python脚本:批量解压RAR文件

所需模块: os.getcwd() #获取脚本文件路径os.system() #执行系统命令 import os#source_dir = input("Please input in source_dir:")#unzip_dir = input("Please input in unzip_dir:") source_dir = os.

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD