diff options
| author | Johnny Chen <johnny.chen@apple.com> | 2012-04-24 23:05:07 +0000 |
|---|---|---|
| committer | Johnny Chen <johnny.chen@apple.com> | 2012-04-24 23:05:07 +0000 |
| commit | 8da4ddf9907b0da974fa4e4eba688aa9653312bb (patch) | |
| tree | 38b58f177349133fbfc48667f3d888d7b4f06d76 | |
| parent | c24c66f21c9ff6eec35712bc681cf0a14c884710 (diff) | |
| download | bcm5719-llvm-8da4ddf9907b0da974fa4e4eba688aa9653312bb.tar.gz bcm5719-llvm-8da4ddf9907b0da974fa4e4eba688aa9653312bb.zip | |
Add a suffix rule for compiling objc++ files and a sample directory under test/lang/objcxx.
llvm-svn: 155501
| -rw-r--r-- | lldb/test/lang/objcxx/sample/Makefile | 6 | ||||
| -rw-r--r-- | lldb/test/lang/objcxx/sample/main.mm | 71 | ||||
| -rw-r--r-- | lldb/test/make/Makefile.rules | 9 |
3 files changed, 84 insertions, 2 deletions
diff --git a/lldb/test/lang/objcxx/sample/Makefile b/lldb/test/lang/objcxx/sample/Makefile new file mode 100644 index 00000000000..edd3430de7c --- /dev/null +++ b/lldb/test/lang/objcxx/sample/Makefile @@ -0,0 +1,6 @@ +LEVEL = ../../../make + +OBJCXX_SOURCES := main.mm +LDFLAGS = $(CFLAGS) -lobjc -framework Foundation + +include $(LEVEL)/Makefile.rules diff --git a/lldb/test/lang/objcxx/sample/main.mm b/lldb/test/lang/objcxx/sample/main.mm new file mode 100644 index 00000000000..c9a2172c368 --- /dev/null +++ b/lldb/test/lang/objcxx/sample/main.mm @@ -0,0 +1,71 @@ +#import <Foundation/Foundation.h> +#include <iostream> + +@interface MyString : NSObject { + NSString *_string; + NSDate *_date; +} +- (id)initWithNSString:(NSString *)string; + +@property (copy) NSString *string; +@property (readonly,getter=getTheDate) NSDate *date; + +- (NSDate *) getTheDate; +@end + +@implementation MyString + +@synthesize string = _string; +@synthesize date = _date; + +- (id)initWithNSString:(NSString *)string +{ + if (self = [super init]) + { + _string = [NSString stringWithString:string]; + _date = [NSDate date]; + } + return self; +} + +- (void) dealloc +{ + [_date release]; + [_string release]; + [super dealloc]; +} + +- (NSDate *) getTheDate +{ + return _date; +} + +- (NSString *)description +{ + return [_string stringByAppendingFormat:@" with timestamp: %@", _date]; +} +@end + +int main (int argc, char const *argv[]) +{ + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + static NSString *g_global_nsstr = @"Howdy"; + + MyString *myStr = [[MyString alloc] initWithNSString: [NSString stringWithFormat:@"string %i", 1]]; + NSString *str1 = myStr.string; + NSString *str2 = [NSString stringWithFormat:@"string %i", 2]; + NSString *str3 = [NSString stringWithFormat:@"string %i", 3]; + NSArray *array = [NSArray arrayWithObjects: str1, str2, str3, nil]; + NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: + str1, @"1", + str2, @"2", + str3, @"3", + myStr.date, @"date", + nil]; + + id str_id = str1; + SEL sel = @selector(length); + [pool release]; + std::cout << "Hello, objc++!\n"; + return 0; +} diff --git a/lldb/test/make/Makefile.rules b/lldb/test/make/Makefile.rules index 864ae92433c..2d0621a49cc 100644 --- a/lldb/test/make/Makefile.rules +++ b/lldb/test/make/Makefile.rules @@ -136,7 +136,7 @@ ifneq "$(strip $(OBJCXX_SOURCES))" "" OBJECTS +=$(strip $(OBJCXX_SOURCES:.mm=.o)) CXX = $(call cxx_compiler,$(CC)) LD = $(call cxx_linker,$(CC)) - ifeq $(findstring lobjc,$(LDFLAGS)) "" + ifeq "$(findstring lobjc,$(LDFLAGS))" "" LDFLAGS +=-lobjc endif endif @@ -172,7 +172,7 @@ ifneq "$(strip $(ARCHIVE_OBJCXX_SOURCES))" "" ARCHIVE_OBJECTS +=$(strip $(ARCHIVE_OBJCXX_SOURCES:.mm=.o)) CXX = $(call cxx_compiler,$(CC)) LD = $(call cxx_linker,$(CC)) - ifeq $(findstring lobjc,$(LDFLAGS)) "" + ifeq "$(findstring lobjc,$(LDFLAGS))" "" LDFLAGS +=-lobjc endif endif @@ -283,6 +283,11 @@ ifneq "$(DYLIB_NAME)" "" sinclude $(DYLIB_PREREQS) endif +# Define a suffix rule for .mm -> .o +.SUFFIXES: .mm .o +.mm.o: + $(CXX) $(CXXFLAGS) -c $< + .PHONY: clean dsym: $(DSYM) all: $(EXE) $(DSYM) |

