core_mod = shared_library('mod', | |||||
'src/main.cc', | |||||
'src/DefaultWorldGen.cc', | |||||
'src/entities/PlayerEntity.cc', | |||||
'src/entities/ItemStackEntity.cc', | |||||
name_prefix: '', | |||||
install: true, | |||||
install_dir: 'core.mod', | |||||
dependencies: [libswan, libperlinnoise]) | |||||
install_subdir('assets', install_dir: 'core.mod') |
#include <swan/swan.h> | #include <swan/swan.h> | ||||
#include <PerlinNoise/PerlinNoise.hpp> | |||||
#include <PerlinNoise.hpp> | |||||
class DefaultWorldGen: public Swan::WorldGen { | class DefaultWorldGen: public Swan::WorldGen { | ||||
public: | public: |
libcygnet = declare_dependency( | |||||
include_directories: 'include', | |||||
link_with: library('cygnet', | |||||
'src/GlWrappers.cc', | |||||
'src/Renderer.cc', | |||||
'src/ResourceManager.cc', | |||||
'src/shaders.cc', | |||||
'src/TileAtlas.cc', | |||||
'src/util.cc', | |||||
'src/Window.cc', | |||||
dependencies: [common, libtracy, libthreads, libsdl2, libgles2], | |||||
install: true, | |||||
include_directories: 'include/cygnet')) |
#pragma once | #pragma once | ||||
// We want every file to be able to easily add Tracy zones | // We want every file to be able to easily add Tracy zones | ||||
#include <tracy/Tracy.hpp> | |||||
#include <Tracy.hpp> | |||||
#include <swan-common/Vector2.h> | #include <swan-common/Vector2.h> | ||||
#include <swan-common/constants.h> | #include <swan-common/constants.h> |
libswan_deps = [ | |||||
common, libcygnet, libtracy, libthreads, libsdl2, libsdl2_image, | |||||
libcpptoml, libdl, libz] | |||||
libswan = declare_dependency( | |||||
include_directories: 'include', | |||||
dependencies: libswan_deps, | |||||
link_with: library('swan', | |||||
'src/traits/BodyTrait.cc', | |||||
'src/traits/InventoryTrait.cc', | |||||
'src/traits/PhysicsTrait.cc', | |||||
'src/Animation.cc', | |||||
'src/assets.cc', | |||||
'src/Chunk.cc', | |||||
'src/Clock.cc', | |||||
'src/drawutil.cc', | |||||
'src/Entity.cc', | |||||
'src/Game.cc', | |||||
'src/gfxutil.cc', | |||||
'src/ItemStack.cc', | |||||
'src/LightServer.cc', | |||||
'src/OS.cc', | |||||
'src/World.cc', | |||||
'src/WorldPlane.cc', | |||||
dependencies: libswan_deps, | |||||
install: true, | |||||
include_directories: 'include/swan')) |
project('swan', 'cpp', | |||||
default_options: ['cpp_std=c++2a']) | |||||
libdl = meson.get_compiler('cpp').find_library('dl') | |||||
libz = meson.get_compiler('cpp').find_library('z') | |||||
libgles2 = meson.get_compiler('cpp').find_library('GLESv2') | |||||
libsdl2 = dependency('sdl2') | |||||
libsdl2_image = dependency('SDL2_image') | |||||
libthreads = dependency('threads') | |||||
subdir('third-party') | |||||
common = declare_dependency( | |||||
include_directories: 'include', | |||||
dependencies: libmsgpack) | |||||
subdir('libcygnet') | |||||
subdir('libswan') | |||||
subdir('core.mod') | |||||
executable('swan', 'src/main.cc', | |||||
install: true, | |||||
install_rpath: get_option('libdir'), | |||||
dependencies: [libswan, libcygnet, common, libimgui, libsdl2, libsdl2_image]) | |||||
install_subdir('assets', install_dir: '') |
#include <SDL2/SDL_image.h> | #include <SDL2/SDL_image.h> | ||||
#include <string.h> | #include <string.h> | ||||
#include <imgui.h> | #include <imgui.h> | ||||
#include <imgui_sdl/imgui_sdl.h> | |||||
#include <imgui_sdl.h> | |||||
#include <cygnet/Renderer.h> | #include <cygnet/Renderer.h> | ||||
#include <cygnet/Window.h> | #include <cygnet/Window.h> | ||||
libcpptoml = declare_dependency( | |||||
include_directories: 'cpptoml/include') | |||||
libfmt = declare_dependency( | |||||
include_directories: 'fmt/include', | |||||
link_with: library('fmt', | |||||
'fmt/src/format.cc', | |||||
'fmt/src/os.cc', | |||||
include_directories: 'fmt/include')) | |||||
libimgui = declare_dependency( | |||||
include_directories: ['imgui', 'imgui-plot/include', 'imgui_sdl'], | |||||
link_with: library('imgui', | |||||
'imgui/imgui_demo.cpp', | |||||
'imgui/imgui_draw.cpp', | |||||
'imgui/imgui_widgets.cpp', | |||||
'imgui/imgui.cpp', | |||||
'imgui_sdl/imgui_sdl.cpp', | |||||
'imgui-plot/src/imgui_plot.cpp', | |||||
include_directories: ['imgui', 'imgui-plot/include', 'imgui_sdl'], | |||||
dependencies: libsdl2, | |||||
cpp_args: ['-Wno-sign-compare', '-Wno-deprecated-enum-enum-conversion'])) | |||||
libmsgpack = declare_dependency( | |||||
include_directories: 'msgpack-c/include') | |||||
libperlinnoise = declare_dependency( | |||||
include_directories: 'PerlinNoise') | |||||
libtracy = declare_dependency( | |||||
include_directories: 'tracy', | |||||
link_with: library('tracy', | |||||
'tracy/TracyClient.cpp', | |||||
dependencies: libthreads)) |