 							continue
 						}
 						if fileUrl.pathExtension != "swift" { continue }
-						outputs[outputs.count - 1].includes.append(.file(fileUrl.path))
+						filePaths.append(fileUrl.path)
+					}
+					for filePath in filePaths.sorted() {
+						outputs[outputs.count - 1].includes.append(.file(filePath))
 					}
 				} else {
 					outputs[outputs.count - 1].includes.append(.file(value))

					guard let enumerator = FileManager.default.enumerator(at: URL(fileURLWithPath: value), includingPropertiesForKeys: nil) else {
						throw ProcessingError.fileNotFound(value)
					}
					for file in enumerator {
						let fileUrl = file as! URL
						if outputs[outputs.count - 1].excludes.contains(fileUrl.path) {

			throw ProcessingError.cantCreateOutputFile(outputUrl.path)
		}
		let output = try FileHandle(forWritingTo: outputUrl)
		
		var preprocessed = [Include]()
		var files = [String]()
		for include in includes {
