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
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>
* Tools/pl2link.m (main): Set key StartupWMClass and allow file

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -57,6 +57,7 @@ enum
typedef NSUInteger NSBinarySearchingOptions;
#endif
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSArray, __covariant ElementT) : NSObject
<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;
@end
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSMutableArray, ElementT) : GS_GENERIC_CLASS(NSArray, ElementT)
+ (instancetype) arrayWithCapacity: (NSUInteger)numItems;

View file

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

View file

@ -178,7 +178,7 @@ typedef struct autorelease_array_list
* </desc>
* </deflist>
*/
NS_AUTOMATED_REFCOUNT_UNAVAILABLE
GS_EXPORT_CLASS NS_AUTOMATED_REFCOUNT_UNAVAILABLE
@interface NSAutoreleasePool : NSObject
{
#if GS_EXPOSE(NSAutoreleasePool) && !__has_feature(objc_arc)

View file

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

View file

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

View file

@ -61,6 +61,7 @@ enum {
};
typedef NSInteger NSByteCountFormatterCountStyle;
GS_EXPORT_CLASS
@interface NSByteCountFormatter : NSFormatter
{
#if GS_EXPOSE(NSByteCountFormatter)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -42,6 +42,7 @@ enum
};
typedef NSUInteger NSCompoundPredicateType;
GS_EXPORT_CLASS
@interface NSCompoundPredicate : NSPredicate
{
#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.
*/
GS_EXPORT_CLASS
@interface NSConnection : NSObject
{
#if GS_NONFRAGILE

View file

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

View file

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

View file

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

View file

@ -122,6 +122,7 @@ typedef NSUInteger NSDateFormatterBehavior;
* <desc>time zone offset in hours and minutes from GMT (HHMM)</desc>
* </deflist>
*/
GS_EXPORT_CLASS
@interface NSDateFormatter : NSFormatter <NSCoding, NSCopying>
{
#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)
GS_EXPORT_CLASS
@interface NSDateInterval : NSObject <NSCoding, NSCopying>
{
NSTimeInterval _duration;

View file

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

View file

@ -37,6 +37,7 @@ extern "C" {
@class GS_GENERIC_CLASS(NSSet, ElementT);
@class NSString, NSURL;
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSDictionary,
__covariant KeyT:id<NSCopying>, __covariant ValT)
: 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;
@end
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSMutableDictionary, KeyT:id<NSCopying>, ValT) :
GS_GENERIC_CLASS(NSDictionary, KeyT, ValT)

View file

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

View file

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

View file

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

View file

@ -51,6 +51,7 @@ typedef struct
count: (NSUInteger)len;
@end
GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSEnumerator, IterT) : NSObject <NSFastEnumeration>
- (GS_GENERIC_CLASS(NSArray, IterT) *) allObjects;
- (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)
* rather than a programming error (where NSException should be used).
*/
GS_EXPORT_CLASS
@interface NSError : NSObject <NSCopying, NSCoding>
{
#if GS_EXPOSE(NSError)

View file

@ -110,6 +110,7 @@ extern "C" {
message before the program terminates.
</p>
*/
GS_EXPORT_CLASS
@interface NSException : NSObject <NSCoding, NSCopying>
{
#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
* NSCAssert() did not support a variable number of arguments.
*/
GS_EXPORT_CLASS
@interface NSAssertionHandler : NSObject
+ (NSAssertionHandler*) currentHandler;

View file

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

View file

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

View file

@ -35,6 +35,7 @@ extern "C" {
@class NSAttributedString, NSArray, NSDictionary;
GS_EXPORT_CLASS
@interface NSExtensionItem : NSObject
{
NSAttributedString *_attributedTitle;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -38,6 +38,7 @@ extern "C" {
#endif
GS_EXPORT_CLASS
@interface NSGarbageCollector : NSObject
/** 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
* and versioned cookies.
*/
GS_EXPORT_CLASS
@interface NSHTTPCookie : NSObject
{
#if GS_EXPOSE(NSHTTPCookie)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -45,6 +45,7 @@ typedef NSInteger NSMassFormatterUnit;
@class NSNumberFormatter;
GS_EXPORT_CLASS
@interface NSMassFormatter : NSObject
{
NSNumberFormatter *_numberFormatter;

View file

@ -35,6 +35,7 @@ extern "C" {
@class NSUnit;
GS_EXPORT_CLASS
@interface NSMeasurement : NSObject <NSCopying, NSCoding>
{
NSUnit *_unit;

View file

@ -42,6 +42,7 @@ enum {
};
typedef NSUInteger NSMeasurementFormatterUnitOptions;
GS_EXPORT_CLASS
@interface NSMeasurementFormatter : NSFormatter <NSCoding>
{
NSMeasurementFormatterUnitOptions _unitOptions;

View file

@ -35,6 +35,7 @@
@class NSPredicate, NSMutableDictionary, NSDictionary, NSMutableArray;
@protocol NSMetadataQueryDelegate;
GS_EXPORT_CLASS
@interface NSMetadataItem : NSObject
{
#if GS_EXPOSE(NSMetadataItem)
@ -61,6 +62,7 @@ GS_EXPORT NSString * const NSMetadataQueryDidUpdateNotification;
GS_EXPORT NSString * const NSMetadataQueryGatheringProgressNotification;
/* Abstract interface for metadata query... */
GS_EXPORT_CLASS
@interface NSMetadataQuery : NSObject
{
#if GS_EXPOSE(NSMetadataQuery)
@ -135,6 +137,7 @@ GS_EXPORT NSString * const NSMetadataQueryGatheringProgressNotification;
value: (id)attributeValue;
@end
GS_EXPORT_CLASS
@interface NSMetadataQueryAttributeValueTuple : NSObject
{
#if GS_EXPOSE(NSMetadataQueryAttributeValueTuple)
@ -150,6 +153,7 @@ GS_EXPORT NSString * const NSMetadataQueryGatheringProgressNotification;
@end
GS_EXPORT_CLASS
@interface NSMetadataQueryResultGroup : NSObject
{
#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>_cmd</em></code> (type <code>SEL</code>, at position 1).</p>
*/
GS_EXPORT_CLASS
@interface NSMethodSignature : NSObject
{
#if GS_EXPOSE(NSMethodSignature)

View file

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

View file

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

View file

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

View file

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

View file

@ -315,4 +315,9 @@ typedef NSString* NSExceptionName;
#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 */

View file

@ -288,7 +288,8 @@ extern "C" {
@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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -33,7 +33,7 @@
#import <Foundation/NSObject.h>
#import <Foundation/NSMapTable.h>
#if defined(__MINGW__)
#if defined(_WIN32)
#include <winsock2.h>
#include <wininet.h>
#else
@ -72,6 +72,7 @@ extern "C" {
* <p>This class also implements the functionality of the
* <code><em>NSMachPort</em></code> class on OS X.</p>
*/
GS_EXPORT_CLASS
@interface NSPort : NSObject <NSCoding, NSCopying>
{
#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>
*/
GS_EXPORT_CLASS
@interface NSSocketPort : NSPort
{
#if GS_EXPOSE(NSSocketPort)
@ -206,7 +208,7 @@ typedef SOCKET NSSocketNativeHandle;
uint16_t portNum; /* TCP port in host byte order. */
SOCKET listener;
NSMapTable *handles; /* Handles indexed by socket. */
#if defined(__MINGW__)
#if defined(_WIN32)
WSAEVENT eventListener;
NSMapTable *events;
#endif
@ -279,6 +281,7 @@ typedef SOCKET NSSocketNativeHandle;
* which can be used for interthread/interprocess communications
* on the same host, but not between different hosts.
*/
GS_EXPORT_CLASS
@interface NSMessagePort : NSPort
{
#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
// NSConnection is actually created by this class rather than the other way
// around, so maybe the docs should be changed..
GS_EXPORT_CLASS
@interface NSPortCoder : NSCoder
{
#if GS_EXPOSE(NSPortCoder)

View file

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

View file

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

View file

@ -98,6 +98,7 @@ enum {
#endif /* OS_API_VERSION(GS_API_MACOSX,GS_API_LATEST) */
GS_EXPORT_CLASS
@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(GSProgressResumingHandler, void);
GS_EXPORT_CLASS
@interface NSProgress : NSObject
{
#if GS_EXPOSE(NSProgress)

View file

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

View file

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

View file

@ -32,7 +32,8 @@
extern "C" {
#endif
GS_ROOT_CLASS @interface NSProxy <NSObject>
GS_EXPORT_CLASS GS_ROOT_CLASS
@interface NSProxy <NSObject>
{
@public
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,
* setting value to 0 disables the work limit.
*/
GS_EXPORT_CLASS
@interface NSRegularExpression : NSObject <NSCoding, NSCopying>
{
#if GS_EXPOSE(NSRegularExpression)

View file

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

View file

@ -37,6 +37,7 @@ extern "C" {
/*
* NSScanner class
*/
GS_EXPORT_CLASS
@interface NSScanner : NSObject <NSCopying>
{
#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)
GS_EXPORT_CLASS
@interface NSScriptClassDescription : NSClassDescription
@end

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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