[videodb] remove unused seasons table from episode_view
[xbmc.git] / xbmc / platform / posix / main.cpp
blobacac58699e9edbaa2da82aea1aadea310fc33aca
1 /*
2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #include "PlatformPosix.h"
10 #include "application/AppEnvironment.h"
11 #include "application/AppParamParser.h"
12 #include "platform/xbmc.h"
14 #if defined(TARGET_LINUX) || defined(TARGET_FREEBSD)
15 #include "platform/linux/AppParamParserLinux.h"
16 #endif
18 #ifdef TARGET_WEBOS
19 #include "platform/linux/AppParamParserWebOS.h"
20 #endif
22 #include <cstdio>
23 #include <cstring>
24 #include <errno.h>
25 #include <locale.h>
26 #include <signal.h>
28 #include <sys/resource.h>
30 namespace
32 extern "C" void XBMC_POSIX_HandleSignal(int sig)
34 // Setting an atomic flag is one of the only useful things that is permitted by POSIX
35 // in signal handlers
36 CPlatformPosix::RequestQuit();
38 } // namespace
41 int main(int argc, char* argv[])
43 #if defined(_DEBUG)
44 struct rlimit rlim;
45 rlim.rlim_cur = rlim.rlim_max = RLIM_INFINITY;
46 if (setrlimit(RLIMIT_CORE, &rlim) == -1)
47 fprintf(stderr, "Failed to set core size limit (%s).\n", strerror(errno));
48 #endif
50 // Set up global SIGINT/SIGTERM handler
51 struct sigaction signalHandler;
52 std::memset(&signalHandler, 0, sizeof(signalHandler));
53 signalHandler.sa_handler = &XBMC_POSIX_HandleSignal;
54 signalHandler.sa_flags = SA_RESTART;
55 sigaction(SIGINT, &signalHandler, nullptr);
56 sigaction(SIGTERM, &signalHandler, nullptr);
58 setlocale(LC_NUMERIC, "C");
60 #ifdef TARGET_WEBOS
61 CAppParamParserWebOS appParamParser;
62 #elif defined(TARGET_LINUX) || defined(TARGET_FREEBSD)
63 CAppParamParserLinux appParamParser;
64 #else
65 CAppParamParser appParamParser;
66 #endif
67 appParamParser.Parse(argv, argc);
69 CAppEnvironment::SetUp(appParamParser.GetAppParams());
70 int status = XBMC_Run(true);
71 CAppEnvironment::TearDown();
73 return status;