如何为正在构建的每个端口添加编译器选项?

How to add a compiler option to every port being built?

有没有办法为正在构建的每个 vcpkg 端口添加编译器选项?

特别是我需要在我的 Linux vcpkg 实例中使用 -fdata-section -ffunction-section -flto 编译每个端口。

感谢 "isanych"(参见 this):

您可以在自定义三元组文件中使用 VCPKG_C_FLAGS* VCPKG_CXX_FLAGS* VCPKG_LINKER_FLAGS* 变量。下面是我如何在 linux:

上执行 lto
set(VCPKG_CXX_FLAGS_RELEASE -flto)
set(VCPKG_C_FLAGS_RELEASE -flto)
set(VCPKG_LINKER_FLAGS_RELEASE -flto)

以及 windows:

set(VCPKG_CXX_FLAGS_RELEASE "/GL /Gw /GS-")
set(VCPKG_C_FLAGS_RELEASE "/GL /Gw /GS-")
set(VCPKG_LINKER_FLAGS_RELEASE "/OPT:ICF=3 /LTCG")

存在问题 #7159 with multiple flags in boost, with fix #7160

注意:截至目前 VCPKG_LINKER_FLAGS_RELEASE 并未在端口中广泛使用。