1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #include "RegisterMonoModules.h"
- #include "RegisterFeatures.h"
- #include <csignal>
- // Hack to work around iOS SDK 4.3 linker problem
- // we need at least one __TEXT, __const section entry in main application .o files
- // to get this section emitted at right time and so avoid LC_ENCRYPTION_INFO size miscalculation
- static const int constsection = 0;
- void UnityInitTrampoline();
- // WARNING: this MUST be c decl (NSString ctor will be called after +load, so we cant really change its value)
- const char* AppControllerClassName = "UnityAppController";
- int main(int argc, char* argv[])
- {
- UnityInitStartupTime();
- @autoreleasepool
- {
- UnityInitTrampoline();
- UnityInitRuntime(argc, argv);
- RegisterMonoModules();
- NSLog(@"-> registered mono modules %p\n", &constsection);
- RegisterFeatures();
- // iOS terminates open sockets when an application enters background mode.
- // The next write to any of such socket causes SIGPIPE signal being raised,
- // even if the request has been done from scripting side. This disables the
- // signal and allows Mono to throw a proper C# exception.
- std::signal(SIGPIPE, SIG_IGN);
- UIApplicationMain(argc, argv, nil, [NSString stringWithUTF8String: AppControllerClassName]);
- }
- return 0;
- }
- #if TARGET_IPHONE_SIMULATOR && TARGET_TVOS_SIMULATOR
- #include <pthread.h>
- extern "C" int pthread_cond_init$UNIX2003(pthread_cond_t *cond, const pthread_condattr_t *attr)
- { return pthread_cond_init(cond, attr); }
- extern "C" int pthread_cond_destroy$UNIX2003(pthread_cond_t *cond)
- { return pthread_cond_destroy(cond); }
- extern "C" int pthread_cond_wait$UNIX2003(pthread_cond_t *cond, pthread_mutex_t *mutex)
- { return pthread_cond_wait(cond, mutex); }
- extern "C" int pthread_cond_timedwait$UNIX2003(pthread_cond_t *cond, pthread_mutex_t *mutex,
- const struct timespec *abstime)
- { return pthread_cond_timedwait(cond, mutex, abstime); }
- #endif // TARGET_IPHONE_SIMULATOR && TARGET_TVOS_SIMULATOR
|