summaryrefslogtreecommitdiff
path: root/Tests/ObjCXX
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2019-11-14 10:31:18 -0500
committerBrad King <brad.king@kitware.com>2019-11-14 10:57:42 -0500
commitd2e5e6ff1abec8b3b1579f122b7dcc89a35dbba4 (patch)
tree53e92d69536044321ac31d5543a6c426546b5aba /Tests/ObjCXX
parent786954c4893565d8da27329201fd235e347e051d (diff)
downloadcmake-d2e5e6ff1abec8b3b1579f122b7dcc89a35dbba4.tar.gz
Tests: Organize Objective C/C++ test directories
Move them all under `Tests/ObjC` and `Tests/ObjCXX`.
Diffstat (limited to 'Tests/ObjCXX')
-rw-r--r--Tests/ObjCXX/CMakeLists.txt4
-rw-r--r--Tests/ObjCXX/ObjC++/CMakeLists.txt5
-rw-r--r--Tests/ObjCXX/ObjC++/objc++.mm23
-rw-r--r--Tests/ObjCXX/cxx-file-extension-test/CMakeLists.txt5
-rw-r--r--Tests/ObjCXX/cxx-file-extension-test/main.mm8
-rw-r--r--Tests/ObjCXX/objcxx-file-extension-test/CMakeLists.txt6
-rw-r--r--Tests/ObjCXX/objcxx-file-extension-test/main.mm14
-rw-r--r--Tests/ObjCXX/simple-build-test/CMakeLists.txt11
-rw-r--r--Tests/ObjCXX/simple-build-test/foo.h9
-rw-r--r--Tests/ObjCXX/simple-build-test/foo.mm7
-rw-r--r--Tests/ObjCXX/simple-build-test/main.mm14
11 files changed, 106 insertions, 0 deletions
diff --git a/Tests/ObjCXX/CMakeLists.txt b/Tests/ObjCXX/CMakeLists.txt
new file mode 100644
index 0000000000..a2a907a676
--- /dev/null
+++ b/Tests/ObjCXX/CMakeLists.txt
@@ -0,0 +1,4 @@
+ADD_TEST_MACRO(ObjCXX.ObjC++ ObjC++)
+ADD_TEST_MACRO(ObjCXX.simple-build-test simple-build-test)
+ADD_TEST_MACRO(ObjCXX.cxx-file-extension-test cxx-file-extension-test)
+ADD_TEST_MACRO(ObjCXX.objcxx-file-extension-test objcxx-file-extension-test)
diff --git a/Tests/ObjCXX/ObjC++/CMakeLists.txt b/Tests/ObjCXX/ObjC++/CMakeLists.txt
new file mode 100644
index 0000000000..5ba5db2ed0
--- /dev/null
+++ b/Tests/ObjCXX/ObjC++/CMakeLists.txt
@@ -0,0 +1,5 @@
+# a simple objc++ test case that uses Cocoa framework
+project (ObjC++)
+
+add_executable (ObjC++ objc++.mm)
+target_link_libraries(ObjC++ "-framework Cocoa")
diff --git a/Tests/ObjCXX/ObjC++/objc++.mm b/Tests/ObjCXX/ObjC++/objc++.mm
new file mode 100644
index 0000000000..258ebaa52f
--- /dev/null
+++ b/Tests/ObjCXX/ObjC++/objc++.mm
@@ -0,0 +1,23 @@
+#import <Cocoa/Cocoa.h>
+#import <iostream>
+using namespace std;
+
+int main()
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
+ NSMutableSet *mySet = [NSMutableSet set];
+ cout<<"Adding values to the set."<<endl;
+ [mySet addObject:[NSNumber numberWithInt:356]];
+ [mySet addObject:[NSNumber numberWithInt:550]];
+ [mySet addObject:[NSNumber numberWithInt:914]];
+
+ cout<<"The set contains "<<[mySet count]<<" objects."<<endl;
+ if ([mySet containsObject:[NSNumber numberWithInt:911]])
+ cout<<"It's there!"<<endl;
+ else
+ cout<<"It's not there."<<endl;
+
+ [pool release];
+ return 0;
+}
diff --git a/Tests/ObjCXX/cxx-file-extension-test/CMakeLists.txt b/Tests/ObjCXX/cxx-file-extension-test/CMakeLists.txt
new file mode 100644
index 0000000000..0b33875d9e
--- /dev/null
+++ b/Tests/ObjCXX/cxx-file-extension-test/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required(VERSION 3.15)
+
+project(cxx-file-extension-test CXX)
+
+add_executable(cxx-file-extension-test main.mm)
diff --git a/Tests/ObjCXX/cxx-file-extension-test/main.mm b/Tests/ObjCXX/cxx-file-extension-test/main.mm
new file mode 100644
index 0000000000..1c159a9af7
--- /dev/null
+++ b/Tests/ObjCXX/cxx-file-extension-test/main.mm
@@ -0,0 +1,8 @@
+#ifndef __OBJC__
+# error "Compiler cannot compile Objective-C"
+#endif
+
+int main()
+{
+ return 0;
+}
diff --git a/Tests/ObjCXX/objcxx-file-extension-test/CMakeLists.txt b/Tests/ObjCXX/objcxx-file-extension-test/CMakeLists.txt
new file mode 100644
index 0000000000..eda7bbaeb9
--- /dev/null
+++ b/Tests/ObjCXX/objcxx-file-extension-test/CMakeLists.txt
@@ -0,0 +1,6 @@
+cmake_minimum_required(VERSION 3.15)
+
+project(objcxx-file-extension-test OBJCXX CXX)
+
+add_executable(objcxx-file-extension-test main.mm)
+target_link_libraries(objcxx-file-extension-test "-framework Foundation")
diff --git a/Tests/ObjCXX/objcxx-file-extension-test/main.mm b/Tests/ObjCXX/objcxx-file-extension-test/main.mm
new file mode 100644
index 0000000000..d4aa1bba38
--- /dev/null
+++ b/Tests/ObjCXX/objcxx-file-extension-test/main.mm
@@ -0,0 +1,14 @@
+#ifndef __OBJC__
+# error "Compiler is not an Objective-C compiler."
+#endif
+
+#import <Foundation/Foundation.h>
+#include <iostream>
+
+int main()
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ std::cout << "Hello World" << std::endl;
+ [pool release];
+ return 0;
+}
diff --git a/Tests/ObjCXX/simple-build-test/CMakeLists.txt b/Tests/ObjCXX/simple-build-test/CMakeLists.txt
new file mode 100644
index 0000000000..cf276834ab
--- /dev/null
+++ b/Tests/ObjCXX/simple-build-test/CMakeLists.txt
@@ -0,0 +1,11 @@
+cmake_minimum_required(VERSION 3.15)
+
+set(CMAKE_MACOSX_RPATH OFF)
+
+project(simple-build-test OBJCXX)
+
+add_library(foo SHARED foo.mm)
+target_link_libraries(foo "-framework Foundation")
+
+add_executable(simple-build-test main.mm)
+target_link_libraries(simple-build-test "-framework Foundation" foo)
diff --git a/Tests/ObjCXX/simple-build-test/foo.h b/Tests/ObjCXX/simple-build-test/foo.h
new file mode 100644
index 0000000000..b3fb084c18
--- /dev/null
+++ b/Tests/ObjCXX/simple-build-test/foo.h
@@ -0,0 +1,9 @@
+#import <Foundation/Foundation.h>
+
+@interface Foo : NSObject {
+ NSNumber* age;
+}
+
+@property (nonatomic, retain) NSNumber* age;
+
+@end
diff --git a/Tests/ObjCXX/simple-build-test/foo.mm b/Tests/ObjCXX/simple-build-test/foo.mm
new file mode 100644
index 0000000000..2d452a8e50
--- /dev/null
+++ b/Tests/ObjCXX/simple-build-test/foo.mm
@@ -0,0 +1,7 @@
+#import "foo.h"
+
+@implementation Foo
+
+@synthesize age;
+
+@end
diff --git a/Tests/ObjCXX/simple-build-test/main.mm b/Tests/ObjCXX/simple-build-test/main.mm
new file mode 100644
index 0000000000..7c85551f0a
--- /dev/null
+++ b/Tests/ObjCXX/simple-build-test/main.mm
@@ -0,0 +1,14 @@
+#import <Foundation/Foundation.h>
+#import "foo.h"
+#include <iostream>
+
+int main(int argc, char **argv)
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ Foo *theFoo = [[Foo alloc] init];
+ theFoo.age = [NSNumber numberWithInt:argc];
+ NSLog(@"%d\n",[theFoo.age intValue]);
+ std::cout << [theFoo.age intValue] << std::endl;
+ [pool release];
+ return 0;
+}