Support building on Windows with Clang MSVC target

This commit is contained in:
Frederik Seiffert 2021-01-18 14:20:14 +01:00 committed by Frederik Seiffert
parent ece6fc97ff
commit 61709e6101
174 changed files with 991 additions and 320 deletions

189
ChangeLog
View file

@ -8,6 +8,195 @@
Use statbuf.st_mtim to get nanosecond precision in modification Use statbuf.st_mtim to get nanosecond precision in modification
date, also fix conversion of nanoseconds in creation date. date, also fix conversion of nanoseconds in creation date.
2021-01-29 Frederik Seiffert <frederik@algoriddim.com>
* Headers/Foundation/NSAffineTransform.h:
* Headers/Foundation/NSAppleEventDescriptor.h:
* Headers/Foundation/NSAppleEventManager.h:
* Headers/Foundation/NSAppleScript.h:
* Headers/Foundation/NSArchiver.h:
* Headers/Foundation/NSArray.h:
* Headers/Foundation/NSAttributedString.h:
* Headers/Foundation/NSAutoreleasePool.h:
* Headers/Foundation/NSBackgroundActivityScheduler.h:
* Headers/Foundation/NSBundle.h:
* Headers/Foundation/NSByteCountFormatter.h:
* Headers/Foundation/NSCache.h:
* Headers/Foundation/NSCalendar.h:
* Headers/Foundation/NSCalendarDate.h:
* Headers/Foundation/NSCharacterSet.h:
* Headers/Foundation/NSClassDescription.h:
* Headers/Foundation/NSCoder.h:
* Headers/Foundation/NSComparisonPredicate.h:
* Headers/Foundation/NSCompoundPredicate.h:
* Headers/Foundation/NSConnection.h:
* Headers/Foundation/NSData.h:
* Headers/Foundation/NSDate.h:
* Headers/Foundation/NSDateComponentsFormatter.h:
* Headers/Foundation/NSDateFormatter.h:
* Headers/Foundation/NSDateInterval.h:
* Headers/Foundation/NSDateIntervalFormatter.h:
* Headers/Foundation/NSDictionary.h:
* Headers/Foundation/NSDistantObject.h:
* Headers/Foundation/NSDistributedLock.h:
* Headers/Foundation/NSEnergyFormatter.h:
* Headers/Foundation/NSEnumerator.h:
* Headers/Foundation/NSError.h:
* Headers/Foundation/NSException.h:
* Headers/Foundation/NSExpression.h:
* Headers/Foundation/NSExtensionContext.h:
* Headers/Foundation/NSExtensionItem.h:
* Headers/Foundation/NSFileCoordinator.h:
* Headers/Foundation/NSFileHandle.h:
* Headers/Foundation/NSFileManager.h:
* Headers/Foundation/NSFileVersion.h:
* Headers/Foundation/NSFileWrapper.h:
* Headers/Foundation/NSGarbageCollector.h:
* Headers/Foundation/NSHTTPCookie.h:
* Headers/Foundation/NSHTTPCookieStorage.h:
* Headers/Foundation/NSHashTable.h:
* Headers/Foundation/NSHost.h:
* Headers/Foundation/NSISO8601DateFormatter.h:
* Headers/Foundation/NSInvocation.h:
* Headers/Foundation/NSInvocationOperation.h:
* Headers/Foundation/NSItemProvider.h:
* Headers/Foundation/NSItemProviderReadingWriting.h:
* Headers/Foundation/NSJSONSerialization.h:
* Headers/Foundation/NSKeyedArchiver.h:
* Headers/Foundation/NSLengthFormatter.h:
* Headers/Foundation/NSLinguisticTagger.h:
* Headers/Foundation/NSLocale.h:
* Headers/Foundation/NSLock.h:
* Headers/Foundation/NSMapTable.h:
* Headers/Foundation/NSMassFormatter.h:
* Headers/Foundation/NSMeasurement.h:
* Headers/Foundation/NSMeasurementFormatter.h:
* Headers/Foundation/NSMetadata.h:
* Headers/Foundation/NSMethodSignature.h:
* Headers/Foundation/NSNetServices.h:
* Headers/Foundation/NSNotification.h:
* Headers/Foundation/NSNotificationQueue.h:
* Headers/Foundation/NSNumberFormatter.h:
* Headers/Foundation/NSObjCRuntime.h:
* Headers/Foundation/NSObject.h:
* Headers/Foundation/NSObjectScripting.h:
* Headers/Foundation/NSOperation.h:
* Headers/Foundation/NSOrderedSet.h:
* Headers/Foundation/NSOrthography.h:
* Headers/Foundation/NSPersonNameComponents.h:
* Headers/Foundation/NSPersonNameComponentsFormatter.h:
* Headers/Foundation/NSPointerArray.h:
* Headers/Foundation/NSPointerFunctions.h:
* Headers/Foundation/NSPort.h:
* Headers/Foundation/NSPortCoder.h:
* Headers/Foundation/NSPortNameServer.h:
* Headers/Foundation/NSPredicate.h:
* Headers/Foundation/NSProcessInfo.h:
* Headers/Foundation/NSProgress.h:
* Headers/Foundation/NSPropertyList.h:
* Headers/Foundation/NSProtocolChecker.h:
* Headers/Foundation/NSProxy.h:
* Headers/Foundation/NSRegularExpression.h:
* Headers/Foundation/NSRunLoop.h:
* Headers/Foundation/NSScanner.h:
* Headers/Foundation/NSScriptClassDescription.h:
* Headers/Foundation/NSScriptCoercionHandler.h:
* Headers/Foundation/NSScriptCommand.h:
* Headers/Foundation/NSScriptCommandDescription.h:
* Headers/Foundation/NSScriptExecutionContext.h:
* Headers/Foundation/NSScriptKeyValueCoding.h:
* Headers/Foundation/NSScriptObjectSpecifiers.h:
* Headers/Foundation/NSScriptStandardSuiteCommands.h:
* Headers/Foundation/NSScriptSuiteRegistry.h:
* Headers/Foundation/NSSerialization.h:
* Headers/Foundation/NSSet.h:
* Headers/Foundation/NSSortDescriptor.h:
* Headers/Foundation/NSSpellServer.h:
* Headers/Foundation/NSStream.h:
* Headers/Foundation/NSString.h:
* Headers/Foundation/NSTask.h:
* Headers/Foundation/NSTextCheckingResult.h:
* Headers/Foundation/NSThread.h:
* Headers/Foundation/NSTimeZone.h:
* Headers/Foundation/NSTimer.h:
* Headers/Foundation/NSURL.h:
* Headers/Foundation/NSURLAuthenticationChallenge.h:
* Headers/Foundation/NSURLCache.h:
* Headers/Foundation/NSURLConnection.h:
* Headers/Foundation/NSURLCredential.h:
* Headers/Foundation/NSURLCredentialStorage.h:
* Headers/Foundation/NSURLDownload.h:
* Headers/Foundation/NSURLHandle.h:
* Headers/Foundation/NSURLProtectionSpace.h:
* Headers/Foundation/NSURLProtocol.h:
* Headers/Foundation/NSURLRequest.h:
* Headers/Foundation/NSURLResponse.h:
* Headers/Foundation/NSURLSession.h:
* Headers/Foundation/NSUUID.h:
* Headers/Foundation/NSUbiquitousKeyValueStore.h:
* Headers/Foundation/NSUndoManager.h:
* Headers/Foundation/NSUnit.h:
* Headers/Foundation/NSUserActivity.h:
* Headers/Foundation/NSUserDefaults.h:
* Headers/Foundation/NSUserNotification.h:
* Headers/Foundation/NSUserScriptTask.h:
* Headers/Foundation/NSValue.h:
* Headers/Foundation/NSValueTransformer.h:
* Headers/Foundation/NSXMLDTD.h:
* Headers/Foundation/NSXMLDTDNode.h:
* Headers/Foundation/NSXMLDocument.h:
* Headers/Foundation/NSXMLElement.h:
* Headers/Foundation/NSXMLNode.h:
* Headers/Foundation/NSXMLParser.h:
* Headers/Foundation/NSXPCConnection.h:
* Headers/GNUstepBase/CXXException.h:
* Headers/GNUstepBase/GCObject.h:
* Headers/GNUstepBase/GSConfig.h.in:
* Headers/GNUstepBase/GSMime.h:
* Headers/GNUstepBase/GSTLS.h:
* Headers/GNUstepBase/GSVersionMacros.h:
* Headers/GNUstepBase/GSXML.h:
* Headers/GNUstepBase/NSStream+GNUstepBase.h:
* Source/Additions/GSXML.m:
* Source/Additions/Makefile.preamble:
* Source/CXXException.m:
* Source/GNUmakefile:
* Source/NSException.m:
* Source/NSFileManager.m:
* Source/NSPropertyList.m:
* Source/NSSocketPort.m:
* Source/ObjectiveC2/Makefile.preamble:
* Source/common.h:
* Source/externs.m:
* Source/inet_ntop.m:
* Source/inet_pton.m:
* Source/libgnustep-base-entry.m:
* Source/unix/Makefile.preamble:
* Source/win32/GSFileHandle.m:
* Source/win32/Makefile.preamble:
* Tools/GNUmakefile:
* Tools/Makefile.preamble:
* Tools/gdnc.m:
* Tools/make_strings/make_strings.m:
* Tools/pl2link.m:
* Tools/plutil.m:
* config/config.initialize.m:
* configure:
* configure.ac:
Added support for building on Windows with Clang MSVC target and
libobjc2. This requires using a standard (non-MinGW) Clang build that
e.g. comes with Visual Studio or is available as pre-built binary from
the LLVM website, and requires passing a host to configure like
--host=x86_64-pc-windows.
The build is best done in an MSYS2 shell that does not have any
additional *-devel packages installed that might get picked up by
configure. Alternatively --disable-xxx flags can be used to prevent
these dependencies to be picked up.
Annotates all ObjC class interfaces with GS_EXPORT_CLASS for DLL
export/import declarations, and adds missing GS_DECLARE annotations
in externs.m, in order for these symbols to be correctly exported
in the DLL.
2021-01-21 Fred Kiefer <fredkiefer@gmx.de> 2021-01-21 Fred Kiefer <fredkiefer@gmx.de>
* Tools/pl2link.m (main): Set key StartupWMClass and allow file * Tools/pl2link.m (main): Set key StartupWMClass and allow file

View file

@ -41,6 +41,7 @@ typedef struct {
CGFloat tY; CGFloat tY;
} NSAffineTransformStruct; } NSAffineTransformStruct;
GS_EXPORT_CLASS
@interface NSAffineTransform : NSObject <NSCopying, NSCoding> @interface NSAffineTransform : NSObject <NSCopying, NSCoding>
{ {
#if GS_EXPOSE(NSAffineTransform) #if GS_EXPOSE(NSAffineTransform)

View file

@ -33,6 +33,7 @@
extern "C" { extern "C" {
#endif #endif
GS_EXPORT_CLASS
@interface NSAppleEventDescriptor : NSObject @interface NSAppleEventDescriptor : NSObject
@end @end

View file

@ -33,6 +33,7 @@
extern "C" { extern "C" {
#endif #endif
GS_EXPORT_CLASS
@interface NSAppleEventManager : NSObject @interface NSAppleEventManager : NSObject
@end @end

View file

@ -34,6 +34,7 @@ extern "C" {
#if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST) #if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSAppleScript : NSObject @interface NSAppleScript : NSObject
@end @end

View file

@ -40,6 +40,7 @@ extern "C" {
#if OS_API_VERSION(GS_API_OSSPEC,GS_API_LATEST) #if OS_API_VERSION(GS_API_OSSPEC,GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSArchiver : NSCoder @interface NSArchiver : NSCoder
{ {
#if GS_EXPOSE(NSArchiver) #if GS_EXPOSE(NSArchiver)
@ -157,8 +158,9 @@ extern "C" {
@end @end
#endif #endif
GS_EXPORT_CLASS
@interface NSUnarchiver : NSCoder @interface NSUnarchiver : NSCoder
{ {
#if GS_EXPOSE(NSUnarchiver) #if GS_EXPOSE(NSUnarchiver)

View file

@ -57,6 +57,7 @@ enum
typedef NSUInteger NSBinarySearchingOptions; typedef NSUInteger NSBinarySearchingOptions;
#endif #endif
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSArray, __covariant ElementT) : NSObject @interface GS_GENERIC_CLASS(NSArray, __covariant ElementT) : NSObject
<NSCoding, NSCopying, NSMutableCopying, NSFastEnumeration> <NSCoding, NSCopying, NSMutableCopying, NSFastEnumeration>
@ -300,7 +301,8 @@ DEFINE_BLOCK_TYPE(GSPredicateBlock, BOOL, GS_GENERIC_TYPE(ElementT), NSUInteger,
- (GS_GENERIC_TYPE(ElementT)) objectAtIndexedSubscript: (NSUInteger)anIndex; - (GS_GENERIC_TYPE(ElementT)) objectAtIndexedSubscript: (NSUInteger)anIndex;
@end @end
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSMutableArray, ElementT) : GS_GENERIC_CLASS(NSArray, ElementT) @interface GS_GENERIC_CLASS(NSMutableArray, ElementT) : GS_GENERIC_CLASS(NSArray, ElementT)
+ (instancetype) arrayWithCapacity: (NSUInteger)numItems; + (instancetype) arrayWithCapacity: (NSUInteger)numItems;

View file

@ -61,6 +61,7 @@ extern "C" {
#import <Foundation/NSArray.h> #import <Foundation/NSArray.h>
#import <Foundation/NSCoder.h> #import <Foundation/NSCoder.h>
GS_EXPORT_CLASS
@interface NSAttributedString : NSObject <NSCoding, NSCopying, NSMutableCopying> @interface NSAttributedString : NSObject <NSCoding, NSCopying, NSMutableCopying>
{ {
} }
@ -100,6 +101,7 @@ extern "C" {
@end //NSAttributedString @end //NSAttributedString
GS_EXPORT_CLASS
@interface NSMutableAttributedString : NSAttributedString @interface NSMutableAttributedString : NSAttributedString
{ {
} }

View file

@ -178,8 +178,8 @@ typedef struct autorelease_array_list
* </desc> * </desc>
* </deflist> * </deflist>
*/ */
NS_AUTOMATED_REFCOUNT_UNAVAILABLE GS_EXPORT_CLASS NS_AUTOMATED_REFCOUNT_UNAVAILABLE
@interface NSAutoreleasePool : NSObject @interface NSAutoreleasePool : NSObject
{ {
#if GS_EXPOSE(NSAutoreleasePool) && !__has_feature(objc_arc) #if GS_EXPOSE(NSAutoreleasePool) && !__has_feature(objc_arc)
/* For re-setting the current pool when we are dealloc'ed. */ /* For re-setting the current pool when we are dealloc'ed. */

View file

@ -65,6 +65,7 @@ typedef NSInteger NSQualityOfService;
DEFINE_BLOCK_TYPE(GSScheduledBlock, void, NSBackgroundActivityCompletionHandler); DEFINE_BLOCK_TYPE(GSScheduledBlock, void, NSBackgroundActivityCompletionHandler);
//# endif //# endif
GS_EXPORT_CLASS
@interface NSBackgroundActivityScheduler : NSObject @interface NSBackgroundActivityScheduler : NSObject
{ {
NSString *_identifier; NSString *_identifier;

View file

@ -109,6 +109,7 @@ GS_EXPORT NSString* const NSLoadedClasses;
bundle. bundle.
</p> </p>
*/ */
GS_EXPORT_CLASS
@interface NSBundle : NSObject @interface NSBundle : NSObject
{ {
#if GS_EXPOSE(NSBundle) #if GS_EXPOSE(NSBundle)

View file

@ -60,7 +60,8 @@ enum {
NSByteCountFormatterCountStyleBinary = 3, NSByteCountFormatterCountStyleBinary = 3,
}; };
typedef NSInteger NSByteCountFormatterCountStyle; typedef NSInteger NSByteCountFormatterCountStyle;
GS_EXPORT_CLASS
@interface NSByteCountFormatter : NSFormatter @interface NSByteCountFormatter : NSFormatter
{ {
#if GS_EXPOSE(NSByteCountFormatter) #if GS_EXPOSE(NSByteCountFormatter)

View file

@ -38,6 +38,7 @@ extern "C" {
@class NSMapTable; @class NSMapTable;
@class GS_GENERIC_CLASS(NSMutableArray, ElementT); @class GS_GENERIC_CLASS(NSMutableArray, ElementT);
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSCache, KeyT, ValT) : NSObject @interface GS_GENERIC_CLASS(NSCache, KeyT, ValT) : NSObject
{ {
#if GS_EXPOSE(NSCache) #if GS_EXPOSE(NSCache)

View file

@ -148,6 +148,7 @@ enum
GS_EXPORT_CLASS
@interface NSDateComponents : NSObject <NSCopying> @interface NSDateComponents : NSObject <NSCopying>
{ {
@private @private
@ -262,6 +263,7 @@ enum
GS_EXPORT_CLASS
@interface NSCalendar : NSObject <NSCoding, NSCopying> @interface NSCalendar : NSObject <NSCoding, NSCopying>
{ {
@private @private

View file

@ -32,6 +32,7 @@ extern "C" {
@class NSTimeZone; @class NSTimeZone;
@class NSTimeZoneDetail; @class NSTimeZoneDetail;
GS_EXPORT_CLASS
@interface NSCalendarDate : NSDate @interface NSCalendarDate : NSDate
{ {
#if GS_EXPOSE(NSCalendarDate) #if GS_EXPOSE(NSCalendarDate)

View file

@ -39,6 +39,7 @@ extern "C" {
* Represents a set of unicode characters. Used by [NSScanner] and [NSString] * Represents a set of unicode characters. Used by [NSScanner] and [NSString]
* for parsing-related methods. * for parsing-related methods.
*/ */
GS_EXPORT_CLASS
@interface NSCharacterSet : NSObject <NSCoding, NSCopying, NSMutableCopying> @interface NSCharacterSet : NSObject <NSCoding, NSCopying, NSMutableCopying>
/** /**
@ -238,6 +239,7 @@ extern "C" {
/** /**
* An [NSCharacterSet] that can be modified. * An [NSCharacterSet] that can be modified.
*/ */
GS_EXPORT_CLASS
@interface NSMutableCharacterSet : NSCharacterSet @interface NSMutableCharacterSet : NSCharacterSet
/** /**

View file

@ -47,6 +47,7 @@ extern "C" {
*/ */
GS_EXPORT NSString* const NSClassDescriptionNeededForClassNotification; GS_EXPORT NSString* const NSClassDescriptionNeededForClassNotification;
GS_EXPORT_CLASS
@interface NSClassDescription : NSObject @interface NSClassDescription : NSObject
+ (NSClassDescription*) classDescriptionForClass: (Class)aClass; + (NSClassDescription*) classDescriptionForClass: (Class)aClass;

View file

@ -48,6 +48,7 @@ extern "C" {
* preferred for new implementations, since they provide greater * preferred for new implementations, since they provide greater
* forward/backward compatibility in the face of class changes.</p> * forward/backward compatibility in the face of class changes.</p>
*/ */
GS_EXPORT_CLASS
@interface NSCoder : NSObject @interface NSCoder : NSObject
// Encoding Data // Encoding Data

View file

@ -69,6 +69,7 @@ typedef enum _NSPredicateOperatorType
#endif #endif
} NSPredicateOperatorType; } NSPredicateOperatorType;
GS_EXPORT_CLASS
@interface NSComparisonPredicate : NSPredicate @interface NSComparisonPredicate : NSPredicate
{ {
#if GS_EXPOSE(NSComparisonPredicate) #if GS_EXPOSE(NSComparisonPredicate)

View file

@ -42,6 +42,7 @@ enum
}; };
typedef NSUInteger NSCompoundPredicateType; typedef NSUInteger NSCompoundPredicateType;
GS_EXPORT_CLASS
@interface NSCompoundPredicate : NSPredicate @interface NSCompoundPredicate : NSPredicate
{ {
#if GS_EXPOSE(NSCompoundPredicate) #if GS_EXPOSE(NSCompoundPredicate)

View file

@ -92,6 +92,7 @@ GS_EXPORT NSString* const NSConnectionProxyCount; /* Objects received */
* *
* A few methods are in the specification but not yet implemented. * A few methods are in the specification but not yet implemented.
*/ */
GS_EXPORT_CLASS
@interface NSConnection : NSObject @interface NSConnection : NSObject
{ {
#if GS_NONFRAGILE #if GS_NONFRAGILE

View file

@ -81,6 +81,7 @@ enum {
DEFINE_BLOCK_TYPE(GSDataDeallocatorBlock, void, void*, NSUInteger); DEFINE_BLOCK_TYPE(GSDataDeallocatorBlock, void, void*, NSUInteger);
#endif #endif
GS_EXPORT_CLASS
@interface NSData : NSObject <NSCoding, NSCopying, NSMutableCopying> @interface NSData : NSObject <NSCoding, NSCopying, NSMutableCopying>
// Allocating and Initializing a Data Object // Allocating and Initializing a Data Object
@ -312,6 +313,7 @@ DEFINE_BLOCK_TYPE(GSDataDeallocatorBlock, void, void*, NSUInteger);
@end @end
#endif #endif
GS_EXPORT_CLASS
@interface NSMutableData : NSData @interface NSMutableData : NSData
+ (id) dataWithCapacity: (NSUInteger)numBytes; + (id) dataWithCapacity: (NSUInteger)numBytes;

View file

@ -56,6 +56,7 @@ GS_EXPORT const NSTimeInterval NSTimeIntervalSince1970;
@class NSTimeZone; @class NSTimeZone;
@class NSTimeZoneDetail; @class NSTimeZoneDetail;
GS_EXPORT_CLASS
@interface NSDate : NSObject <NSCoding,NSCopying> @interface NSDate : NSObject <NSCoding,NSCopying>
{ {
} }

View file

@ -72,7 +72,8 @@ enum
typedef NSUInteger NSDateComponentsFormatterZeroFormattingBehavior; typedef NSUInteger NSDateComponentsFormatterZeroFormattingBehavior;
@class NSString, NSDate; @class NSString, NSDate;
GS_EXPORT_CLASS
@interface NSDateComponentsFormatter : NSFormatter @interface NSDateComponentsFormatter : NSFormatter
{ {
NSCalendar *_calendar; NSCalendar *_calendar;

View file

@ -122,6 +122,7 @@ typedef NSUInteger NSDateFormatterBehavior;
* <desc>time zone offset in hours and minutes from GMT (HHMM)</desc> * <desc>time zone offset in hours and minutes from GMT (HHMM)</desc>
* </deflist> * </deflist>
*/ */
GS_EXPORT_CLASS
@interface NSDateFormatter : NSFormatter <NSCoding, NSCopying> @interface NSDateFormatter : NSFormatter <NSCoding, NSCopying>
{ {
#if GS_EXPOSE(NSDateFormatter) #if GS_EXPOSE(NSDateFormatter)

View file

@ -34,6 +34,7 @@ extern "C" {
#if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST) #if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSDateInterval : NSObject <NSCoding, NSCopying> @interface NSDateInterval : NSObject <NSCoding, NSCopying>
{ {
NSTimeInterval _duration; NSTimeInterval _duration;

View file

@ -44,7 +44,8 @@ enum {
typedef NSUInteger NSDateIntervalFormatterStyle; typedef NSUInteger NSDateIntervalFormatterStyle;
@class NSCalendar, NSLocale, NSDateInterval; @class NSCalendar, NSLocale, NSDateInterval;
GS_EXPORT_CLASS
@interface NSDateIntervalFormatter : NSFormatter @interface NSDateIntervalFormatter : NSFormatter
{ {
NSLocale *_locale; NSLocale *_locale;

View file

@ -37,6 +37,7 @@ extern "C" {
@class GS_GENERIC_CLASS(NSSet, ElementT); @class GS_GENERIC_CLASS(NSSet, ElementT);
@class NSString, NSURL; @class NSString, NSURL;
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSDictionary, @interface GS_GENERIC_CLASS(NSDictionary,
__covariant KeyT:id<NSCopying>, __covariant ValT) __covariant KeyT:id<NSCopying>, __covariant ValT)
: NSObject <NSCoding, NSCopying, NSMutableCopying, NSFastEnumeration> : NSObject <NSCoding, NSCopying, NSMutableCopying, NSFastEnumeration>
@ -132,6 +133,7 @@ DEFINE_BLOCK_TYPE(GSKeysAndObjectsPredicateBlock, BOOL, GS_GENERIC_TYPE_F(KeyT,i
(GS_GENERIC_TYPE(KeyT))aKey; (GS_GENERIC_TYPE(KeyT))aKey;
@end @end
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSMutableDictionary, KeyT:id<NSCopying>, ValT) : @interface GS_GENERIC_CLASS(NSMutableDictionary, KeyT:id<NSCopying>, ValT) :
GS_GENERIC_CLASS(NSDictionary, KeyT, ValT) GS_GENERIC_CLASS(NSDictionary, KeyT, ValT)

View file

@ -35,6 +35,7 @@ extern "C" {
@class NSConnection; @class NSConnection;
GS_EXPORT_CLASS
@interface NSDistantObject : NSProxy <NSCoding> @interface NSDistantObject : NSProxy <NSCoding>
{ {
#if GS_EXPOSE(NSDistantObject) #if GS_EXPOSE(NSDistantObject)

View file

@ -36,6 +36,7 @@
extern "C" { extern "C" {
#endif #endif
GS_EXPORT_CLASS
@interface NSDistributedLock : NSObject @interface NSDistributedLock : NSObject
{ {
#if GS_EXPOSE(NSDistributedLock) #if GS_EXPOSE(NSDistributedLock)

View file

@ -43,6 +43,7 @@ enum {
}; };
typedef NSInteger NSEnergyFormatterUnit; typedef NSInteger NSEnergyFormatterUnit;
GS_EXPORT_CLASS
@interface NSEnergyFormatter : NSFormatter @interface NSEnergyFormatter : NSFormatter
{ {
BOOL _isForFoodEnergyUse; BOOL _isForFoodEnergyUse;

View file

@ -51,6 +51,7 @@ typedef struct
count: (NSUInteger)len; count: (NSUInteger)len;
@end @end
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSEnumerator, IterT) : NSObject <NSFastEnumeration> @interface GS_GENERIC_CLASS(NSEnumerator, IterT) : NSObject <NSFastEnumeration>
- (GS_GENERIC_CLASS(NSArray, IterT) *) allObjects; - (GS_GENERIC_CLASS(NSArray, IterT) *) allObjects;
- (GS_GENERIC_TYPE(IterT)) nextObject; - (GS_GENERIC_TYPE(IterT)) nextObject;

View file

@ -129,6 +129,7 @@ GS_EXPORT NSErrorDomain const NSCocoaErrorDomain;
* by external factors (such as a resource file not being present) * by external factors (such as a resource file not being present)
* rather than a programming error (where NSException should be used). * rather than a programming error (where NSException should be used).
*/ */
GS_EXPORT_CLASS
@interface NSError : NSObject <NSCopying, NSCoding> @interface NSError : NSObject <NSCopying, NSCoding>
{ {
#if GS_EXPOSE(NSError) #if GS_EXPOSE(NSError)

View file

@ -110,6 +110,7 @@ extern "C" {
message before the program terminates. message before the program terminates.
</p> </p>
*/ */
GS_EXPORT_CLASS
@interface NSException : NSObject <NSCoding, NSCopying> @interface NSException : NSObject <NSCoding, NSCopying>
{ {
#if GS_EXPOSE(NSException) #if GS_EXPOSE(NSException)
@ -420,6 +421,7 @@ GS_EXPORT void _NSRemoveHandler( NSHandler *handler );
* The numbered macros arre obsolete, dating from a time when NSAssert() and * The numbered macros arre obsolete, dating from a time when NSAssert() and
* NSCAssert() did not support a variable number of arguments. * NSCAssert() did not support a variable number of arguments.
*/ */
GS_EXPORT_CLASS
@interface NSAssertionHandler : NSObject @interface NSAssertionHandler : NSObject
+ (NSAssertionHandler*) currentHandler; + (NSAssertionHandler*) currentHandler;

View file

@ -48,6 +48,7 @@ enum
}; };
typedef NSUInteger NSExpressionType; typedef NSUInteger NSExpressionType;
GS_EXPORT_CLASS
@interface NSExpression : NSObject <NSCoding, NSCopying> @interface NSExpression : NSObject <NSCoding, NSCopying>
{ {
#if GS_EXPOSE(NSExpression) #if GS_EXPOSE(NSExpression)

View file

@ -37,7 +37,8 @@ DEFINE_BLOCK_TYPE(GSExtensionContextReturningItemsCompletionHandler, void, BOOL)
DEFINE_BLOCK_TYPE(GSOpenURLCompletionHandler, void, BOOL); DEFINE_BLOCK_TYPE(GSOpenURLCompletionHandler, void, BOOL);
@class NSError, NSArray, NSURL; @class NSError, NSArray, NSURL;
GS_EXPORT_CLASS
@interface NSExtensionContext : NSObject @interface NSExtensionContext : NSObject
{ {
NSArray *_inputItems; NSArray *_inputItems;

View file

@ -34,7 +34,8 @@ extern "C" {
#endif #endif
@class NSAttributedString, NSArray, NSDictionary; @class NSAttributedString, NSArray, NSDictionary;
GS_EXPORT_CLASS
@interface NSExtensionItem : NSObject @interface NSExtensionItem : NSObject
{ {
NSAttributedString *_attributedTitle; NSAttributedString *_attributedTitle;

View file

@ -52,6 +52,7 @@ enum {
}; };
typedef NSUInteger NSFileCoordinatorWritingOptions; typedef NSUInteger NSFileCoordinatorWritingOptions;
GS_EXPORT_CLASS
@interface NSFileAccessIntent : NSObject @interface NSFileAccessIntent : NSObject
{ {
NSURL *_url; NSURL *_url;
@ -72,6 +73,7 @@ DEFINE_BLOCK_TYPE(GSDualWriteURLCallbackHandler, void, NSURL*, NSURL*);
DEFINE_BLOCK_TYPE_NO_ARGS(GSBatchAccessorCompletionHandler, void); DEFINE_BLOCK_TYPE_NO_ARGS(GSBatchAccessorCompletionHandler, void);
DEFINE_BLOCK_TYPE(GSBatchAccessorCompositeBlock, void, GSBatchAccessorCompletionHandler); DEFINE_BLOCK_TYPE(GSBatchAccessorCompositeBlock, void, GSBatchAccessorCompletionHandler);
GS_EXPORT_CLASS
@interface NSFileCoordinator : NSObject @interface NSFileCoordinator : NSObject
{ {
id _purposeIdentifier; id _purposeIdentifier;

View file

@ -41,6 +41,7 @@ extern "C" {
@class NSString; @class NSString;
@class NSURL; @class NSURL;
GS_EXPORT_CLASS
@interface NSFileHandle : NSObject @interface NSFileHandle : NSObject
// Allocating and Initializing a FileHandle Object // Allocating and Initializing a FileHandle Object
@ -163,6 +164,7 @@ GS_EXPORT NSString * const NSFileHandleNotificationMonitorModes;
*/ */
GS_EXPORT NSString * const NSFileHandleOperationException; GS_EXPORT NSString * const NSFileHandleOperationException;
GS_EXPORT_CLASS
@interface NSPipe : NSObject @interface NSPipe : NSObject
{ {
#if GS_EXPOSE(NSPipe) #if GS_EXPOSE(NSPipe)

View file

@ -210,6 +210,7 @@ enum _NSDirectoryEnumerationOptions
}; };
typedef NSUInteger NSDirectoryEnumerationOptions; typedef NSUInteger NSDirectoryEnumerationOptions;
GS_EXPORT_CLASS
@interface NSFileManager : NSObject @interface NSFileManager : NSObject
{ {
#if GS_EXPOSE(NSFileManager) #if GS_EXPOSE(NSFileManager)
@ -557,6 +558,7 @@ typedef NSUInteger NSDirectoryEnumerationOptions;
* and in the current implementation the natural order of the underlying * and in the current implementation the natural order of the underlying
* filesystem is used.</p> * filesystem is used.</p>
*/ */
GS_EXPORT_CLASS
@interface NSDirectoryEnumerator : NSEnumerator @interface NSDirectoryEnumerator : NSEnumerator
{ {
#if GS_EXPOSE(NSDirectoryEnumerator) #if GS_EXPOSE(NSDirectoryEnumerator)

View file

@ -42,6 +42,7 @@ enum {
}; };
typedef NSUInteger NSFileVersionAddingOptions; typedef NSUInteger NSFileVersionAddingOptions;
GS_EXPORT_CLASS
@interface NSFileVersion : NSObject @interface NSFileVersion : NSObject
{ {
@private @private

View file

@ -61,6 +61,7 @@ enum {
typedef NSUInteger NSFileWrapperWritingOptions; typedef NSUInteger NSFileWrapperWritingOptions;
#endif #endif
GS_EXPORT_CLASS
@interface NSFileWrapper : NSObject @interface NSFileWrapper : NSObject
{ {
NSString *_filename; NSString *_filename;

View file

@ -38,6 +38,7 @@ extern "C" {
#endif #endif
GS_EXPORT_CLASS
@interface NSGarbageCollector : NSObject @interface NSGarbageCollector : NSObject
/** Returns the garbage collector instance ... there is only one.<br /> /** Returns the garbage collector instance ... there is only one.<br />

View file

@ -63,6 +63,7 @@ extern NSString * const NSHTTPCookieVersion; /** Obtain cookie version */
* as originally produced by netscape, as well as more recent standardised * as originally produced by netscape, as well as more recent standardised
* and versioned cookies. * and versioned cookies.
*/ */
GS_EXPORT_CLASS
@interface NSHTTPCookie : NSObject @interface NSHTTPCookie : NSObject
{ {
#if GS_EXPOSE(NSHTTPCookie) #if GS_EXPOSE(NSHTTPCookie)

View file

@ -67,7 +67,7 @@ extern NSString * const NSHTTPCookieManagerCookiesChangedNotification;
* The NSHTTPCookieStorage class provides a shared instance which handles * The NSHTTPCookieStorage class provides a shared instance which handles
* the shared cookie store.<br /> * the shared cookie store.<br />
*/ */
GS_EXPORT_CLASS
@interface NSHTTPCookieStorage : NSObject @interface NSHTTPCookieStorage : NSObject
{ {
#if GS_EXPOSE(NSHTTPCookieStorage) #if GS_EXPOSE(NSHTTPCookieStorage)

View file

@ -61,6 +61,7 @@ enum {
typedef NSUInteger NSHashTableOptions; typedef NSUInteger NSHashTableOptions;
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSHashTable, ElementT) : NSObject <NSCopying, NSCoding, NSFastEnumeration> @interface GS_GENERIC_CLASS(NSHashTable, ElementT) : NSObject <NSCopying, NSCoding, NSFastEnumeration>
+ (instancetype) hashTableWithOptions: (NSPointerFunctionsOptions)options; + (instancetype) hashTableWithOptions: (NSPointerFunctionsOptions)options;

View file

@ -37,6 +37,7 @@ extern "C" {
* Instances of this class encapsulate host information. Constructors based * Instances of this class encapsulate host information. Constructors based
* on host name or numeric address are provided. * on host name or numeric address are provided.
*/ */
GS_EXPORT_CLASS
@interface NSHost : NSObject @interface NSHost : NSObject
{ {
#if GS_EXPOSE(NSHost) #if GS_EXPOSE(NSHost)

View file

@ -59,7 +59,8 @@ enum
typedef NSUInteger NSISO8601DateFormatOptions; typedef NSUInteger NSISO8601DateFormatOptions;
@class NSTimeZone, NSString, NSDate, NSDateFormatter; @class NSTimeZone, NSString, NSDate, NSDateFormatter;
GS_EXPORT_CLASS
@interface NSISO8601DateFormatter : NSFormatter <NSCoding> @interface NSISO8601DateFormatter : NSFormatter <NSCoding>
{ {
NSTimeZone *_timeZone; NSTimeZone *_timeZone;

View file

@ -33,6 +33,7 @@
extern "C" { extern "C" {
#endif #endif
GS_EXPORT_CLASS
@interface NSInvocation : NSObject @interface NSInvocation : NSObject
{ {
#if GS_EXPOSE(NSInvocation) #if GS_EXPOSE(NSInvocation)

View file

@ -36,6 +36,7 @@ extern "C" {
@class NSInvocation; @class NSInvocation;
@class NSException; @class NSException;
GS_EXPORT_CLASS
@interface NSInvocationOperation : NSOperation @interface NSInvocationOperation : NSOperation
{ {
@private @private

View file

@ -90,6 +90,7 @@ typedef NSInteger NSItemProviderFileOptions;
@end @end
GS_EXPORT_CLASS
@interface NSItemProvider : NSObject <NSCopying> @interface NSItemProvider : NSObject <NSCopying>
- (instancetype) init; - (instancetype) init;

View file

@ -33,6 +33,7 @@
extern "C" { extern "C" {
#endif #endif
GS_EXPORT_CLASS
@interface NSItemProviderReadingWriting : NSObject @interface NSItemProviderReadingWriting : NSObject
@end @end
@ -44,4 +45,3 @@ extern "C" {
#endif /* GS_API_MACOSX */ #endif /* GS_API_MACOSX */
#endif /* _NSItemProviderReadingWriting_h_GNUSTEP_BASE_INCLUDE */ #endif /* _NSItemProviderReadingWriting_h_GNUSTEP_BASE_INCLUDE */

View file

@ -45,6 +45,7 @@ typedef NSUInteger NSJSONReadingOptions;
* NSJSONSerialization implements serializing and deserializing acyclic object * NSJSONSerialization implements serializing and deserializing acyclic object
* graphs in JSON. * graphs in JSON.
*/ */
GS_EXPORT_CLASS
@interface NSJSONSerialization : NSObject @interface NSJSONSerialization : NSObject
+ (NSData *)dataWithJSONObject:(id)obj + (NSData *)dataWithJSONObject:(id)obj
options:(NSJSONWritingOptions)opt options:(NSJSONWritingOptions)opt

View file

@ -50,6 +50,7 @@ extern "C" {
* <code>...forKey:</code> [NSCoder] methods, which provide for more robust * <code>...forKey:</code> [NSCoder] methods, which provide for more robust
* forwards and backwards compatibility. * forwards and backwards compatibility.
*/ */
GS_EXPORT_CLASS
@interface NSKeyedArchiver : NSCoder @interface NSKeyedArchiver : NSCoder
{ {
#if GS_EXPOSE(NSKeyedArchiver) #if GS_EXPOSE(NSKeyedArchiver)
@ -250,6 +251,7 @@ extern "C" {
* <code>...forKey:</code> [NSCoder] methods, which provide for more robust * <code>...forKey:</code> [NSCoder] methods, which provide for more robust
* forwards and backwards compatibility. * forwards and backwards compatibility.
*/ */
GS_EXPORT_CLASS
@interface NSKeyedUnarchiver : NSCoder @interface NSKeyedUnarchiver : NSCoder
{ {
#if GS_EXPOSE(NSKeyedUnarchiver) #if GS_EXPOSE(NSKeyedUnarchiver)

View file

@ -46,7 +46,8 @@ enum {
typedef NSInteger NSLengthFormatterUnit; typedef NSInteger NSLengthFormatterUnit;
@class NSNumberFormatter, NSString; @class NSNumberFormatter, NSString;
GS_EXPORT_CLASS
@interface NSLengthFormatter : NSFormatter @interface NSLengthFormatter : NSFormatter
{ {
BOOL _isForPersonHeightUse; BOOL _isForPersonHeightUse;

View file

@ -107,7 +107,8 @@ typedef NSUInteger NSLinguisticTaggerOptions;
DEFINE_BLOCK_TYPE(GSLinguisticTagRangeBoolBlock, void, NSLinguisticTag, NSRange, BOOL); DEFINE_BLOCK_TYPE(GSLinguisticTagRangeBoolBlock, void, NSLinguisticTag, NSRange, BOOL);
DEFINE_BLOCK_TYPE(GSLinguisticTagRangeRangeBoolBlock, void, NSLinguisticTag, NSRange, NSRange, BOOL); DEFINE_BLOCK_TYPE(GSLinguisticTagRangeRangeBoolBlock, void, NSLinguisticTag, NSRange, NSRange, BOOL);
GS_EXPORT_CLASS
@interface NSLinguisticTagger : NSObject @interface NSLinguisticTagger : NSObject
{ {
NSArray *_schemes; NSArray *_schemes;

View file

@ -98,6 +98,7 @@ GS_EXPORT NSString * const NSISO8601Calendar;
* Provides information describing language, date and time, and currency * Provides information describing language, date and time, and currency
* information. * information.
*/ */
GS_EXPORT_CLASS
@interface NSLocale : NSObject <NSCoding, NSCopying> @interface NSLocale : NSObject <NSCoding, NSCopying>
{ {
#if GS_EXPOSE(NSLocale) #if GS_EXPOSE(NSLocale)

View file

@ -69,6 +69,7 @@ extern "C" {
* [NSRecursiveLock], have different restrictions. * [NSRecursiveLock], have different restrictions.
* </p> * </p>
*/ */
GS_EXPORT_CLASS
@interface NSLock : NSObject <NSLocking> @interface NSLock : NSObject <NSLocking>
{ {
#if GS_EXPOSE(NSLock) #if GS_EXPOSE(NSLock)

View file

@ -59,6 +59,7 @@ enum {
typedef NSUInteger NSMapTableOptions; typedef NSUInteger NSMapTableOptions;
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSMapTable, KeyT, ValT) @interface GS_GENERIC_CLASS(NSMapTable, KeyT, ValT)
: NSObject <NSCopying, NSCoding, NSFastEnumeration> : NSObject <NSCopying, NSCoding, NSFastEnumeration>

View file

@ -44,7 +44,8 @@ enum {
typedef NSInteger NSMassFormatterUnit; typedef NSInteger NSMassFormatterUnit;
@class NSNumberFormatter; @class NSNumberFormatter;
GS_EXPORT_CLASS
@interface NSMassFormatter : NSObject @interface NSMassFormatter : NSObject
{ {
NSNumberFormatter *_numberFormatter; NSNumberFormatter *_numberFormatter;

View file

@ -34,7 +34,8 @@ extern "C" {
#endif #endif
@class NSUnit; @class NSUnit;
GS_EXPORT_CLASS
@interface NSMeasurement : NSObject <NSCopying, NSCoding> @interface NSMeasurement : NSObject <NSCopying, NSCoding>
{ {
NSUnit *_unit; NSUnit *_unit;

View file

@ -41,7 +41,8 @@ enum {
NSMeasurementFormatterUnitOptionsTemperatureWithoutUnit = (1UL << 2), NSMeasurementFormatterUnitOptionsTemperatureWithoutUnit = (1UL << 2),
}; };
typedef NSUInteger NSMeasurementFormatterUnitOptions; typedef NSUInteger NSMeasurementFormatterUnitOptions;
GS_EXPORT_CLASS
@interface NSMeasurementFormatter : NSFormatter <NSCoding> @interface NSMeasurementFormatter : NSFormatter <NSCoding>
{ {
NSMeasurementFormatterUnitOptions _unitOptions; NSMeasurementFormatterUnitOptions _unitOptions;

View file

@ -35,6 +35,7 @@
@class NSPredicate, NSMutableDictionary, NSDictionary, NSMutableArray; @class NSPredicate, NSMutableDictionary, NSDictionary, NSMutableArray;
@protocol NSMetadataQueryDelegate; @protocol NSMetadataQueryDelegate;
GS_EXPORT_CLASS
@interface NSMetadataItem : NSObject @interface NSMetadataItem : NSObject
{ {
#if GS_EXPOSE(NSMetadataItem) #if GS_EXPOSE(NSMetadataItem)
@ -61,6 +62,7 @@ GS_EXPORT NSString * const NSMetadataQueryDidUpdateNotification;
GS_EXPORT NSString * const NSMetadataQueryGatheringProgressNotification; GS_EXPORT NSString * const NSMetadataQueryGatheringProgressNotification;
/* Abstract interface for metadata query... */ /* Abstract interface for metadata query... */
GS_EXPORT_CLASS
@interface NSMetadataQuery : NSObject @interface NSMetadataQuery : NSObject
{ {
#if GS_EXPOSE(NSMetadataQuery) #if GS_EXPOSE(NSMetadataQuery)
@ -135,6 +137,7 @@ GS_EXPORT NSString * const NSMetadataQueryGatheringProgressNotification;
value: (id)attributeValue; value: (id)attributeValue;
@end @end
GS_EXPORT_CLASS
@interface NSMetadataQueryAttributeValueTuple : NSObject @interface NSMetadataQueryAttributeValueTuple : NSObject
{ {
#if GS_EXPOSE(NSMetadataQueryAttributeValueTuple) #if GS_EXPOSE(NSMetadataQueryAttributeValueTuple)
@ -150,6 +153,7 @@ GS_EXPORT NSString * const NSMetadataQueryGatheringProgressNotification;
@end @end
GS_EXPORT_CLASS
@interface NSMetadataQueryResultGroup : NSObject @interface NSMetadataQueryResultGroup : NSObject
{ {
#if GS_EXPOSE(NSMetadataQueryResultGroup) #if GS_EXPOSE(NSMetadataQueryResultGroup)

View file

@ -47,6 +47,7 @@ extern "C" {
* <code><em>self</em></code> (type <code>id</code>, at position 0) and * <code><em>self</em></code> (type <code>id</code>, at position 0) and
* <code><em>_cmd</em></code> (type <code>SEL</code>, at position 1).</p> * <code><em>_cmd</em></code> (type <code>SEL</code>, at position 1).</p>
*/ */
GS_EXPORT_CLASS
@interface NSMethodSignature : NSObject @interface NSMethodSignature : NSObject
{ {
#if GS_EXPOSE(NSMethodSignature) #if GS_EXPOSE(NSMethodSignature)

View file

@ -355,7 +355,7 @@ GS_EXPORT NSString * const NSNetServicesErrorDomain;
* superclass for concrete implementations of its functionality. * superclass for concrete implementations of its functionality.
* </p> * </p>
*/ */
GS_EXPORT_CLASS
@interface NSNetService : NSObject @interface NSNetService : NSObject
{ {
#if GS_EXPOSE(NSNetService) #if GS_EXPOSE(NSNetService)
@ -441,7 +441,7 @@ GS_EXPORT NSString * const NSNetServicesErrorDomain;
* functionality. * functionality.
* </p> * </p>
*/ */
GS_EXPORT_CLASS
@interface NSNetServiceBrowser : NSObject @interface NSNetServiceBrowser : NSObject
{ {
#if GS_EXPOSE(NSNetServiceBrowser) #if GS_EXPOSE(NSNetServiceBrowser)

View file

@ -44,7 +44,8 @@ extern "C" {
@class NSOperationQueue; @class NSOperationQueue;
typedef NSString* NSNotificationName; typedef NSString* NSNotificationName;
GS_EXPORT_CLASS
@interface NSNotification : NSObject <NSCopying, NSCoding> @interface NSNotification : NSObject <NSCopying, NSCoding>
/* Creating a Notification Object */ /* Creating a Notification Object */
@ -68,6 +69,7 @@ typedef NSString* NSNotificationName;
DEFINE_BLOCK_TYPE(GSNotificationBlock, void, NSNotification *); DEFINE_BLOCK_TYPE(GSNotificationBlock, void, NSNotification *);
#endif #endif
GS_EXPORT_CLASS
@interface NSNotificationCenter : NSObject @interface NSNotificationCenter : NSObject
{ {
#if GS_EXPOSE(NSNotificationCenter) #if GS_EXPOSE(NSNotificationCenter)

View file

@ -107,6 +107,7 @@ typedef NSUInteger NSNotificationCoalescing;
*/ */
struct _NSNotificationQueueList; struct _NSNotificationQueueList;
GS_EXPORT_CLASS
@interface NSNotificationQueue : NSObject @interface NSNotificationQueue : NSObject
{ {
#if GS_EXPOSE(NSNotificationQueue) #if GS_EXPOSE(NSNotificationQueue)

View file

@ -118,6 +118,7 @@ typedef NSUInteger NSNumberFormatterRoundingMode;
* of attributes for positive and negative numbers, and for specific cases * of attributes for positive and negative numbers, and for specific cases
* including 0, NaN, and nil... </p> * including 0, NaN, and nil... </p>
*/ */
GS_EXPORT_CLASS
@interface NSNumberFormatter : NSFormatter @interface NSNumberFormatter : NSFormatter
{ {
#if GS_EXPOSE(NSNumberFormatter) #if GS_EXPOSE(NSNumberFormatter)

View file

@ -315,4 +315,9 @@ typedef NSString* NSExceptionName;
#endif #endif
#endif #endif
/* Undefine "interface" defined in Visual Studio MSVC headers. */
#if defined(_MSC_VER) && defined(interface)
#undef interface
#endif
#endif /* __NSObjCRuntime_h_GNUSTEP_BASE_INCLUDE */ #endif /* __NSObjCRuntime_h_GNUSTEP_BASE_INCLUDE */

View file

@ -288,7 +288,8 @@ extern "C" {
@end @end
GS_ROOT_CLASS @interface NSObject <NSObject> GS_EXPORT_CLASS GS_ROOT_CLASS
@interface NSObject <NSObject>
{ {
/** /**
* Points to instance's class. Used by runtime to access method * Points to instance's class. Used by runtime to access method

View file

@ -33,6 +33,7 @@
extern "C" { extern "C" {
#endif #endif
GS_EXPORT_CLASS
@interface NSObjectScripting : NSObject @interface NSObjectScripting : NSObject
@end @end

View file

@ -52,6 +52,7 @@ enum {
typedef NSInteger NSOperationQueuePriority; typedef NSInteger NSOperationQueuePriority;
GS_EXPORT_CLASS
@interface NSOperation : NSObject @interface NSOperation : NSObject
{ {
#if GS_NONFRAGILE #if GS_NONFRAGILE
@ -200,6 +201,7 @@ typedef NSInteger NSOperationQueuePriority;
@end @end
GS_EXPORT_CLASS
@interface NSBlockOperation : NSOperation @interface NSBlockOperation : NSOperation
{ {
@private @private
@ -223,6 +225,7 @@ enum {
NSOperationQueueDefaultMaxConcurrentOperationCount = -1 NSOperationQueueDefaultMaxConcurrentOperationCount = -1
}; };
GS_EXPORT_CLASS
@interface NSOperationQueue : NSObject @interface NSOperationQueue : NSObject
{ {
#if GS_NONFRAGILE #if GS_NONFRAGILE

View file

@ -47,6 +47,7 @@ extern "C" {
@class NSString; @class NSString;
@class NSPredicate; @class NSPredicate;
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSOrderedSet, __covariant ElementT) : NSObject <NSCoding, @interface GS_GENERIC_CLASS(NSOrderedSet, __covariant ElementT) : NSObject <NSCoding,
NSCopying, NSCopying,
NSMutableCopying, NSMutableCopying,
@ -159,6 +160,7 @@ extern "C" {
@end @end
// Mutable Ordered Set // Mutable Ordered Set
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSMutableOrderedSet, ElementT) : GS_GENERIC_CLASS(NSOrderedSet, ElementT) @interface GS_GENERIC_CLASS(NSMutableOrderedSet, ElementT) : GS_GENERIC_CLASS(NSOrderedSet, ElementT)
// Creating a Mutable Ordered Set // Creating a Mutable Ordered Set
+ (instancetype)orderedSetWithCapacity: (NSUInteger)capacity; + (instancetype)orderedSetWithCapacity: (NSUInteger)capacity;

View file

@ -34,7 +34,8 @@ extern "C" {
#endif #endif
@class NSDictionary, NSString, NSArray; @class NSDictionary, NSString, NSArray;
GS_EXPORT_CLASS
@interface NSOrthography : NSObject <NSCopying, NSCoding> @interface NSOrthography : NSObject <NSCopying, NSCoding>
{ {
NSDictionary *_languageMap; NSDictionary *_languageMap;

View file

@ -31,6 +31,7 @@
@class NSString; @class NSString;
GS_EXPORT_CLASS
@interface NSPersonNameComponents : NSObject <NSCopying, NSCoding> @interface NSPersonNameComponents : NSObject <NSCopying, NSCoding>
{ {
@private @private

View file

@ -47,6 +47,7 @@ typedef NSUInteger NSPersonNameComponentsFormatterOptions;
@class NSString; @class NSString;
GS_EXPORT_CLASS
@interface NSPersonNameComponentsFormatter : NSFormatter @interface NSPersonNameComponentsFormatter : NSFormatter
{ {
@private @private

View file

@ -42,7 +42,7 @@ extern "C" {
* The count can also be set causing the array to shrink (discarding items) * The count can also be set causing the array to shrink (discarding items)
* or grow (adding nil/zero items). * or grow (adding nil/zero items).
*/ */
GS_EXPORT_CLASS
@interface NSPointerArray : NSObject <NSCopying, NSCoding> @interface NSPointerArray : NSObject <NSCopying, NSCoding>
/** Allocate an instance, initialise using initWithOptions: and /** Allocate an instance, initialise using initWithOptions: and

View file

@ -102,6 +102,7 @@ enum {
*/ */
typedef NSUInteger NSPointerFunctionsOptions; typedef NSUInteger NSPointerFunctionsOptions;
GS_EXPORT_CLASS
@interface NSPointerFunctions : NSObject <NSCopying> @interface NSPointerFunctions : NSObject <NSCopying>
+ (id) pointerFunctionsWithOptions: (NSPointerFunctionsOptions)options; + (id) pointerFunctionsWithOptions: (NSPointerFunctionsOptions)options;

View file

@ -33,7 +33,7 @@
#import <Foundation/NSObject.h> #import <Foundation/NSObject.h>
#import <Foundation/NSMapTable.h> #import <Foundation/NSMapTable.h>
#if defined(__MINGW__) #if defined(_WIN32)
#include <winsock2.h> #include <winsock2.h>
#include <wininet.h> #include <wininet.h>
#else #else
@ -72,6 +72,7 @@ extern "C" {
* <p>This class also implements the functionality of the * <p>This class also implements the functionality of the
* <code><em>NSMachPort</em></code> class on OS X.</p> * <code><em>NSMachPort</em></code> class on OS X.</p>
*/ */
GS_EXPORT_CLASS
@interface NSPort : NSObject <NSCoding, NSCopying> @interface NSPort : NSObject <NSCoding, NSCopying>
{ {
#if GS_EXPOSE(NSPort) #if GS_EXPOSE(NSPort)
@ -197,6 +198,7 @@ typedef SOCKET NSSocketNativeHandle;
* *
* <p>Note that this class is incompatible with the latest OS X version.</p> * <p>Note that this class is incompatible with the latest OS X version.</p>
*/ */
GS_EXPORT_CLASS
@interface NSSocketPort : NSPort @interface NSSocketPort : NSPort
{ {
#if GS_EXPOSE(NSSocketPort) #if GS_EXPOSE(NSSocketPort)
@ -206,7 +208,7 @@ typedef SOCKET NSSocketNativeHandle;
uint16_t portNum; /* TCP port in host byte order. */ uint16_t portNum; /* TCP port in host byte order. */
SOCKET listener; SOCKET listener;
NSMapTable *handles; /* Handles indexed by socket. */ NSMapTable *handles; /* Handles indexed by socket. */
#if defined(__MINGW__) #if defined(_WIN32)
WSAEVENT eventListener; WSAEVENT eventListener;
NSMapTable *events; NSMapTable *events;
#endif #endif
@ -279,6 +281,7 @@ typedef SOCKET NSSocketNativeHandle;
* which can be used for interthread/interprocess communications * which can be used for interthread/interprocess communications
* on the same host, but not between different hosts. * on the same host, but not between different hosts.
*/ */
GS_EXPORT_CLASS
@interface NSMessagePort : NSPort @interface NSMessagePort : NSPort
{ {
#if GS_EXPOSE(NSMessagePort) #if GS_EXPOSE(NSMessagePort)

View file

@ -48,6 +48,7 @@ extern "C" {
//FIXME: the above is what Apple's docs say, but looking at the code the //FIXME: the above is what Apple's docs say, but looking at the code the
// NSConnection is actually created by this class rather than the other way // NSConnection is actually created by this class rather than the other way
// around, so maybe the docs should be changed.. // around, so maybe the docs should be changed..
GS_EXPORT_CLASS
@interface NSPortCoder : NSCoder @interface NSPortCoder : NSCoder
{ {
#if GS_EXPOSE(NSPortCoder) #if GS_EXPOSE(NSPortCoder)

View file

@ -44,6 +44,7 @@ extern "C" {
@class NSPort, NSString, NSMutableArray; @class NSPort, NSString, NSMutableArray;
GS_EXPORT_CLASS
@interface NSPortNameServer : NSObject @interface NSPortNameServer : NSObject
+ (id) systemDefaultPortNameServer; + (id) systemDefaultPortNameServer;
- (NSPort*) portForName: (NSString*)name; - (NSPort*) portForName: (NSString*)name;
@ -54,6 +55,7 @@ extern "C" {
- (BOOL) removePortForName: (NSString*)name; - (BOOL) removePortForName: (NSString*)name;
@end @end
GS_EXPORT_CLASS
@interface NSSocketPortNameServer : NSPortNameServer @interface NSSocketPortNameServer : NSPortNameServer
{ {
#if GS_EXPOSE(NSSocketPortNameServer) #if GS_EXPOSE(NSSocketPortNameServer)
@ -79,6 +81,7 @@ extern "C" {
@end @end
GS_EXPORT_CLASS
@interface NSMessagePortNameServer : NSPortNameServer @interface NSMessagePortNameServer : NSPortNameServer
+ (id) sharedInstance; + (id) sharedInstance;

View file

@ -42,6 +42,7 @@ extern "C" {
DEFINE_BLOCK_TYPE(GSBlockPredicateBlock, BOOL, id, GS_GENERIC_CLASS(NSDictionary,NSString*,id)*); DEFINE_BLOCK_TYPE(GSBlockPredicateBlock, BOOL, id, GS_GENERIC_CLASS(NSDictionary,NSString*,id)*);
#endif #endif
GS_EXPORT_CLASS
@interface NSPredicate : NSObject <NSCoding, NSCopying> @interface NSPredicate : NSObject <NSCoding, NSCopying>
+ (NSPredicate *) predicateWithFormat: (NSString *)format, ...; + (NSPredicate *) predicateWithFormat: (NSString *)format, ...;

View file

@ -98,6 +98,7 @@ enum {
#endif /* OS_API_VERSION(GS_API_MACOSX,GS_API_LATEST) */ #endif /* OS_API_VERSION(GS_API_MACOSX,GS_API_LATEST) */
GS_EXPORT_CLASS
@interface NSProcessInfo: NSObject @interface NSProcessInfo: NSObject
/** /**

View file

@ -48,6 +48,7 @@ DEFINE_BLOCK_TYPE_NO_ARGS(NSProgressUnpublishingHandler, void);
DEFINE_BLOCK_TYPE_NO_ARGS(GSProgressPendingUnitCountBlock, void); DEFINE_BLOCK_TYPE_NO_ARGS(GSProgressPendingUnitCountBlock, void);
DEFINE_BLOCK_TYPE_NO_ARGS(GSProgressResumingHandler, void); DEFINE_BLOCK_TYPE_NO_ARGS(GSProgressResumingHandler, void);
GS_EXPORT_CLASS
@interface NSProgress : NSObject @interface NSProgress : NSObject
{ {
#if GS_EXPOSE(NSProgress) #if GS_EXPOSE(NSProgress)

View file

@ -229,6 +229,7 @@ typedef NSUInteger NSPropertyListFormat;
* </desc> * </desc>
* </deflist> * </deflist>
*/ */
GS_EXPORT_CLASS
@interface NSPropertyListSerialization : NSObject @interface NSPropertyListSerialization : NSObject
{ {
} }

View file

@ -35,6 +35,7 @@ extern "C" {
@class Protocol; @class Protocol;
GS_EXPORT_CLASS
@interface NSProtocolChecker : NSProxy @interface NSProtocolChecker : NSProxy
{ {
#if GS_EXPOSE(NSProtocolChecker) #if GS_EXPOSE(NSProtocolChecker)

View file

@ -32,7 +32,8 @@
extern "C" { extern "C" {
#endif #endif
GS_ROOT_CLASS @interface NSProxy <NSObject> GS_EXPORT_CLASS GS_ROOT_CLASS
@interface NSProxy <NSObject>
{ {
@public @public
Class isa; Class isa;

View file

@ -86,6 +86,7 @@ DEFINE_BLOCK_TYPE(GSRegexBlock, void, NSTextCheckingResult*,
* pattern, but it usually in the order of milliseconds. The preset 1500, * pattern, but it usually in the order of milliseconds. The preset 1500,
* setting value to 0 disables the work limit. * setting value to 0 disables the work limit.
*/ */
GS_EXPORT_CLASS
@interface NSRegularExpression : NSObject <NSCoding, NSCopying> @interface NSRegularExpression : NSObject <NSCoding, NSCopying>
{ {
#if GS_EXPOSE(NSRegularExpression) #if GS_EXPOSE(NSRegularExpression)

View file

@ -44,6 +44,7 @@ typedef NSString* NSRunLoopMode;
GS_EXPORT NSRunLoopMode const NSDefaultRunLoopMode; GS_EXPORT NSRunLoopMode const NSDefaultRunLoopMode;
GS_EXPORT NSRunLoopMode const NSRunLoopCommonModes; GS_EXPORT NSRunLoopMode const NSRunLoopCommonModes;
GS_EXPORT_CLASS
@interface NSRunLoop : NSObject @interface NSRunLoop : NSObject
{ {
#if GS_EXPOSE(NSRunLoop) #if GS_EXPOSE(NSRunLoop)
@ -127,7 +128,7 @@ GS_EXPORT NSRunLoopMode const NSRunLoopCommonModes;
* run loop. * run loop.
*/ */
typedef enum { typedef enum {
#ifdef __MINGW__ #ifdef _WIN32
ET_HANDLE, /* Watch for an I/O event on a handle. */ ET_HANDLE, /* Watch for an I/O event on a handle. */
ET_RPORT, /* Watch for message arriving on port. */ ET_RPORT, /* Watch for message arriving on port. */
ET_WINMSG, /* Watch for a message on a window handle. */ ET_WINMSG, /* Watch for a message on a window handle. */

View file

@ -37,6 +37,7 @@ extern "C" {
/* /*
* NSScanner class * NSScanner class
*/ */
GS_EXPORT_CLASS
@interface NSScanner : NSObject <NSCopying> @interface NSScanner : NSObject <NSCopying>
{ {
#if GS_EXPOSE(NSScanner) #if GS_EXPOSE(NSScanner)

View file

@ -34,6 +34,7 @@ extern "C" {
#if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST) #if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSScriptClassDescription : NSClassDescription @interface NSScriptClassDescription : NSClassDescription
@end @end

View file

@ -34,6 +34,7 @@ extern "C" {
#if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST) #if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSScriptCoercionHandler : NSObject @interface NSScriptCoercionHandler : NSObject
@end @end

View file

@ -34,6 +34,7 @@ extern "C" {
#if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST) #if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSScriptCommand : NSObject @interface NSScriptCommand : NSObject
@end @end

View file

@ -34,6 +34,7 @@ extern "C" {
#if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST) #if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSScriptCommandDescription : NSObject @interface NSScriptCommandDescription : NSObject
@end @end

View file

@ -34,6 +34,7 @@ extern "C" {
#if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST) #if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSScriptExecutionContext : NSObject @interface NSScriptExecutionContext : NSObject
@end @end

View file

@ -34,6 +34,7 @@ extern "C" {
#if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST) #if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSScriptKeyValueCoding : NSObject @interface NSScriptKeyValueCoding : NSObject
@end @end

View file

@ -34,6 +34,7 @@ extern "C" {
#if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST) #if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSScriptObjectSpecifiers : NSObject @interface NSScriptObjectSpecifiers : NSObject
@end @end

View file

@ -34,6 +34,7 @@ extern "C" {
#if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST) #if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSScriptStandardSuiteCommands : NSObject @interface NSScriptStandardSuiteCommands : NSObject
@end @end

View file

@ -34,6 +34,7 @@ extern "C" {
#if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST) #if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST)
GS_EXPORT_CLASS
@interface NSScriptSuiteRegistry : NSObject @interface NSScriptSuiteRegistry : NSObject
@end @end

View file

@ -70,6 +70,7 @@ extern "C" {
* representation of a property list (NSArray or NSDictionary plus limited * representation of a property list (NSArray or NSDictionary plus limited
* contents).</p> * contents).</p>
*/ */
GS_EXPORT_CLASS
@interface NSSerializer: NSObject @interface NSSerializer: NSObject
/** /**
@ -129,6 +130,7 @@ extern "C" {
* property list (NSArray or NSDictionary plus limited contents) from a * property list (NSArray or NSDictionary plus limited contents) from a
* byte-array (actually string) representation. * byte-array (actually string) representation.
*/ */
GS_EXPORT_CLASS
@interface NSDeserializer: NSObject @interface NSDeserializer: NSObject
/** /**

Some files were not shown because too many files have changed in this diff Show more