Files
mob/src/main.cpp
T
2020-05-02 03:12:34 -04:00

110 lines
1.5 KiB
C++

#include "pch.h"
#include "conf.h"
#include "net.h"
#include "op.h"
#include "tools.h"
#include "utility.h"
#include "tasks/tasks.h"
namespace mob
{
BOOL WINAPI signal_handler(DWORD) noexcept
{
info("caught sigint");
task::interrupt_all();
return TRUE;
}
struct curl_init
{
curl_init()
{
curl_global_init(CURL_GLOBAL_ALL );
}
~curl_init()
{
curl_global_cleanup();
}
};
int run(int argc, char** argv)
{
try
{
::SetConsoleCtrlHandler(signal_handler, TRUE);
curl_init curl;
this_env::set(
"PATH",
(find_third_party_directory() / "bin").string() + ";",
env::prepend);
add_task<sevenz>();
add_task<zlib>();
add_task<fmt>();
add_task<gtest>();
add_task<libbsarch>();
add_task<libloot>();
add_task<openssl>();
add_task<libffi>();
add_task<bzip2>();
add_task<python>();
add_task<boost>();
add_task<lz4>();
add_task<nmm>();
add_task<ncc>();
add_task<spdlog>();
add_task<usvfs>();
add_task<sip>();
add_task<pyqt>();
if (argc > 1)
{
std::vector<std::string> tasks;
for (int i=1; i<argc; ++i)
{
const std::string arg = argv[i];
if (arg == "--clean")
conf::set_clean(true);
else
tasks.push_back(arg);
}
for (auto&& t : tasks)
{
if (!run_task(t))
return 1;
}
return 0;
}
run_all_tasks();
return 0;
}
catch(bailed)
{
error("bailing out");
return 1;
}
}
} // namespace
int main(int argc, char** argv)
{
int r = mob::run(argc, argv);
mob::dump_logs();
//std::cin.get();
return r;
}