The framework has multiple packaging modes. This page serves as an introduction to them and their subsequent library and executable layouts.
Static vs. Shared mode
When compiling in static mode, all framework, application and wrapper executable code is packaged into a single executable. In shared mode, depending on the platform, the framework, application and wrapper executable are separate atoms that are loaded at runtime. More information below.
Shared mode Windows
On Windows, shared mode produces 2 binaries:
- The
framework-application
library - The wrapper executable
The framework-application
library combines the code of
the framework and application into a single DLL, which is then loaded by
the wrapper executable or by plugins.
This approach is different from Unix, where there are 3 binaries. This is mainly caused by restrictions placed on us by MSVC and on us trying to discourage shipping the framework system-wide.
Because the library is not supposed to be shipped globally, disabling modules at compile time is a fine thing to do.
Shared mode on Unix
On Unix-based systems, shared mode produces 3 binaries:
- Framework library
- Application library
- Wrapper executable
In most cases, the framework library, produced by building the application locally, is used only in development, as the same application deployed as a production package may use the system-wide framework library.
The application library is a shared library that contains all source
code under Source/
.
This layout is preferable on Unix systems, as the framework library can be shipped globally, while allowing plugins to access application code through the application library.
- Home
- Beginner content
- Install guide
- Creating and using the UI components
- The Instance
- The Init Info struct
- 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
- Developer and contributor resources
- Misc