project('mornelune', 'cpp', version: '0.0.0', default_options: [ 'prefix=/usr', 'warning_level=3', 'cpp_stdd=c++17' ]) share_dir = get_option('prefix') / get_option('datadir') / 'mornelune' conf = configuration_data() conf.set('version', meson.project_version()) conf.set('share_dir', share_dir) configure_file( input: 'src/conf.in.hpp', output: 'conf.hpp', configuration: conf ) executable( 'mornelune', sources: [ # Core 'src/main.cpp', 'src/Game.cpp', 'src/Services.cpp', 'src/Service.cpp', 'src/Sprite.cpp', 'src/Manifest.cpp', # Scenes 'src/scenes/Scenes.cpp', 'src/scenes/Scene.cpp', 'src/scenes/World.cpp', # Entity-Component-System (ECS) 'src/ecs/ECS.cpp', 'src/ecs/BaseComponent.cpp', 'src/ecs/BaseSystem.cpp', # Logs 'src/logs/Logs.cpp', 'src/logs/FileLogs.cpp', # Events 'src/events/Events.cpp', 'src/events/Event.cpp', # Graphics 'src/gfx/Graphics.cpp', 'src/gfx/Shader.cpp', 'src/gfx/Mesh.cpp', 'src/gfx/Material.cpp', 'src/gfx/Texture.cpp', 'src/gfx/Shape.cpp', # Inputs 'src/inputs/Inputs.cpp', # Resources 'src/res/Resources.cpp', 'src/res/BaseRes.cpp', 'src/res/TextRes.cpp', 'src/res/ImageRes.cpp', ], dependencies: [ dependency('sdl2'), dependency('SDL2_image'), dependency('glew'), dependency('glm'), dependency('tinyxml2') ], install: true ) install_subdir('assets', install_dir: share_dir)