簡體   English   中英

兩個子項目 A 和 B,A 依賴於 B 並檢查 B 中存在的功能

[英]Two subprojects A and B, A depends on B and checks for features present in B

我試圖創建一個CMake的項目,集成了2個子項目,特別是牡丹rnpgp rnpgp 的構建系統是基於 CMake 的,botan 使用 Python 配置腳本生成 Makefile。 問題是在 CMake 運行期間 rnpgp 檢查 botan 中的功能,因此它需要一個編譯的 botan 庫。 但是,在我實際調用make ,botan 不會構建,我不能這樣做,因為 rnpgp 無法配置,因為 botan 尚未構建。

在 CMake 中指定這種依賴項的正確方法是什么?

您可以使用 CMake 的execute_process()來運行 botan Python 腳本並在 CMake 配置階段運行make 這樣,在運行 mpgp CMake 時,botan 庫將被構建並可供參考:

# Run the Python script to configure the botan Makefile.
execute_process(COMMAND
    python ${CMAKE_SOURCE_DIR}/botan/configure.py
    WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
)
# Run 'make' from the botan directory where the 'Makefile' was created.
execute_process(COMMAND
    make
    WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/botan/build"
)

這是它可能是什么樣子的粗略示例。 您可能需要稍微修改路徑以匹配系統上有 botan 的位置以及 botan 生成其構建工件的位置(即 Makefile 的位置)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM