diff --git a/CMakeLists.txt b/CMakeLists.txt index feaf705c8..67ef6fb09 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,6 +143,11 @@ if (${CMAKE_CXX_COMPILER_ID} MATCHES "SunPro") add_definitions( -D_BSD_SOURCE -library=stlport4) endif (${CMAKE_CXX_COMPILER_ID} MATCHES "SunPro") +# iOS +if (IOS) + add_definitions( -DPOCO_HAVE_IPv6 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 -DPOCO_NO_SHAREDLIBS -DPOCO_NO_NET_IFTYPES ) +endif(IOS) + IF (ENABLE_TESTS) add_subdirectory(CppUnit) ENDIF () diff --git a/Util/include/Poco/Util/ServerApplication.h b/Util/include/Poco/Util/ServerApplication.h index 23aa77532..e2274cba4 100644 --- a/Util/include/Poco/Util/ServerApplication.h +++ b/Util/include/Poco/Util/ServerApplication.h @@ -196,6 +196,9 @@ private: void handlePidFile(const std::string& name, const std::string& value); bool isDaemon(int argc, char** argv); void beDaemon(); +#if defined(POCO_ANDROID) + static Poco::Event _terminate; +#endif #elif defined(POCO_OS_FAMILY_WINDOWS) #if !defined(_WIN32_WCE) enum Action diff --git a/Util/src/ServerApplication.cpp b/Util/src/ServerApplication.cpp index 25abdbf58..d9a2883e7 100644 --- a/Util/src/ServerApplication.cpp +++ b/Util/src/ServerApplication.cpp @@ -84,7 +84,7 @@ SERVICE_STATUS ServerApplication::_serviceStatus; SERVICE_STATUS_HANDLE ServerApplication::_serviceStatusHandle = 0; #endif #endif -#if defined(POCO_VXWORKS) +#if defined(POCO_VXWORKS) || defined(POCO_ANDROID) Poco::Event ServerApplication::_terminate; #endif @@ -122,7 +122,7 @@ void ServerApplication::terminate() { #if defined(POCO_OS_FAMILY_WINDOWS) _terminate.set(); -#elif defined(POCO_VXWORKS) +#elif defined(POCO_VXWORKS) || defined(POCO_ANDROID) _terminate.set(); #else Poco::Process::requestTermination(Process::id()); @@ -590,6 +590,7 @@ void ServerApplication::defineOptions(OptionSet& options) // void ServerApplication::waitForTerminationRequest() { +#ifndef POCO_ANDROID sigset_t sset; sigemptyset(&sset); if (!std::getenv("POCO_ENABLE_DEBUGGER")) @@ -601,6 +602,9 @@ void ServerApplication::waitForTerminationRequest() sigprocmask(SIG_BLOCK, &sset, NULL); int sig; sigwait(&sset, &sig); +#else // POCO_ANDROID + _terminate.wait(); +#endif } diff --git a/build/config/iPhone b/build/config/iPhone index be86a3247..70c72e66f 100644 --- a/build/config/iPhone +++ b/build/config/iPhone @@ -30,7 +30,7 @@ IPHONE_SDK_VERSION_MIN ?= $(patsubst %.sdk,%,$(patsubst $(IPHONE_SDK_ROOT_DIR)%, POCO_TARGET_OSNAME ?= $(IPHONE_SDK) POCO_TARGET_OSARCH ?= armv6 -TOOL_PREFIX ?= /Developer/Platforms/$(IPHONE_SDK).platform/Developer/usr/bin +TOOL_PREFIX ?= $(shell xcode-select -print-path)/Platforms/$(IPHONE_SDK).platform/Developer/usr/bin OSFLAGS ?= -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -mthumb -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN) #