diff options
| author | vimene <vincent.menegaux@gmail.com> | 2026-02-05 10:31:47 +0100 |
|---|---|---|
| committer | vimene <vincent.menegaux@gmail.com> | 2026-02-05 10:31:47 +0100 |
| commit | ccf086c39f734a000aa3a2fac034f0620021fbdf (patch) | |
| tree | c49547742909adb671b1e5a43cd042c02509b4b6 /src/path_utils.cpp | |
| parent | cbf7d23623b5bb2d2092cb6c86bc965138b4ea75 (diff) | |
| download | engine-ccf086c39f734a000aa3a2fac034f0620021fbdf.tar.gz | |
added back windows cross-compilation
Makefile.am is too ugly, but I don't have a better solution right now.
- fused Makefile.am and src/Makefile.am
- adding back windows cross-compilation
- improved README.md a lot
- added configure option to enable debug, which greatly simplifies
development when writing shaders
- removed dependency on LunarG's Vulkan SDK by having dependency only on
Vulkan headers, library and slangc
- removed print C++ header because I have an old MinGW which doesn't
support it. It will be restored in the future
- make every assets path relative to be able to build anywhere and run
elsewhere
- moved stb_image.h inside source directory instead of making it a
dependency, which is more aligned with stb philosophy
- moved assets inside source code to make it easy to compile and run the
engine
- improved configure.ac by checking Vulkan headers version directly in
the configure script instead of within C code, which allows us to also
do theses checks when cross-compiling
Diffstat (limited to 'src/path_utils.cpp')
| -rw-r--r-- | src/path_utils.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/path_utils.cpp b/src/path_utils.cpp new file mode 100644 index 0000000..df35ef1 --- /dev/null +++ b/src/path_utils.cpp @@ -0,0 +1,20 @@ +#include "path_utils.hpp" +#include <optional> +#include <filesystem> +#ifdef _WIN32 +# include <windows.h> +# include <tchar.h> +#endif + +std::optional<std::filesystem::path> engine::path_utils::exe_path() noexcept { +#if defined(_WIN32) + TCHAR filename[MAX_PATH]; + if (!GetModuleFileName(NULL, filename, MAX_PATH)) + return {}; + return std::filesystem::path(filename); +#elif defined(linux) + return std::filesystem::canonical("/proc/self/exe"); +#else +# error "operating system not supported" +#endif +} |
