Liberasyon CMake 3.17.0 bati sistèm

Entwodwi lage yon dèlko script bati louvri kwa-platfòm CMake 3.17, ki aji kòm yon altènativ a Autotools epi ki itilize nan pwojè tankou KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ak Blender. Kòd CMake ekri an C++ epi distribye anba lisans BSD.

CMake se remakab pou bay yon langaj scripting senp, yon mwayen pou pwolonje fonksyonalite atravè modil, yon kantite minimòm depandans (pa gen obligasyon pou M4, Perl oswa Python), sipò kachèt, prezans zouti pou konpilasyon kwa, sipò pou jenere bati. fichye pou yon pakèt sistèm bati ak konpilatè, prezans ctest ak sèvis piblik cpack pou defini scripts tès ak pakè bati, sèvis piblik cmake-gui pou fikse paramèt bati yon fason entèaktif.

Prensipal la amelyorasyon:

  • Yo te ajoute yon nouvo dèlko script asanble ki baze sou bwat zouti Ninja - "Ninja Multi-Config", ki diferan de ansyen dèlko a nan kapasite nan trete plizyè konfigirasyon asanble an menm tan.
  • Nan dèlko script asanble a pou Visual Studio parèt kapasite nan defini dosye sous ki asosye ak chak konfigirasyon (sous pou chak konfigirasyon).
  • Kapasite pou mete paramèt meta pou CUDA ("cuda_std_03", "cuda_std_14", elatriye) yo te ajoute nan zouti yo pou mete paramèt du (Konpile Karakteristik).
  • Te ajoute varyab "CMAKE_CUDA_RUNTIME_LIBRARY" ak "CUDA_RUNTIME_LIBRARY" pou chwazi kalite bibliyotèk ekzekite lè w ap itilize CUDA.
  • Te ajoute modil "FindCUDAToolkit" pou detèmine bwat zouti CUDA ki disponib sou sistèm nan san yo pa pèmèt lang CUDA.
  • Te ajoute kòmand "--debug-find" pou cmake pou bay lòt dyagnostik lizib lè w ap fè operasyon rechèch. Pou rezon menm jan an, yo te ajoute varyab CMAKE_FIND_DEBUG_MODE.
  • Te ajoute sipò pou chèche zouti CURL lè l sèvi avèk fichye konfigirasyon cmake te pwodwi "CURLConfig.cmake" nan modil "FindCURL". Pou enfim konpòtman sa a, yo bay varyab CURL_NO_CURL_CMAKE.
  • Modil FindPython la te ajoute kapasite pou fè rechèch pou konpozan Python nan anviwònman vityèl jere lè l sèvi avèk "conda".
  • Sèvis piblik ctest la te ajoute opsyon "--no-tests=[error|ignore]" pou defini konpòtman an nan ka pa gen tès ak "--repeat" pou mete kondisyon pou re-kouri tès yo (jouk pase, apre-time).
  • Pwopriyete sib asanble INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES ak INTERFACE_LINK_DEPENDS yo transfere kounye a pami depandans entèn bibliyotèk ki rasanble statikman.
  • Lè w ap itilize twous zouti MinGW la, rechèch la pou dosye DLL ak lòd find_library la enfim pa default (okontrè, tantativ la default se enpòte bibliyotèk ".dll.a").
  • Lojik pou chwazi sèvis piblik ninja a nan dèlko Ninja kounye a pa depann de non dosye ègzèkutabl la - yo itilize premye sèvis piblik ninja-build, ninja oswa samu ki te jwenn nan chemen yo defini atravè varyab anviwònman PATH la.
  • Te ajoute yon "-E rm" kòmand pou cmake ki ka sèvi pou retire fichiers Et répertoires olye de "-E retire" ak kòmand "-E remove_directory" separe.

Sous: opennet.ru

Add nouvo kòmantè