CMake

2014-04-07 34 views
5

ile yeniden dağıtılabilir bir proje üretin CMake, proje yapılandırma sistemi ve gcc-4.8/VS2012 ve ayrıca Qt5 gibi üçüncü parti kütüphaneleri olarak Windows ve Linux için yeniden dağıtılabilir bir proje oluşturmak için arıyorum. Gerekli tüm bağımlılıkları olan bir paketi nasıl oluşturabilirim ve bu makineleri gerekli paketleri (yani Qt5 kurulumu) kurmadan projeyi diğer makinelerde çalıştırabilir miyim?CMake

DÜZENLEME

i Qt5 buldum ağır Googling bazı dosyaları gerektirir ve ben gerekli Qt5 bağımlılıklarını açıklayan bu tartışmayı Application deployed with QT5 libraries does not start on Windows 7

buldum.

+2

Pencerelerde CMake tabanlı projelerimle CMakeLists.txt komut dosyalarımda yapıyorum. Demek istediğim, doğru şekilde yeniden dağıtılabilir microsoft demetleri içeren bir betiğe sahibim ve ayrıca her bağımlı dll'nin listesini toplayan cmake betikleri var. Bu listeyle bunları, bir nsis yükleyicisi oluşturan cpu ayarlarımdaki bileşenlere ekliyorum. Bu CMake ile komut dosyaları yazma ihtiyacı olmadan sizin için bazılarını yapabileceğiniz bir bundleutilities modülü var. Scriptleri yıllar önce geliştirdiğimden beri onu olduğu gibi bırakıyorum .. – drescherjm

+0

@drescherjm: Bu betiği paylaşır mısınız? – madduci

+0

Ne yapabileceğimi göreceğim. Komut dosyaları, iyi tanımlanmayan birkaç makro içerir, bu yüzden bunu belgelemeliyim. – drescherjm

cevap

1

Normalde, istediğiniz dosyaları listelemek için install ve bunları paketlemek için CPack kullanırdım.

  • my_nifty_library.dll
  • my_nifty_executable.exe
  • QtCore.dll
  • QtGUI.dll

(Destek: Yani, ben şu bileşenlerden oluşan paketi oluşturmak istiyorum varsayalım değilim Qt uzmanı bu yüzden son iki dosya hiç mevcut olmayabilir, ama sizde fikir edinirsiniz.)

Qt sizin projenin bir parçası olarak inşa edilmeyecektir çünkü ben önermek, Şimdi

install(TARGETS my_nifty_library my_nifty_executable 
     RUNTIME DESTINATION bin 
     LIBRARY DESTINATION lib 
     ARCHIVE DESTINATION lib) 

:

my_nifty_library ve my_nifty_executable hem projenin parçası olduğunu göz önüne alındığında, bu yüzden sadece aşağıdakileri yapın bunlar üzerinde kontrol sağlayamadığını ExternalProject modülünü kullanırsınız.

Artık, CPack'u kullanabilir ve bir NSIS yükleyicisi veya tar.gz yüklü dosyalar arasında oluşturabilirsiniz.