Rilascio del sistema di compilazione CMake 3.15

ha avuto luogo rilascio di un generatore di script open build multipiattaforma CRendere 3.15, che funge da alternativa ad Autotools e viene utilizzato in progetti come KDE, LLVM/Clang, MySQL, MariaDB, ReactOS e Blender. Il codice CMake è scritto in C++ e distribuito sotto la licenza BSD.

CMake si distingue per fornire un linguaggio di scripting semplice, un mezzo per estendere le funzionalità tramite moduli, un numero minimo di dipendenze (nessun legame con M4, Perl o Python), supporto per la memorizzazione nella cache, presenza di strumenti per la compilazione incrociata, supporto per la generazione di build file per un'ampia gamma di sistemi di compilazione e compilatori, la presenza di utilità ctest e cpack per definire script di test e creare pacchetti, utilità cmake-gui per impostare in modo interattivo i parametri di compilazione.

Il principale miglioramenti:

  • Il supporto linguistico iniziale è stato aggiunto al generatore di script di build basato su Ninja Swift, sviluppato da Apple;
  • Aggiunto il supporto per una variante del compilatore Clang per Windows che si compila con MSVC ABI, ma utilizza opzioni della riga di comando in stile GNU;
  • Aggiunte variabili CMAKE_MSVC_RUNTIME_LIBRARY e MSVC_RUNTIME_LIBRARY per selezionare le librerie runtime utilizzate dai compilatori basati su MSVC ABI (MS Visual Studio);
  • Per compilatori come MSVC, CMAKE__FLAGS per impostazione predefinita interrompe l'elenco dei flag di controllo di avviso come "/W3";
  • Aggiunta un'espressione del generatore "COMPILE_LANG_AND_ID:" per definire le opzioni del compilatore per i file di destinazione, utilizzando le variabili CMAKE__COMPILER_ID e LANGUAGE per ciascun file di codice;
  • Nelle espressioni del generatore C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID e PLATFORM_ID hanno aggiunto il supporto per abbinare un singolo valore a un elenco i cui elementi sono separati da una virgola;

  • Aggiunta la variabile CMAKE_FIND_PACKAGE_PREFER_CONFIG in modo che la chiamata a find_package() cercherà prima il file di configurazione del pacchetto, anche se è disponibile un finder;
  • Per le librerie di interfaccia, è stato aggiunto il supporto per l'impostazione delle proprietà PUBLIC_HEADER e PRIVATE_HEADER, mediante le quali è possibile impostare le intestazioni utilizzando il comando install(TARGETS) passando gli argomenti PUBLIC_HEADER e PRIVATE_HEADER;
  • Aggiunta la variabile CMAKE_VS_JUST_MY_CODE_DEBUGGING e la proprietà di destinazione VS_JUST_MY_CODE_DEBUGGING per abilitare la modalità "Just My Code" nel debugger di Visual Studio durante la compilazione utilizzando MSVC cl 19.05 e versioni più recenti;
  • È stato riprogettato il modulo FindBoost, che ora funziona in modo più olistico nelle modalità Config e Modulo in presenza di altri moduli di ricerca;
  • Il comando message() ora supporta i tipi NOTICE, VERBOSE,
    DEBUG e TRACCIA;

  • Il comando "export(PACKAGE)" ora non fa nulla a meno che non sia abilitato esplicitamente tramite la variabile CMAKE_EXPORT_PACKAGE_REGISTRY.

Fonte: opennet.ru

Aggiungi un commento