Commit aced9d16 authored by Drew's avatar Drew

Merge branch 'swift3-parameter-renaming'

Thanks to @dunkelstern for his assistance with this.
It required a few minor tweaks.
parents 8f7175e3 ae0ef38f
......@@ -27,7 +27,7 @@ enum Options: String {
case Help = "--help"
case Clean = "--clean"
case Toolchain = "--toolchain"
static var allOptions : [Options] { return [Overlay, CustomFile, Help, Clean, Toolchain] }
}
......@@ -66,19 +66,19 @@ if Process.arguments.contains("--help") {
print("")
print("Usage:")
print("atbuild [--toolchain (/toolchain/path | xcode)] [-f packagefile] [task] [--clean]")
print("tasks:")
for (key, task) in package.tasks {
print(" \(key)")
}
}
exit(1)
}
func runTask(taskName: String, package: Package) {
guard let task = package.tasks[taskName] else { fatalError("No \(taskName) task in build configuration.") }
for task in package.prunedDependencyGraph(task) {
TaskRunner.runTask(task, package: package, toolchain: toolchain)
for task in package.prunedDependencyGraph(task: task) {
TaskRunner.runTask(task: task, package: package, toolchain: toolchain)
}
}
......@@ -103,7 +103,7 @@ if focusOnTask == nil {
print("Building package \(package.name)...")
runTask(focusOnTask!, package: package)
runTask(taskName: focusOnTask!, package: package)
//success message
print("Built package \(package.name).")
\ No newline at end of file
Subproject commit d6ea8b9fea7af70e3d16c9f1485738d5ba2db7bb
Subproject commit 57c9722c0a41fa3329b63a2aa90594f27a18275c
......@@ -56,7 +56,7 @@ extension NSFileManager {
let permission_ = (try! attributesOfItem(atPath: srcPath)[NSFilePosixPermissions] as! NSNumber)
#if os(OSX) || os(iOS)
let permission = permission_.unsignedShortValue
let permission = permission_.uint16Value
#elseif os(Linux)
let permission = permission_.unsignedIntValue
#endif
......@@ -65,15 +65,15 @@ extension NSFileManager {
throw CopyError.CantOpenDestFile(errno)
}
defer { precondition(close(fd_to) >= 0) }
var buf = [UInt8](repeating: 0, count: 4096)
while true {
let nread = read(fd_from, &buf, buf.count)
if nread < 0 { throw CopyError.CantReadSourceFile(errno) }
if nread == 0 { break }
var writeSlice = buf[0..<nread]
while true {
var nwritten: Int! = nil
writeSlice.withUnsafeBufferPointer({ (ptr) -> () in
......@@ -92,26 +92,6 @@ extension NSFileManager {
//These parts of Swift 3 Renaming are not yet implemented on Linux
#if os(Linux)
extension NSFileManager {
func enumerator(atPath path: String) -> NSDirectoryEnumerator? {
return self.enumeratorAtPath(path)
}
func createSymbolicLink(atPath path: String, withDestinationPath destPath: String) throws {
return try self.createSymbolicLinkAtPath(path, withDestinationPath: destPath)
}
func createDirectory(atPath path: String, withIntermediateDirectories createIntermediates: Bool, attributes: [String : AnyObject]? = [:]) throws {
return try self.createDirectoryAtPath(path, withIntermediateDirectories: createIntermediates, attributes: attributes)
}
func attributesOfItem(atPath path: String) throws -> [String : Any] {
return try self.attributesOfItemAtPath(path)
}
func removeItem(atPath path: String) throws {
return try self.removeItemAtPath(path)
}
func fileExists(atPath path: String) -> Bool {
return self.fileExistsAtPath(path)
}
}
extension String {
func componentsSeparated(by separator: String) -> [String] {
return self.componentsSeparatedByString(separator)
......@@ -123,4 +103,13 @@ extension String {
return self.stringByReplacingOccurrencesOfString(str, withString: with)
}
}
#endif
//These parts are possibly? not yet implemented on OSX
#if os(OSX)
extension String {
func componentsSeparated(by string: String) -> [String] {
return self.components(separatedBy: string)
}
}
#endif
\ No newline at end of file
......@@ -70,21 +70,21 @@ class PackageFramework: Tool {
//copy payload
let payloadPath = task.importedPath + "bin/" + name + DynamicLibraryExtension
print(payloadPath)
try! manager.copyItemAtPath_SWIFTBUG(payloadPath, toPath: "\(AVersionPath)/\(name)")
try! manager.copyItemAtPath_SWIFTBUG(srcPath: payloadPath, toPath: "\(AVersionPath)/\(name)")
try! manager.createSymbolicLink(atPath: "\(frameworkPath)/\(name)", withDestinationPath: "\(relativeAVersionPath)/\(name)")
//copy modules
let modulePath = "\(AVersionPath)/Modules/\(name).swiftmodule"
try! manager.createDirectory(atPath: modulePath, withIntermediateDirectories: true, attributes: nil)
try! manager.copyItemAtPath_SWIFTBUG("bin/\(name).swiftmodule", toPath: "\(modulePath)/\(Architecture).swiftmodule")
try! manager.copyItemAtPath_SWIFTBUG("bin/\(name).swiftdoc", toPath: "\(modulePath)/\(Architecture).swiftdoc")
try! manager.copyItemAtPath_SWIFTBUG(srcPath: "bin/\(name).swiftmodule", toPath: "\(modulePath)/\(Architecture).swiftmodule")
try! manager.copyItemAtPath_SWIFTBUG(srcPath: "bin/\(name).swiftdoc", toPath: "\(modulePath)/\(Architecture).swiftdoc")
try! manager.createSymbolicLink(atPath: "\(frameworkPath)/Modules", withDestinationPath: "\(relativeAVersionPath)/Modules")
//copy resources
let resourcesPath = AVersionPath + "/Resources"
try! manager.createDirectory(atPath: resourcesPath, withIntermediateDirectories: true, attributes: nil)
for resource in resources {
try! manager.copyItemAtPath_SWIFTBUG(task.importedPath + resource, toPath: "\(resourcesPath)/\(resource)")
try! manager.copyItemAtPath_SWIFTBUG(srcPath: task.importedPath + resource, toPath: "\(resourcesPath)/\(resource)")
}
try! manager.createSymbolicLink(atPath: "\(frameworkPath)/Resources", withDestinationPath: "\(relativeAVersionPath)/Resources")
......
......@@ -25,13 +25,13 @@ final class Shell : Tool {
func run(task: Task, toolchain: String) {
setenv("ATBUILD_USER_PATH", userPath(), 1)
guard var script = task["script"]?.string else { fatalError("Invalid 'script' argument to shell tool.") }
script = evaluateSubstitutions(script, package: task.package)
script = evaluateSubstitutions(input: script, package: task.package)
do {
let oldPath = NSFileManager.defaultManager().currentDirectoryPath
defer { NSFileManager.defaultManager().changeCurrentDirectoryPath(oldPath) }
NSFileManager.defaultManager().changeCurrentDirectoryPath(task.importedPath)
if system("/bin/sh -c \"\(script)\"") != 0 {
fatalError("/bin/sh -c \(script)")
}
......
......@@ -22,10 +22,10 @@ import atpkg
final public class TaskRunner {
private init() {}
static public func runTask(task: Task, package: Package, toolchain: String) {
static public func runTask(task: Task, package: Package, toolchain: String) {
print("Running task \(task.qualifiedName) with overlays \(task.appliedOverlays)")
let tool = toolByName(task.tool)
tool.run(task, toolchain: toolchain)
let tool = toolByName(name: task.tool)
tool.run(task: task, toolchain: toolchain)
print("Completed task \(task.qualifiedName).")
}
}
\ No newline at end of file
......@@ -25,9 +25,9 @@ class XCTestRun : Tool {
}
#if os(OSX)
var workingDirectory = "/tmp/XXXXXXXXXXX"
var template = workingDirectory.cString(usingEncoding: NSUTF8StringEncoding)!
var template = workingDirectory.cString(using: NSUTF8StringEncoding)!
workingDirectory = String(cString: mkdtemp(&template), encoding: NSUTF8StringEncoding)!
let manager = NSFileManager.defaultManager()
let executablePath = workingDirectory + "/XCTestRun.xctest/Contents/MacOS"
try! manager.createDirectory(atPath: executablePath, withIntermediateDirectories: true, attributes: nil)
......
This diff is collapsed.
......@@ -31,8 +31,9 @@ echo "****************COLLECT SOURCES TEST**************"
cd $DIR/tests/fixtures/collect_sources
$ATBUILD collect-sources 2&> /tmp/sources.txt
if ! grep "sources src/a.swift src/b.swift" /tmp/sources.txt; then
echo "Unexpected sources $COLLECT_SOURCES"
exit 1
if ! grep "sources src/b.swift src/a.swift" /tmp/sources.txt; then
exit 1
fi
fi
echo "****************DYNAMIC LIBRARY TEST**************"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment