diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index 6a7b3c7..ce37ff1 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -1,7 +1,7 @@ bzip2: - '1' c_compiler: -- vs2019 +- vs2022 c_stdlib: - vs channel_sources: @@ -9,7 +9,7 @@ channel_sources: channel_targets: - conda-forge main cxx_compiler: -- vs2019 +- vs2022 expat: - '2' libcurl: @@ -18,8 +18,6 @@ liblzma_devel: - '5' target_platform: - win-64 -vc: -- '14' zlib: - '1' zstd: diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 827a29f..4b8c722 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -31,11 +31,21 @@ pkgs_dirs: solver: libmamba CONDARC -mv /opt/conda/conda-meta/history /opt/conda/conda-meta/history.$(date +%Y-%m-%d-%H-%M-%S) -echo > /opt/conda/conda-meta/history -micromamba install --root-prefix ~/.conda --prefix /opt/conda \ - --yes --override-channels --channel conda-forge --strict-channel-priority \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" +curl -fsSL https://pixi.sh/install.sh | bash +export PATH="~/.pixi/bin:$PATH" +pushd "${FEEDSTOCK_ROOT}" +arch=$(uname -m) +if [[ "$arch" == "x86_64" ]]; then + arch="64" +fi +sed -i.bak -e "s/platforms = .*/platforms = [\"linux-${arch}\"]/" -e "s/# __PLATFORM_SPECIFIC_ENV__ =/docker-build-linux-$arch =/" pixi.toml +echo "Creating environment" +PIXI_CACHE_DIR=/opt/conda pixi install --environment docker-build-linux-$arch +pixi list +echo "Activating environment" +eval "$(pixi shell-hook --environment docker-build-linux-$arch)" +mv pixi.toml.bak pixi.toml +popd export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 # set up the condarc @@ -49,7 +59,7 @@ source run_conda_forge_build_setup make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --test skip" fi @@ -60,20 +70,16 @@ if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" - - # Drop into an interactive shell - /bin/bash + echo "rattler-build currently doesn't support debug mode" else - conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ - --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" + + rattler-build build --recipe "${RECIPE_ROOT}" \ + -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + ${EXTRA_CB_OPTIONS:-} \ + --target-platform "${HOST_PLATFORM}" \ + --extra-meta flow_run_id="${flow_run_id:-}" \ + --extra-meta remote_url="${remote_url:-}" \ + --extra-meta sha="${sha:-}" ( startgroup "Inspecting artifacts" ) 2> /dev/null # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 0e3c394..1d78eef 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -9,34 +9,24 @@ set -xe MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" - -( startgroup "Provisioning base env with micromamba" ) 2> /dev/null -MICROMAMBA_VERSION="1.5.10-0" -if [[ "$(uname -m)" == "arm64" ]]; then - osx_arch="osx-arm64" -else - osx_arch="osx-64" +( startgroup "Provisioning base env with pixi" ) 2> /dev/null +mkdir -p "${MINIFORGE_HOME}" +curl -fsSL https://pixi.sh/install.sh | bash +export PATH="~/.pixi/bin:$PATH" +arch=$(uname -m) +if [[ "$arch" == "x86_64" ]]; then + arch="64" fi -MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" -MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" -echo "Downloading micromamba ${MICROMAMBA_VERSION}" -micromamba_exe="$(mktemp -d)/micromamba" -curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" -chmod +x "${micromamba_exe}" +sed -i.bak "s/platforms = .*/platforms = [\"osx-${arch}\"]/" pixi.toml echo "Creating environment" -"${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ - --channel conda-forge \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" -mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" -echo "Cleaning up micromamba" -rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true -( endgroup "Provisioning base env with micromamba" ) 2> /dev/null +pixi install +pixi list +echo "Activating environment" +eval "$(pixi shell-hook)" +mv pixi.toml.bak pixi.toml +( endgroup "Provisioning base env with pixi" ) 2> /dev/null ( startgroup "Configuring conda" ) 2> /dev/null -echo "Activating environment" -source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" -conda activate base export CONDA_SOLVER="libmamba" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 @@ -70,33 +60,25 @@ source run_conda_forge_build_setup ( endgroup "Configuring conda" ) 2> /dev/null -echo -e "\n\nMaking the build clobber file" -make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml - if [[ -f LICENSE.txt ]]; then cp LICENSE.txt "recipe/recipe-scripts-license.txt" fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug ./recipe -m ./.ci_support/${CONFIG}.yaml \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml - - # Drop into an interactive shell - /bin/bash + echo "rattler-build does not currently support debug mode" else if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --test skip" fi - conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ - --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" + rattler-build build --recipe ./recipe \ + -m ./.ci_support/${CONFIG}.yaml \ + ${EXTRA_CB_OPTIONS:-} \ + --target-platform "${HOST_PLATFORM}" \ + --extra-meta flow_run_id="$flow_run_id" \ + --extra-meta remote_url="$remote_url" \ + --extra-meta sha="$sha" ( startgroup "Inspecting artifacts" ) 2> /dev/null diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 297498b..82a6d1d 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -13,36 +13,49 @@ setlocal enableextensions enabledelayedexpansion FOR %%A IN ("%~dp0.") DO SET "REPO_ROOT=%%~dpA" -if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" +if "%MINIFORGE_HOME%"=="" ( + set "MINIFORGE_HOME=%REPO_ROOT%\.pixi\envs\default" +) else ( + set "PIXI_CACHE_DIR=%MINIFORGE_HOME%" +) :: Remove trailing backslash, if present if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" -call :start_group "Provisioning base env with micromamba" -set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" -set "MICROMAMBA_VERSION=1.5.10-0" -set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" -set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" -set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" - -echo Downloading micromamba %MICROMAMBA_VERSION% -if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%" -powershell -ExecutionPolicy Bypass -Command "(New-Object Net.WebClient).DownloadFile('%MICROMAMBA_URL%', '%MICROMAMBA_EXE%')" +call :start_group "Provisioning base env with pixi" +echo Installing pixi +powershell -NoProfile -ExecutionPolicy unrestricted -Command "iwr -useb https://pixi.sh/install.ps1 | iex" if !errorlevel! neq 0 exit /b !errorlevel! - -echo Creating environment -call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ - --channel conda-forge ^ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" +set "PATH=%USERPROFILE%\.pixi\bin;%PATH%" +echo Installing environment +if "%PIXI_CACHE_DIR%"=="%MINIFORGE_HOME%" ( + mkdir "%MINIFORGE_HOME%" + copy /Y pixi.toml "%MINIFORGE_HOME%" + pushd "%MINIFORGE_HOME%" +) else ( + pushd "%REPO_ROOT%" +) +move /y pixi.toml pixi.toml.bak +set "arch=64" +if "%PROCESSOR_ARCHITECTURE%"=="ARM64" set "arch=arm64" +powershell -NoProfile -ExecutionPolicy unrestricted -Command "(Get-Content pixi.toml.bak -Encoding UTF8) -replace 'platforms = .*', 'platforms = [''win-%arch%'']' | Out-File pixi.toml -Encoding UTF8" +:: Git on Windows needs to run post link scripts to properly set up SSL certificates +pixi config set --global run-post-link-scripts insecure +if !errorlevel! neq 0 exit /b !errorlevel! +pixi install +if !errorlevel! neq 0 exit /b !errorlevel! +pixi list +if !errorlevel! neq 0 exit /b !errorlevel! +set "ACTIVATE_PIXI=%TMP%\pixi-activate-%RANDOM%.bat" +pixi shell-hook > "%ACTIVATE_PIXI%" +if !errorlevel! neq 0 exit /b !errorlevel! +call "%ACTIVATE_PIXI%" if !errorlevel! neq 0 exit /b !errorlevel! -echo Removing %MAMBA_ROOT_PREFIX% -del /S /Q "%MAMBA_ROOT_PREFIX%" >nul -del /S /Q "%MICROMAMBA_TMPDIR%" >nul +move /y pixi.toml.bak pixi.toml +popd call :end_group call :start_group "Configuring conda" :: Activate the base conda environment -echo Activating environment -call "%MINIFORGE_HOME%\Scripts\activate.bat" :: Configure the solver set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! @@ -64,19 +77,19 @@ if EXIST LICENSE.txt ( ) if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( if [%CROSSCOMPILING_EMULATOR%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --no-test" + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --test skip" ) ) if NOT [%flow_run_id%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% --extra-meta remote_url=%remote_url% --extra-meta sha=%sha%" ) call :end_group :: Build the recipe echo Building recipe -conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% +rattler-build.exe build --recipe "recipe" -m .ci_support\%CONFIG%.yaml %EXTRA_CB_OPTIONS% --target-platform %HOST_PLATFORM% if !errorlevel! neq 0 exit /b !errorlevel! call :start_group "Inspecting artifacts" diff --git a/build-locally.py b/build-locally.py index 02c2374..9dfe440 100755 --- a/build-locally.py +++ b/build-locally.py @@ -106,9 +106,7 @@ def main(args=None): action="store_true", help="Setup debug environment using `conda debug`", ) - p.add_argument( - "--output-id", help="If running debug, specify the output to setup." - ) + p.add_argument("--output-id", help="If running debug, specify the output to setup.") ns = p.parse_args(args=args) verify_config(ns) @@ -124,9 +122,7 @@ def main(args=None): elif ns.config.startswith("win"): run_win_build(ns) finally: - recipe_license_file = os.path.join( - "recipe", "recipe-scripts-license.txt" - ) + recipe_license_file = os.path.join("recipe", "recipe-scripts-license.txt") if os.path.exists(recipe_license_file): os.remove(recipe_license_file) diff --git a/conda-forge.yml b/conda-forge.yml index 63da301..36a7879 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -14,3 +14,5 @@ provider: linux_aarch64: default linux_ppc64le: default test: native_and_emulated +conda_install_tool: pixi +conda_build_tool: rattler-build diff --git a/pixi.toml b/pixi.toml new file mode 100644 index 0000000..c8c3c12 --- /dev/null +++ b/pixi.toml @@ -0,0 +1,83 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: toml -*- + +# VVVVVV minimum `pixi` version +"$schema" = "https://pixi.sh/v0.36.0/schema/manifest/schema.json" + +[project] +name = "cmake-feedstock" +version = "3.50.1" # conda-smithy version used to generate this file +description = "Pixi configuration for conda-forge/cmake-feedstock" +authors = ["@conda-forge/cmake"] +channels = ["conda-forge"] +platforms = ["linux-64", "linux-aarch64", "linux-ppc64le", "osx-64", "win-64"] + +[dependencies] +conda-build = ">=24.1" +conda-forge-ci-setup = "4.*" +rattler-build = "*" + +[tasks] +[tasks.inspect-all] +cmd = "inspect_artifacts --all-packages" +description = "List contents of all packages found in rattler-build build directory." +[tasks.build] +cmd = "rattler-build build --recipe recipe" +description = "Build cmake-feedstock directly (without setup scripts), no particular variant specified" +[tasks."build-linux_64_"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_.yaml" +description = "Build cmake-feedstock with variant linux_64_ directly (without setup scripts)" +[tasks."inspect-linux_64_"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_.yaml" +description = "List contents of cmake-feedstock packages built for variant linux_64_" +[tasks."build-linux_aarch64_"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_.yaml" +description = "Build cmake-feedstock with variant linux_aarch64_ directly (without setup scripts)" +[tasks."inspect-linux_aarch64_"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_.yaml" +description = "List contents of cmake-feedstock packages built for variant linux_aarch64_" +[tasks."build-linux_ppc64le_"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_ppc64le_.yaml" +description = "Build cmake-feedstock with variant linux_ppc64le_ directly (without setup scripts)" +[tasks."inspect-linux_ppc64le_"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_ppc64le_.yaml" +description = "List contents of cmake-feedstock packages built for variant linux_ppc64le_" +[tasks."build-osx_64_"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_64_.yaml" +description = "Build cmake-feedstock with variant osx_64_ directly (without setup scripts)" +[tasks."inspect-osx_64_"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_64_.yaml" +description = "List contents of cmake-feedstock packages built for variant osx_64_" +[tasks."build-osx_arm64_"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_.yaml" +description = "Build cmake-feedstock with variant osx_arm64_ directly (without setup scripts)" +[tasks."inspect-osx_arm64_"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_arm64_.yaml" +description = "List contents of cmake-feedstock packages built for variant osx_arm64_" +[tasks."build-win_64_"] +cmd = "rattler-build build --recipe recipe -m .ci_support/win_64_.yaml" +description = "Build cmake-feedstock with variant win_64_ directly (without setup scripts)" +[tasks."inspect-win_64_"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/win_64_.yaml" +description = "List contents of cmake-feedstock packages built for variant win_64_" + +[feature.smithy.dependencies] +conda-smithy = "*" +[feature.smithy.tasks.build-locally] +cmd = "python ./build-locally.py" +description = "Build packages locally using the same setup scripts used in conda-forge's CI" +[feature.smithy.tasks.smithy] +cmd = "conda-smithy" +description = "Run conda-smithy. Pass necessary arguments." +[feature.smithy.tasks.rerender] +cmd = "conda-smithy rerender" +description = "Rerender the feedstock." +[feature.smithy.tasks.lint] +cmd = "conda-smithy lint --conda-forge recipe" +description = "Lint the feedstock recipe" + +[environments] +smithy = ["smithy"] +# This is a copy of default, to be enabled by build_steps.sh during Docker builds +# __PLATFORM_SPECIFIC_ENV__ = [] diff --git a/recipe/bld.bat b/recipe/build.bat similarity index 100% rename from recipe/bld.bat rename to recipe/build.bat diff --git a/recipe/meta.yaml b/recipe/meta.yaml deleted file mode 100644 index 4895666..0000000 --- a/recipe/meta.yaml +++ /dev/null @@ -1,69 +0,0 @@ -{% set version = "4.0.3" %} - -package: - name: cmake - version: {{ version }} - -source: - url: https://github.com/Kitware/CMake/releases/download/v{{ version }}/cmake-{{ version }}.tar.gz - sha256: 8d3537b7b7732660ea247398f166be892fe6131d63cc291944b45b91279f3ffb - -build: - number: 0 - ignore_run_exports: - - vc - -requirements: - build: - - {{ stdlib('c') }} - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - cmake-no-system # [unix] - - ninja - - 7za # [win] - - host: - - bzip2 - - libcurl - - expat - - ncurses # [unix] - - liblzma-devel - - zlib - - libuv - - rhash # [unix] - - zstd - -test: - commands: - - cmake --version - - ctest --version - - cpack --version - - ccmake --version - -about: - home: http://www.cmake.org/ - license: BSD-3-Clause - license_family: BSD - license_file: - - LICENSE.rst - - Utilities/cmlibrhash/COPYING # [win] - - Utilities/cmpdcurses/README.md # [win] - - Utilities/cmpdcurses/wincon/README.md # [win] - - Utilities/cmcppdap/LICENSE - - Utilities/cmlibarchive/COPYING - - Utilities/cmjsoncpp/LICENSE - summary: CMake is an extensible, open-source system that manages the build process - doc_url: https://cmake.org/documentation - dev_url: https://gitlab.kitware.com/cmake/cmake - -extra: - recipe-maintainers: - - blowekamp - - groutr - - jakirkham - - jschueller - - ocefpaf - - msarahan - - scopatz - - tadeu - - marcelotrevisani diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml new file mode 100644 index 0000000..d085104 --- /dev/null +++ b/recipe/recipe.yaml @@ -0,0 +1,77 @@ +schema_version: 1 + +context: + version: 4.0.3 + +package: + name: cmake + version: ${{ version }} + +source: + url: https://github.com/Kitware/CMake/releases/download/v${{ version }}/cmake-${{ version }}.tar.gz + sha256: 8d3537b7b7732660ea247398f166be892fe6131d63cc291944b45b91279f3ffb + +build: + number: 1 + +requirements: + build: + - ${{ stdlib('c') }} + - ${{ compiler('c') }} + - ${{ compiler('cxx') }} + - if: unix + then: cmake-no-system + - ninja + - if: win + then: 7za + host: + - bzip2 + - libcurl + - expat + - if: unix + then: + - ncurses + - rhash + - liblzma-devel + - zlib + - libuv + - zstd + ignore_run_exports: + by_name: + - vc + +tests: + - script: + - cmake --version + - ctest --version + - cpack --version + - ccmake --version + +about: + license: BSD-3-Clause + license_file: + - LICENSE.rst + - if: win + then: + - Utilities/cmlibrhash/COPYING + - Utilities/cmpdcurses/README.md + - Utilities/cmpdcurses/wincon/README.md + - Utilities/cmcppdap/LICENSE + - Utilities/cmlibarchive/COPYING + - Utilities/cmjsoncpp/LICENSE + summary: CMake is an extensible, open-source system that manages the build process + homepage: http://www.cmake.org/ + repository: https://gitlab.kitware.com/cmake/cmake + documentation: https://cmake.org/documentation + +extra: + recipe-maintainers: + - blowekamp + - groutr + - jakirkham + - jschueller + - ocefpaf + - msarahan + - scopatz + - tadeu + - marcelotrevisani