summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2012-04-24 23:05:07 +0000
committerJohnny Chen <johnny.chen@apple.com>2012-04-24 23:05:07 +0000
commit8da4ddf9907b0da974fa4e4eba688aa9653312bb (patch)
tree38b58f177349133fbfc48667f3d888d7b4f06d76
parentc24c66f21c9ff6eec35712bc681cf0a14c884710 (diff)
downloadbcm5719-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/Makefile6
-rw-r--r--lldb/test/lang/objcxx/sample/main.mm71
-rw-r--r--lldb/test/make/Makefile.rules9
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)
OpenPOWER on IntegriCloud