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