Improve meson build.

-Add all required packages as wrap dependencies
-Move source lsitnings to separate files
-Proper dependencies declarations
-Set global D compiler arguments
-Add few asserts
-Add test exe
-Other small improvements

Tested with dmd with betterC, demos executable has to be run from 'demos' directory to properly load assets.
This commit is contained in:
mmcomando 2021-02-21 20:44:58 +01:00
parent 00386ed529
commit 66b5807368
16 changed files with 314 additions and 104 deletions

12
demos/external/meson.build vendored Normal file
View file

@ -0,0 +1,12 @@
demos_src += files(
'sources/cimgui/cimgui.d',
'sources/glad/gl/all.d',
'sources/glad/gl/enums.d',
'sources/glad/gl/ext.d',
'sources/glad/gl/funcs.d',
'sources/glad/gl/gl.d',
'sources/glad/gl/gles2.d',
'sources/glad/gl/loader.d',
'sources/glad/gl/types.d',
'sources/mmutils/thread_pool.d',
)

View file

@ -1,45 +1,35 @@
demos_src = [
'source/app.d',
'source/demos/brick_breaker.d',
'source/demos/snake.d',
'source/demos/simple.d',
'source/demos/sandbox.d',
'source/demos/bullet_madnes.d',
'source/demos/particles.d',
'source/demos/physics.d',
'source/demos/space_invaders.d',
'source/game_core/basic.d',
'source/game_core/job_updater.d',
'source/game_core/rendering.d',
'source/game_core/collision.d',
'source/gui/component.d',
'source/gui/manager.d',
'source/gui/template_.d',
'source/gui/tool_circle.d',
'source/gui/system.d'
]
# Files
demos_src = files()
external_src = files()
subdir('source')
subdir('external')
external_src = [
'external/sources/mmutils/thread_pool.d',
'external/sources/glad/gl/gl.d',
'external/sources/glad/gl/loader.d',
'external/sources/glad/gl/ext.d',
'external/sources/glad/gl/all.d',
'external/sources/glad/gl/funcs.d',
'external/sources/glad/gl/gles2.d',
'external/sources/glad/gl/enums.d',
'external/sources/glad/gl/types.d',
'external/sources/cimgui/cimgui.d'
]
demos_inc = include_directories('source/')
external_inc = include_directories('external/sources/')
demos_inc = include_directories(['source/'])
# Argumesnts
versions = ['BindSDL_Image','SDL_208', 'BindBC_Static', 'BindSDL_Static']
#link_args += '-rpath=libs/linux/x64/'
link_args += '-L=' + meson.current_source_dir() + '/libs/linux/x64/libcimgui.so'
link_args += '-L' + meson.current_source_dir() + '/libs/linux/x64'
link_args += '-lcimgui'
#,"SDL2_image
# Dependencies
bindbc_loader_dep = dependency('bindbc-loader')
bindbc_sdl_dep = dependency('bindbc-sdl')
cimgui_dep = dependency('cimgui')
sdl2_dep = dependency('SDL2')
sdl2_image_dep = dependency('SDL2_image')
executable('demos', [demos_src, external_src], include_directories : [demos_inc, utils_inc, inc], d_args: args, link_args: link_args,
d_module_versions: ['BindSDL_Image','SDL_2010'], link_with: [ecs_lib, ecs_utils_lib], dependencies: [bc_loader_dep,sdl_dep],
build_rpath: '-L' + meson.current_source_dir() + '/libs/linux/x64/', install_rpath: 'libs/linux/x64/')
subdir('utils') # Utils library
executable('decs-demos', [demos_src, external_src],
include_directories : [demos_inc, external_inc],
d_module_versions : versions,
link_with : [ecs_lib, ecs_utils_lib],
dependencies : [
bindbc_loader_dep,
bindbc_sdl_dep,
cimgui_dep,
decs_dep,
ecs_utils_dep,
sdl2_dep,
sdl2_image_dep,
],
)

20
demos/source/meson.build Normal file
View file

@ -0,0 +1,20 @@
demos_src += files(
'app.d',
'demos/brick_breaker.d',
'demos/bullet_madnes.d',
'demos/particles.d',
'demos/physics.d',
'demos/sandbox.d',
'demos/simple.d',
'demos/snake.d',
'demos/space_invaders.d',
'game_core/basic.d',
'game_core/collision.d',
'game_core/job_updater.d',
'game_core/rendering.d',
'gui/component.d',
'gui/manager.d',
'gui/system.d',
'gui/template_.d',
'gui/tool_circle.d',
)

View file

@ -1,31 +1,25 @@
#project('ECSUtils', 'd')
# Files
utils_src = files()
subdir('source/ecs_utils')
utils_src = [
'source/ecs_utils/gfx/mesh.d',
'source/ecs_utils/gfx/sprite.d',
'source/ecs_utils/gfx/mesh_module.d',
'source/ecs_utils/gfx/material.d',
'source/ecs_utils/gfx/shader.d',
'source/ecs_utils/gfx/vertex.d',
'source/ecs_utils/gfx/config.d',
'source/ecs_utils/gfx/buffer.d',
'source/ecs_utils/gfx/render_list.d',
'source/ecs_utils/gfx/renderer.d',
'source/ecs_utils/gfx/texture.d',
'source/ecs_utils/utils.d',
'source/ecs_utils/math/matrix.d',
'source/ecs_utils/math/vector.d',
'source/ecs_utils/imgui_styles.d',
'source/ecs_utils/imgui_bind.d'
]
utils_inc = include_directories('source/')
bc_loader_dep = dependency('bindbc-loader', method: 'dub')
sdl_dep = dependency('bindbc-sdl', method: 'dub')
# Dependencies
ecs_utils_lib = library('ecs_utils', utils_src,
include_directories : [demos_inc, external_inc, utils_inc],
link_args : link_args,
d_module_versions : versions,
dependencies : [
decs_dep,
bindbc_loader_dep,
bindbc_sdl_dep,
]
)
utils_inc = include_directories(['source/','../external/sources/'])
ecs_utils_lib = library('ecs_utils', utils_src, include_directories : [utils_inc, inc], d_args: args, link_args: link_args,
d_module_versions: ['BindSDL_Image','SDL_2010'], link_with: ecs_lib, dependencies: [bc_loader_dep,sdl_dep])
ecs_utils_dep = declare_dependency(
include_directories : utils_inc,
link_with : ecs_utils_lib,
)
#shared_library('ecs_utils', utils_src, include_directories : [utils_inc], d_args: args, link_args: link_args, link_with: ecs_lib)

View file

@ -0,0 +1,18 @@
utils_src += files(
'gfx/mesh.d',
'gfx/sprite.d',
'gfx/mesh_module.d',
'gfx/material.d',
'gfx/shader.d',
'gfx/vertex.d',
'gfx/config.d',
'gfx/buffer.d',
'gfx/render_list.d',
'gfx/renderer.d',
'gfx/texture.d',
'utils.d',
'math/matrix.d',
'math/vector.d',
'imgui_styles.d',
'imgui_bind.d',
)