-
-
Notifications
You must be signed in to change notification settings - Fork 7
Config files and folder structure
Here we will detail the different folder and config file locations and their purpose.
The core framework directory, a.k.a. the one you see first on the GitHub web interface, contains the following folders and files:
-
.github- For GitHub and git specific data, GitHub actions workflows, issue and PR templates -
Config- The default config folder containing the default config files- Core - Contains core configs
- Translations - Translation configs for the i18n module
-
Content- The default content folder, contains example images and icons -
Framework- Contains the entire source code and dependencies for the framework, for more info for framework developers scroll to the bottom of the page -
Projects- Contains your projects -
UVKBuildTool- Contains theUVKBuildTooland its source code -
create-project.sh- Used to create a project -
export.sh- Used to export your application for production distribution -
install.sh- The framework installation script -
update.sh- An automated script to update your project and framework to a new version
Additionally, every project contains those additional files and folders:
-
Exported- For storing your final production builds -
Generated- For generated files and sources -
Source- For your application's source code -
CMakeLists.txt- The CMake project file -
uvproj.yaml- Your project's config
The uvproj.yaml file contains metadata for the project, such as:
- The application name
- The application version
- The engine version. Can be the version of the framework, or another version identifier for another base library you use on top of the framework
- A list of enabled modules. Further documentation.
- A list of production installation instructions. Further documentation.
- Production export build modes. Further documentation
The most basic configuration looks like this:
name: "UntitledGameSystemManager"
version: "1.0.0.0"
engine-version: "1.0.0.0"This basic information can be fetched through the Instance. More information can be found here.
Tip
If you want to reliably check the version of the framework, you can use the UIMGUI_FRAMEWORK_VERSION and UIMGUI_FRAMEWORK_VERSION_NUMERIC compiler definitions. You can use UIMGUI_FRAMEWORK_VERSION_NUMERIC for easy comparison in macro #if conditions.
Versions are converted to base 10 integers with any leading zeroes being removed. For example: 0.9.9.7 becomes 997, and 1.0.0.0 becomes 1000
The config files are located under the Config folder, which itself contains 2 directories, Core and Translation.
The Core directory stores the following files:
-
DefaultLayout.ini- The layout files for the UI, do not modify directly -
FallbackLayout.ini- The fallback layout for the UI in case your normal file cannot be found, do not modify directly -
Keybindings.yaml- For custom keybindings, detailed in later wiki entries -
Modules.yaml- Themodulesconfig file, contains saved settings for different modules, detailed in later entries -
Renderer.yaml- The settings for the renderer, detailed in later entries -
Window.yaml- The settings for the window, detailed in later entries
The Translation folder initially stores just one file, translation-base.yaml. This file defines all strings
that can be translated by the localization module. Additionally, you can create additional files using the standard
locale naming structure for creating translations. More info can be found in later entries.
The WASM directory contains the pre.js and post.js files that are used if the options for adding pre- and post-javascript files are enabled respectively. More info on deploying to WASM, can be found here.
Finally, the cmake folder stores the <project name>.cmake file. More info about this file can be found here.
Check out the Directory strings and Config.hpp page.
This project is supported by all the people who joined our discord server and became beta testers. If you want to join the discord you can click here.
- Home
- Beginner content
- Install guide
- Creating and using the UI components
- The Instance
- The Init Info struct
- Building better titlebar menus
- Textures
- Logging
- Unicode support
- Additional features
- Client-side bar
- Custom type definitions
- Memory management
- C API development
- Config files and Folders
- Interfaces
- Internal Event safety
- Customising the build system
- Modules system
- Collaborating with others
- Advanced content
- Loading dynamic libraries at runtime
- Understanding the library layout
- Compilation mode modifiers
- Supporting plugins
- Production export and deployment
- OS integration tips
- Targeting WASM
- Using a custom rendering engine:
- Using a custom windowing backend:
- Developer and contributor resources
- Misc