2013-08-08 22 views
19

Şu anda C++ REST SDK (kod adı Casablanca), Qt5 ve diğer bazı kütüphaneleri kullanarak bir masaüstü uygulaması geliştiriyorum.CMake ve MsVS-NuGet

Proje kurulumu için CMake kullanıyorum.

CMake, NuGet Paketlerini nasıl yükleyebilir?

CMake'i yeniden çalıştırıyorsam, her seferinde manuel olarak yüklemem gerekiyor, ki bu gerçekten bir seçenek değil.

+2

Bu, iş için yanlış bir araç kullandığınızdan şüpheleniyor olsa da, bu harika bir sorudur. Eğer pencereye özgü iseniz, CMake kullanmanın bir anlamı yoktur. CMake kullanmanın tek nedeni, mutli-platform olmaktır, fakat NuGet paketlerini fazla kullanamazsınız. Elbette çoğunun çok platformlu olduğu bir projeyi hayal edebiliyorum, ancak NuGet paketlerine ihtiyaç duyan pencereye özgü bir bileşeni var ve bu soru mükemmel bir anlam ifade ediyor. –

+1

Ancak, sorunun Stack Overflow'a gönderilmesi gerektiğini düşünüyorum. –

+0

@JanHudec a) Evet bunu biliyorum, ancak CMake üzerinden proje kurulumu Qt gibi kütüphaneleri kullanırken en kolay tanıdığım. b) nasıl? StackOverflow için bu biraz özel değil mi? –

cevap

15

Nuget komut satırı başvurusu Sen nuget install veya nuget restore komutunu kullanarak paketleri yükleyebilirsiniz http://docs.nuget.org/docs/reference/command-line-reference

bulunmaktadır. nuget update yüklenen paketleri güncelleştirir (restore mutlaka çalıştırılmalıdır).

Sen kullanarak her yapı önce Nuget çalıştırmak için cmake talimat verebilirsiniz:

add_custom_command(TARGET ${PROJECT_NAME} 
    PRE_BUILD 
    COMMAND nuget restore ${CMAKE_BINARY_DIR}\yourSolution.sln 
) 

veya yapılandırmak anda

execute_process kullanarak.

configure_file nuget yapılandırma dosyasını hazırlayabilir veya uygun nuget install komutlarını doğrudan kullanabilirsiniz.

+0

Ben cmake nugets çözüm eklemek için istekli olacağını düşünmüyorum, bu yüzden ayrı bir yapılandırma dosyası veya açık 'install' muhtemelen gereklidir. Yükleme sırasında kurulum işlemini de yürüteceğim ("execute_process" aracılığıyla).Bu biraz daha basit ve IDE zaten başladığı zaman paketleri görecek. –

+0

bunu test etmek isterim, projeyi zaten bir yıl önce kapattığımı söylemeliyim ... (ayrıca nuget ile ilgili kütüphaneyi kullanmamaya karar verdim) –

+0

birisi cevabı düzenleyebilir ve oneliner yazabilir mi? – Sergei