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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1a8f50bb3abba39273707f254f6ebb8b8f4533328559da5ebf716a40e51a782 |
|
MD5 | 593e9f1239541f80170ca5912a222587 |
|
BLAKE2b-256 | 00045f8b4c48078aec83302ac54670d47cad3223e21fef3226088aff14b35b08 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8a972d750300b4ad5c47fe49c00662dd36ef651e4f0decda7743ca828a9fb3e |
|
MD5 | c667587491d8dd70112d03716121aeab |
|
BLAKE2b-256 | 7ac9d2025d911a77f0b0bf900819e5bf13e36302afdfd7585ab56261c55982de |