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.1.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: osdk-0.4.1.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.1.tar.gz
Algorithm Hash digest
SHA256 baa08b01cfd20d03756a73bbf27d6793183db752f666d76de26c548a22a9c3e4
MD5 a9149a8502fb910fb30ed63480594604
BLAKE2b-256 2ae4a092ec6fdf71e4fcdb52a7cbe6871e6bcb44716c9aeed9224dacfb04c491

See more details on using hashes here.

File details

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

File metadata

  • Download URL: osdk-0.4.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0c5c9c81de241b2e159eb6d0c4cb6f424654b443e6fbe4fbfc26101f99d6cf10
MD5 2080348a61d7bf3900b1fa594d15e6ac
BLAKE2b-256 8e56177deb140e2f797030f33182f84b45adbaf8abf51b53d80509bdec7f611c

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