Skip to main content

Operating System Development Kit

Project description

osdk

The operating system development kit

Table of contents

Macros

@latest

Find the latest version of a command in the path.

"cc": {
    "cmd": ["@latest", "clang"], // clang-14
/* ... */

@uname

Query the system for information about the current operating system.

"cc": {
    "cmd": ["@uname", "machine"], // "x86_64"
/* ... */

@include

Include a file

@join

Join two objects

Example:

["@join",  {"a": 1}, {"b": 2}] // {"a": 1, "b": 2}

@concat

Concatenate strings

Example:

["@concat", "a", "b", "c"] // "abc"

@exec

Execute a command and return the output

Example:

["@exec", "uname", "-m"] // "x86_64"

Manifest file format

id

The id of the package. This is used to identify the package in the manifest file.

Exemple:

{
    "id": "hello"
}

type

The type of the package. This is used to identify the package in the manifest file.

Exemple:

{
    "type": "exe"
}

description

The description of the package for the user.

Exemple:

{
    "description": "Hello world"
}

enabledIf

A list of requirements for the package check agaisnt the build props. If the requirement is not met, the package will be disabled.

{
    "enabledIf": {
        "freestanding": [
            false
        ]
    }
}

requires

Dependencies of the package. The name listed here must be the same as the id of the package or member of a provide list.

Exemple:

{
    "requires": [
        "libc",
        "libm"
    ]
}

provides

Alias for the package.

Exemple:

{
    "provides": [
        "hello"
    ]
}

Target file format

id

The id of the target. This is used to identify the target in the target file.

type

Should be target.

props

A list of properties for the target.

Exemple:

{
    "props": {
        "arch": "x86_64",
        "vendor": "pc",
        "os": "linux",
        "env": "gnu",
        "abi": "elf",
        "cpu": "x86_64",
        "features": "fxsr,sse,sse2"
    }
}

Theses values are exposed the translation unit as __osdk_{prop}__.

tools

A list of tools for the target.

{
    "tools": {
        "cc": {
            "cmd": ["@latest", "clang"],
            "args": [
                "-target",
                "x86_64-unknown-windows",
                "-ffreestanding",
                "-fno-stack-protector",
                "-fshort-wchar",
                "-mno-red-zone"
            ]
        },
        "cxx": {
            "cmd": ["@latest", "clang++"],
            "args": [
                "-target",
                "x86_64-unknown-windows",
                "-ffreestanding",
                "-fno-stack-protector",
                "-fshort-wchar",
                "-mno-red-zone"
            ]
        },
        "ld": {
            "cmd": ["@latest", "clang++"],
            "args": [
                "-target",
                "x86_64-unknown-windows",
                "-nostdlib",
                "-Wl,-entry:efi_main",
                "-Wl,-subsystem:efi_application",
                "-fuse-ld=lld-link"
            ]
        },
        "ar": {
            "cmd": ["@latest", "llvm-ar"],
            "args": [
                "rcs"
            ]
        },
        "as": {
            "cmd": "nasm",
            "args": [
                "-f",
                "win64"
            ]
        }
    }
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

osdk-0.4.0.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

osdk-0.4.0-py3-none-any.whl (22.4 kB view details)

Uploaded Python 3

File details

Details for the file osdk-0.4.0.tar.gz.

File metadata

  • Download URL: osdk-0.4.0.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for osdk-0.4.0.tar.gz
Algorithm Hash digest
SHA256 f1a8f50bb3abba39273707f254f6ebb8b8f4533328559da5ebf716a40e51a782
MD5 593e9f1239541f80170ca5912a222587
BLAKE2b-256 00045f8b4c48078aec83302ac54670d47cad3223e21fef3226088aff14b35b08

See more details on using hashes here.

File details

Details for the file osdk-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: osdk-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for osdk-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c8a972d750300b4ad5c47fe49c00662dd36ef651e4f0decda7743ca828a9fb3e
MD5 c667587491d8dd70112d03716121aeab
BLAKE2b-256 7ac9d2025d911a77f0b0bf900819e5bf13e36302afdfd7585ab56261c55982de

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page