[Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-612-g896e195

Kitware Robot kwrobot at kitware.com
Tue Mar 28 15:55:02 EDT 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  896e195588bde813ad6e0cc8af7fe1594d37907c (commit)
       via  dc5ea8ee24a81a7b5e9a05232c00a4e85528641c (commit)
      from  10a48e620ee872e32642ed5ad1e993776be2a694 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=896e195588bde813ad6e0cc8af7fe1594d37907c
commit 896e195588bde813ad6e0cc8af7fe1594d37907c
Merge: 10a48e6 dc5ea8e
Author:     Gregor Jasny <gjasny at googlemail.com>
AuthorDate: Tue Mar 28 19:52:02 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Tue Mar 28 15:52:10 2017 -0400

    Stage topic '16742-swift-3.0'
    
    Topic-id: 23323
    Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/638


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dc5ea8ee24a81a7b5e9a05232c00a4e85528641c
commit dc5ea8ee24a81a7b5e9a05232c00a4e85528641c
Author:     Gregor Jasny <gjasny at googlemail.com>
AuthorDate: Tue Mar 28 16:04:02 2017 +0200
Commit:     Gregor Jasny <gjasny at googlemail.com>
CommitDate: Tue Mar 28 21:07:52 2017 +0200

    Swift: Default to Swift 3.0 with Xcode 8.3 and later
    
    Xcode 8.3 has dropped support for Swift 2.3 so that compiler and
    feature detection failed.
    
    Closes #16742

diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index 6fce8e2..1abbc01 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -298,7 +298,13 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
       set(id_toolset "")
     endif()
     if("${lang}" STREQUAL "Swift")
-      set(id_lang_version "SWIFT_VERSION = 2.3;")
+      if(CMAKE_Swift_LANGUAGE_VERSION)
+        set(id_lang_version "SWIFT_VERSION = ${CMAKE_Swift_LANGUAGE_VERSION};")
+      elseif(XCODE_VERSION VERSION_GREATER_EQUAL 8.3)
+        set(id_lang_version "SWIFT_VERSION = 3.0;")
+      else()
+        set(id_lang_version "SWIFT_VERSION = 2.3;")
+      endif()
     else()
       set(id_lang_version "")
     endif()
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 39f7b8f..42dd997 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -3117,10 +3117,14 @@ bool cmGlobalXCodeGenerator::CreateXCodeObjects(
                                 this->CreateString(this->GeneratorToolset));
   }
   if (this->GetLanguageEnabled("Swift")) {
-    std::string swiftVersion = "2.3";
+    std::string swiftVersion;
     if (const char* vers = this->CurrentMakefile->GetDefinition(
           "CMAKE_Swift_LANGUAGE_VERSION")) {
       swiftVersion = vers;
+    } else if (this->XcodeVersion >= 83) {
+      swiftVersion = "3.0";
+    } else {
+      swiftVersion = "2.3";
     }
     buildSettings->AddAttribute("SWIFT_VERSION",
                                 this->CreateString(swiftVersion));
diff --git a/Tests/SwiftMix/ObjCMain.m b/Tests/SwiftMix/ObjCMain.m
index 7fa90ae..5a8700c 100644
--- a/Tests/SwiftMix/ObjCMain.m
+++ b/Tests/SwiftMix/ObjCMain.m
@@ -1,4 +1,10 @@
 #import "SwiftMix-Swift.h"
 int ObjCMain(int argc, char const* const argv[]) {
-  return [SwiftMainClass SwiftMain:argc argv:argv];
+  if ([SwiftMainClass respondsToSelector:@selector(SwiftMain:argv:)]) {
+    return [SwiftMainClass SwiftMain:argc argv:argv];
+  }
+  if ([SwiftMainClass respondsToSelector:@selector(SwiftMainWithArgc:argv:)]) {
+    return [SwiftMainClass SwiftMainWithArgc:argc argv:argv];
+  }
+  return -1;
 }
diff --git a/Tests/SwiftMix/SwiftMain.swift b/Tests/SwiftMix/SwiftMain.swift
index 3629ac8..921439a 100644
--- a/Tests/SwiftMix/SwiftMain.swift
+++ b/Tests/SwiftMix/SwiftMain.swift
@@ -3,10 +3,17 @@ import Foundation
 @objc class SwiftMainClass : NSObject {
   class func SwiftMain(argc:Int, argv:UnsafePointer<UnsafePointer<CChar>>) -> Int32 {
     dump("argc: \(argc)")
+#if swift(>=3.0)
+    for i in 0 ..< argc {
+      let argi = String(cString:argv[i]);
+      dump("arg[\(i)]: \(argi)");
+    }
+#else
     for (var i = 0; i < argc; ++i) {
       let argi = String.fromCString(argv[i])
       dump("arg[\(i)]: \(argi)");
     }
+#endif
     return 0;
   }
 }

-----------------------------------------------------------------------

Summary of changes:
 Modules/CMakeDetermineCompilerId.cmake |    8 +++++++-
 Source/cmGlobalXCodeGenerator.cxx      |    6 +++++-
 Tests/SwiftMix/ObjCMain.m              |    8 +++++++-
 Tests/SwiftMix/SwiftMain.swift         |    7 +++++++
 4 files changed, 26 insertions(+), 3 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list