我在解決方案中對我的代碼的組織有一點問題。 我有一個習慣,通過爲每個目錄創建一個目錄來組織我的名字空間。 例如,如果我創造這樣的事情:如何使用CMake來組織我的文件?
namespace test { namespace blabla { ... } }
我會創建一個目錄測試和它裏面的目錄布拉布拉,但CMake的並不能讓他們出現在我的Visual Studio或Xcode項目。
有沒有一個把戲來完成它?
我在解決方案中對我的代碼的組織有一點問題。 我有一個習慣,通過爲每個目錄創建一個目錄來組織我的名字空間。 例如,如果我創造這樣的事情:如何使用CMake來組織我的文件?
namespace test { namespace blabla { ... } }
我會創建一個目錄測試和它裏面的目錄布拉布拉,但CMake的並不能讓他們出現在我的Visual Studio或Xcode項目。
有沒有一個把戲來完成它?
嘗試使用source_group命令。調用add_executable
後添加source_group
語句來構建你的項目,你想,例如:
source_group("test\\blabla" FILES file1.cpp file2.cpp)
對於Visual Studio:確保所有文件名都是唯一的。編譯dir/file.cpp
的結果將爲obj/file.obj
。當編譯器編譯otherdir/file.cpp
時,結果將爲obj/file.obj
- 之前的目標文件將被覆蓋。在VS 2008和更早版本中,情況就是這樣,我懷疑它在VS 2010中仍是這種情況。
我也按照您的方式組織源代碼。我最終使用了以下命名方案:如果源文件的路徑是Dir/Subdir/AnotherSubDir/File.cpp
,那麼我會將文件命名爲Dir/Subdir/AnotherSubdir/DirSubdirAnotherSubdirFile.cpp
。醜陋?是。但它擊敗了一個不會鏈接的項目,並且很容易找出文件名應該是什麼。我想你可以在文件上添加一個序列號,但我認爲它會更醜。另外,如果您忘記將文件名稱設置爲唯一,則錯誤不是顯而易見的。特別是當你累了,你的未婚夫/妻在等待......
對於分組在VS,你可以在使用的CMake這樣的項目(VER後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)
接受的解決方案不適合的Xcode工作爲Xcode中6.然而,有一個簡單的解決方法:
田田!現在你的文件應該與Finder中的文件夾結構相匹配。
你想在你的項目中出現什麼?文件?文件夾? – Philipp 2011-08-17 10:45:43
文件夾及其中的文件。 – lollancf37 2011-08-17 10:49:36
和(你)是否嘗試添加它們? – Philipp 2011-08-17 11:04:21