我們昨天已經親手給自己的函式庫寫了第一個 vcpkg port。
接下來我們延伸一下 port,介紹一個不可或缺功能的:vcpkg features。
買車子時除了車子本體以外,還可以升級音響,升級氣囊,有各種選配選項。編譯函式庫套件時,也會有各種選項,像是著名的壓縮函式庫 libarchive,支援了各種不同的壓縮演算法,但是演算法越多,函式庫就越肥,如果根本用不到某種演算法,能不能在編譯時做客製化剔除掉呢?
這種選配、客製化的功能,在 vcpkg 裡面就叫做 feature。
剛剛提到的 libarchive 開放出來的可客製化的選項就有:bzip2, lz4, lzma, zstd 等等。
所以我們今天就來學習要怎麼在自己的 port 裡面添加 features
今天的目標:
vcpkg.json 宣告 featureportfile.cmake 可以依照 feature 改變建置