[英]How to organise my files using CMake?
CMake 在解決方案中的代碼組織方面存在一些問題。 我有一個習慣,通過為每個命名空間創建一個目錄來組織我的命名空間。 例如,如果我創建這樣的東西:
namespace test { namespace blabla { ... } }
我會創建一個目錄 test 並在其中創建一個目錄 blabla,但是 CMake 不會使它們出現在我的 Visual Studio 或 Xcode 項目中。
有什么訣竅可以完成嗎?
嘗試使用source_group命令。 在調用add_executable
添加source_group
語句以根據需要構建項目,例如:
source_group("test\\blabla" FILES file1.cpp file2.cpp)
對於 VS 中的項目分組,您可以在 CMake 中使用這種方式(2.8.3 之后的版本)
//turn on using solution folders
set_property( GLOBAL PROPERTY USE_FOLDERS ON)
//add test projects under 1 folder 'Test-projects'
FOREACH(TEST ${TESTS_LIST})
add_test(NAME ${TEST} COMMAND $<TARGET_FILE:${TEST}>)
set_tests_properties( ${TEST} PROPERTIES TIMEOUT 1)
set_property(TARGET ${TEST} PROPERTY FOLDER "Test-projects")
ENDFOREACH(TEST)
對於 Visual Studio:確保所有文件名都是唯一的。 編譯dir/file.cpp
的結果將是obj/file.obj
。 當編譯器編譯otherdir/file.cpp
時,結果將是obj/file.obj
- 之前的 object 文件將被覆蓋。 在 VS 2008 和更早的版本中就是這種情況,我懷疑在 VS 2010 中仍然是這種情況。
我也按照你的方式組織源代碼。 我最終使用了以下命名方案:如果源文件的路徑是Dir/Subdir/AnotherSubDir/File.cpp
,那么我將文件命名為Dir/Subdir/AnotherSubdir/DirSubdirAnotherSubdirFile.cpp
。 丑陋的? 是的。 但它勝過一個不會鏈接的項目,而且很容易弄清楚文件名應該是什么。 我想你可以只 append 文件上的序列號,但我認為它會更丑陋。 此外,如果您忘記使文件名唯一,則該錯誤並不那么明顯。 尤其是當你累了,而你的未婚夫/妻子正在等待時......
自 Xcode 6 起,接受的解決方案不適用於 Xcode。但是,有一個簡單的解決方法:
多田。 現在您的文件應該與 Finder 中的文件夾結構相匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.