project('cubes plus plus', 'cpp') src_common = [ 'common/block/Block.cpp', 'common/block/BlockRegistry.cpp', 'common/world/BlockMap.cpp', 'common/world/BlockStorage.cpp', 'common/world/World.cpp', 'common/world/HighMap.cpp', 'common/utils/CollisionBox.cpp', 'common/entities/Entity.cpp', 'common/network/toserver/PlayerUpdatePacket.cpp', 'common/network/toclient/EntityUpdatePacket.cpp', ] src_server = ['server/Main.cpp', 'server/Game.cpp', 'server/commands/Commands.cpp', 'server/commands/DefaultCommands.cpp', 'server/commands/SnuviCommands.cpp', 'server/world/WorldGenerator.cpp', 'server/snuviscript/Snuvi.cpp', 'server/GameServer.cpp', 'server/entities/ServerPlayer.cpp', 'server/packets/WorldPackets.cpp', ] src_client = ['client/Main.cpp', 'client/rendering/Framebuffers.cpp', 'client/rendering/Engine.cpp', 'client/rendering/Shaders.cpp', 'client/rendering/Mesh.cpp', 'client/Game.cpp', 'client/GameClient.cpp', 'client/rendering/ShaderMatrix.cpp', 'client/rendering/NoiseTexture.cpp', 'client/input/Controller.cpp', 'client/rendering/Renderer.cpp', 'client/rendering/renderer/WorldRenderer.cpp', 'client/rendering/Vertex.cpp', 'client/rendering/Triangle.cpp', 'client/gui/BaseGUI.cpp', 'client/gui/StartGUI.cpp', 'client/packets/WorldPackets.cpp', ] sources_test = ['tests/Main.cpp'] compiler = meson.get_compiler('cpp') args = compiler.get_supported_arguments(['-Wall', '-Wextra', '-pedantic', '-Werror', '-DLOG_LEVEL=4']) libgamingcore_proj = subproject('gaming-core') libgamingcore_dep = libgamingcore_proj.get_variable('libgamingcore_dep') common = static_library('common', sources: src_common, dependencies: [libgamingcore_dep], cpp_args: args) common_dep = declare_dependency( link_with: common, include_directories: libgamingcore_proj.get_variable('libgamingcore_include')) if host_machine.system() == 'linux' liblonelytiger_proj = subproject('lonely-tiger') liblonelytiger_dep = liblonelytiger_proj.get_variable('liblonelytiger_dep') executable('game_server', sources: src_server, dependencies: [liblonelytiger_dep, common_dep], cpp_args: args) endif executable('game_tests', sources: sources_test, cpp_args: args) executable('game_client', sources: src_client, dependencies : common_dep, cpp_args: args)