Răsfoiți Sursa

scripts: added script to generate meson.build file, necessary for vscode vala language server

xed89 3 ani în urmă
părinte
comite
96abb8626c
3 a modificat fișierele cu 140 adăugiri și 0 ștergeri
  1. 5 0
      makefile
  2. 81 0
      meson.build
  3. 54 0
      scripts/create-meson-build.lua

+ 5 - 0
makefile

@@ -231,3 +231,8 @@ endif
 	-@rm -rf 3rdparty/bgfx/.build
 	-@rm -rf 3rdparty/bimg/.build
 	-@rm -rf build
+
+.PHONY: create-meson-build
+create-meson-build-mingw64: LUAJIT=build/mingw64/bin/luajit.exe
+create-meson-build-mingw64: 
+	$(LUAJIT) scripts/create-meson-build.lua

+ 81 - 0
meson.build

@@ -0,0 +1,81 @@
+project('level_editor', ['vala', 'c'])
+deps = [
+  dependency('gdk-3.0'),
+	dependency('gee-0.8'),
+	dependency('gio-2.0'),
+	dependency('glib-2.0'),
+	dependency('gtk+-3.0')
+]
+src = files([
+'./tools/api/engine_api.vala',
+'./tools/config.vala',
+'./tools/core/console_client.vala',
+'./tools/core/database.vala',
+'./tools/core/guid.vala',
+'./tools/core/json/json.vala',
+'./tools/core/json/sjson.vala',
+'./tools/core/math/math_utils.vala',
+'./tools/core/math/matrix4x4.vala',
+'./tools/core/math/quaternion.vala',
+'./tools/core/math/vector2.vala',
+'./tools/core/math/vector3.vala',
+'./tools/core/math/vector4.vala',
+'./tools/level_editor/action_type.vala',
+'./tools/level_editor/data_compiler.vala',
+'./tools/level_editor/editor_view.vala',
+'./tools/level_editor/level.vala',
+'./tools/level_editor/level_editor.vala',
+'./tools/level_editor/level_layers_tree_view.vala',
+'./tools/level_editor/level_tree_view.vala',
+'./tools/level_editor/panel_new_project.vala',
+'./tools/level_editor/panel_projects_list.vala',
+'./tools/level_editor/panel_welcome.vala',
+'./tools/level_editor/preferences_dialog.vala',
+'./tools/level_editor/project.vala',
+'./tools/level_editor/project_browser.vala',
+'./tools/level_editor/project_store.vala',
+'./tools/level_editor/properties_view.vala',
+'./tools/level_editor/resource_chooser.vala',
+'./tools/level_editor/sprite_import_dialog.vala',
+'./tools/level_editor/statusbar.vala',
+'./tools/level_editor/unit.vala',
+'./tools/level_editor/user.vala',
+'./tools/resource/mesh_resource.vala',
+'./tools/resource/resource_id.vala',
+'./tools/resource/sound_resource.vala',
+'./tools/resource/sprite_resource.vala',
+'./tools/resource/texture_resource.vala',
+'./tools/resource/types.vala',
+'./tools/widgets/app_chooser_button.vala',
+'./tools/widgets/check_box.vala',
+'./tools/widgets/clamp.vala',
+'./tools/widgets/color_button_vector3.vala',
+'./tools/widgets/combo_box_map.vala',
+'./tools/widgets/console_view.vala',
+'./tools/widgets/entry_double.vala',
+'./tools/widgets/entry_position.vala',
+'./tools/widgets/entry_rotation.vala',
+'./tools/widgets/entry_scale.vala',
+'./tools/widgets/entry_search.vala',
+'./tools/widgets/entry_text.vala',
+'./tools/widgets/entry_vector2.vala',
+'./tools/widgets/entry_vector3.vala',
+'./tools/widgets/entry_vector4.vala',
+'./tools/widgets/resource_chooser_button.vala',
+])
+
+gnome = import('gnome')
+
+resources_xml = files('tools\\level_editor\\resources\\resources.gresource.xml')
+resources = gnome.compile_resources('resources', resources_xml, source_dir: '.\\tools\\level_editor\\resources\\')
+
+vala_args = [ 
+  '--target-glib=2.38', # minimum glib version required for composite templates
+  '--define=CROWN_PLATFORM_WINDOWS',
+  '--gresources', resources_xml,
+]
+
+executable('app',
+           [src, resources],
+           dependencies: deps,
+           vala_args: [vala_args])

+ 54 - 0
scripts/create-meson-build.lua

@@ -0,0 +1,54 @@
+function fs_enumerate(directory)
+  local i, t, popen = 0, {}, io.popen
+  local pfile = popen('ls -p "'..directory..'"')
+  for filename in pfile:lines() do
+      i = i + 1
+      t[i] = filename
+  end
+  pfile:close()
+  return t
+end
+
+function output_source_files(dir, extension)
+  local files = fs_enumerate(dir)
+  for _, file in ipairs(files) do
+    if file:sub(-1) == '/' then
+      output_source_files(dir .. file, extension)
+    elseif file:sub(-#extension) == extension then
+      io.write('\'' .. dir .. file .. '\',\n')
+    end 
+  end
+end
+
+local OUTPUT_PATH = "meson.build"
+io.output(OUTPUT_PATH)
+io.write('project(\'level_editor\', [\'vala\', \'c\'])\n')
+io.write('deps = [\n')
+io.write('  dependency(\'gdk-3.0\'),\n')
+io.write('	dependency(\'gee-0.8\'),\n')
+io.write('	dependency(\'gio-2.0\'),\n')
+io.write('	dependency(\'glib-2.0\'),\n')
+io.write('	dependency(\'gtk+-3.0\')\n')
+io.write(']\n')
+io.write('src = files([\n')
+
+output_source_files('./tools/', '.vala')
+
+io.write('])\n')
+io.write('\n')
+io.write('gnome = import(\'gnome\')\n')
+io.write('\n')
+io.write('resources_xml = files(\'tools\\\\level_editor\\\\resources\\\\resources.gresource.xml\')\n')
+io.write('resources = gnome.compile_resources(\'resources\', resources_xml, source_dir: \'.\\\\tools\\\\level_editor\\\\resources\\\\\')\n')
+io.write('\n')
+io.write('vala_args = [ \n')
+io.write('  \'--target-glib=2.38\', # minimum glib version required for composite templates\n')
+io.write('  \'--define=CROWN_PLATFORM_WINDOWS\',\n')
+io.write('  \'--gresources\', resources_xml,\n')
+io.write(']\n')
+io.write('\n')
+io.write('executable(\'app\',\n')
+io.write('           [src, resources],\n')
+io.write('           dependencies: deps,\n')
+io.write('           vala_args: [vala_args])\n')
+io.close()