add test engine
This commit is contained in:
commit
10423e024f
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
.vs/
|
||||
.vscode/
|
||||
.xmake/
|
||||
build/
|
||||
vsxmake*/
|
||||
.idea/
|
||||
4
engine/include/api.h
Normal file
4
engine/include/api.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
#include "zlib.h"
|
||||
ENGINE_API const char* engine();
|
||||
inline Module engine_module{engine(), true};
|
||||
4
engine/modules/asset/include/asset.h
Normal file
4
engine/modules/asset/include/asset.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
#include "zlib.h"
|
||||
const char* asset();
|
||||
inline Module asset_module{ asset(), false};
|
||||
5
engine/modules/asset/src/asset.cpp
Normal file
5
engine/modules/asset/src/asset.cpp
Normal file
@ -0,0 +1,5 @@
|
||||
#include "asset.h"
|
||||
|
||||
const char* asset() {
|
||||
return "asset";
|
||||
}
|
||||
8
engine/modules/asset/xmake.lua
Normal file
8
engine/modules/asset/xmake.lua
Normal file
@ -0,0 +1,8 @@
|
||||
target("asset")
|
||||
set_kind("static")
|
||||
set_group("engine/comp")
|
||||
add_files("src/*.cpp")
|
||||
add_headerfiles("include/*.h")
|
||||
add_includedirs("include", {public = true})
|
||||
add_deps("core", "zlib", {public = true})
|
||||
add_rules("engine.api")
|
||||
4
engine/modules/core/include/core.h
Normal file
4
engine/modules/core/include/core.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
#include "zlib.h"
|
||||
const char* core();
|
||||
inline Module core_module{ core(), false};
|
||||
5
engine/modules/core/src/core.cpp
Normal file
5
engine/modules/core/src/core.cpp
Normal file
@ -0,0 +1,5 @@
|
||||
#include "core.h"
|
||||
const char* core()
|
||||
{
|
||||
return "core";
|
||||
}
|
||||
8
engine/modules/core/xmake.lua
Normal file
8
engine/modules/core/xmake.lua
Normal file
@ -0,0 +1,8 @@
|
||||
target("core")
|
||||
set_kind("static")
|
||||
set_group("engine/comp")
|
||||
add_files("src/*.cpp")
|
||||
add_headerfiles("include/*.h")
|
||||
add_includedirs("include", {public = true})
|
||||
add_deps("zlib", {public = true})
|
||||
add_rules("engine.api")
|
||||
88
engine/modules/zlib/include/source_location.h
Normal file
88
engine/modules/zlib/include/source_location.h
Normal file
@ -0,0 +1,88 @@
|
||||
#ifndef NOSTD_SOURCE_LOCATION_HPP
|
||||
#define NOSTD_SOURCE_LOCATION_HPP
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
namespace zlog {
|
||||
struct source_location {
|
||||
public:
|
||||
#if not defined(__apple_build_version__) and defined(__clang__) and (__clang_major__ >= 9)
|
||||
static constexpr source_location current(const char* fileName = __builtin_FILE(),
|
||||
const char* functionName = __builtin_FUNCTION(),
|
||||
const uint_least32_t lineNumber = __builtin_LINE(),
|
||||
const uint_least32_t columnOffset = __builtin_COLUMN()) noexcept
|
||||
#elif defined(__GNUC__) and (__GNUC__ > 4 or (__GNUC__ == 4 and __GNUC_MINOR__ >= 8))
|
||||
static constexpr source_location current(const char* fileName = __builtin_FILE(),
|
||||
const char* functionName = __builtin_FUNCTION(),
|
||||
const uint_least32_t lineNumber = __builtin_LINE(),
|
||||
const uint_least32_t columnOffset = 0) noexcept
|
||||
#else
|
||||
static constexpr source_location current(const char* fileName = "unsupported",
|
||||
const char* functionName = "unsupported",
|
||||
const uint_least32_t lineNumber = 0,
|
||||
const uint_least32_t columnOffset = 0) noexcept
|
||||
#endif
|
||||
{
|
||||
return source_location(fileName, functionName, lineNumber, columnOffset);
|
||||
}
|
||||
|
||||
source_location(const source_location&) = default;
|
||||
source_location(source_location&&) = default;
|
||||
|
||||
constexpr const char* file_name() const noexcept
|
||||
{
|
||||
return fileName;
|
||||
}
|
||||
|
||||
constexpr const char* function_name() const noexcept
|
||||
{
|
||||
return functionName;
|
||||
}
|
||||
|
||||
constexpr uint_least32_t line() const noexcept
|
||||
{
|
||||
return lineNumber;
|
||||
}
|
||||
|
||||
constexpr std::uint_least32_t column() const noexcept
|
||||
{
|
||||
return columnOffset;
|
||||
}
|
||||
|
||||
private:
|
||||
constexpr source_location(const char* fileName, const char* functionName, const uint_least32_t lineNumber,
|
||||
const uint_least32_t columnOffset) noexcept
|
||||
: fileName(fileName)
|
||||
, functionName(functionName)
|
||||
, lineNumber(lineNumber)
|
||||
, columnOffset(columnOffset)
|
||||
{
|
||||
}
|
||||
|
||||
const char* fileName;
|
||||
const char* functionName;
|
||||
const std::uint_least32_t lineNumber;
|
||||
const std::uint_least32_t columnOffset;
|
||||
};
|
||||
|
||||
[[nodiscard]] constexpr auto get_log_source_location(
|
||||
const source_location& location) {
|
||||
return spdlog::source_loc{location.file_name(),
|
||||
static_cast<std::int32_t>(location.line()),
|
||||
location.function_name()};
|
||||
}
|
||||
|
||||
struct format_with_location {
|
||||
std::string_view value;
|
||||
spdlog::source_loc loc;
|
||||
|
||||
template <typename String>
|
||||
format_with_location(const String& s, const source_location& location =
|
||||
source_location::current())
|
||||
: value{ s }, loc{ get_log_source_location(location) } {}
|
||||
};
|
||||
} // namespace nostd
|
||||
|
||||
#endif
|
||||
34
engine/modules/zlib/include/zlib.h
Normal file
34
engine/modules/zlib/include/zlib.h
Normal file
@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include "zlog.h"
|
||||
struct Detail {
|
||||
int count = 0;
|
||||
int new_count = 0;
|
||||
int del_count = 0;
|
||||
};
|
||||
struct Module;
|
||||
inline Detail detail{};
|
||||
inline std::vector<Module*>* pModuleList{};
|
||||
struct Module {
|
||||
std::string name;
|
||||
bool kind;
|
||||
void* mHandle{nullptr};
|
||||
bool Load(std::string path = "");
|
||||
void* GetSymbol(const char* name);
|
||||
Module(std::string name, bool kind):kind(kind), name(name){
|
||||
detail.count++;
|
||||
if (!pModuleList) {
|
||||
pModuleList = new std::vector<Module*>;
|
||||
}
|
||||
pModuleList->push_back(this);
|
||||
std::string kind_str = kind ? std::string("shared") : std::string("static");
|
||||
std::cout << detail.count << ":" << uintptr_t(&zlog::zlog) << "::" << name << ":" << kind_str << std::endl;
|
||||
}
|
||||
};
|
||||
const char* zlib();
|
||||
#ifdef ZLIB_API_VAL
|
||||
ZLIB_API inline Module zlib_module{ zlib(), false };
|
||||
#else
|
||||
ZLIB_API extern Module zlib_module;
|
||||
#endif
|
||||
47
engine/modules/zlib/include/zlog.h
Normal file
47
engine/modules/zlib/include/zlog.h
Normal file
@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
#include "spdlog/spdlog.h"
|
||||
#include "source_location.h"
|
||||
#include <cstdint>
|
||||
#include <stdexcept>
|
||||
namespace zlog {
|
||||
using level_enum = spdlog::level::level_enum;
|
||||
class zloger {
|
||||
private:
|
||||
std::shared_ptr<spdlog::logger> m_logger;
|
||||
public:
|
||||
zloger();
|
||||
~zloger();
|
||||
template <typename... Args>
|
||||
void log(level_enum level, format_with_location& fmt, Args &&...args) {
|
||||
m_logger->log(fmt.loc, level, fmt::runtime(fmt.value), std::forward<Args>(args)...);
|
||||
}
|
||||
void flush() {
|
||||
m_logger->flush();
|
||||
}
|
||||
};
|
||||
ZLIB_API inline zloger zlog;
|
||||
template <typename... Args>
|
||||
void info(format_with_location fmt, Args &&...args) {
|
||||
zlog.log(level_enum::info, fmt, std::forward<Args>(args)...);
|
||||
};
|
||||
template <typename... Args>
|
||||
void debug(format_with_location fmt, Args &&...args) {
|
||||
zlog.log(level_enum::debug, fmt, std::forward<Args>(args)...);
|
||||
};
|
||||
template <typename... Args>
|
||||
void warn(format_with_location fmt, Args &&...args) {
|
||||
zlog.log(level_enum::warn, fmt, std::forward<Args>(args)...);
|
||||
};
|
||||
template <typename... Args>
|
||||
void error(format_with_location fmt, Args &&...args) {
|
||||
zlog.log(level_enum::err, fmt, std::forward<Args>(args)...);
|
||||
};
|
||||
template <typename... Args>
|
||||
void fatal(format_with_location fmt, Args &&...args) {
|
||||
zlog.log(level_enum::critical, fmt, std::forward<Args>(args)...);
|
||||
const std::string format_str = fmt::format(std::forward<Args>(args)...);
|
||||
throw std::runtime_error(format_str);
|
||||
};
|
||||
void flush();
|
||||
};
|
||||
28
engine/modules/zlib/src/zlib.cpp
Normal file
28
engine/modules/zlib/src/zlib.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
#include "zlib.h"
|
||||
const char* zlib()
|
||||
{
|
||||
return "zlib";
|
||||
}
|
||||
|
||||
bool Module::Load(std::string path)
|
||||
{
|
||||
if (!path.empty())
|
||||
{
|
||||
mHandle = GetModuleHandle(path.c_str());
|
||||
if (mHandle == NULL)
|
||||
{
|
||||
mHandle = LoadLibrary(path.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mHandle = GetModuleHandle(nullptr);
|
||||
}
|
||||
return mHandle;
|
||||
}
|
||||
|
||||
void* Module::GetSymbol(const char* name)
|
||||
{
|
||||
void* addr = (void*)GetProcAddress((HMODULE)mHandle, name);
|
||||
return addr;
|
||||
}
|
||||
38
engine/modules/zlib/src/zlog.cpp
Normal file
38
engine/modules/zlib/src/zlog.cpp
Normal file
@ -0,0 +1,38 @@
|
||||
#include "zlog.h"
|
||||
#include <spdlog/async.h>
|
||||
#include <spdlog/sinks/basic_file_sink.h>
|
||||
#include <spdlog/sinks/stdout_color_sinks.h>
|
||||
#include <spdlog/spdlog.h>
|
||||
namespace zlog {
|
||||
zloger::zloger()
|
||||
{
|
||||
auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
|
||||
console_sink->set_level(spdlog::level::trace);
|
||||
console_sink->set_pattern("[%Y-%m-%d %H:%M:%S][%s:%#] %-8l %^%v%$");
|
||||
|
||||
auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("logs/zengine.log", true);
|
||||
file_sink->set_level(spdlog::level::trace);
|
||||
//file_sink->set_pattern("[%Y-%m-%d %H:%M:%S][%s:%#] %-8l %^%v%$");
|
||||
|
||||
const spdlog::sinks_init_list sink_list = { console_sink, file_sink };
|
||||
|
||||
spdlog::init_thread_pool(8192, 1);
|
||||
|
||||
m_logger = std::make_shared<spdlog::async_logger>("zlogger",
|
||||
sink_list.begin(),
|
||||
sink_list.end(),
|
||||
spdlog::thread_pool(),
|
||||
spdlog::async_overflow_policy::block);
|
||||
m_logger->set_level(spdlog::level::trace);
|
||||
m_logger->set_pattern("[%Y-%m-%d %H:%M:%S][%s:%#] %-8l %^%v%$");
|
||||
spdlog::register_logger(m_logger);
|
||||
}
|
||||
zloger::~zloger()
|
||||
{
|
||||
m_logger->flush();
|
||||
spdlog::drop_all();
|
||||
}
|
||||
void flush(){
|
||||
zlog.flush();
|
||||
}
|
||||
}
|
||||
8
engine/modules/zlib/xmake.lua
Normal file
8
engine/modules/zlib/xmake.lua
Normal file
@ -0,0 +1,8 @@
|
||||
target("zlib")
|
||||
set_kind("static")
|
||||
set_group("engine/comp")
|
||||
add_files("src/*.cpp")
|
||||
add_headerfiles("include/*.h")
|
||||
add_includedirs("include", {public = true})
|
||||
add_packages("spdlog", {public = true})
|
||||
add_rules("engine.api")
|
||||
6
engine/src/api.cpp
Normal file
6
engine/src/api.cpp
Normal file
@ -0,0 +1,6 @@
|
||||
#include "api.h"
|
||||
|
||||
const char* engine()
|
||||
{
|
||||
return "engine";
|
||||
}
|
||||
28
engine/src/temp
Normal file
28
engine/src/temp
Normal file
@ -0,0 +1,28 @@
|
||||
WORK=C:\Users\ouczbs\AppData\Local\Temp\go-build2430488546
|
||||
cd D:\zvulkan
|
||||
git status --porcelain
|
||||
cd D:\zvulkan
|
||||
git -c log.showsignature=false show -s --format=%H:%ct
|
||||
# cd D:\zvulkan; git -c log.showsignature=false show -s --format=%H:%ct
|
||||
fatal: your current branch 'master' does not have any commits yet
|
||||
github.com/veandco/go-sdl2/sdl
|
||||
mkdir -p $WORK\b047\
|
||||
cd C:\Users\ouczbs\go\pkg\mod\github.com\veandco\go-sdl2@v0.4.35\sdl
|
||||
TERM='dumb' CGO_LDFLAGS='"-LC:\\Users\\ouczbs\\go\\cgo" "-lSDL2"' "C:\\Program Files\\Go\\pkg\\tool\\windows_amd64\\cgo.exe" -objdir "$WORK\\b047\\" -importpath github.com/veandco/go-sdl2/sdl -- -I "$WORK\\b047\\" "-IC:\\Users\\
|
||||
ouczbs\\go\\cgo" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\audio.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\blendmode.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\
|
||||
\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\clipboard.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\cpuinfo.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\endi
|
||||
an.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\error.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\events.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\
|
||||
veandco\\go-sdl2@v0.4.35\\sdl\\filesystem.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\gamecontroller.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\gesture.g
|
||||
o" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\guid.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\haptic.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veand
|
||||
co\\go-sdl2@v0.4.35\\sdl\\hidapi.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\hints.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\joystick.go" "C:\\Users\\ou
|
||||
czbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\keyboard.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\keycode.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@
|
||||
v0.4.35\\sdl\\loadso.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\log.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\mouse.go" "C:\\Users\\ouczbs\\go\\pkg\\mo
|
||||
d\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\mutex.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\pixels.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\power.g
|
||||
o" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\rect.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\render.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veand
|
||||
co\\go-sdl2@v0.4.35\\sdl\\rwops.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\scancode.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\sdl.go" "C:\\Users\\ouczb
|
||||
s\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\sdl_cgo.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\sensor.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.
|
||||
35\\sdl\\shape.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\surface.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\sysrender.go" "C:\\Users\\ouczbs\\go\\pkg\\
|
||||
mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\system.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\system_windows.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\s
|
||||
dl\\syswm.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\syswm_windows.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\thread.go" "C:\\Users\\ouczbs\\go\\pkg\\mo
|
||||
d\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\timer.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\touch.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\version.
|
||||
go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\video.go" "C:\\Users\\ouczbs\\go\\pkg\\mod\\github.com\\veandco\\go-sdl2@v0.4.35\\sdl\\vulkan.go"
|
||||
14
engine/xmake.lua
Normal file
14
engine/xmake.lua
Normal file
@ -0,0 +1,14 @@
|
||||
target("engine")
|
||||
set_kind("shared")
|
||||
set_group("engine")
|
||||
add_files("src/*.cpp")
|
||||
add_headerfiles("include/*.h")
|
||||
add_includedirs("include", {public = true})
|
||||
add_includedirs("modules/asset/include", {public = true})
|
||||
add_includedirs("modules/core/include", {public = true})
|
||||
add_includedirs("modules/zlib/include", {public = true})
|
||||
add_deps("asset", "zlib", "core")
|
||||
add_rules("engine.api")
|
||||
|
||||
includes("xmake/xmake.lua")
|
||||
includes("modules/*/xmake.lua")
|
||||
9
engine/xmake/api_define.lua
Normal file
9
engine/xmake/api_define.lua
Normal file
@ -0,0 +1,9 @@
|
||||
function main(target, name)
|
||||
local api = string.upper(name) .. "_API"
|
||||
if target:kind() == "static" then
|
||||
target:add("defines", api .. "=", api .. "_VAL", {public = false})
|
||||
else
|
||||
target:add("defines", api.."=__declspec(dllimport)", {interface=true})
|
||||
target:add("defines", api.."=__declspec(dllexport)", {public=false})
|
||||
end
|
||||
end
|
||||
16
engine/xmake/xmake.lua
Normal file
16
engine/xmake/xmake.lua
Normal file
@ -0,0 +1,16 @@
|
||||
rule("engine.api")
|
||||
on_load(function (target)
|
||||
print(target:name())
|
||||
import("api_define")
|
||||
api_define(target, target:name())
|
||||
local deps = target:get("deps")
|
||||
if not deps then return end
|
||||
import("core.project.project")
|
||||
local is_static = target:kind() == "static"
|
||||
for _,name in ipairs(deps) do
|
||||
local deptarget = project.target(name)
|
||||
if deptarget:kind() == "static" then
|
||||
api_define(target, name)
|
||||
end
|
||||
end
|
||||
end)
|
||||
4
game/vulkan/include/vulkan.h
Normal file
4
game/vulkan/include/vulkan.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
#include "zlib.h"
|
||||
VULKAN_API const char* vulkan();
|
||||
inline Module vulkan_module{vulkan(), true};
|
||||
6
game/vulkan/src/vulkan.cpp
Normal file
6
game/vulkan/src/vulkan.cpp
Normal file
@ -0,0 +1,6 @@
|
||||
#include "vulkan.h"
|
||||
|
||||
const char* vulkan()
|
||||
{
|
||||
return "vulkan";
|
||||
}
|
||||
8
game/vulkan/xmake.lua
Normal file
8
game/vulkan/xmake.lua
Normal file
@ -0,0 +1,8 @@
|
||||
target("vulkan")
|
||||
set_kind("shared")
|
||||
set_group("engine")
|
||||
add_rules("engine.api")
|
||||
add_files("src/*.cpp")
|
||||
add_headerfiles("include/*.h")
|
||||
add_includedirs("include", {public = true})
|
||||
add_deps("engine", {public = true})
|
||||
4
game/zworld/include/zworld.h
Normal file
4
game/zworld/include/zworld.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
#include "zlib.h"
|
||||
ZWORLD_API const char* zworld();
|
||||
inline Module zworld_module{zworld(), true};
|
||||
5
game/zworld/src/zworld.cpp
Normal file
5
game/zworld/src/zworld.cpp
Normal file
@ -0,0 +1,5 @@
|
||||
#include "zworld.h"
|
||||
const char* zworld()
|
||||
{
|
||||
return "zworld";
|
||||
}
|
||||
8
game/zworld/xmake.lua
Normal file
8
game/zworld/xmake.lua
Normal file
@ -0,0 +1,8 @@
|
||||
target("zworld")
|
||||
set_kind("shared")
|
||||
set_group("game")
|
||||
add_rules("engine.api")
|
||||
add_files("src/*.cpp")
|
||||
add_headerfiles("include/*.h")
|
||||
add_includedirs("include", {public = true})
|
||||
add_deps("vulkan", "engine", {public = true})
|
||||
11
game/zworld_editor/src/main.cpp
Normal file
11
game/zworld_editor/src/main.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
#include "zlib.h"
|
||||
#include "core.h"
|
||||
#include "asset.h"
|
||||
#include "api.h"
|
||||
#include "vulkan.h"
|
||||
#include "zworld.h"
|
||||
int main(int argc, char** argv) {
|
||||
zlog::info("hello world");
|
||||
zlog::flush();
|
||||
return 0;
|
||||
}
|
||||
7
game/zworld_editor/xmake.lua
Normal file
7
game/zworld_editor/xmake.lua
Normal file
@ -0,0 +1,7 @@
|
||||
target("zworld-editor")
|
||||
set_kind("binary")
|
||||
set_group("game")
|
||||
add_files("src/*.cpp")
|
||||
add_headerfiles("include/*.h")
|
||||
add_includedirs("include", {public = true})
|
||||
add_deps("zworld", {public = true})
|
||||
11
xmake.lua
Normal file
11
xmake.lua
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
add_rules("mode.debug", "mode.release")
|
||||
set_arch("x64")
|
||||
set_languages("cxx20")
|
||||
set_project("zengine")
|
||||
set_toolchains("clang")
|
||||
set_runtimes("MD","c++_shared")
|
||||
add_requires("spdlog")
|
||||
includes("engine/xmake.lua")
|
||||
includes("game/*/xmake.lua")
|
||||
--xmake project -k vsxmake2022 -m "debug;release"
|
||||
Loading…
Reference in New Issue
Block a user