簡體   English   中英

如何使用 CMake 組織我的文件?

[英]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。但是,有一個簡單的解決方法:

  1. 從 Xcode 項目中刪除對源文件的引用(在側欄中刪除它們,然后選擇“刪除引用”)。
  2. 重新添加根文件夾,確保選中“創建組”,並確保 select 是所需的目標。

多田。 現在您的文件應該與 Finder 中的文件夾結構相匹配。

暫無
暫無

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

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