2009-10-20 15 views
8

Oluşturma işlemimi cmake ile otomatikleştirmeye çalışıyorum. Şu anda yalnızca bir sorun var:cmake: Kopyalama için bir komut dosyası nasıl yapılır Programıma eşlik eden veri dosyaları

Nerede, cmake'ın felsefesinde (eğer varsa), veri dosyalarının kopyalanmasını koymak için en iyi yer .

Bir kitaplığım ve birkaç örneğim var. Örnekler veriye ihtiyaç duyar.

Şu anda aşağıdakileri yapın:

Ben post-build adımda CMAKE_CURRENT_BINARY_DIR içine tüm verileri kopyalamak için her Örnekteki CMakeLists.txt özel bir komutunu kullanın. Bunu hata ayıklama iş akışımda kullanıyorum, bu nedenle henüz yükleme hedefi yürütülmedi.

Bu oldukça iyi çalışıyor, ancak bazı dezavantajları vardır:

  1. kopyalama her proje inşa edilmiştir oluşur. VS 2005 ile bu bazen yeni inşa edilmemiş olsa bile ortaya çıkar. Veri klasörleri büyük olduğundan, kopyalama zaman alır ve biraz can sıkıcı olur.
  2. Bunun çok sakıncalı bir yol olduğuna eminim.

ben çalıştırılabilir yollara o dizinlere kopyalamak istiyorum, bu yüzden nasıl cmake yapılandırma olacağını bu dizinleri kopyalamak için hata ayıklama çalışma dizinini

mükemmel saatini ayarlamak için ipuçları gerekmez/oluşturma saatine En azından öyle düşünüyorum. Bunu yapmalı mıyım, bunu nasıl yaparım?

cevap

12

geçenlerde this question görüldüğü gibi, inşa dizinine dosya kopyalamak için configure_file kullanabilirsiniz:

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/input.txt 
    ${CMAKE_CURRENT_BINARY_DIR}/output.txt COPYONLY) 

yapı anda kez yapar ve sadece gerektiğinde bu.

+2

Teşekkürler! Bu sorunun çok az cevabı olduğuna şaşırdım. CMake şu anda yaygın olarak kullanılmaktadır, ancak hala belgelenmiştir. Çok az insan cmake gerçekten grok gibi görünüyor. – AndreasT

+2

'cmake --help-full' FTW! :-) – richq

İlgili konular