我正在學習/審查CMake,因爲我正在考慮將我們的代碼遷移到它。我們目前的make系統做了很多事情,就是「子項目」通用代碼文件。例如,我們有很多共享的通用頭文件(加上一些c/cpp文件),這些文件包含在我們創建的每個項目中。我想在CMake中複製這個,但我沒有看到一個簡單的方法。準確地說,我想要做的事,如:CMake:「subprojecting」文件的最佳方法
家長的CMakeLists.txt
add_subdirectory(shared_folder shared_build_folder)
#Next line should somehow add in the files reference in the shared_folder
add_executable([specific files for this project] build_folder)
兒童的CMakeLists.txt(shared_folder)
#Somehow have a list of files here that get added to the parent project
到目前爲止,我已經找到這樣做的各種「方法」,但都似乎有點hacky。我得出的結論是,這實際上是我必須做事情的方式,而CMake並不真正適應這種發展方式。爲了清楚起見,我的大多數解決方案都涉及到在父級別創建一個由文件列表組成的變量。這個變量(通過一些shenanigans)可以通過/從任何子項填充,然後當我調用add_exectuable時,我使用該變量來添加文件。
我所有的解決方案都涉及不少宏/函數,看起來相當多的開銷。這是別人試過的嗎?任何關於這樣做的最佳方法的線索?
感謝 安德魯