Examples
CodeFrame currently supports two main dependency types:
libraryenv(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:
sourcedependencies → raw.cpp/.c/.hfilesheader_onlydependencies → headers only, no compiled artifactsstaticordynamicdependencies → 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)