diff options
author | Brad King <brad.king@kitware.com> | 2015-07-06 20:15:49 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-07-06 20:15:49 (GMT) |
commit | bf11253163b54f7c18b001cb00973a6341ee859b (patch) | |
tree | adf50cd777722e5c08168025889c08a2e7ce68da /Tests/SwiftMix | |
parent | 8fbd9584af44100bbddd0f4031b57c5bc2530837 (diff) | |
download | CMake-bf11253163b54f7c18b001cb00973a6341ee859b.zip CMake-bf11253163b54f7c18b001cb00973a6341ee859b.tar.gz CMake-bf11253163b54f7c18b001cb00973a6341ee859b.tar.bz2 |
Add rudimentary support for the Apple Swift language with Xcode
Allow the `Swift` language to be enabled with the Xcode generator for
Xcode >= 6.1. Reject it on other generators and with older Xcode
versions. Since Apple is the only vendor implementing the language
right now, the compiler id can be just `Apple`.
Diffstat (limited to 'Tests/SwiftMix')
-rw-r--r-- | Tests/SwiftMix/CMain.c | 4 | ||||
-rw-r--r-- | Tests/SwiftMix/CMakeLists.txt | 5 | ||||
-rw-r--r-- | Tests/SwiftMix/ObjC-Swift.h | 0 | ||||
-rw-r--r-- | Tests/SwiftMix/ObjCMain.m | 4 | ||||
-rw-r--r-- | Tests/SwiftMix/SwiftMain.swift | 10 |
5 files changed, 23 insertions, 0 deletions
diff --git a/Tests/SwiftMix/CMain.c b/Tests/SwiftMix/CMain.c new file mode 100644 index 0000000..13e2f8c --- /dev/null +++ b/Tests/SwiftMix/CMain.c @@ -0,0 +1,4 @@ +extern int ObjCMain(int argc, char const* const argv[]); +int main(int argc, char* argv[]) { + return ObjCMain(argc, argv); +} diff --git a/Tests/SwiftMix/CMakeLists.txt b/Tests/SwiftMix/CMakeLists.txt new file mode 100644 index 0000000..5e50470 --- /dev/null +++ b/Tests/SwiftMix/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.3) +project(SwiftMix C Swift) + +add_executable(SwiftMix CMain.c ObjCMain.m SwiftMain.swift ObjC-Swift.h) +set_property(TARGET SwiftMix PROPERTY XCODE_ATTRIBUTE_SWIFT_OBJC_BRIDGING_HEADER "ObjC-Swift.h") diff --git a/Tests/SwiftMix/ObjC-Swift.h b/Tests/SwiftMix/ObjC-Swift.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Tests/SwiftMix/ObjC-Swift.h diff --git a/Tests/SwiftMix/ObjCMain.m b/Tests/SwiftMix/ObjCMain.m new file mode 100644 index 0000000..7fa90ae --- /dev/null +++ b/Tests/SwiftMix/ObjCMain.m @@ -0,0 +1,4 @@ +#import "SwiftMix-Swift.h" +int ObjCMain(int argc, char const* const argv[]) { + return [SwiftMainClass SwiftMain:argc argv:argv]; +} diff --git a/Tests/SwiftMix/SwiftMain.swift b/Tests/SwiftMix/SwiftMain.swift new file mode 100644 index 0000000..9af9883 --- /dev/null +++ b/Tests/SwiftMix/SwiftMain.swift @@ -0,0 +1,10 @@ +@objc class SwiftMainClass { + class func SwiftMain(argc:Int, argv:UnsafePointer<UnsafePointer<CChar>>) -> Int32 { + println("argc: \(argc)") + for (var i = 0; i < argc; ++i) { + var argi = String.fromCString(argv[i]) + println("arg[\(i)]: \(argi)"); + } + return 0; + } +} |