Package Managers

Requirements

  • Dependencies
  • Allow source or binary forms
  • Provide build dependencies
    • Recursive dependencies
  • Compatible with SVN repo layout
  • Cross-platform utils
  • UI?

asbo

Language : Ruby, INI

Interface : cli

Integration : TeamCity, FTP

Concepts : include path substitution, library path substitution

pkg-config

RTSC / XDCtools

Language : Javascript, Mozilla Rhino

Interface : cli, GUI

Platforms : Linux, Win, any javascript

Tools

Run using "xs xdc.tools.tool"

Repo paths : path, path.sg

Repo manager : repoman, repoman.sg

Build config : configuro, configuro.sg

Concepts

  • Canonical package directory: cognomen.utils.c-msggen/
  • Arbitrarily name package repos
  • Package paths (much like Java Classpaths)
  • Canonical include paths?

    include

    include

    include

  • Build configuration in prog.cfg (JavaScript)

  • configuro takes prog.cfg and produces compiler.opt and linker.cmd

Pulling package dependencies

Linking to shared libs

buildr

See BuildrForC

mingw-get

  • cli and gui
  • Win only?

opkg

  • No windows client

chocolatey

Links