Re: [問題] cmake project管理3rd party library

看板C_and_CPP (C/C++)作者 (網路黑貓)時間4年前 (2020/12/30 10:08), 4年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《Mensholaten (REAL)》之銘言: : 目前在Linux環境下編寫 cmake project (corss compile) : 會用到的3rd party library是採用事先下載好source code和自己的code同時編譯 : 有點苦惱的地方是 不知道該如何用正規作法將library的路徑導入至自己的project : 目錄結構大概類似這樣 : root : --- my_src : --- third_party : --- aaa : --- libaaa : --- ccc : --- libccc : find_package只能用在預先安裝好的package 沒辦法用 配置階段就會fail : libaaa目錄為3rd party library的包含CMakeLists的原生資料夾 : 額外在創建aaa裡另外增加CMakeLists : 裡面設定library header/so的路徑為編譯資料夾(BINARY_SOURCE)的路徑 : 並且將這些變數設定為CACHE讓其他target include / link 時使用 : 雖然這樣做可以正確編譯 但其實是額外多動了一些手腳才達成 : 還是想知道有沒有更正確的作法? 假設已經知道如何編譯 3rd party library (有可能不是使用cmake) 可以先寫成 script (這裡假設為 build.sh) 對於 cmake 整合步驟有三: 1. 使用 add_custom_command 觸發 build.sh, add_custom_command 需有個 output 2. 使用 add_custom_target 建立 add_custom_command 的 output 的 target 3. 使用 add_dependencies 將 my_src 相依於該 target 如此編譯 my_src 前就會觸發 build script 將 library 編好 細節部份(像是 output 與 include path 設定請自行摸索) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.11.58 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1609294102.A.551.html ※ 編輯: ChampYen (180.217.11.58 臺灣), 12/30/2020 10:10:31
文章代碼(AID): #1Vw-4MLH (C_and_CPP)
文章代碼(AID): #1Vw-4MLH (C_and_CPP)