/* * Copyright 2016 - 2023 Gary Talent (gary@drinkingtea.net). All rights reserved. */ #include #include #ifndef OLYMPIC_PROJECT_NAME #define OLYMPIC_PROJECT_NAME "OlympicProject" #endif #ifndef OLYMPIC_PROJECT_NAMESPACE #define OLYMPIC_PROJECT_NAMESPACE project #endif #ifndef OLYMPIC_PROJECT_DATADIR #define OLYMPIC_PROJECT_DATADIR ".keel" #endif ox::Error run( ox::StringView appName, ox::StringView projectDataDir, int argc, const char **argv) noexcept; namespace olympic { [[nodiscard]] ox::StringView appName() noexcept; } namespace OLYMPIC_PROJECT_NAMESPACE { void registerKeelModules() noexcept; void registerStudioModules() noexcept; } #ifdef _WIN32 int WinMain() { auto const argc = __argc; auto const argv = const_cast(__argv); #else int main(int argc, const char **argv) { #endif OX_INIT_DEBUG_LOGGER(loggerConn, olympic::appName()) OLYMPIC_PROJECT_NAMESPACE::registerKeelModules(); OLYMPIC_PROJECT_NAMESPACE::registerStudioModules(); auto const err = run(olympic::appName(), OLYMPIC_PROJECT_DATADIR, argc, argv); oxAssert(err, "Something went wrong..."); if (err) { oxErrf("Failure: {}\n", toStr(err)); } return static_cast(err); }