Liberigo de CMake 3.17.0 konstrusistemo

Enkondukita liberigo de transplatforma malferma konstrua skriptogeneratoro CMake 3.17, kiu funkcias kiel alternativo al Autotools kaj estas uzata en projektoj kiel KDE, LLVM/Clang, MySQL, MariaDB, ReactOS kaj Blender. La CMake-kodo estas skribita en C++ kaj distribuita sub la BSD-licenco.

CMake estas rimarkinda pro disponigado de simpla skriptlingvo, rimedo por etendi funkciecon per moduloj, minimuma nombro da dependecoj (neniu ligado al M4, Perl aŭ Python), kaŝmemorsubteno, la ĉeesto de iloj por kruc-kompilo, subteno por generado de konstruo. dosieroj por ampleksa gamo de konstrusistemoj kaj kompililoj, la ĉeesto ctest kaj cpack-utiloj por difini testajn skriptojn kaj konstrui pakaĵojn, cmake-gui-utilo por interage agordi konstruajn parametrojn.

Ĉefa plibonigoj:

  • Nova kunigskriptogeneratoro bazita sur la Ninja ilaro estis aldonita - "Ninja Multi-Config", kiu diferencas de la malnova generatoro en la kapablo prilabori plurajn asembleajn agordojn samtempe.
  • En la asemblea skriptogeneratoro por Visual Studio aperis la kapablo difini fontdosierojn asociitajn kun ĉiu agordo (po-agordaj fontoj).
  • La kapablo agordi meta-parametrojn por CUDA ("cuda_std_03", "cuda_std_14", ktp.) estis aldonita al la iloj por agordi kompililojn (Kompili Features).
  • Aldonitaj variabloj "CMAKE_CUDA_RUNTIME_LIBRARY" kaj "CUDA_RUNTIME_LIBRARY" por elekti la tipon de rultempaj bibliotekoj kiam vi uzas CUDA.
  • Aldonis la modulon "FindCUDAToolkit" por determini la CUDA ilaron disponeblan en la sistemo sen ebligi la CUDA-lingvon.
  • Aldonita "--debug-find" komando al cmake por eligi pliajn legeblajn diagnozojn dum plenumado de serĉaj operacioj. Por similaj celoj, la variablo CMAKE_FIND_DEBUG_MODE estis aldonita.
  • Aldonita subteno por serĉado de CURL-iloj uzante cmake-generitajn agordajn dosierojn "CURLConfig.cmake" al la modulo "FindCURL". Por malŝalti ĉi tiun konduton, la variablo CURL_NO_CURL_CMAKE estas provizita.
  • La modulo FindPython aldonis la kapablon serĉi Python-komponentojn en virtualaj medioj administritaj per "conda".
  • La ctest-ilaĵo aldonis la opciojn "--no-tests=[eraro|ignore]" por difini la konduton en la kazo de neniuj testoj kaj "--repeat" por agordi la kondiĉojn por refunkcii testojn (ĝis-paso, post tempodaŭro).
  • La kunigcelaj propraĵoj INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES kaj INTERFACE_LINK_DEPENDS nun estas translokigitaj inter la internaj dependecoj de statike kunmetitaj bibliotekoj.
  • Kiam vi uzas la ilaron MinGW, la serĉo de DLL-dosieroj kun la komando find_library estas malebligita defaŭlte (anstataŭe, la defaŭlta provo estas importi ".dll.a" bibliotekojn).
  • La logiko por elekti la ninja ilo en la Ninja generatoro nun ne dependas de la nomo de la rulebla dosiero - la unua ninja-konstruo, ninja aŭ samu ilo trovita en la vojoj difinitaj tra la PATH mediovariablo estas uzata.
  • Aldonis komandon "-E rm" al cmake, kiu povas esti uzata por forigi dosierojn kaj dosierujojn anstataŭ la apartaj komandoj "-E remove" kaj "-E remove_directory".

fonto: opennet.ru

Aldoni komenton