- 主题:怎么在团队中共享vcpkg?
网上看了一圈,要么就是dev机器上单机安装,要么就是干脆把整个vcpkg塞到submodule里,一个project维护全套库。
有没有办法在一台机器上安装vcpkg,维护库,然后共享给整个团队用的办法?
如果我弄个build server,然后build server上安装vcpkg再维护库,然后把vcpkg的目录共享出来。这样CI从本机调用,其他dev在vs studio里,通过网络调用vcpkg,这样可行么?
团队用vs studio太多年,没法切换cmake
--
FROM 115.193.185.*
仔细看了下vcpkg,原来是走linux的套路,都是绿色安装,原来还以为integrate install动了什么注册表的东西。还有一个问题是,如果需要在编译的时候加flag,是不是要改动portfile.cmake,然后每次pull下来再给cmake打patch?就是不知道cmake文件每次变化大不大
--
FROM 115.205.236.*
我看那个portfile.cmake里负责编译的那句vcpkg_cmake_configure里好像可以添加macro,但是我现在的情况是需要全局添加c++20和avx512的flag,查了一圈,两个办法
1. 要么每个port都手工改,但是每次git pull以后还要在重新全部更新一次
2. 要么让我自己写一个triplet,或者toolchain文件,但是我发现很多传上去的port都是个人维护的,具体portfile里会指定c++17或者c++14,只有打开看了文件才知道,那到最后我还得一个个文件去看
另外,cmake本身也真的是一团糟,那个cache里的变量,是不是只是类似系统初始值,具体是多少可能会被port重新设。
折腾了这么多天,感觉还不如现在的方式,就是每个库自己写一个python的脚本,需要什么flag,怎么build,怎么install直接写死,每次更新跑一次就行
【 在 z16166 的大作中提到: 】
: 需要修改源代码或者编译选项的库,都要用custom port吧
: vcpkg安装好的都在installed那个目录下,我这边有人每次把这个目录复制到代码repo里,直接用里面的.h和.lib
:
--
FROM 60.191.0.*
但是有些库就是必须要指定用高版本编,比如absl,vcpkg上默认那个就是用的是absl::string_view,要用std::string_view必须指定c++标准,另外我看absl里还自己打了patch,但是它 comment里说的问题,我自己cmake指定c++20编的时候就一点问题都没有,我感觉还是不要打它那个patch好。
--
FROM 60.191.0.*