53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
|
/*
|
||
|
* Copyright 2016 - 2023 Gary Talent (gary@drinkingtea.net). All rights reserved.
|
||
|
*/
|
||
|
|
||
|
#include <ox/logconn/def.hpp>
|
||
|
#include <ox/logconn/logconn.hpp>
|
||
|
|
||
|
#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<const char**>(__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<int>(err);
|
||
|
}
|