2011-08-17 22 views
7

CMake ile kodumu bir çözüm içinde düzenlemeyle ilgili bir sorun yaşıyorum. Her biri için bir dizin oluşturarak ad alanımı organize etme alışkanlığım var.Dosyalarımı CMake kullanarak nasıl düzenlerim?

namespace test { namespace blabla { ... } } 

Bir dizin testi yaratacak ve bunun içinde bir dizin blabla Ancak CKağıt onları benim Görsel stüdyo veya Xcode projesinde görünmesini yapmaz: Örneğin Böyle bir şey oluşturursanız.

Bunu yapmak için bir numara var mı?

+0

Projenizde neler görmek istersiniz? dosyalar? klasörler? – Philipp

+0

İçindeki klasörler ve dosyalar. – lollancf37

+0

ve (nasıl) eklemeye çalıştınız? – Philipp

cevap

11

source_group komutunu kullanmayı deneyin. add_executable çağrısının ardından istediğiniz gibi Visual Studio için .: Projenizi yapılandırmaya

source_group("test\\blabla" FILES file1.cpp file2.cpp) 
+0

Bu hile yapmak gibi görünüyor! Teşekkür ederim. Ancak ben sadece "blabla" klasörünü alıyorum ve blabla ile bir "test" klasörü değil. Herhangi bir fikir ? – lollancf37

+0

İç içe kaynak grupları (ters eğik çizgileri kullanarak) CMake 2.8.5 ve Visual Studio 2008 Pro ile birlikte çalışır. – sakra

+0

Henüz Xcode'ta test etmedim. Seni haberdar ederim. Tekrar teşekkürler ! – lollancf37

2

örneğin source_group ifadeleri ekleyin: Tüm dosya adlarının benzersiz olduğundan emin olun. dir/file.cpp derlemesinin sonucu obj/file.obj olacaktır. Derleyici otherdir/file.cpp'u derlediğinde sonuç obj/file.obj olur - önceki nesne dosyası 'un üzerine yazılır. Bu VS 2008 ve önceki sürümlerinde olduğu ve bunu hala ben de kaynak kodunu yapmanız şekilde düzenlemek VS 2010

durum şüpheli. Aşağıdaki adlandırma şemasını kullanarak bitti: Kaynak dosyaya yol Dir/Subdir/AnotherSubDir/File.cpp olur, ben Dir/Subdir/AnotherSubdir/DirSubdirAnotherSubdirFile.cpp dosya adı. Çirkin? Evet. Ancak, bağlantı kurmayacak bir projeyi yener ve dosya adının ne olması gerektiğini anlamak kolaydır. Sanırım dosyada bir sıra numarası ekleyebilirsin, ama bunun daha çirkin olabileceğini düşündüm. Ayrıca, dosya adını benzersiz hale getirmeyi unutursanız, hata, tüm açık noktaların görünmesi için geçerli değildir. Özellikle yorgunuz ve nişanlın/Karın CMake bu şekilde kullanabilirsiniz VS projeleri gruplandırma için ...

+0

Söylediklerinize ulaşıyorum ama bu problemi çözmedim ama büyük ihtimalle gerçekleşeceğinden bunu aklımda tutacağım. Teşekkürler – lollancf37

+0

Biraz konu dışı olduğum için üzgünüm, ama sana bir kafa vermeliyim. Şerefe! –

4

bekliyor (ver sonra 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) 
+0

Küçük kenar notu: Visual Studio Express, USE_FOLDERS ilk etapta ayarlanması gereken klasörleri desteklemiyor – Infinite

-2

kabul çözüm Xcode 6. itibariyle Xcode için çalışmıyor Ancak, basit bir çözümü vardır:

  1. (daha sonra "başvuru Kaldır" almak, kenar çubuğunda silin) ​​Xcode projesine kaynak dosyalara referanslar silin.
  2. , geri kök klasörü (ler) ekleyin işaretli olduğundan emin olun "Grup Oluştur" ve istenen hedef (ler) i seçin.

Tada! Artık dosyalarınız Finder'daki klasör yapısına uygun olmalıdır.