packages feed

cpkg-0.2.5.1: dhall/cpkg-types.dhall

let OS =
      < FreeBSD
      | OpenBSD
      | NetBSD
      | Solaris
      | Dragonfly
      | Linux
      | Darwin
      | Windows
      | Redox
      | Haiku
      | IOS
      | AIX
      | Hurd
      | Android
      | NoOs
      >

let Arch =
      < X64
      | AArch
      | Arm
      | RISCV64
      | PowerPC
      | PowerPC64
      | PowerPC64le
      | Sparc64
      | S390x
      | Alpha
      | M68k
      | Mips
      | MipsEl
      | Mips64
      | Mips64El
      | X86
      | SH4
      | HPPA
      | HPPA64
      | MipsIsa32r6El
      | MipsIsa32r6
      | MipsIsa64r6El
      | MipsIsa64r6
      >

let Manufacturer = < Unknown | Apple | IBM | PC >

let ABI = < GNU | GNUabi64 | GNUeabi | GNUeabihf | GNUspe | MinGw >

let TargetTriple =
      { arch : Arch
      , manufacturer : Optional Manufacturer
      , os : OS
      , abi : Optional ABI
      }

let BuildVars =
      { installDir : Text
      , currentDir : Text
      , targetTriple : Optional TargetTriple
      , isCross : Bool
      , includeDirs : List Text
      , preloadLibs : List Text
      , shareDirs : List Text
      , linkDirs : List Text
      , binDirs : List Text
      , buildOS : OS
      , buildArch : Arch
      , static : Bool
      , cpus : Natural
      }

let VersionBound =
      < Lower : { lower : List Natural }
      | Upper : { upper : List Natural }
      | LowerUpper : { lower : List Natural, upper : List Natural }
      | NoBound
      >

let Dep = { name : Text, bound : VersionBound }

let EnvVar = { var : Text, value : Text }

let Proc =
      { program : Text
      , arguments : List Text
      , environment : Optional (List EnvVar)
      , procDir : Optional Text
      }

let Command =
      < CreateDirectory : { dir : Text }
      | MakeExecutable : { file : Text }
      | Call : Proc
      | SymlinkBinary : { file : Text }
      | SymlinkManpage : { file : Text, section : Natural }
      | Symlink : { tgt : Text, linkName : Text }
      | Write : { file : Text, contents : Text }
      | CopyFile : { src : Text, dest : Text }
      | Patch : { patchContents : Text }
      >

in  { OS
    , BuildVars
    , VersionBound
    , Dep
    , Arch
    , Manufacturer
    , ABI
    , TargetTriple
    , Command
    , EnvVar
    , Proc
    }