grbc_want_version("1.0") grbc_ext("GRBC_EXT_pkg_config") grbc_ext("GRBC_EXT_profiles") grbc_set_profile("release") local grbc_extensions = grbc_library(LibraryConfig.new({ name = "libgrbc_extensions", language_type = LanguageType.Cpp, files = { grbc_file("src/ext_pkg_config.cc"), grbc_file("src/ext_profiles.cc") }, lib_type = LibraryType.Static, requirements = {}, compile_flags = {}, linker_flags = {}, include_dirs = { "include", "vendor/sol2/include" }, package_config = PackageConfig.new({ name = "libgrbc_extensions", libraries = {}, include_dirs = { grbc_file("include"), grbc_file("vendor/sol2/include") }, compile_flags = {}, linker_flags = {}, }) })) local grbc_lib = grbc_library(LibraryConfig.new({ name = "libgrbc", language_type = LanguageType.Cpp, files = { grbc_file("src/file.cc"), grbc_file("src/ninja.cc"), grbc_file("src/platform.cc"), grbc_file("src/target_exe.cc"), grbc_file("src/utils.cc"), grbc_file("src/generator.cc"), grbc_file("src/target_lib.cc"), grbc_file("src/package.cc"), grbc_file("src/ext.cc"), grbc_file("src/task.cc") }, lib_type = LibraryType.Static, requirements = {}, compile_flags = {}, linker_flags = {}, include_dirs = { grbc_file("include"), grbc_file("vendor/sol2/include") }, package_config = PackageConfig.new({ name = "libgrbc", libraries = {}, include_dirs = { grbc_file("include"), grbc_file("vendor/sol2/include") }, compile_flags = {}, linker_flags = {}, }) })) local grbc_exe = grbc_executable(ExecutableConfig.new({ name = "grbc", language_type = LanguageType.Cpp, files = { grbc_file("src/main.cc"), }, requirements = { grbc_pkg_config("lua"), grbc_pkg("libgrbc"), grbc_pkg("libgrbc_extensions") }, compile_flags = { }, linker_flags = {}, include_dirs = {} })) grbc_task(TaskConfig.new({ name = "Clean build", task_id = "clean", shell_script = "ninja -t clean" })) -- Output the final build script grbc_build("ninja")