mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-08-19 20:07:20 +00:00
feat/tracy: basic tracy implementation
This commit is contained in:
parent
9c0dfd60d5
commit
4cdc29bbf4
|
|
@ -89,6 +89,12 @@ pip install meson ninja
|
||||||
|
|
||||||
Or follow the [Meson quickstart guide](https://mesonbuild.com/Quick-guide.html).
|
Or follow the [Meson quickstart guide](https://mesonbuild.com/Quick-guide.html).
|
||||||
|
|
||||||
|
### Tracy profiler
|
||||||
|
|
||||||
|
This project can be built with Tracy profiling support. Tracy is available as a meson subproject (bundled in `subprojects/tracy`) and many distributions provide the Tracy tooling; on Arch/Manjaro you can get the latest build from the AUR as `tracy-git`.
|
||||||
|
|
||||||
|
Tracy can be directly enabled if you enable the tracy meson option before compiling.
|
||||||
|
|
||||||
#### Docker (alternative)
|
#### Docker (alternative)
|
||||||
|
|
||||||
If you don't want to install dependencies, use the included devcontainer. Open the project in VS Code with the [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension, or build manually:
|
If you don't want to install dependencies, use the included devcontainer. Open the project in VS Code with the [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension, or build manually:
|
||||||
|
|
|
||||||
78
meson.build
78
meson.build
|
|
@ -1,16 +1,16 @@
|
||||||
project(
|
project(
|
||||||
'4jcraft',
|
'4jcraft',
|
||||||
['cpp', 'c'],
|
['cpp', 'c'],
|
||||||
version: '0.1.0',
|
version: '0.1.0',
|
||||||
meson_version: '>= 1.3',
|
meson_version: '>= 1.3',
|
||||||
default_options: [
|
default_options: [
|
||||||
'cpp_std=c++23',
|
'cpp_std=c++23',
|
||||||
'warning_level=0',
|
'warning_level=0',
|
||||||
'buildtype=debugoptimized', # for now
|
'buildtype=debugoptimized', # for now
|
||||||
'unity=on', # merge source files per target
|
'unity=on', # merge source files per target
|
||||||
'unity_size=8', # TODO: mess around with this
|
'unity_size=8', # TODO: mess around with this
|
||||||
'b_pch=true', # precompiled headers
|
'b_pch=true', # precompiled headers
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
pymod = import('python')
|
pymod = import('python')
|
||||||
|
|
@ -19,30 +19,30 @@ python = pymod.find_installation('python3', required: true)
|
||||||
cc = meson.get_compiler('cpp')
|
cc = meson.get_compiler('cpp')
|
||||||
|
|
||||||
global_cpp_defs = [
|
global_cpp_defs = [
|
||||||
'-DSPLIT_SAVES',
|
'-DSPLIT_SAVES',
|
||||||
'-D_LARGE_WORLDS',
|
'-D_LARGE_WORLDS',
|
||||||
'-D_EXTENDED_ACHIEVEMENTS',
|
'-D_EXTENDED_ACHIEVEMENTS',
|
||||||
'-D_DEBUG_MENUS_ENABLED',
|
'-D_DEBUG_MENUS_ENABLED',
|
||||||
'-D_DEBUG',
|
'-D_DEBUG',
|
||||||
'-D_FORTIFY_SOURCE=2',
|
'-D_FORTIFY_SOURCE=2',
|
||||||
'-DDEBUG',
|
'-DDEBUG',
|
||||||
]
|
]
|
||||||
|
|
||||||
if host_machine.system() == 'linux'
|
if host_machine.system() == 'linux'
|
||||||
global_cpp_defs += ['-Dlinux', '-D__linux', '-D__linux__']
|
global_cpp_defs += ['-Dlinux', '-D__linux', '-D__linux__']
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get_option('renderer') == 'gles'
|
if get_option('renderer') == 'gles'
|
||||||
global_cpp_defs += ['-DGLES']
|
global_cpp_defs += ['-DGLES']
|
||||||
gl_dep = dependency('glesv2', required: true)
|
gl_dep = dependency('glesv2', required: true)
|
||||||
glu_dep = dependency('', required: false)
|
glu_dep = dependency('', required: false)
|
||||||
else
|
else
|
||||||
gl_dep = dependency('gl', required: true)
|
gl_dep = dependency('gl', required: true)
|
||||||
glu_dep = dependency('glu', required: true)
|
glu_dep = dependency('glu', required: true)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get_option('enable_vsync')
|
if get_option('enable_vsync')
|
||||||
global_cpp_defs += ['-DENABLE_VSYNC']
|
global_cpp_defs += ['-DENABLE_VSYNC']
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get_option('classic_panorama')
|
if get_option('classic_panorama')
|
||||||
|
|
@ -50,22 +50,22 @@ if get_option('classic_panorama')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get_option('enable_frame_profiler')
|
if get_option('enable_frame_profiler')
|
||||||
global_cpp_defs += ['-DENABLE_FRAME_PROFILER']
|
global_cpp_defs += ['-DENABLE_FRAME_PROFILER']
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get_option('ui_backend') == 'shiggy'
|
if get_option('ui_backend') == 'shiggy'
|
||||||
global_cpp_defs += ['-D_ENABLEIGGY']
|
global_cpp_defs += ['-D_ENABLEIGGY']
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if get_option('ui_backend') == 'java'
|
if get_option('ui_backend') == 'java'
|
||||||
global_cpp_defs += '-DENABLE_JAVA_GUIS'
|
global_cpp_defs += '-DENABLE_JAVA_GUIS'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
add_project_arguments(global_cpp_defs, language: ['cpp', 'c'])
|
add_project_arguments(global_cpp_defs, language: ['cpp', 'c'])
|
||||||
|
|
||||||
global_cpp_args = [
|
global_cpp_args = [
|
||||||
'-Wshift-count-overflow',
|
'-Wshift-count-overflow',
|
||||||
'-pipe',
|
'-pipe',
|
||||||
]
|
]
|
||||||
add_project_arguments(global_cpp_args, language: 'cpp')
|
add_project_arguments(global_cpp_args, language: 'cpp')
|
||||||
|
|
||||||
|
|
@ -79,6 +79,20 @@ stb_dep = declare_dependency(include_directories: stb)
|
||||||
|
|
||||||
miniaudio_dep = dependency('miniaudio')
|
miniaudio_dep = dependency('miniaudio')
|
||||||
|
|
||||||
|
tracy_opt = get_option('tracy')
|
||||||
|
|
||||||
|
if not tracy_opt.disabled()
|
||||||
|
tracy_proj = subproject('tracy', required: tracy_opt, default_options: ['tracy_enable=true'])
|
||||||
|
if tracy_proj.found()
|
||||||
|
tracy_client_dep = tracy_proj.get_variable('tracy_dep')
|
||||||
|
add_project_arguments('-DTRACY_ENABLE', language: ['cpp', 'c'])
|
||||||
|
else
|
||||||
|
tracy_client_dep = dependency('', required: false)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
tracy_client_dep = dependency('', required: false)
|
||||||
|
endif
|
||||||
|
|
||||||
subdir('targets/util')
|
subdir('targets/util')
|
||||||
subdir('targets/java')
|
subdir('targets/java')
|
||||||
subdir('targets/nbt')
|
subdir('targets/nbt')
|
||||||
|
|
@ -86,4 +100,4 @@ subdir('targets/platform')
|
||||||
|
|
||||||
subdir('targets/resources')
|
subdir('targets/resources')
|
||||||
subdir('targets/minecraft')
|
subdir('targets/minecraft')
|
||||||
subdir('targets/app')
|
subdir('targets/app')
|
||||||
|
|
@ -7,8 +7,8 @@ option(
|
||||||
)
|
)
|
||||||
|
|
||||||
option('classic_panorama',
|
option('classic_panorama',
|
||||||
type : 'boolean',
|
type : 'boolean',
|
||||||
value : false,
|
value : false,
|
||||||
description : 'Enable classic java edition panorama (ui_backend=java ONLY).')
|
description : 'Enable classic java edition panorama (ui_backend=java ONLY).')
|
||||||
|
|
||||||
option(
|
option(
|
||||||
|
|
@ -40,3 +40,10 @@ option(
|
||||||
value: 'frustum',
|
value: 'frustum',
|
||||||
description: 'Occlusion culling mode. Off disables ALL CULLING (debug only!), Frustum disables offscreen rendering (default), BFS is experimental connectivity culling, hardware uses GPU queries.',
|
description: 'Occlusion culling mode. Off disables ALL CULLING (debug only!), Frustum disables offscreen rendering (default), BFS is experimental connectivity culling, hardware uses GPU queries.',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
option(
|
||||||
|
'tracy',
|
||||||
|
type: 'feature',
|
||||||
|
value: 'auto',
|
||||||
|
description: 'Enable Tracy profiler'
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,13 @@
|
||||||
#include "minecraft/server/PlayerList.h"
|
#include "minecraft/server/PlayerList.h"
|
||||||
#include "minecraft/server/level/ServerPlayer.h"
|
#include "minecraft/server/level/ServerPlayer.h"
|
||||||
|
|
||||||
|
#ifdef TRACY_ENABLE
|
||||||
|
#include <tracy/Tracy.hpp>
|
||||||
|
#else
|
||||||
|
#define ZoneScoped
|
||||||
|
#define ZoneScopedN(name)
|
||||||
|
#endif
|
||||||
|
|
||||||
class BeaconTileEntity;
|
class BeaconTileEntity;
|
||||||
class BrewingStandTileEntity;
|
class BrewingStandTileEntity;
|
||||||
class DispenserTileEntity;
|
class DispenserTileEntity;
|
||||||
|
|
@ -2202,6 +2209,7 @@ void Game::SetActionConfirmed(void* param) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Game::HandleXuiActions(void) {
|
void Game::HandleXuiActions(void) {
|
||||||
|
ZoneScoped;
|
||||||
eXuiAction eAction;
|
eXuiAction eAction;
|
||||||
eTMSAction eTMS;
|
eTMSAction eTMS;
|
||||||
void* param;
|
void* param;
|
||||||
|
|
@ -4394,6 +4402,7 @@ void Game::InitTime() {
|
||||||
// Desc: Updates the elapsed time since our last frame.
|
// Desc: Updates the elapsed time since our last frame.
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
void Game::UpdateTime() {
|
void Game::UpdateTime() {
|
||||||
|
ZoneScoped;
|
||||||
auto qwNewTime = time_util::clock::now();
|
auto qwNewTime = time_util::clock::now();
|
||||||
auto qwDeltaTime = qwNewTime - m_Time.qwTime;
|
auto qwDeltaTime = qwNewTime - m_Time.qwTime;
|
||||||
|
|
||||||
|
|
@ -5557,6 +5566,7 @@ void Game::unlockSaveNotification() {
|
||||||
}
|
}
|
||||||
|
|
||||||
int Game::RemoteSaveThreadProc(void* lpParameter) {
|
int Game::RemoteSaveThreadProc(void* lpParameter) {
|
||||||
|
ZoneScoped;
|
||||||
// The game should be stopped while we are doing this, but the connections
|
// The game should be stopped while we are doing this, but the connections
|
||||||
// ticks may try to create some AABB's or Vec3's
|
// ticks may try to create some AABB's or Vec3's
|
||||||
Compression::UseDefaultThreadStorage();
|
Compression::UseDefaultThreadStorage();
|
||||||
|
|
|
||||||
|
|
@ -1,102 +1,106 @@
|
||||||
exclude_sources = [
|
exclude_sources = [
|
||||||
' ! -path "*/common/*"',
|
' ! -path "*/common/*"',
|
||||||
' ! -path "*/linux/*"',
|
' ! -path "*/linux/*"',
|
||||||
' ! -path "*/windows/*"',
|
' ! -path "*/windows/*"',
|
||||||
]
|
]
|
||||||
|
|
||||||
# all sources except common/, linux/, windows/
|
# all sources except common/, linux/, windows/
|
||||||
client_sources = run_command(
|
client_sources = run_command(
|
||||||
'sh',
|
'sh',
|
||||||
'-c', 'find "'
|
'-c', 'find "'
|
||||||
+ meson.current_source_dir()
|
+ meson.current_source_dir()
|
||||||
+ '" \\( -name "*.cpp" -o -name "*.c" \\)'
|
+ '" \\( -name "*.cpp" -o -name "*.c" \\)'
|
||||||
+ ' '.join(exclude_sources),
|
+ ' '.join(exclude_sources),
|
||||||
check: true,
|
check: true,
|
||||||
).stdout().strip().split('\n')
|
).stdout().strip().split('\n')
|
||||||
|
|
||||||
exclude_platform_common_sources = [
|
exclude_platform_common_sources = [
|
||||||
' ! -name "UIScene_InGameSaveManagementMenu.cpp"',
|
' ! -name "UIScene_InGameSaveManagementMenu.cpp"',
|
||||||
]
|
]
|
||||||
|
|
||||||
# all sources in common/
|
# all sources in common/
|
||||||
platform_sources = run_command(
|
platform_sources = run_command(
|
||||||
'sh',
|
'sh',
|
||||||
'-c', 'find "'
|
'-c', 'find "'
|
||||||
+ meson.current_source_dir() / 'common'
|
+ meson.current_source_dir() / 'common'
|
||||||
+ '" \\( -name "*.cpp" -o -name "*.c" \\)'
|
+ '" \\( -name "*.cpp" -o -name "*.c" \\)'
|
||||||
+ ' '.join(exclude_platform_common_sources),
|
+ ' '.join(exclude_platform_common_sources),
|
||||||
check: true,
|
check: true,
|
||||||
).stdout().strip().split('\n')
|
).stdout().strip().split('\n')
|
||||||
|
|
||||||
# linux-specific files
|
# linux-specific files
|
||||||
if host_machine.system() == 'linux'
|
if host_machine.system() == 'linux'
|
||||||
platform_sources += run_command(
|
platform_sources += run_command(
|
||||||
'sh',
|
'sh',
|
||||||
'-c', 'find "'
|
'-c', 'find "'
|
||||||
+ meson.current_source_dir() / 'linux'
|
+ meson.current_source_dir() / 'linux'
|
||||||
+ '" \\( -name "*.cpp" -o -name "*.c" \\) ',
|
+ '" \\( -name "*.cpp" -o -name "*.c" \\) ',
|
||||||
check: true,
|
check: true,
|
||||||
).stdout().strip().split('\n')
|
).stdout().strip().split('\n')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
client_dependencies = [
|
client_dependencies = [
|
||||||
java_dep,
|
java_dep,
|
||||||
nbt_dep,
|
nbt_dep,
|
||||||
render_dep,
|
render_dep,
|
||||||
input_dep,
|
input_dep,
|
||||||
profile_dep,
|
profile_dep,
|
||||||
storage_dep,
|
storage_dep,
|
||||||
assets_localisation_dep,
|
assets_localisation_dep,
|
||||||
platform_dep,
|
platform_dep,
|
||||||
minecraft_dep,
|
minecraft_dep,
|
||||||
gl_dep,
|
gl_dep,
|
||||||
glu_dep,
|
glu_dep,
|
||||||
thread_dep,
|
thread_dep,
|
||||||
dl_dep,
|
dl_dep,
|
||||||
dependency('zlib'),
|
dependency('zlib'),
|
||||||
miniaudio_dep,
|
miniaudio_dep,
|
||||||
stb_dep,
|
stb_dep,
|
||||||
util_dep,
|
util_dep,
|
||||||
|
tracy_client_dep,
|
||||||
]
|
]
|
||||||
|
|
||||||
if get_option('ui_backend') == 'shiggy'
|
if get_option('ui_backend') == 'shiggy'
|
||||||
shiggy_dep = dependency(
|
shiggy_dep = dependency(
|
||||||
'shiggy',
|
'shiggy',
|
||||||
fallback: ['shiggy', 'shiggy_dep'],
|
fallback: ['shiggy', 'shiggy_dep'],
|
||||||
)
|
)
|
||||||
client_dependencies += shiggy_dep
|
client_dependencies += shiggy_dep
|
||||||
endif
|
endif
|
||||||
|
|
||||||
platform_services_src = files('../platform/PlatformServices.cpp')
|
platform_services_src = files('../platform/PlatformServices.cpp')
|
||||||
|
|
||||||
client = executable(
|
client = executable(
|
||||||
'Minecraft.Client',
|
'Minecraft.Client',
|
||||||
client_sources + platform_sources + platform_services_src + localisation[1],
|
client_sources
|
||||||
include_directories: include_directories('include', '..'),
|
+ platform_sources
|
||||||
dependencies: client_dependencies,
|
+ platform_services_src
|
||||||
cpp_args: global_cpp_args
|
+ localisation[1],
|
||||||
+ global_cpp_defs
|
include_directories: include_directories('include', '..'),
|
||||||
+ [
|
dependencies: client_dependencies,
|
||||||
'-DUNICODE',
|
cpp_args: global_cpp_args
|
||||||
'-D_UNICODE',
|
+ global_cpp_defs
|
||||||
],
|
+ [
|
||||||
c_args: global_cpp_defs + ['-DUNICODE', '-D_UNICODE'],
|
'-DUNICODE',
|
||||||
install: true,
|
'-D_UNICODE',
|
||||||
install_dir: '',
|
],
|
||||||
|
c_args: global_cpp_defs + ['-DUNICODE', '-D_UNICODE'],
|
||||||
|
install: true,
|
||||||
|
install_dir: '',
|
||||||
)
|
)
|
||||||
|
|
||||||
custom_target(
|
custom_target(
|
||||||
'copy_assets_to_client',
|
'copy_assets_to_client',
|
||||||
input: [client, media_archive],
|
input: [client, media_archive],
|
||||||
output: 'assets.stamp',
|
output: 'assets.stamp',
|
||||||
command: [
|
command: [
|
||||||
python,
|
python,
|
||||||
meson.project_source_root() / 'scripts/copy_assets_to_client.py',
|
meson.project_source_root() / 'scripts/copy_assets_to_client.py',
|
||||||
meson.project_source_root(),
|
meson.project_source_root(),
|
||||||
meson.project_build_root(),
|
meson.project_build_root(),
|
||||||
meson.current_build_dir(),
|
meson.current_build_dir(),
|
||||||
'@INPUT1@',
|
'@INPUT1@',
|
||||||
'@OUTPUT@',
|
'@OUTPUT@',
|
||||||
],
|
],
|
||||||
build_by_default: true,
|
build_by_default: true,
|
||||||
)
|
)
|
||||||
|
|
@ -131,6 +131,13 @@
|
||||||
#include "minecraft/world/level/chunk/SparseDataStorage.h"
|
#include "minecraft/world/level/chunk/SparseDataStorage.h"
|
||||||
#include "minecraft/world/level/chunk/SparseLightStorage.h"
|
#include "minecraft/world/level/chunk/SparseLightStorage.h"
|
||||||
|
|
||||||
|
#ifdef TRACY_ENABLE
|
||||||
|
#include <tracy/Tracy.hpp>
|
||||||
|
#else
|
||||||
|
#define ZoneScoped
|
||||||
|
#define ZoneScopedN(name)
|
||||||
|
#endif
|
||||||
|
|
||||||
class ChunkSource;
|
class ChunkSource;
|
||||||
|
|
||||||
// #define DISABLE_SPU_CODE
|
// #define DISABLE_SPU_CODE
|
||||||
|
|
@ -1019,6 +1026,7 @@ void Minecraft::createPrimaryLocalPlayer(int iPad) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Minecraft::run_middle() {
|
void Minecraft::run_middle() {
|
||||||
|
ZoneScoped;
|
||||||
static int64_t lastTime = 0;
|
static int64_t lastTime = 0;
|
||||||
static bool bFirstTimeIntoGame = true;
|
static bool bFirstTimeIntoGame = true;
|
||||||
static bool bAutosaveTimerSet = false;
|
static bool bAutosaveTimerSet = false;
|
||||||
|
|
@ -1166,6 +1174,7 @@ void Minecraft::run_middle() {
|
||||||
// 4J-PB - Once we're in the level, check if the players have
|
// 4J-PB - Once we're in the level, check if the players have
|
||||||
// the level in their banned list and ask if they want to play
|
// the level in their banned list and ask if they want to play
|
||||||
// it
|
// it
|
||||||
|
ZoneScopedN("Render Viewports");
|
||||||
for (int i = 0; i < XUSER_MAX_COUNT; i++) {
|
for (int i = 0; i < XUSER_MAX_COUNT; i++) {
|
||||||
if (localplayers[i] && (app.GetBanListCheck(i) == false) &&
|
if (localplayers[i] && (app.GetBanListCheck(i) == false) &&
|
||||||
!Minecraft::GetInstance()->isTutorial() &&
|
!Minecraft::GetInstance()->isTutorial() &&
|
||||||
|
|
@ -1813,6 +1822,7 @@ void Minecraft::run_middle() {
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
} // lock_guard scope
|
} // lock_guard scope
|
||||||
|
FrameMark;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Minecraft::run_end() { destroy(); }
|
void Minecraft::run_end() { destroy(); }
|
||||||
|
|
@ -1990,6 +2000,7 @@ void Minecraft::verify() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Minecraft::levelTickUpdateFunc(void* pParam) {
|
void Minecraft::levelTickUpdateFunc(void* pParam) {
|
||||||
|
ZoneScoped;
|
||||||
Level* pLevel = (Level*)pParam;
|
Level* pLevel = (Level*)pParam;
|
||||||
pLevel->tick();
|
pLevel->tick();
|
||||||
}
|
}
|
||||||
|
|
@ -2003,6 +2014,7 @@ void Minecraft::levelTickThreadInitFunc() {
|
||||||
// textures are to be updated - this will be true for the last time this tick
|
// textures are to be updated - this will be true for the last time this tick
|
||||||
// runs with bFirst true
|
// runs with bFirst true
|
||||||
void Minecraft::tick(bool bFirst, bool bUpdateTextures) {
|
void Minecraft::tick(bool bFirst, bool bUpdateTextures) {
|
||||||
|
ZoneScoped;
|
||||||
int iPad = player->GetXboxPad();
|
int iPad = player->GetXboxPad();
|
||||||
// OutputDebugString("Minecraft::tick\n");
|
// OutputDebugString("Minecraft::tick\n");
|
||||||
|
|
||||||
|
|
@ -4517,6 +4529,7 @@ int Minecraft::InGame_SignInReturned(void* pParam, bool bContinue, int iPad) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Minecraft::tickAllConnections() {
|
void Minecraft::tickAllConnections() {
|
||||||
|
ZoneScoped;
|
||||||
int oldIdx = getLocalPlayerIdx();
|
int oldIdx = getLocalPlayerIdx();
|
||||||
for (unsigned int i = 0; i < XUSER_MAX_COUNT; i++) {
|
for (unsigned int i = 0; i < XUSER_MAX_COUNT; i++) {
|
||||||
std::shared_ptr<MultiplayerLocalPlayer> mplp = localplayers[i];
|
std::shared_ptr<MultiplayerLocalPlayer> mplp = localplayers[i];
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ lib_minecraft = static_library('minecraft',
|
||||||
assets_localisation_dep,
|
assets_localisation_dep,
|
||||||
platform_dep,
|
platform_dep,
|
||||||
util_dep,
|
util_dep,
|
||||||
|
tracy_client_dep,
|
||||||
dependency('zlib'),
|
dependency('zlib'),
|
||||||
],
|
],
|
||||||
include_directories : include_directories('..'),
|
include_directories : include_directories('..'),
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue