123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- /*
- ==============================================================================
- This file is part of the juce_core module of the JUCE library.
- Copyright (c) 2013 - Raw Material Software Ltd.
- Permission to use, copy, modify, and/or distribute this software for any purpose with
- or without fee is hereby granted, provided that the above copyright notice and this
- permission notice appear in all copies.
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
- TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
- NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
- IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- ------------------------------------------------------------------------------
- NOTE! This permissive ISC license applies ONLY to files within the juce_core module!
- All other JUCE modules are covered by a dual GPL/commercial license, so if you are
- using any other modules, be sure to check that you also comply with their license.
- For more details, visit www.juce.com
- ==============================================================================
- */
- #ifndef JUCE_BASICNATIVEHEADERS_H_INCLUDED
- #define JUCE_BASICNATIVEHEADERS_H_INCLUDED
- #include "../system/juce_TargetPlatform.h"
- #undef T
- //==============================================================================
- #if JUCE_MAC || JUCE_IOS
- #if JUCE_IOS
- #import <Foundation/Foundation.h>
- #import <UIKit/UIKit.h>
- #import <CoreData/CoreData.h>
- #import <MobileCoreServices/MobileCoreServices.h>
- #include <sys/fcntl.h>
- #else
- #define Point CarbonDummyPointName
- #define Component CarbonDummyCompName
- #import <Cocoa/Cocoa.h>
- #import <CoreAudio/HostTime.h>
- #undef Point
- #undef Component
- #include <sys/dir.h>
- #endif
- #include <sys/socket.h>
- #include <sys/sysctl.h>
- #include <sys/stat.h>
- #include <sys/param.h>
- #include <sys/mount.h>
- #include <sys/utsname.h>
- #include <sys/mman.h>
- #include <fnmatch.h>
- #include <utime.h>
- #include <dlfcn.h>
- #include <ifaddrs.h>
- #include <net/if_dl.h>
- #include <mach/mach_time.h>
- #include <mach-o/dyld.h>
- #include <objc/runtime.h>
- #include <objc/objc.h>
- #include <objc/message.h>
- //==============================================================================
- #elif JUCE_WINDOWS
- #if JUCE_MSVC
- #ifndef _CPPRTTI
- #error "You're compiling without RTTI enabled! This is needed for a lot of JUCE classes, please update your compiler settings!"
- #endif
- #ifndef _CPPUNWIND
- #error "You're compiling without exceptions enabled! This is needed for a lot of JUCE classes, please update your compiler settings!"
- #endif
- #pragma warning (push)
- #pragma warning (disable : 4100 4201 4514 4312 4995)
- #endif
- #define STRICT 1
- #define WIN32_LEAN_AND_MEAN 1
- #if JUCE_MINGW
- #define _WIN32_WINNT 0x0501
- #else
- #define _WIN32_WINNT 0x0600
- #endif
- #define _UNICODE 1
- #define UNICODE 1
- #ifndef _WIN32_IE
- #define _WIN32_IE 0x0500
- #endif
- #include <windows.h>
- #include <shellapi.h>
- #include <tchar.h>
- #include <stddef.h>
- #include <ctime>
- #include <wininet.h>
- #include <nb30.h>
- #include <iphlpapi.h>
- #include <mapi.h>
- #include <float.h>
- #include <process.h>
- #include <shlobj.h>
- #include <shlwapi.h>
- #include <mmsystem.h>
- #if JUCE_MINGW
- #include <basetyps.h>
- #else
- #include <crtdbg.h>
- #include <comutil.h>
- #endif
- #undef PACKED
- #if JUCE_MSVC
- #pragma warning (pop)
- #pragma warning (4: 4511 4512 4100 /*4365*/) // (enable some warnings that are turned off in VC8)
- #endif
- #if JUCE_MSVC && ! JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
- #pragma comment (lib, "kernel32.lib")
- #pragma comment (lib, "user32.lib")
- #pragma comment (lib, "wininet.lib")
- #pragma comment (lib, "advapi32.lib")
- #pragma comment (lib, "ws2_32.lib")
- #pragma comment (lib, "version.lib")
- #pragma comment (lib, "shlwapi.lib")
- #pragma comment (lib, "winmm.lib")
- #ifdef _NATIVE_WCHAR_T_DEFINED
- #ifdef _DEBUG
- #pragma comment (lib, "comsuppwd.lib")
- #else
- #pragma comment (lib, "comsuppw.lib")
- #endif
- #else
- #ifdef _DEBUG
- #pragma comment (lib, "comsuppd.lib")
- #else
- #pragma comment (lib, "comsupp.lib")
- #endif
- #endif
- #endif
- /* Used with DynamicLibrary to simplify importing functions from a win32 DLL.
- dll: the DynamicLibrary object
- functionName: function to import
- localFunctionName: name you want to use to actually call it (must be different)
- returnType: the return type
- params: list of params (bracketed)
- */
- #define JUCE_LOAD_WINAPI_FUNCTION(dll, functionName, localFunctionName, returnType, params) \
- typedef returnType (WINAPI *type##localFunctionName) params; \
- type##localFunctionName localFunctionName = (type##localFunctionName) dll.getFunction (#functionName);
- //==============================================================================
- #elif JUCE_LINUX
- #include <sched.h>
- #include <pthread.h>
- #include <sys/time.h>
- #include <errno.h>
- #include <sys/stat.h>
- #include <sys/dir.h>
- #include <sys/ptrace.h>
- #include <sys/vfs.h>
- #include <sys/wait.h>
- #include <sys/mman.h>
- #include <fnmatch.h>
- #include <utime.h>
- #include <pwd.h>
- #include <fcntl.h>
- #include <dlfcn.h>
- #include <netdb.h>
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <sys/types.h>
- #include <sys/ioctl.h>
- #include <sys/socket.h>
- #include <net/if.h>
- #include <sys/sysinfo.h>
- #include <sys/file.h>
- #include <sys/prctl.h>
- #include <signal.h>
- #include <stddef.h>
- //==============================================================================
- #elif JUCE_ANDROID
- #include <jni.h>
- #include <pthread.h>
- #include <sched.h>
- #include <sys/time.h>
- #include <utime.h>
- #include <errno.h>
- #include <fcntl.h>
- #include <dlfcn.h>
- #include <sys/stat.h>
- #include <sys/statfs.h>
- #include <sys/ptrace.h>
- #include <sys/sysinfo.h>
- #include <sys/mman.h>
- #include <pwd.h>
- #include <dirent.h>
- #include <fnmatch.h>
- #include <sys/wait.h>
- #endif
- // Need to clear various moronic redefinitions made by system headers..
- #undef max
- #undef min
- #undef direct
- #undef check
- #endif // JUCE_BASICNATIVEHEADERS_H_INCLUDED
|