-
-
Notifications
You must be signed in to change notification settings - Fork 8
[EU] Custom libraries and sources
The UVKBuildTool
now outputs custom CMakeLists.txt
files to enable adding additional libraries and sources into the projects defined.
Open the settings menu, located on the top header bar, select the Game Settings
option and use the Add library
button, then follow the steps
Open up your uvproj.yaml
file to edit it
Example:
additional-include-directories:
msvc:
- test/include
unix:
- test/include
Under the additional-include-directories
we specify the target compilers and under each compiler we list the paths as strings
If a library you're linking contains a CMakeLists.txt
file, you can add it as a subdirectory using the following syntax
additional-subdirectories:
msvc:
- "test/cmake"
unix:
- "test/cmake"
Here, we again use the syntax of specifying the compilers and listing the path for each compiler
To add a library name to be linked to a target, we use the following syntax
additional-link-libraries:
msvc:
- target: test
engine: false
wrapper: true
modded-wrapper: true
unix:
- target: test
engine: false
wrapper: true
modded-wrapper: true
Here, under every compiler, a target with a name is defined, the name of the target should be the name of the library you're trying to link with. The remaining options are the targets to link the library to. The engine
tag also includes the game because they are 1 library.
Here is an example:
additional-source-libraries:
msvc:
engine:
glob:
- test/src/*.cpp
individual:
- test/includes/als.cpp
unix:
engine:
glob:
- test/src/*.cpp
individual:
- test/includes/als.cpp
additional-header-libraries:
msvc:
engine:
glob:
- test/include/*.hpp
individual:
- test/includes/als.hpp
unix:
engine:
glob:
- test/include/*.hpp
individual:
- test/includes/als.hpp
Syntactically they work in the exact same way, the only difference is that the header tag and where each type of file should go. Here we define our compilers as listed in the previous points, but under the compiler we add a target, there are 4 possible targets:
engine:
wrapper:
modded-wrapper:
Under each target, we define 2 types, glob
and individual
, the glob
type can take a string with a wildcard, while the individual cannot, these files are then evaluated and added to a source, which gets compiled into its respective target.
The engine
tag is used for both the game and the engine, since they are compiled together.
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 concepts
- Advanced concepts
- Engine developer and contributor resources