CMake 3.16 yapı sisteminin piyasaya sürülmesi

tanıtıldı platformlar arası açık derleme komut dosyası oluşturucusunun piyasaya sürülmesi CMake 3.16Autotools'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:

  • Objective C (“OBJC”) ve Objective dilleri için destek eklendi
    project() ve active_language() komutları aracılığıyla etkinleştirilebilen C++ ("OBJCXX"), bundan sonra ".m" ".mm" dosyalarındaki kod, Objective C ve Objective C++ kodu olarak derlenecektir. C++, daha önce olduğu gibi;
  • Solaris platformuna Clang derleyicisi için destek eklendi;
  • Yeni komut satırı seçenekleri eklendi: 0 ve 1 dönüş kodlarını yazdırmak için “cmake -E true|false”; "cmake --trace-redirect=" bunun yerine izleme bilgilerini bir dosyaya yeniden yönlendirmek için
    "stderr"; "cmake --loglevel" komutu, diğer komutların adlarıyla uyumlu hale getirilmesi için "--log-level" olarak yeniden adlandırıldı;
  • Ön derleme sırasında kullanılan başlık dosyalarının listesini listelemek için “target_precompile_headers()” komutu eklendi (derleme süresini kısaltır);
  • Derlemeyi hızlandırmak amacıyla oluşturuculardaki kaynak dosyaları işlemek için toplu iş modunu etkinleştiren “UNITY_BUILD” özelliği eklendi;
  • “Find_file()”, “find_library()”, “find_path()” komutları eklendi,
    Çeşitli dosya kategorileri için arama yollarını tanımlayan değişkenlere göre dosyaları, kitaplıkları, yolları, paketleri ve yürütülebilir dosyaları aramak için "find_package()" ve "find_program()".
    "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH", "CMAKE_FIND_USE_CMAKE_PATH", "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH", "CMAKE_FIND_USE_PACKAGE_ROOT_PATH", "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" ve "CMAKE_FIND_USE_PACKAGE_" değişkenleri REG", ISTRY temel arama yollarını kontrol etmek için kullanılır";
  • Yürütülebilir bir dosya veya kitaplığı dinamik olarak bağlarken kullanılan kitaplıkların listesini yinelemeli olarak almanıza olanak tanıyan "file(GET_RUNTIME_DEPENDENCIES)" modu "file()" komutuna eklendi. Mod, artık kullanımdan kaldırılan GetPrerequisites() komutunun yerini aldı;
  • “ctest(1)” komutu, her test için gereken kaynaklara göre testleri serileştirme yeteneğini uygular;
  • "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" değişkeni kullanımdan kaldırıldı ve "CMAKE_FIND_USE_PACKAGE_REGISTRY" ile değiştirilmesi gerekiyor;
  • Geliştirilmiş AIX platform desteği. "ENABLE_EXPORTS" özelliği kullanıldığında, yürütülebilir dosyaya ek olarak, bağlayıcı için artık ".imp" uzantısıyla kaydedilen bir içe aktarma dosyası oluşturulur. "MODULE" seçeneği ile "add_library()" çağrılarak oluşturulan eklentilerde "target_link_libraries()" komutu kullanılarak bağlantı yapılırken bu dosya kullanılabilir. AIX'te çalışma zamanı bağlantısı varsayılan olarak devre dışıdır çünkü CMake artık yükleme sırasında bağlantı için gerekli tüm sembol bilgilerini sağlamaktadır. Dinamik kitaplıkların veya yüklenebilir modüllerin çalışma zamanı bağlantısını kullanmak için, "CMAKE_SHARED_LINKER_FLAGS" ve "CMAKE_MODULE_LINKER_FLAGS" değişkenleri aracılığıyla tanımlanan bağlayıcı başlangıç ​​bayrakları listesinde "-Wl, -G" seçeneklerini açıkça belirtmeniz gerekir.

Kaynak: opennet.ru

DDoS korumalı siteler, VPS VDS sunucuları için güvenilir hosting satın alın 🔥 DDoS korumalı, güvenilir VPS ve VDS sunucu barındırma hizmeti satın alın | ProHoster