Examples
CodeFrame currently supports two main dependency types:
library
env
(Coming Soon)
Library
External Libraries
Libraries that are not part of your project but are pulled in as dependencies.
These can be third-party/vendor libraries (e.g., glfw
, fmt
, imgui
) or even your own libraries that live outside the project’s source tree.
They are referenced via the libPath
property (usually under libs/external/
), and typically include:
source
dependencies → raw.cpp/.c/.h
filesheader_only
dependencies → headers only, no compiled artifactsstatic
ordynamic
dependencies → precompiled binaries you link against
Unlike internal libraries, external libraries never use the "custom": true
flag — they’re consumed “as is” by your project.
Source (linkType: "source"
)
library consisting of source files e.g. (.cpp / .c / .h) files all within the include
directory within the library folder.
{
"name": "codeframe",
"libPath": "external/codeframe",
"linkType": "source",
"version": "0.0.1"
}
{
"name": "imgui",
"libPath": "external/imgui",
"linkType": "source",
"options": {
"backends": ["glfw", "vulkan"]
},
"version": "1.91.0"
}
Header Only (linkType: "header_only"
)
{
"name": "fmt",
"libPath": "external/fmt",
"version": "10.2",
"linkType": "header_only"
}
Static / Dynamic (linkType: "static" or "dynamic"
)
{
"name": "glfw",
"libPath": "external/glfw",
"linkType": < "static" | "dynamic" >,
"libs": ["glfw3"],
"version": "3.5"
}
Internal Libraries
Internal Libraries
Libraries that are part of your own project.
Setting "custom": true
marks the library as internal.
With this, you can control the outputType
:
- static → only static library
- dynamic → only shared library
- all / * → build both
{
"name": "codeframe",
"libPath": "codeframe",
"linkType": "source",
"custom": true,
"outputType": "static"
}
Env
(Coming Soon)