From b93891013a9ef76dc4763669061ae89f2510cf0a Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Tue, 11 Jun 2024 14:01:19 +0200 Subject: [PATCH] feat: add rattler-build recipe (#47) Adds a recipe to build a conda package. --- .github/workflows/cpp-test.yml | 30 ++ .github/workflows/rust-compile.yml | 2 +- .gitignore | 5 + CMakeLists.txt | 29 +- Cargo.toml | 1 - cpp/CMakeLists.txt | 174 +++++-- cpp/Cargo.toml | 2 +- cpp/cmake/ResolvoConfig.cmake.in | 16 + cpp/tests/CMakeLists.txt | 42 +- pixi.lock | 774 +++++++++++++++++++++++++++++ pixi.toml | 6 +- recipe/recipe.yaml | 30 ++ recipe/variant_config.yaml | 1 + tools/solve-snapshot/Cargo.toml | 2 +- 14 files changed, 1034 insertions(+), 80 deletions(-) create mode 100644 cpp/cmake/ResolvoConfig.cmake.in create mode 100644 recipe/recipe.yaml create mode 100644 recipe/variant_config.yaml diff --git a/.github/workflows/cpp-test.yml b/.github/workflows/cpp-test.yml index d50a79a..f03d163 100644 --- a/.github/workflows/cpp-test.yml +++ b/.github/workflows/cpp-test.yml @@ -28,6 +28,7 @@ jobs: git diff --exit-code test: + name: Test strategy: fail-fast: false matrix: @@ -45,3 +46,32 @@ jobs: - name: Run the tests run: | pixi run test-cpp + + package: + name: Create conda packages + strategy: + matrix: + include: + - os: ubuntu-latest + target-platform: linux-64 + - os: ubuntu-latest + target-platform: linux-aarch64 + - os: windows-latest + target-platform: win-64 + - os: macos-latest + target-platform: osx-64 + - os: macos-14 + target-platform: osx-arm64 + runs-on: ${{ matrix.os }} + needs: [ format ] + steps: + - name: Checkout source code + uses: actions/checkout@v4 + - name: Build conda package + uses: prefix-dev/rattler-build-action@v0.2.9 + with: + recipe-path: recipe/recipe.yaml + # needs to be unique for each matrix entry + artifact-name: package-${{ matrix.target-platform }} + build-args: --target-platform ${{ matrix.target-platform }}${{ matrix.target-platform == 'linux-aarch64' && ' --no-test' || '' }} + diff --git a/.github/workflows/rust-compile.yml b/.github/workflows/rust-compile.yml index 3f8297d..b4d04e1 100644 --- a/.github/workflows/rust-compile.yml +++ b/.github/workflows/rust-compile.yml @@ -42,7 +42,7 @@ jobs: - name: Run clippy run: cargo clippy - build: + test: name: Test runs-on: ubuntu-latest needs: [ format_and_lint ] diff --git a/.gitignore b/.gitignore index 3e44df4..e5e8ef2 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,8 @@ build/ .pixi *.egg-info +# Ignore rattler-build output directory +output/ + +# Any resolvo snapshots in the root +snapshot-*.json diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ed1871..21e1ffe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,27 +8,28 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) include(FeatureSummary) option(RESOLVO_BUILD_TESTING "Build tests" OFF) -add_feature_info(RESOLVO_BUILD_TESTING RESOLVO_BUILD_TESTING "configure whether to build the test suite") +add_feature_info(RESOLVO_BUILD_TESTING RESOLVO_BUILD_TESTING + "configure whether to build the test suite") include(CTest) set(RESOLVO_IS_TOPLEVEL_BUILD TRUE) -# Place all compiled examples into the same bin directory -# on Windows, where we'll also put the dll -if (WIN32) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/debug) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/release) +# Place all compiled examples into the same bin directory on Windows, where +# we'll also put the dll +if(WIN32) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/debug) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/release) elseif(APPLE) - # On macOS, the resolvo_cpp.dylib's install_name uses @rpath. CMake doesn't - # set BUILD_RPATH for imported targets though, so include the directory here - # by hand in the rpath used to build binaries in the build tree (such as our - # examples or tests). - set(CMAKE_BUILD_RPATH ${CMAKE_BINARY_DIR}/cpp) + # On macOS, the resolvo_cpp.dylib's install_name uses @rpath. CMake doesn't + # set BUILD_RPATH for imported targets though, so include the directory here + # by hand in the rpath used to build binaries in the build tree (such as our + # examples or tests). + set(CMAKE_BUILD_RPATH ${CMAKE_BINARY_DIR}/cpp) endif() add_subdirectory(cpp/) feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:") -feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:") \ No newline at end of file +feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:") diff --git a/Cargo.toml b/Cargo.toml index 3809427..0dac9b1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,6 @@ members = ["cpp", "tools/*"] resolver = "2" [workspace.package] -name = "resolvo" version = "0.6.1" authors = ["Adolfo OchagavĂ­a ", "Bas Zalmstra ", "Tim de Jager "] homepage = "https://github.com/mamba-org/resolvo" diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 9af3b77..b7c6d13 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -1,86 +1,182 @@ cmake_minimum_required(VERSION 3.21) -# Select C++ and C as languages, as Corrosion needs ${CMAKE_C_COMPILER} -# for linking -project(Resolvo LANGUAGES C CXX VERSION 0.1.0) +# Select C++ and C as languages, as Corrosion needs ${CMAKE_C_COMPILER} for +# linking +project(Resolvo LANGUAGES C CXX) # Add the Corrosion dependency (used to build Rust code) include(FetchContent) FetchContent_Declare( - Corrosion - GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git - GIT_TAG v0.4.9 -) + Corrosion + GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git + GIT_TAG v0.4.9) FetchContent_MakeAvailable(Corrosion) +# Extract the version from the rust crate +corrosion_parse_package_version("${CMAKE_CURRENT_SOURCE_DIR}/Cargo.toml" + resolvo_cpp_version) +string(REPLACE "." ";" VERSION_LIST ${resolvo_cpp_version}) +list(GET VERSION_LIST 0 resolvo_cpp_version_major) +list(GET VERSION_LIST 1 resolvo_cpp_version_minor) +list(GET VERSION_LIST 2 resolvo_cpp_version_patch) + # Add the Corrosion CMake module path to the list of paths to search for modules list(PREPEND CMAKE_MODULE_PATH ${Corrosion_SOURCE_DIR}/cmake) find_package(Rust 1.75 REQUIRED MODULE) option(BUILD_SHARED_LIBS "Build Resolvo as shared library" ON) -set(RESOLVO_LIBRARY_CARGO_FLAGS "" CACHE STRING - "Flags to pass to cargo when building the Resolvo runtime library") +set(RESOLVO_LIBRARY_CARGO_FLAGS + "" + CACHE STRING + "Flags to pass to cargo when building the Resolvo runtime library") if(BUILD_SHARED_LIBS) - set(rustc_lib_type "cdylib") - set(resolvo_cpp_impl "resolvo_cpp-shared") - set(cmake_lib_type "SHARED") + set(rustc_lib_type "cdylib") + set(resolvo_cpp_impl "resolvo_cpp-shared") + set(cmake_lib_type "SHARED") else() - set(rustc_lib_type "staticlib") - set(resolvo_cpp_impl "resolvo_cpp-static") - set(cmake_lib_type "STATIC") + set(rustc_lib_type "staticlib") + set(resolvo_cpp_impl "resolvo_cpp-static") + set(cmake_lib_type "STATIC") endif() -corrosion_import_crate(MANIFEST_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Cargo.toml" - CRATES resolvo_cpp CRATE_TYPES bin ${rustc_lib_type}) +corrosion_import_crate( + MANIFEST_PATH + "${CMAKE_CURRENT_SOURCE_DIR}/Cargo.toml" + CRATES + resolvo_cpp + CRATE_TYPES + bin + ${rustc_lib_type}) + +# See +# https://corrosion-rs.github.io/corrosion/common_issues.html#missing-install_name-on-macos-for-ccdylibs--hardcoded-references-to-the-build-directory +if(APPLE + AND RESOLVO_IS_TOPLEVEL_BUILD + AND BUILD_SHARED_LIBS) + corrosion_add_target_local_rustflags( + resolvo_cpp + -Clink-arg=-Wl,-install_name,@rpath/libresolvo_cpp.dylib,-current_version,${resolvo_cpp_version_major}.${resolvo_cpp_version_minor}.${resolvo_cpp_version_patch},-compatibility_version,${resolvo_cpp_version_major}.${resolvo_cpp_version_minor}.0 + ) + set_target_properties(resolvo_cpp-shared PROPERTIES IMPORTED_NO_SONAME 0) + set_target_properties(resolvo_cpp-shared PROPERTIES IMPORTED_SONAME + libresolvo_cpp.dylib) +endif() add_library(Resolvo INTERFACE) add_library(Resolvo::Resolvo ALIAS Resolvo) target_link_libraries(Resolvo INTERFACE resolvo_cpp) set_property( - TARGET resolvo_cpp - APPEND - PROPERTY CORROSION_ENVIRONMENT_VARIABLES + TARGET resolvo_cpp + APPEND + PROPERTY + CORROSION_ENVIRONMENT_VARIABLES "RESOLVO_GENERATED_INCLUDE_DIR=${CMAKE_CURRENT_BINARY_DIR}/generated_include/" ) -file(GLOB api_headers RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/include/" - "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h") +file( + GLOB api_headers + RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/include/" + "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h") foreach(header IN LISTS api_headers) - set_property(TARGET Resolvo APPEND PROPERTY PUBLIC_HEADER include/${header}) + set_property( + TARGET Resolvo + APPEND + PROPERTY PUBLIC_HEADER include/${header}) endforeach() set(generated_headers ${CMAKE_CURRENT_BINARY_DIR}/generated_include/resolvo_vector_internal.h ${CMAKE_CURRENT_BINARY_DIR}/generated_include/resolvo_string_internal.h - ${CMAKE_CURRENT_BINARY_DIR}/generated_include/resolvo_internal.h -) + ${CMAKE_CURRENT_BINARY_DIR}/generated_include/resolvo_internal.h) foreach(header IN LISTS generated_headers) - set_property(TARGET Resolvo APPEND PROPERTY PUBLIC_HEADER ${header}) + set_property( + TARGET Resolvo + APPEND + PROPERTY PUBLIC_HEADER ${header}) endforeach() -target_include_directories(Resolvo INTERFACE - $ - $ - $ -) - -export(TARGETS Resolvo resolvo_cpp - NAMESPACE Resolvo:: FILE "${CMAKE_BINARY_DIR}/lib/cmake/Resolvo/ResolvoTargets.cmake") -install(EXPORT ResolvoTargets NAMESPACE Resolvo:: DESTINATION lib/cmake/Resolvo) -install(TARGETS Resolvo resolvo_cpp - EXPORT ResolvoTargets LIBRARY DESTINATION lib PUBLIC_HEADER DESTINATION include/resolvo) +target_include_directories( + Resolvo + INTERFACE $ + $ + $) + +export( + TARGETS Resolvo resolvo_cpp + NAMESPACE Resolvo:: + FILE "${CMAKE_BINARY_DIR}/lib/cmake/Resolvo/ResolvoTargets.cmake") +install( + EXPORT ResolvoTargets + NAMESPACE Resolvo:: + DESTINATION lib/cmake/Resolvo) +install( + TARGETS Resolvo resolvo_cpp + EXPORT ResolvoTargets + LIBRARY DESTINATION lib + PUBLIC_HEADER DESTINATION include/resolvo) install(FILES $ TYPE LIB) if(WIN32) - install(FILES $ TYPE LIB) + install(FILES $ TYPE LIB) endif() +include(CMakePackageConfigHelpers) + +function(_resolvo_write_configure_file) + foreach( + prop + IMPORTED_LOCATION + IMPORTED_LOCATION_DEBUG + IMPORTED_LOCATION_RELEASE + IMPORTED_LOCATION_RELWITHDEBINFO + IMPORTED_LOCATION_MINSIZEREL + IMPORTED_IMPLIB + IMPORTED_IMPLIB_DEBUG + IMPORTED_IMPLIB_RELEASE + IMPORTED_IMPLIB_RELWITHDEBINFO + IMPORTED_IMPLIB_MINSIZEREL) + get_target_property(value ${resolvo_cpp_impl} ${prop}) + + if(value) + get_filename_component(value ${value} NAME) + list(APPEND RESOLVO_LIB_PROPERTIES ${prop} + "\${_IMPORT_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${value}") + endif() + endforeach() + + foreach(prop IMPORTED_NO_SONAME IMPORTED_SONAME) + get_target_property(value ${resolvo_cpp_impl} ${prop}) + if(value) + list(APPEND RESOLVO_LIB_PROPERTIES ${prop} ${value}) + endif() + endforeach() + + configure_package_config_file( + "cmake/ResolvoConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/Resolvo/ResolvoConfig.cmake" + INSTALL_DESTINATION lib/cmake/resolvo) +endfunction() + +cmake_language(DEFER CALL _resolvo_write_configure_file) + +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/Resolvo/ResolvoConfigVersion.cmake + VERSION + ${resolvo_cpp_version_major}.${resolvo_cpp_version_minor}.${resolvo_cpp_version_patch} + COMPATIBILITY SameMinorVersion) + +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/Resolvo/ResolvoConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/Resolvo/ResolvoConfigVersion.cmake" + DESTINATION lib/cmake/Resolvo) + if(RESOLVO_BUILD_TESTING) - add_subdirectory(tests) + add_subdirectory(tests) endif() diff --git a/cpp/Cargo.toml b/cpp/Cargo.toml index e8893e7..e3abb35 100644 --- a/cpp/Cargo.toml +++ b/cpp/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "resolvo_cpp" description = "Resolvo C++ integration" -version.workspace = true +version = "0.1.0" authors.workspace = true keywords.workspace = true categories.workspace = true diff --git a/cpp/cmake/ResolvoConfig.cmake.in b/cpp/cmake/ResolvoConfig.cmake.in new file mode 100644 index 0000000..45119ba --- /dev/null +++ b/cpp/cmake/ResolvoConfig.cmake.in @@ -0,0 +1,16 @@ +@PACKAGE_INIT@ + +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +if(_IMPORT_PREFIX STREQUAL "/") + set(_IMPORT_PREFIX "") +endif() + +add_library(@resolvo_cpp_impl@ @cmake_lib_type@ IMPORTED) +set_target_properties(@resolvo_cpp_impl@ PROPERTIES @RESOLVO_LIB_PROPERTIES@) + +set(_IMPORT_PREFIX) + +include("${CMAKE_CURRENT_LIST_DIR}/ResolvoTargets.cmake") diff --git a/cpp/tests/CMakeLists.txt b/cpp/tests/CMakeLists.txt index 38ed43f..c5de61d 100644 --- a/cpp/tests/CMakeLists.txt +++ b/cpp/tests/CMakeLists.txt @@ -1,36 +1,34 @@ FetchContent_Declare( - Catch2 - GIT_REPOSITORY https://github.com/catchorg/Catch2.git - GIT_TAG v2.13.8 -) + Catch2 + GIT_REPOSITORY https://github.com/catchorg/Catch2.git + GIT_TAG v2.13.8) FetchContent_MakeAvailable(Catch2) include(CTest) macro(resolvo_test NAME) - add_executable(test_${NAME} ${NAME}.cpp) - target_link_libraries(test_${NAME} PRIVATE Resolvo Catch2::Catch2) - target_compile_definitions(test_${NAME} PRIVATE - SOURCE_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}/\" - ) - # Use debug version of run-time library to enable MSVC iterator debugging - set_property(TARGET test_${NAME} PROPERTY MSVC_RUNTIME_LIBRARY MultiThreadedDebugDLL) - add_test(NAME test_${NAME} COMMAND test_${NAME}) + add_executable(test_${NAME} ${NAME}.cpp) + target_link_libraries(test_${NAME} PRIVATE Resolvo Catch2::Catch2) + target_compile_definitions( + test_${NAME} PRIVATE SOURCE_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}/\") + # Use debug version of run-time library to enable MSVC iterator debugging + set_property(TARGET test_${NAME} PROPERTY MSVC_RUNTIME_LIBRARY + MultiThreadedDebugDLL) + add_test(NAME test_${NAME} COMMAND test_${NAME}) - if(MSVC) - target_compile_options(test_${NAME} PRIVATE /W3) - else() - target_compile_options(test_${NAME} PRIVATE -Wall -Wextra -Werror) - endif() + if(MSVC) + target_compile_options(test_${NAME} PRIVATE /W3) + else() + target_compile_options(test_${NAME} PRIVATE -Wall -Wextra -Werror) + endif() - if(CMAKE_CXX_COMPILER_ID STREQUAL GNU) - # that warning has false positives - target_compile_options(test_${NAME} PRIVATE -Wno-maybe-uninitialized) - endif() + if(CMAKE_CXX_COMPILER_ID STREQUAL GNU) + # that warning has false positives + target_compile_options(test_${NAME} PRIVATE -Wno-maybe-uninitialized) + endif() endmacro(resolvo_test) resolvo_test(vector) resolvo_test(string) resolvo_test(solve) - diff --git a/pixi.lock b/pixi.lock index 763bbf4..2afecb6 100644 --- a/pixi.lock +++ b/pixi.lock @@ -11,48 +11,125 @@ environments: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.6.2-hbcca054_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-format-18-18.1.6-default_h127d8a8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-format-18.1.6-default_h127d8a8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cmake-format-0.6.13-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp18.1-18.1.6-default_h127d8a8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h77fa898_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h77fa898_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.6-hb77312f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-hc0a3c3a_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-hc051c1a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py312h98912ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.3-hab00c5b_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py312h98912ed_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda osx-64: + - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.6.2-h8857fd0_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-format-18-18.1.6-default_ha3b9224_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-format-18.1.6-default_ha3b9224_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cmake-format-0.6.13-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-73.2-hf5e326d_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp18.1-18.1.6-default_ha3b9224_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-17.0.6-h88467a6_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.2-h73e2aa4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm18-18.1.6-hd5e122f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.0-h1b8f9f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.7-h3e169fe_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-2.1.5-py312h41838bb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h5846eda_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.3-h1411813_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py312h104f124_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.6.2-hf0a4a13_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-format-18-18.1.6-default_h7c89ad4_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-format-18.1.6-default_h7c89ad4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cmake-format-0.6.13-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp18.1-18.1.6-default_h7c89ad4_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-17.0.6-h5f092b4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm18-18.1.6-hdac5640_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.0-hfb93653_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.7-ha661575_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.5-py312he37b823_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-hb89a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.3-h4a7b5fc_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py312h02f2b3b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda win-64: + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.6.2-h56e8100_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/clang-format-18.1.6-default_h3a3e6c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cmake-format-0.6.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.2-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.5-py312he70551f_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.3-h2628c8c_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py312he70551f_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_20.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.38.33135-h835141b_20.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.38.33135-h22015db_20.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 test-cpp: channels: - url: https://conda.anaconda.org/conda-forge/ @@ -1057,6 +1134,24 @@ packages: license_family: BSD size: 19024763 timestamp: 1717457328163 +- kind: conda + name: cmake-format + version: 0.6.13 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/cmake-format-0.6.13-pyhd8ed1ab_0.conda + sha256: a916122754ff244143e5fff02362d2efd2b44228e56aee682acdf6960d8a49e8 + md5: 0d8dbd5e9d09c51b4e23ce5c07941c22 + depends: + - jinja2 >=2.10.3 + - python >=3.6 + - pyyaml >=5.3 + - six >=1.13.0 + license: GPL-3.0-only + license_family: GPL + size: 134110 + timestamp: 1697815674808 - kind: conda name: compiler-rt version: 16.0.6 @@ -1336,6 +1431,22 @@ packages: license_family: MIT size: 11787527 timestamp: 1692901622519 +- kind: conda + name: jinja2 + version: 3.1.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda + sha256: 27380d870d42d00350d2d52598cddaf02f9505fb24be09488da0c9b8d1428f2d + md5: 7b86ecb7d3557821c649b3c31e3eb9f2 + depends: + - markupsafe >=2.0 + - python >=3.7 + license: BSD-3-Clause + license_family: BSD + size: 111565 + timestamp: 1715127275924 - kind: conda name: kernel-headers_linux-64 version: 2.6.32 @@ -1860,6 +1971,63 @@ packages: license_family: MIT size: 63655 timestamp: 1710362424980 +- kind: conda + name: libffi + version: 3.4.2 + build: h0d85af4_5 + build_number: 5 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 + sha256: 7a2d27a936ceee6942ea4d397f9c7d136f12549d86f7617e8b6bad51e01a941f + md5: ccb34fb14960ad8b125962d3d79b31a9 + license: MIT + license_family: MIT + size: 51348 + timestamp: 1636488394370 +- kind: conda + name: libffi + version: 3.4.2 + build: h3422bc3_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + sha256: 41b3d13efb775e340e4dba549ab5c029611ea6918703096b2eaa9c015c0750ca + md5: 086914b672be056eb70fd4285b6783b6 + license: MIT + license_family: MIT + size: 39020 + timestamp: 1636488587153 +- kind: conda + name: libffi + version: 3.4.2 + build: h7f98852_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + size: 58292 + timestamp: 1636488182923 +- kind: conda + name: libffi + version: 3.4.2 + build: h8ffe710_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + sha256: 1951ab740f80660e9bc07d2ed3aefb874d78c107264fd810f24a1a6211d4b1a5 + md5: 2c96d1b6915b408893f9472569dee135 + depends: + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + license: MIT + license_family: MIT + size: 42063 + timestamp: 1636489106777 - kind: conda name: libgcc-devel_linux-64 version: 12.3.0 @@ -2098,6 +2266,20 @@ packages: license_family: MIT size: 565451 timestamp: 1702130473930 +- kind: conda + name: libnsl + version: 2.0.1 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + license_family: GPL + size: 33408 + timestamp: 1697359010159 - kind: conda name: libsanitizer version: 12.3.0 @@ -2113,6 +2295,63 @@ packages: license_family: GPL size: 3939615 timestamp: 1715016598795 +- kind: conda + name: libsqlite + version: 3.46.0 + build: h1b8f9f3_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.0-h1b8f9f3_0.conda + sha256: 63af1a9e3284c7e4952364bafe7267e41e2d9d8bcc0e85a4ea4b0ec02d3693f6 + md5: 5dadfbc1a567fe6e475df4ce3148be09 + depends: + - __osx >=10.13 + - libzlib >=1.2.13,<2.0a0 + license: Unlicense + size: 908643 + timestamp: 1718050720117 +- kind: conda + name: libsqlite + version: 3.46.0 + build: h2466b09_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda + sha256: 662bd7e0d63c5b8c31cca19b91649e798319b93568a2ba8d1375efb91eeb251b + md5: 951b0a3a463932e17414cd9f047fa03d + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Unlicense + size: 876677 + timestamp: 1718051113874 +- kind: conda + name: libsqlite + version: 3.46.0 + build: hde9e2c9_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda + sha256: daee3f68786231dad457d0dfde3f7f1f9a7f2018adabdbb864226775101341a8 + md5: 18aa975d2094c34aef978060ae7da7d8 + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<2.0a0 + license: Unlicense + size: 865346 + timestamp: 1718050628718 +- kind: conda + name: libsqlite + version: 3.46.0 + build: hfb93653_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.0-hfb93653_0.conda + sha256: 73048f9cb8647d3d3bfe6021c0b7d663e12cffbe9b4f31bd081e713b0a9ad8f9 + md5: 12300188028c9bc02da965128b91b517 + depends: + - __osx >=11.0 + - libzlib >=1.2.13,<2.0a0 + license: Unlicense + size: 830198 + timestamp: 1718050644825 - kind: conda name: libssh2 version: 1.11.0 @@ -2204,6 +2443,20 @@ packages: license_family: GPL size: 3837704 timestamp: 1715016117360 +- kind: conda + name: libuuid + version: 2.38.1 + build: h0b41bf4_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + depends: + - libgcc-ng >=12 + license: BSD-3-Clause + license_family: BSD + size: 33601 + timestamp: 1680112270483 - kind: conda name: libuv version: 1.48.0 @@ -2258,6 +2511,20 @@ packages: license_family: MIT size: 899979 timestamp: 1709913354710 +- kind: conda + name: libxcrypt + version: 4.4.36 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + md5: 5aa797f8787fe7a17d1b0821485b5adc + depends: + - libgcc-ng >=12 + license: LGPL-2.1-or-later + size: 100393 + timestamp: 1702724383534 - kind: conda name: libxml2 version: 2.12.7 @@ -2463,6 +2730,79 @@ packages: license_family: Apache size: 22221159 timestamp: 1701379965425 +- kind: conda + name: markupsafe + version: 2.1.5 + build: py312h41838bb_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-2.1.5-py312h41838bb_0.conda + sha256: 8dc8f31f78d00713300da000b6ebaa1943a17c112f267de310d5c3d82950079c + md5: c4a9c25c09cef3901789ca818d9beb10 + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - jinja2 >=3.0.0 + license: BSD-3-Clause + license_family: BSD + size: 25742 + timestamp: 1706900456837 +- kind: conda + name: markupsafe + version: 2.1.5 + build: py312h98912ed_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py312h98912ed_0.conda + sha256: 273d8efd6c089c534ccbede566394c0ac1e265bfe5d89fe76e80332f3d75a636 + md5: 6ff0b9582da2d4a74a1f9ae1f9ce2af6 + depends: + - libgcc-ng >=12 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - jinja2 >=3.0.0 + license: BSD-3-Clause + license_family: BSD + size: 26685 + timestamp: 1706900070330 +- kind: conda + name: markupsafe + version: 2.1.5 + build: py312he37b823_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.5-py312he37b823_0.conda + sha256: 61480b725490f68856dd14e646f51ffc34f77f2c985bd33e3b77c04b2856d97d + md5: ba3a8f8cf8bbdb81394275b1e1d271da + depends: + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + constrains: + - jinja2 >=3.0.0 + license: BSD-3-Clause + license_family: BSD + size: 26382 + timestamp: 1706900495057 +- kind: conda + name: markupsafe + version: 2.1.5 + build: py312he70551f_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.5-py312he70551f_0.conda + sha256: f8690a3c87e2e96cebd434a829bb95cac43afe6c439530b336dc3452fe4ce4af + md5: 4950a739b19edaac1ed29ca9474e49ac + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - jinja2 >=3.0.0 + license: BSD-3-Clause + license_family: BSD + size: 29060 + timestamp: 1706900374745 - kind: conda name: ncurses version: '6.5' @@ -2629,6 +2969,293 @@ packages: license_family: Apache size: 2891941 timestamp: 1717545846389 +- kind: conda + name: python + version: 3.12.3 + build: h1411813_0_cpython + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.3-h1411813_0_cpython.conda + sha256: 3b327ffc152a245011011d1d730781577a8274fde1cf6243f073749ead8f1c2a + md5: df1448ec6cbf8eceb03d29003cf72ae6 + depends: + - __osx >=10.9 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.2,<3.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.45.2,<4.0a0 + - libzlib >=1.2.13,<2.0.0a0 + - ncurses >=6.4.20240210,<7.0a0 + - openssl >=3.2.1,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + size: 14557341 + timestamp: 1713208068012 +- kind: conda + name: python + version: 3.12.3 + build: h2628c8c_0_cpython + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/python-3.12.3-h2628c8c_0_cpython.conda + sha256: 1a95494abe572a8819c933f978df89f00bde72ea9432d46a70632599e8029ea4 + md5: f07c8c5dd98767f9a652de5d039b284e + depends: + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.2,<3.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.45.2,<4.0a0 + - libzlib >=1.2.13,<2.0.0a0 + - openssl >=3.2.1,<4.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + size: 16179248 + timestamp: 1713205644673 +- kind: conda + name: python + version: 3.12.3 + build: h4a7b5fc_0_cpython + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.3-h4a7b5fc_0_cpython.conda + sha256: c761fb3713ea66bce3889b33b6f400afb2dd192d1fc2686446e9d8166cfcec6b + md5: 8643ab37bece6ae8f112464068d9df9c + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.2,<3.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.45.2,<4.0a0 + - libzlib >=1.2.13,<2.0.0a0 + - ncurses >=6.4.20240210,<7.0a0 + - openssl >=3.2.1,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + size: 13207557 + timestamp: 1713206576646 +- kind: conda + name: python + version: 3.12.3 + build: hab00c5b_0_cpython + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.3-hab00c5b_0_cpython.conda + sha256: f9865bcbff69f15fd89a33a2da12ad616e98d65ce7c83c644b92e66e5016b227 + md5: 2540b74d304f71d3e89c81209db4db84 + depends: + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.6.2,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc-ng >=12 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.45.2,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 + - libzlib >=1.2.13,<2.0.0a0 + - ncurses >=6.4.20240210,<7.0a0 + - openssl >=3.2.1,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + size: 31991381 + timestamp: 1713208036041 +- kind: conda + name: python_abi + version: '3.12' + build: 4_cp312 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-4_cp312.conda + sha256: 182a329de10a4165f6e8a3804caf751f918f6ea6176dd4e5abcdae1ed3095bf6 + md5: dccc2d142812964fcc6abdc97b672dff + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6385 + timestamp: 1695147396604 +- kind: conda + name: python_abi + version: '3.12' + build: 4_cp312 + build_number: 4 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-4_cp312.conda + sha256: 82c154d95c1637604671a02a89e72f1382e89a4269265a03506496bd928f6f14 + md5: 87201ac4314b911b74197e588cca3639 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6496 + timestamp: 1695147498447 +- kind: conda + name: python_abi + version: '3.12' + build: 4_cp312 + build_number: 4 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-4_cp312.conda + sha256: db25428e4f24f8693ffa39f3ff6dfbb8fd53bc298764b775b57edab1c697560f + md5: bbb3a02c78b2d8219d7213f76d644a2a + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6508 + timestamp: 1695147497048 +- kind: conda + name: python_abi + version: '3.12' + build: 4_cp312 + build_number: 4 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-4_cp312.conda + sha256: 488f8519d04b48f59bd6fde21ebe2d7a527718ff28aac86a8b53aa63658bdef6 + md5: 17f4ccf6be9ded08bd0a376f489ac1a6 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6785 + timestamp: 1695147430513 +- kind: conda + name: pyyaml + version: 6.0.1 + build: py312h02f2b3b_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py312h02f2b3b_1.conda + sha256: b6b4027b89c17b9bbd8089aec3e44bc29f802a7d5668d5a75b5358d7ed9705ca + md5: a0c843e52a1c4422d8657dd76e9eb994 + depends: + - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12.0rc3,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 182705 + timestamp: 1695373895409 +- kind: conda + name: pyyaml + version: 6.0.1 + build: py312h104f124_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py312h104f124_1.conda + sha256: 04aa180782cb675b960c0bf4aad439b4a7a08553c6af74d0b8e5df9a0c7cc4f4 + md5: 260ed90aaf06061edabd7209638cf03b + depends: + - python >=3.12.0rc3,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 185636 + timestamp: 1695373742454 +- kind: conda + name: pyyaml + version: 6.0.1 + build: py312h98912ed_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py312h98912ed_1.conda + sha256: 7f347a10a7121b08d79d21cd4f438c07c23479ea0c74dfb89d6dc416f791bb7f + md5: e3fd78d8d490af1d84763b9fe3f2e552 + depends: + - libgcc-ng >=12 + - python >=3.12.0rc3,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 196583 + timestamp: 1695373632212 +- kind: conda + name: pyyaml + version: 6.0.1 + build: py312he70551f_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py312he70551f_1.conda + sha256: a72fa8152791b4738432f270e70b3a9a4d583ef059a78aa1c62f4b4ab7b15494 + md5: f91e0baa89ba21166916624ba7bfb422 + depends: + - python >=3.12.0rc3,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 167932 + timestamp: 1695374097139 +- kind: conda + name: readline + version: '8.2' + build: h8228510_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + md5: 47d31b792659ce70f470b5c82fdfb7a4 + depends: + - libgcc-ng >=12 + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 281456 + timestamp: 1679532220005 +- kind: conda + name: readline + version: '8.2' + build: h92ec313_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + sha256: a1dfa679ac3f6007362386576a704ad2d0d7a02e98f5d0b115f207a2da63e884 + md5: 8cbb776a2f641b943d413b3e19df71f4 + depends: + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 250351 + timestamp: 1679532511311 +- kind: conda + name: readline + version: '8.2' + build: h9e318b2_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + sha256: 41e7d30a097d9b060037f0c6a2b1d4c4ae7e942c06c943d23f9d481548478568 + md5: f17f77f2acf4d344734bda76829ce14e + depends: + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 255870 + timestamp: 1679532707590 - kind: conda name: rhash version: 1.4.4 @@ -2822,6 +3449,21 @@ packages: license_family: MIT size: 213817 timestamp: 1643442169866 +- kind: conda + name: six + version: 1.16.0 + build: pyh6c4a22f_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + md5: e5f25f8dbc060e9a8d912e432202afc2 + depends: + - python + license: MIT + license_family: MIT + size: 14259 + timestamp: 1620240338595 - kind: conda name: sysroot_linux-64 version: '2.12' @@ -2866,6 +3508,81 @@ packages: license_family: MIT size: 191416 timestamp: 1602687595316 +- kind: conda + name: tk + version: 8.6.13 + build: h1abcd95_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + sha256: 30412b2e9de4ff82d8c2a7e5d06a15f4f4fef1809a72138b6ccb53a33b26faf5 + md5: bf830ba5afc507c6232d4ef0fb1a882d + depends: + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + size: 3270220 + timestamp: 1699202389792 +- kind: conda + name: tk + version: 8.6.13 + build: h5083fa2_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + sha256: 72457ad031b4c048e5891f3f6cb27a53cb479db68a52d965f796910e71a403a8 + md5: b50a57ba89c32b62428b71a875291c9b + depends: + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + size: 3145523 + timestamp: 1699202432999 +- kind: conda + name: tk + version: 8.6.13 + build: h5226925_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + sha256: 2c4e914f521ccb2718946645108c9bd3fc3216ba69aea20c2c3cedbd8db32bb1 + md5: fc048363eb8f03cd1737600a5d08aafe + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: TCL + license_family: BSD + size: 3503410 + timestamp: 1699202577803 +- kind: conda + name: tk + version: 8.6.13 + build: noxft_h4845f30_101 + build_number: 101 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + md5: d453b98d9c83e71da0741bb0ff4d76bc + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + size: 3318875 + timestamp: 1699202167581 +- kind: conda + name: tzdata + version: 2024a + build: h0c530f3_0 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 + md5: 161081fc7cec0bfda0d86d7cb595f8d8 + license: LicenseRef-Public-Domain + size: 119815 + timestamp: 1706886945727 - kind: conda name: ucrt version: 10.0.22621.0 @@ -3009,6 +3726,63 @@ packages: license: LGPL-2.1 and GPL-2.0 size: 217804 timestamp: 1660346976440 +- kind: conda + name: yaml + version: 0.2.5 + build: h0d85af4_2 + build_number: 2 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 + sha256: 5301417e2c8dea45b401ffee8df3957d2447d4ce80c83c5ff151fc6bfe1c4148 + md5: d7e08fcf8259d742156188e8762b4d20 + license: MIT + license_family: MIT + size: 84237 + timestamp: 1641347062780 +- kind: conda + name: yaml + version: 0.2.5 + build: h3422bc3_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 + sha256: 93181a04ba8cfecfdfb162fc958436d868cc37db504c58078eab4c1a3e57fbb7 + md5: 4bb3f014845110883a3c5ee811fd84b4 + license: MIT + license_family: MIT + size: 88016 + timestamp: 1641347076660 +- kind: conda + name: yaml + version: 0.2.5 + build: h7f98852_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 + sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535 + md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + size: 89141 + timestamp: 1641346969816 +- kind: conda + name: yaml + version: 0.2.5 + build: h8ffe710_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 + sha256: 4e2246383003acbad9682c7c63178e2e715ad0eb84f03a8df1fbfba455dfedc5 + md5: adbfb9f45d1004a26763652246a33764 + depends: + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + license: MIT + license_family: MIT + size: 63274 + timestamp: 1641347623319 - kind: conda name: zstd version: 1.5.6 diff --git a/pixi.toml b/pixi.toml index 0c9a4d0..d8d0f9c 100644 --- a/pixi.toml +++ b/pixi.toml @@ -5,7 +5,7 @@ channels = ["conda-forge"] platforms = ["linux-64", "win-64", "osx-arm64", "osx-64"] [tasks] -format = {depends_on = ["format-rust", "format-cpp"] } +format = {depends_on = ["format-rust", "format-cpp", "format-cmake"] } test = {depends_on = ["test-rust", "test-cpp"] } # ---- Build Rust using Cargo ---- @@ -50,10 +50,14 @@ solve-group = "default" # ---- Format C++ ---- [feature.format-cpp.dependencies] clang-format = ">=18.1.6,<18.2" +cmake-format = ">=0.6.13,<0.7" [feature.format-cpp.tasks.format-cpp] cmd = "clang-format -i cpp/include/*.h cpp/tests/*.cpp" +[feature.format-cpp.tasks.format-cmake] +cmd = "cmake-format -i CMakeLists.txt cpp/CMakeLists.txt cpp/tests/CMakeLists.txt" + [environments.format-cpp] features=["format-cpp"] solve-group="default" diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml new file mode 100644 index 0000000..871d188 --- /dev/null +++ b/recipe/recipe.yaml @@ -0,0 +1,30 @@ +package: + name: resolvo-cpp + version: 0.1.0 + +source: + - path: ../ + +build: + number: 0 + script: + - if: win + then: | + cmake %CMAKE_ARGS% -GNinja %SRC_DIR% + ninja install + else: | + cmake ${CMAKE_ARGS} -GNinja $SRC_DIR -DRust_CARGO_TARGET=${CARGO_BUILD_TARGET} + ninja install + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('rust') }} + - cmake + - ninja + +about: + license: BSD-3-Clause + summary: C++ bindings for resolvo, a universal package resolver. + repository: https://github.com/mamba-org/resolvo + diff --git a/recipe/variant_config.yaml b/recipe/variant_config.yaml new file mode 100644 index 0000000..d2c9ab8 --- /dev/null +++ b/recipe/variant_config.yaml @@ -0,0 +1 @@ +rust_compiler_version: ">=1.75" diff --git a/tools/solve-snapshot/Cargo.toml b/tools/solve-snapshot/Cargo.toml index c8d9d10..6cefb05 100644 --- a/tools/solve-snapshot/Cargo.toml +++ b/tools/solve-snapshot/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" publish = false [dependencies] -resolvo = { path = "../../../resolvo", features = ["serde"] } +resolvo = { path = "../..", features = ["serde"] } clap = { version = "4.5", features = ["derive"] } csv = "1.3" serde_json = "1.0"