Skip to content

Updated for incremental builds and multiple environments#1

Open
ruschaaf wants to merge 4 commits intomamba-org:mainfrom
ruschaaf:main
Open

Updated for incremental builds and multiple environments#1
ruschaaf wants to merge 4 commits intomamba-org:mainfrom
ruschaaf:main

Conversation

@ruschaaf
Copy link
Copy Markdown

@ruschaaf ruschaaf commented Jun 1, 2023

Overview

Updated the micromamba.cmake script with some new features:

  • Can download linux micromamba binaries
  • Doesn't require tar to support the -C flag (missing on Ubuntu at least)
  • Puts all micromamba products (binaries and environments) into the build directory
  • Can build an environment from a spec file or files
  • Supports multiple micromamba environments
  • Incremental updates to existing environments - runs micromamba create the first time and micromamba install if there is an existing environment
  • Spec files will be config dependencies, so modifying a spec file will
    automatically reconfigure the project next time cmake does a build

Note: This also sets up micromamba to install for the host system (i.e. the one doing the compilation).
If you are doing cross-compilation and need a micromamba environment for the target system, additional modifications to this
script may be needed.

Purpose

The reason for these changes is that I wanted to be able to create isolated python environments within a project, and be able to have a simple manifest that listed all the python packages I needed). micromamba was a very useful tool but I ran into some missing features for my cmake build like support for Ubuntu, and the ability to create multiple environments (for example separate environments for the main build and building test code)

ruschaaf added 4 commits June 1, 2023 11:38
* Supports linux (non-macos)
* Puts all micromamba products into the build directory
* Can build an environment from a spec file
* Supports multiple micromamba environments
* Incremental updates to existing environments
* Spec files will be config dependencies, so modifying a spec file will
   automatically reconfigure the project next time cmake does a build

Note: This also set up micromamba to install for the _host_ system
(i.e. the one doing the compliation)
If you are doing cross-compliation and need a micromamba environment
for the _target_ system, additional modifications to this
script may be needed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant