Başka bir CMake projesine (tümleştirici) bağlı bir CMake projem var (myapp). Integrator projesi ExternalProject_Add aracılığıyla bildirildi ve ben, entegratör kodunun hangi sürümünün oluşturulacağını belirtmek için GIT_TAG parametresini kullanıyorum. Bu online çalışırken harika çalışıyor. Ancak, çevrimdışı olduğumda başarısızlık sorunlarıyla karşılaşıyorum. Repo'nun bir kopyasını daha önceden indirmiş olsa bile, git repo'ya ulaşamazsa, yapı her zaman başarısız olur. CMake'in GIT_TAG repo'ya ulaşmasını durdurabilir miyim ve sadece son çevrimiçi olduğumda daha önce indirmiş olduğu kodu kullanarak oluşturmayı başarabilir miyim?CMake yapı bağımlılık durumuna ulaşamazsa başarısız olur.
1
A
cevap
1
ExternalProject belgelerine dayanarak, UPDATE_DISCONNECTED
adlı bir seçenek vardır. UPDATE_DISCONNECTED
ayarlanır
ise ana hedef bina otomatik olarak güncelleme adım yürütülmez. Güncelleme adımı hala bir adım hedefi olarak eklenebilir ve manuel olarak çağrılabilir. ağından bağlantısı kesildiğinde projeyi oluşturmaya izin vermek istiyorsanız, bu yararlıdır (hala yükleme adımına ihtiyacınız olabilir). Bu , varsayılan olarak devre dışıdır.
nedenle, çevrimdışı çalışma edebilmek için sırayla ExternalProject_Add
bildiriye
UPDATE_DISCONNECTED 1
ayar seçeneği eklemek gerekir.
UPDATE_DISCONNECTED 1 'seçeneğini ayarlama hakkında ne düşünüyorsunuz? (bkz. [docs] (https://cmake.org/cmake/help/v3.2/module/ExternalProject.html)) Dokümanların dediği gibi, "UPDATE_DISCONNECTED ayarlanmışsa, güncelleme adımı otomatik olarak Ana hedef: Güncelleme adımı hala bir adım hedef olarak eklenebilir ve manuel olarak çağrılabilir.Bu, ağ bağlantısı kesildiğinde projeyi oluşturmaya izin vermek istiyorsanız yararlıdır (indirme adımı için ağa hala ihtiyacınız olabilir). Bu, varsayılan olarak devre dışıdır. " –
Teşekkürler, bunu deneyeceğim. Kesinlikle umut verici geliyor. Bu dokümanlar sayfasını birçok kez okudum ve bu parametreyi görmedim. İç çekmek. – Stuart
UPDATE_DISCONNECTED tam aradığım şeydi. Büyük teşekkür, @DanMasek! – Stuart