-
-
Notifications
You must be signed in to change notification settings - Fork 5
Understanding the framework library layout
The framework has multiple packaging modes. This page serves as an introduction to them and their subsequent library and executable layouts.
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.
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.
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.
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
- 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