CMake 3.17.0 yapı sisteminin piyasaya sürülmesi

tanıtıldı platformlar arası açık derleme komut dosyası oluşturucusunun piyasaya sürülmesi CMake 3.17Autotools'a alternatif olarak çalışan ve KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ve Blender gibi projelerde kullanılan . CMake kodu C++ ile yazılmıştır ve BSD lisansı altında dağıtılmaktadır.

CMake, basit bir kodlama dili, modüller aracılığıyla işlevselliği genişletmenin bir yolu, minimum sayıda bağımlılık (M4, Perl veya Python'a bağlanma yok), önbellek desteği, çapraz derleme araçlarının varlığı, yapı oluşturma desteği sağlamasıyla dikkat çekiyor. çok çeşitli derleme sistemleri ve derleyiciler için dosyalar, test komut dosyalarını ve derleme paketlerini tanımlamak için varlık ctest ve cpack yardımcı programları, derleme parametrelerini etkileşimli olarak ayarlamak için cmake-gui yardımcı programı.

Ana iyileştirmeler:

  • Ninja araç setini temel alan yeni bir montaj komut dosyası oluşturucusu eklendi - "Ninja Multi-Config", birden fazla montaj konfigürasyonunu aynı anda işleme yeteneği açısından eski oluşturucudan farklıdır.
  • Visual Studio için derleme komut dosyası oluşturucusunda göründü her konfigürasyonla (yapılandırma başına kaynaklar) ilişkili kaynak dosyaları tanımlama yeteneği.
  • Derleyici parametrelerini ayarlama araçlarına (Derleme Özellikleri) CUDA için meta parametreleri ayarlama yeteneği (“cuda_std_03”, “cuda_std_14” vb.) eklenmiştir.
  • CUDA kullanırken çalışma zamanı kitaplıklarının türünü seçmek için "CMAKE_CUDA_RUNTIME_LIBRARY" ve "CUDA_RUNTIME_LIBRARY" değişkenleri eklendi.
  • CUDA dilini etkinleştirmeden sistemde mevcut olan CUDA araç setini belirlemek için "FindCUDAToolkit" modülü eklendi.
  • Arama işlemlerini gerçekleştirirken ek okunabilir tanılamaların çıktısını almak için cmake'e "--debug-find" komutu eklendi. Benzer amaçlarla CMAKE_FIND_DEBUG_MODE değişkeni eklenmiştir.
  • “FindCURL” modülüne, cmake tarafından oluşturulan “CURLConfig.cmake” yapılandırma dosyalarını kullanarak CURL araçlarını arama desteği eklendi. Bu davranışı devre dışı bırakmak için CURL_NO_CURL_CMAKE değişkeni sağlanır.
  • FindPython modülü, “conda” kullanılarak yönetilen sanal ortamlarda Python bileşenlerini arama yeteneğini ekledi.
  • Ctest yardımcı programı, test yapılmaması durumunda davranışı tanımlamak için "--no-tests=[error|ignore]" seçeneklerini ve testleri yeniden çalıştırma koşullarını ayarlamak için "--repeat" seçeneğini ekledi (geçene kadar, zaman aşımı sonrası).
  • INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES ve INTERFACE_LINK_DEPENDS derleme hedefi özellikleri artık statik olarak birleştirilmiş kitaplıkların dahili bağımlılıkları arasında aktarılmaktadır.
  • MinGW araç kitini kullanırken, find_library komutuyla DLL dosyalarının aranması varsayılan olarak devre dışıdır (bunun yerine varsayılan girişim ".dll.a" kitaplıklarını içe aktarmaktır).
  • Ninja oluşturucuda ninja yardımcı programını seçme mantığı artık yürütülebilir dosyanın adına bağlı değildir - PATH ortam değişkeni aracılığıyla tanımlanan yollarda bulunan ilk ninja-build, ninja veya samu yardımcı programı kullanılır.
  • Ayrı "-E kaldır" ve "-E kaldır_dizin" komutları yerine dosyaları ve dizinleri kaldırmak için kullanılabilecek bir "-E rm" komutu cmake'e eklendi.

Kaynak: opennet.ru

Yorum ekle