A fost lansată versiunea 4.0.0 a generatorului de scripturi de compilare multiplatformă și deschis, CMake, care funcționează ca o alternativă la Autotools și este utilizat în proiecte precum KDE, LLVM/Clang, MySQL, MariaDB, ReactOS și Blender. Codul CMake este scris în C++ și este distribuit sub licența BSD.
CMake se remarcă prin furnizarea unui limbaj simplu de scripturi, prin extensibilitatea funcționalității sale prin module, suportul pentru caching, existența unor instrumente pentru cross-compiling, generarea fișierelor de compilare pentru o gamă largă de sisteme de compilare și compilatoare, utilitarele ctest și cpack pentru definirea scripturilor de testare și a pachetelor, precum și utilitarul cmake-gui pentru configurarea interactivă a parametrilor de compilare.
Modificări principale:
- Compatibilitatea cu versiunile CMake anterioare versiunii 3.5 a fost eliminată. La apelarea versiunilor nesuportate în funcțiile cmake_minimum_required() și cmake_policy() va fi generată acum o eroare.
- A fost adăugată variabila de mediu „CMAKE_POLICY_VERSION_MINIMUM” pentru a redefini versiunea minimă a CMake necesară pentru compilarea proiectului. Variabila adăugată permite evitarea modificării apelurilor cmake_minimum_required(VERSION) și cmake_policy(VERSION) în proiectul în sine, de exemplu, pentru configurarea politicilor de versiuni în proiectele care nu permit această opțiune.
- În expresia generatorului „$” a fost adăugată operația „NATIVE_PATH” pentru a transforma calea fișierului din reprezentarea CMake (unde pentru separarea directoarelor se utilizează întotdeauna „/”) în calea sistemului (în sistemele Unix-like se utilizează „/”, iar în Windows „\”).
- Pe platforma macOS, atunci când se utilizează generatoare de scripturi de compilare bazate pe instrumentul Ninja și generatoare Makefile, dacă în directorul „/usr/bin” există un compilator, acesta va rămâne neschimbat, fără a fi legat de compilatorul din Xcode. La compilarea pentru platforma macOS, alegerea SDK-ului și transmiterea flag-ului „-isysroot” către compilator a fost, în mod implicit, oprită (SDK-ul este acum ales de compilator, nu de CMake).
- A fost adăugată proprietatea LINK_WARNING_AS_ERROR, prin care avertismentele linker-ului vor fi interpretate ca erori. Pentru a dezactiva această proprietate, a fost adăugată opțiunea de linie de comandă „—link-no-warning-as-error”.
- În utilitarul cmake a fost adăugată opțiunea „—project-file” pentru a specifica un nume alternativ pentru fișierul CMakeLists.txt.
- Generatorul CPack a fost îmbunătățit pentru a permite crearea de arhive tar nesupărate.
- În comanda target_link_libraries() și variabilele CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* a fost adăugată suportul pentru prefixul „LINKER:”.
- Au fost adăugate noi variabile:
- CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL,
- CMAKE__LINK_MODE,
- CMAKE__DEVICE_LINK_MODE,
- CMAKE_LINK_WARNING_AS_ERROR,
- CMAKE_MSVC_RUNTIME_CHECKS,
- CMAKE_DEBUGGER_WORKING_DIRECTORY,
- CMAKE_XCODE_SCHEME_LLDB_INIT_FILE,
- CMAKE_XCODE_SCHEME_TEST_CONFIGURATION.
- Au fost adăugate noi proprietăți: DEBUGGER_WORKING_DIRECTORY și VS_SOLUTION_ITEMS (pentru atașarea fișierelor la .sln pentru Visual Studio).
- Sunt asigurate formările pachetelor CMake pentru SunOS pentru arhitecturile sparc64 și x86_64.
Sursa: opennet.ro
