mirror of
https://github.com/reactos/CMake.git
synced 2024-12-04 09:54:15 +00:00
Merge topic 'more-swift2-fixes'
9cdf6ef4
Swift: Add proper Swift compiler test1aa29f0d
Swift: Remove positive Swift language testsd778a1c2
Swift: Require Xcode 6.1 and for MacOS X at least SDK 10.104da60024
Swift: Fix Compiler-Id detection for Swift 2874a265c
Swift: Make SwiftMix compatible with Swift 2
This commit is contained in:
commit
f281c6214b
@ -12,4 +12,54 @@
|
|||||||
# (To distribute this file outside of CMake, substitute the full
|
# (To distribute this file outside of CMake, substitute the full
|
||||||
# License text for the above reference.)
|
# License text for the above reference.)
|
||||||
|
|
||||||
set(CMAKE_Swift_COMPILER_WORKS 1)
|
if(CMAKE_Swift_COMPILER_FORCED)
|
||||||
|
# The compiler configuration was forced by the user.
|
||||||
|
# Assume the user has configured all compiler information.
|
||||||
|
set(CMAKE_Swift_COMPILER_WORKS TRUE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(CMakeTestCompilerCommon)
|
||||||
|
|
||||||
|
# Remove any cached result from an older CMake version.
|
||||||
|
# We now store this in CMakeSwiftCompiler.cmake.
|
||||||
|
unset(CMAKE_Swift_COMPILER_WORKS CACHE)
|
||||||
|
|
||||||
|
# This file is used by EnableLanguage in cmGlobalGenerator to
|
||||||
|
# determine that that selected C++ compiler can actually compile
|
||||||
|
# and link the most basic of programs. If not, a fatal error
|
||||||
|
# is set and cmake stops processing commands and will not generate
|
||||||
|
# any makefiles or projects.
|
||||||
|
if(NOT CMAKE_Swift_COMPILER_WORKS)
|
||||||
|
PrintTestCompilerStatus("Swift" "")
|
||||||
|
file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.swift
|
||||||
|
"import Foundation\n"
|
||||||
|
"print(\"CMake\")\n")
|
||||||
|
try_compile(CMAKE_Swift_COMPILER_WORKS ${CMAKE_BINARY_DIR}
|
||||||
|
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.swift
|
||||||
|
OUTPUT_VARIABLE __CMAKE_Swift_COMPILER_OUTPUT)
|
||||||
|
# Move result from cache to normal variable.
|
||||||
|
set(CMAKE_Swift_COMPILER_WORKS ${CMAKE_Swift_COMPILER_WORKS})
|
||||||
|
unset(CMAKE_Swift_COMPILER_WORKS CACHE)
|
||||||
|
set(Swift_TEST_WAS_RUN 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT CMAKE_Swift_COMPILER_WORKS)
|
||||||
|
PrintTestCompilerStatus("Swift" " -- broken")
|
||||||
|
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||||
|
"Determining if the Swift compiler works failed with "
|
||||||
|
"the following output:\n${__CMAKE_Swift_COMPILER_OUTPUT}\n\n")
|
||||||
|
message(FATAL_ERROR "The Swift compiler \"${CMAKE_Swift_COMPILER}\" "
|
||||||
|
"is not able to compile a simple test program.\nIt fails "
|
||||||
|
"with the following output:\n ${__CMAKE_Swift_COMPILER_OUTPUT}\n\n"
|
||||||
|
"CMake will not be able to correctly generate this project.")
|
||||||
|
else()
|
||||||
|
if(Swift_TEST_WAS_RUN)
|
||||||
|
PrintTestCompilerStatus("Swift" " -- works")
|
||||||
|
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||||
|
"Determining if the Swift compiler works passed with "
|
||||||
|
"the following output:\n${__CMAKE_Swift_COMPILER_OUTPUT}\n\n")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
unset(__CMAKE_Swift_COMPILER_OUTPUT)
|
||||||
|
@ -1 +1 @@
|
|||||||
println("CMakeSwiftCompilerId")
|
print("CMakeSwiftCompilerId")
|
||||||
|
@ -213,6 +213,29 @@ if(BUILD_TESTING)
|
|||||||
set(CMake_TEST_XCODE_VERSION "${CMAKE_MATCH_1}")
|
set(CMake_TEST_XCODE_VERSION "${CMAKE_MATCH_1}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
if(CMAKE_OSX_SYSROOT)
|
||||||
|
execute_process(
|
||||||
|
COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version ProductName
|
||||||
|
OUTPUT_VARIABLE _stdout
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
ERROR_VARIABLE _stderr
|
||||||
|
RESULT_VARIABLE _failed
|
||||||
|
)
|
||||||
|
if(NOT _failed)
|
||||||
|
set(CMAKE_OSX_SDKPRODUCT "${_stdout}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version SDKVersion
|
||||||
|
OUTPUT_VARIABLE _stdout
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
ERROR_VARIABLE _stderr
|
||||||
|
RESULT_VARIABLE _failed
|
||||||
|
)
|
||||||
|
if(NOT _failed)
|
||||||
|
set(CMAKE_OSX_SDKVERSION "${_stdout}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Use 1500 or CTEST_TEST_TIMEOUT for long test timeout value,
|
# Use 1500 or CTEST_TEST_TIMEOUT for long test timeout value,
|
||||||
@ -258,12 +281,16 @@ if(BUILD_TESTING)
|
|||||||
ADD_TEST_MACRO(MissingSourceFile MissingSourceFile)
|
ADD_TEST_MACRO(MissingSourceFile MissingSourceFile)
|
||||||
set_tests_properties(MissingSourceFile PROPERTIES
|
set_tests_properties(MissingSourceFile PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "CMake Error at CMakeLists.txt:3 \\(add_executable\\):[ \r\n]*Cannot find source file:[ \r\n]*DoesNotExist/MissingSourceFile.c")
|
PASS_REGULAR_EXPRESSION "CMake Error at CMakeLists.txt:3 \\(add_executable\\):[ \r\n]*Cannot find source file:[ \r\n]*DoesNotExist/MissingSourceFile.c")
|
||||||
if(CMake_TEST_XCODE_VERSION AND NOT CMake_TEST_XCODE_VERSION VERSION_LESS 6.1)
|
if(CMake_TEST_XCODE_VERSION AND CMAKE_OSX_SDKVERSION AND CMAKE_OSX_SDKPRODUCT)
|
||||||
|
if((NOT CMake_TEST_XCODE_VERSION VERSION_LESS 6.1) AND
|
||||||
|
((NOT CMAKE_OSX_SDKPRODUCT STREQUAL "Mac OS X") OR
|
||||||
|
(NOT CMAKE_OSX_SDKVERSION VERSION_LESS 10.10)))
|
||||||
if(CMAKE_GENERATOR STREQUAL "Xcode")
|
if(CMAKE_GENERATOR STREQUAL "Xcode")
|
||||||
ADD_TEST_MACRO(SwiftMix SwiftMix)
|
ADD_TEST_MACRO(SwiftMix SwiftMix)
|
||||||
ADD_TEST_MACRO(SwiftOnly SwiftOnly)
|
ADD_TEST_MACRO(SwiftOnly SwiftOnly)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
if(CMAKE_Fortran_COMPILER)
|
if(CMAKE_Fortran_COMPILER)
|
||||||
ADD_TEST_MACRO(FortranOnly FortranOnly)
|
ADD_TEST_MACRO(FortranOnly FortranOnly)
|
||||||
endif()
|
endif()
|
||||||
|
@ -1 +0,0 @@
|
|||||||
-- The Swift compiler identification is Apple
|
|
@ -1 +0,0 @@
|
|||||||
enable_language(Swift)
|
|
@ -3,8 +3,6 @@ include(RunCMake)
|
|||||||
if(RunCMake_GENERATOR STREQUAL Xcode)
|
if(RunCMake_GENERATOR STREQUAL Xcode)
|
||||||
if(XCODE_BELOW_6_1)
|
if(XCODE_BELOW_6_1)
|
||||||
run_cmake(XcodeTooOld)
|
run_cmake(XcodeTooOld)
|
||||||
else()
|
|
||||||
run_cmake(Enable)
|
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
run_cmake(NotSupported)
|
run_cmake(NotSupported)
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
@objc class SwiftMainClass {
|
import Foundation
|
||||||
|
|
||||||
|
@objc class SwiftMainClass : NSObject {
|
||||||
class func SwiftMain(argc:Int, argv:UnsafePointer<UnsafePointer<CChar>>) -> Int32 {
|
class func SwiftMain(argc:Int, argv:UnsafePointer<UnsafePointer<CChar>>) -> Int32 {
|
||||||
dump("argc: \(argc)")
|
dump("argc: \(argc)")
|
||||||
for (var i = 0; i < argc; ++i) {
|
for (var i = 0; i < argc; ++i) {
|
||||||
var argi = String.fromCString(argv[i])
|
let argi = String.fromCString(argv[i])
|
||||||
dump("arg[\(i)]: \(argi)");
|
dump("arg[\(i)]: \(argi)");
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user