2
我正在從CMake過渡到Bazel的項目。我們顯然在討價還價中喪失的一個關鍵特徵是安裝該項目的能力,以便其可以被其他(不一定是Bazel)項目使用。如何安裝使用bazel構建的項目?
AFAICT,目前沒有內置的支持安裝項目?!
我需要創建一個便攜式(至少在Linux和MacOS上工作)的方式來安裝該項目。特別是:
- 我需要能夠指定需要安裝的庫,頭文件,可執行文件和其他文件(例如
LICENSE
)。 - 用戶需要能夠指定一個絕對前綴應該安裝的東西。
- 我真的,真的應該能夠執行「安裝」步驟不止一次,給予不同的前綴,每次,沒有巴澤勒感到困惑(即:不能嘗試「記住」哪些文件已安裝,或如果是這樣,必須瞭解何時前綴與上次不同)。
- 庫應該安裝在正確的位置(例如
lib64
),或者至少應該可以讓用戶指定正確的libdir。 - 安裝步驟禁止觸摸先前安裝中未更改的任何文件的時間戳。 (理想情況下,巴澤爾本身會處理這一點;使用
install
命令是棘手的,有潛力的便攜性問題,注意平臺的要求,上面。)
什麼是去這樣做的最佳方式?
雖然我在回答這個問題後遇到了一些麻煩,但回過頭來看,這基本上是我最終做的。看到[我的PR](https://github.com/RobotLocomotion/drake/pull/6072)爲我結束了。 (但也請檢查進一步的更改,因爲我發現迄今爲止至少有一個錯誤...) 我的「可執行文件」是一個Python腳本,我通過模板生成了一個Python腳本,其中注入了安裝操作。 – Matthew