Pure Swift Cross-platform UIKit (Cocoa Touch) implementation (Supports Linux)
brew install cairo sdl2 lcms2
swift build -Xlinker -L/usr/local/lib
sudo apt-get install libcairo-dev libsdl2-dev liblcms2-dev
swift build
Pure Swift Cross-platform UIKit (Cocoa Touch) implementation (Supports Linux)
License: MIT License
Pure Swift Cross-platform UIKit (Cocoa Touch) implementation (Supports Linux)
brew install cairo sdl2 lcms2
swift build -Xlinker -L/usr/local/lib
sudo apt-get install libcairo-dev libsdl2-dev liblcms2-dev
swift build
It appears the last commit was from about 2 years ago now, has development stopped on it? Has development shifted else where?
Animate changes to one or more views using the specified duration.
class func animate(withDuration duration: TimeInterval, animations: @escaping () -> ())
Documentation
As mentioned above, delegate should be unknown(unsafe) instead of weak
Reference:
https://developer.apple.com/documentation/uikit/uiapplication/1622936-delegate
Project looks great!
Might base an AppKit implementation off of what you've got going on here. Looks solid.
Implement UISwitch
, depends on UIView
animations (#16).
I'm trying to run your demo application but the build failed because of the error below.
Compile Swift Module 'Silica' (19 sources)
/home/bmdelacruz/Documents/Projects/swift/Cacao/.build/checkouts/Silica.git-4667709516086632535/Sources/Silica/CGRect.swift:32:56: error: ambiguous use of 'nan'
public static var null: CGRect { return CGRect(x: .nan, y: .nan, width: .nan, height: .nan) }
^
Foundation.CGFloat:14:23: note: found this candidate
public static var nan: Foundation.CGFloat { get }
^
Swift.Double:137:23: note: found this candidate
public static var nan: Double { get }
OS: Ubuntu 16.04
Swift version: Swift version 4.0-dev (LLVM 2dedb62a0b, Clang b9d76a314c, Swift 61ad3c07ef)
Subtask of #1
Depends on #1
Related to #35, but has some additional build errors.
I'm compiling this on Ubuntu 16.04 LTS and there are several other errors when compiling the Cacao module, aside from the UndoManager
. I'm using Swift 4.1.
In several locations, properties are defined in both Foundation and Silica.
Output from swift build
.
Cacao/Sources/Cacao/TextRendering.swift:50:44: error: ambiguous use of 'width'
case .center: textRect.origin.x = (bounds.width - textRect.width) / 2
^
Foundation.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get }
^
Silica.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get set }
^
Cacao/Sources/Cacao/TextRendering.swift:52:42: error: ambiguous use of 'width'
case .right: textRect.origin.x = bounds.width - textRect.width
^
Foundation.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get }
^
Silica.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get set }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:38:61: error: ambiguous use of 'minX'
let thumbPath = UIBezierPath(roundedRect: CGRect(x: frame.minX + 0.5, y: frame.minY + 0.5, width: frame.width - 1, height: frame.height - 1), cornerRadius: 14)
^
Foundation.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Silica.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:44:73: error: ambiguous use of 'minX'
let thumbShadowStrokePath = UIBezierPath(roundedRect: CGRect(x: frame.minX + 0.5, y: frame.minY + 0.5, width: frame.width - 1, height: frame.height - 1), cornerRadius: 14)
^
Foundation.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Silica.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:57:32: error: ambiguous use of 'minX'
context.translateBy(x: resizedFrame.minX, y: resizedFrame.minY)
^
Foundation.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Silica.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:58:28: error: ambiguous use of 'width'
context.scaleBy(x: resizedFrame.width / 51, y: resizedFrame.height / 31)
^
Foundation.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get }
^
Silica.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get set }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:70:32: error: ambiguous use of 'minX'
context.translateBy(x: backgroundViewRect.minX, y: backgroundViewRect.minY)
^
Foundation.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Silica.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:80:32: error: ambiguous use of 'minX'
context.translateBy(x: thumbRect.minX, y: thumbRect.minY)
^
Foundation.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Silica.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:82:75: error: ambiguous use of 'width'
UISwitchStyleKit.drawSwitchThumb(frame: CGRect(x: 0, y: 0, width: thumbRect.width, height: thumbRect.height), thumbColor: thumbColor)
^
Foundation.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get }
^
Silica.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get set }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:96:32: error: ambiguous use of 'minX'
context.translateBy(x: resizedFrame.minX, y: resizedFrame.minY)
^
Foundation.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Silica.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:97:28: error: ambiguous use of 'width'
context.scaleBy(x: resizedFrame.width / 51, y: resizedFrame.height / 31)
^
Foundation.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get }
^
Silica.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get set }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:133:32: error: ambiguous use of 'width'
scales.width = abs(target.width / rect.width)
^
Foundation.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get }
^
Silica.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get set }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:134:33: error: ambiguous use of 'height'
scales.height = abs(target.height / rect.height)
^
Foundation.CGRect:5:16: note: found this candidate
public var height: Foundation.CGFloat { get }
^
Silica.CGRect:5:16: note: found this candidate
public var height: Foundation.CGFloat { get set }
^
Cacao/Sources/Cacao/StyleKit/UISwitchStyleKit.swift:150:26: error: ambiguous use of 'standardized'
var result = rect.standardized
^
Foundation.CGRect:17:16: note: found this candidate
public var standardized: Foundation.CGRect { get }
^
Silica.CGRect:12:16: note: found this candidate
public var standardized: Foundation.CGRect { get }
^
Cacao/Sources/Cacao/SDL.swift:82:17: warning: result of call to 'run(mode:before:)' is unused
runloop.run(mode: .defaultRunLoopMode, before: Date() + (1.0 / TimeInterval(framesPerSecond)))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cacao/Sources/Cacao/UIBezierPath.swift:85:35: error: ambiguous use of 'maxX'
let topRight = CGPoint(x: rect.maxX, y: rect.minY)
^
Foundation.CGRect:8:16: note: found this candidate
public var maxX: Foundation.CGFloat { get }
^
Silica.CGRect:8:16: note: found this candidate
public var maxX: Foundation.CGFloat { get }
^
Cacao/Sources/Cacao/UIBezierPath.swift:86:38: error: ambiguous use of 'maxX'
let bottomRight = CGPoint(x: rect.maxX, y: rect.maxY)
^
Foundation.CGRect:8:16: note: found this candidate
public var maxX: Foundation.CGFloat { get }
^
Silica.CGRect:8:16: note: found this candidate
public var maxX: Foundation.CGFloat { get }
^
Cacao/Sources/Cacao/UIBezierPath.swift:87:37: error: ambiguous use of 'minX'
let bottomLeft = CGPoint(x: rect.minX, y: rect.maxY)
^
Foundation.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Silica.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Cacao/Sources/Cacao/UIScrollView.swift:141:24: error: ambiguous use of 'intersection'
var goalRect = rect.intersection(contentRect)
^
Foundation.CGRect:21:17: note: found this candidate
public func intersection(_ r2: Foundation.CGRect) -> Foundation.CGRect
^
Silica.CGRect:20:17: note: found this candidate
public func intersection(_ other: Foundation.CGRect) -> Foundation.CGRect
^
Cacao/Sources/Cacao/UITableView.swift:337:28: error: ambiguous use of 'intersects'
.filter { self.bounds.intersects(self.rectForRow(at: $0)) } // get visible cells
^
Foundation.CGRect:22:17: note: found this candidate
public func intersects(_ r2: Foundation.CGRect) -> Bool
^
Silica.CGRect:19:17: note: found this candidate
public func intersects(_ r2: Foundation.CGRect) -> Bool
^
Cacao/Sources/Cacao/UITableView.swift:299:24: error: ambiguous use of 'intersects'
if rect.intersects(simpleRowRect) {
^
Foundation.CGRect:22:17: note: found this candidate
public func intersects(_ r2: Foundation.CGRect) -> Bool
^
Silica.CGRect:19:17: note: found this candidate
public func intersects(_ r2: Foundation.CGRect) -> Bool
^
Cacao/Sources/Cacao/UITableView.swift:873:32: error: ambiguous use of 'height'
tableViewHeight += sectionRect.height
^
Foundation.CGRect:5:16: note: found this candidate
public var height: Foundation.CGFloat { get }
^
Silica.CGRect:5:16: note: found this candidate
public var height: Foundation.CGFloat { get set }
^
Cacao/Sources/Cacao/UITableView.swift:876:19: error: ambiguous use of 'intersects'
guard sectionRect.intersects(visibleBounds)
^
Foundation.CGRect:22:17: note: found this candidate
public func intersects(_ r2: Foundation.CGRect) -> Bool
^
Silica.CGRect:19:17: note: found this candidate
public func intersects(_ r2: Foundation.CGRect) -> Bool
^
Cacao/Sources/Cacao/UITableView.swift:893:23: error: ambiguous use of 'intersects'
guard rowRect.intersects(visibleBounds),
^
Foundation.CGRect:22:17: note: found this candidate
public func intersects(_ r2: Foundation.CGRect) -> Bool
^
Silica.CGRect:19:17: note: found this candidate
public func intersects(_ r2: Foundation.CGRect) -> Bool
^
Cacao/Sources/Cacao/UITableView.swift:954:12: error: ambiguous use of 'isNull'
if rect.isNull == false, rect.size.height > 0 {
^
Foundation.CGRect:14:16: note: found this candidate
public var isNull: Bool { get }
^
Silica.CGRect:15:16: note: found this candidate
public var isNull: Bool { get }
^
Cacao/Sources/Cacao/UIView.swift:907:28: error: ambiguous use of 'minX'
return (point.x >= rect.minX && point.x <= rect.maxX)
^
Foundation.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Silica.CGRect:6:16: note: found this candidate
public var minX: Foundation.CGFloat { get }
^
Cacao/Sources/Cacao/UIViewContentMode.swift:53:30: error: ambiguous use of 'width'
let widthRatio = bounds.width / size.width
^
Foundation.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get }
^
Silica.CGRect:4:16: note: found this candidate
public var width: Foundation.CGFloat { get set }
^
Cacao/Sources/Cacao/UIViewContentMode.swift:54:31: error: ambiguous use of 'height'
let heightRatio = bounds.height / size.height
^
Foundation.CGRect:5:16: note: found this candidate
public var height: Foundation.CGFloat { get }
^
Silica.CGRect:5:16: note: found this candidate
public var height: Foundation.CGFloat { get set }
Output of swift build
:
Fetching https://github.com/PureSwift/Silica.git
Fetching https://github.com/PureSwift/Cairo.git
Fetching https://github.com/PureSwift/SDL.git
Fetching https://github.com/PureSwift/CSDL2.git
Fetching https://github.com/PureSwift/LittleCMS.git
Fetching https://github.com/PureSwift/CLCMS.git
Fetching https://github.com/PureSwift/CFreeType.git
Fetching https://github.com/PureSwift/CFontConfig.git
Fetching https://github.com/PureSwift/CCairo.git
Cloning https://github.com/PureSwift/CLCMS.git
Resolving https://github.com/PureSwift/CLCMS.git at 1.0.0
Cloning https://github.com/PureSwift/CFontConfig.git
Resolving https://github.com/PureSwift/CFontConfig.git at 1.0.1
Cloning https://github.com/PureSwift/CSDL2.git
Resolving https://github.com/PureSwift/CSDL2.git at 1.0.1
Cloning https://github.com/PureSwift/Silica.git
Resolving https://github.com/PureSwift/Silica.git at 1.3.2
Cloning https://github.com/PureSwift/CFreeType.git
Resolving https://github.com/PureSwift/CFreeType.git at 1.0.4
Cloning https://github.com/PureSwift/SDL.git
Resolving https://github.com/PureSwift/SDL.git at 1.0.1
Cloning https://github.com/PureSwift/Cairo.git
Resolving https://github.com/PureSwift/Cairo.git at 1.2.3
Cloning https://github.com/PureSwift/LittleCMS.git
Resolving https://github.com/PureSwift/LittleCMS.git at 1.0.2
Cloning https://github.com/PureSwift/CCairo.git
Resolving https://github.com/PureSwift/CCairo.git at 1.1.1
warning: error while trying to use pkgConfig flags for CSDL2: nonWhitelistedFlags("Non whitelisted flags found: [\"-D_REENTRANT\"] in pc file sdl2")
Compile Swift Module 'SDL' (10 sources)
Compile Swift Module 'LittleCMS' (14 sources)
Compile Swift Module 'Cairo' (14 sources)
Compile Swift Module 'Silica' (17 sources)
/home/sky/.software/Cacao/.build/checkouts/SDL.git-6140504252031209735/Sources/SDL/BitMaskOption.swift:18:20: warning: redeclaration of associated type 'RawValue' from protocol 'RawRepresentable' is better expressed as a 'where' clause on the protocol
associatedtype RawValue: Integer
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Swift.RawRepresentable:94:20: note: 'RawValue' declared here
associatedtype RawValue
^
/home/sky/.software/Cacao/.build/checkouts/SDL.git-6140504252031209735/Sources/SDL/BitMaskOption.swift:18:20: warning: redeclaration of associated type 'RawValue' from protocol 'RawRepresentable' is better expressed as a 'where' clause on the protocol
associatedtype RawValue: Integer
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Swift.RawRepresentable:94:20: note: 'RawValue' declared here
associatedtype RawValue
^
/home/sky/.software/Cacao/.build/checkouts/SDL.git-6140504252031209735/Sources/SDL/BitMaskOption.swift:18:20: warning: redeclaration of associated type 'RawValue' from protocol 'RawRepresentable' is better expressed as a 'where' clause on the protocol
associatedtype RawValue: Integer
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Swift.RawRepresentable:94:20: note: 'RawValue' declared here
associatedtype RawValue
^
/home/sky/.software/Cacao/.build/checkouts/SDL.git-6140504252031209735/Sources/SDL/BitMaskOption.swift:18:20: warning: redeclaration of associated type 'RawValue' from protocol 'RawRepresentable' is better expressed as a 'where' clause on the protocol
associatedtype RawValue: Integer
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Swift.RawRepresentable:94:20: note: 'RawValue' declared here
associatedtype RawValue
^
/home/sky/.software/Cacao/.build/checkouts/SDL.git-6140504252031209735/Sources/SDL/BitMaskOption.swift:18:20: warning: redeclaration of associated type 'RawValue' from protocol 'RawRepresentable' is better expressed as a 'where' clause on the protocol
associatedtype RawValue: Integer
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Swift.RawRepresentable:94:20: note: 'RawValue' declared here
associatedtype RawValue
^
/home/sky/.software/Cacao/.build/checkouts/SDL.git-6140504252031209735/Sources/SDL/BitMaskOption.swift:18:20: warning: redeclaration of associated type 'RawValue' from protocol 'RawRepresentable' is better expressed as a 'where' clause on the protocol
associatedtype RawValue: Integer
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Swift.RawRepresentable:94:20: note: 'RawValue' declared here
associatedtype RawValue
^
/home/sky/.software/Cacao/.build/checkouts/SDL.git-6140504252031209735/Sources/SDL/BitMaskOption.swift:18:20: warning: redeclaration of associated type 'RawValue' from protocol 'RawRepresentable' is better expressed as a 'where' clause on the protocol
associatedtype RawValue: Integer
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Swift.RawRepresentable:94:20: note: 'RawValue' declared here
associatedtype RawValue
^
/home/sky/.software/Cacao/.build/checkouts/SDL.git-6140504252031209735/Sources/SDL/BitMaskOption.swift:18:20: warning: redeclaration of associated type 'RawValue' from protocol 'RawRepresentable' is better expressed as a 'where' clause on the protocol
associatedtype RawValue: Integer
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Swift.RawRepresentable:94:20: note: 'RawValue' declared here
associatedtype RawValue
^
/home/sky/.software/Cacao/.build/checkouts/SDL.git-6140504252031209735/Sources/SDL/BitMaskOption.swift:18:20: warning: redeclaration of associated type 'RawValue' from protocol 'RawRepresentable' is better expressed as a 'where' clause on the protocol
associatedtype RawValue: Integer
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Swift.RawRepresentable:94:20: note: 'RawValue' declared here
associatedtype RawValue
^
/home/sky/.software/Cacao/.build/checkouts/SDL.git-6140504252031209735/Sources/SDL/BitMaskOption.swift:18:20: warning: redeclaration of associated type 'RawValue' from protocol 'RawRepresentable' is better expressed as a 'where' clause on the protocol
associatedtype RawValue: Integer
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Swift.RawRepresentable:94:20: note: 'RawValue' declared here
associatedtype RawValue
^
Compile Swift Module 'SDLDemo' (1 sources)
/home/sky/.software/Cacao/.build/checkouts/Silica.git-3700298429439828320/Sources/Silica/CGFont.swift:236:25: warning: 'init' is deprecated: Failable initializer was removed in Swift 4. When upgrading to Swift 4, please use non-failable String.init(_:UTF8View)
let substring = String(utf8[indexRange])
^
Linking ./.build/x86_64-unknown-linux/debug/SDLDemo
Compile Swift Module 'Cacao' (78 sources)
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/SDL.swift:82:17: warning: result of call to 'run(mode:before:)' is unused
runloop.run(mode: .defaultRunLoopMode, before: Date() + (1.0 / TimeInterval(framesPerSecond)))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
/home/sky/.software/Cacao/Sources/Cacao/UIResponder.swift:238:27: error: use of undeclared type 'UndoManager'
open var undoManager: UndoManager? { return nil }
^~~~~~~~~~~
error: terminated(1): /home/sky/.software/swift-lang/usr/bin/swift-build-tool -f /home/sky/.software/Cacao/.build/debug.yaml main`
Depends on UIScrollView
#13
Respect View.clipsToBounds: Bool
in Screen
for Silica drawing.
Implement Core Animation layers and refactor view composition.
When I try to build 9cda4a1 using swift build -Xlinker -L/usr/local/lib
I get:
Cacao/Sources/Cacao/UIView.swift:734:47: error: type 'SDLPixelFormat.Format' has no member 'argb8888'
format: .argb8888, // SDL_PIXELFORMAT_ARGB8888
^~~~~~~~
Implement IOHIDEvent
class that wraps SDL_Event
.
Using Swift3.11 on a RPI3 with Raspbian stretch and cheating on the sdl2.pc file (issue #32 ).
The build of the master branch, fails:
Compile Swift Module 'Cacao' (66 sources) /home/pi/Swift-trying/Cacao/Sources/Cacao/UIControl.swift:217:66: error: integer literal '4026531840' overflows when stored into 'Int' public static let systemReserved = UIControlEvents(rawValue: 0xF0000000) ^ /home/pi/Swift-trying/Cacao/Sources/Cacao/UIControl.swift:218:61: error: integer literal '4294967295' overflows when stored into 'Int' public static let allEvents = UIControlEvents(rawValue: 0xFFFFFFFF) ^ /home/pi/Swift-trying/Cacao/Sources/Cacao/UIScrollView.swift:425:34: warning: will never be executed isDecelerating = true ^ /home/pi/Swift-trying/Cacao/Sources/Cacao/UIScrollView.swift:420:51: note: condition always evaluates to false if /* decelerationAnimation != nil */ false { ^ /home/pi/Swift-trying/Cacao/Sources/Cacao/SDL.swift:61:9: warning: initialization of immutable value 'runloop' was never used; consider replacing with assignment to '_' or removing it let runloop = RunLoop.current ~~~~^~~~~~~ _ <unknown>:0: error: build had 1 command failures
building the develop-branch fails, because of
error: use of undeclared type 'UndoManager'
building V0.51 fails too, but I only goterror: unsatisfiable
Good evening,
Firstly, I'm thrilled to have come across a community of developers building frameworks for developing swift-based software across platforms.
Unfortunately I'm having trouble getting this to build. I've gotten apt to install the prerequisite packages as per command:
sudo apt-get install libcairo-dev libsdl2-dev liblcms2-dev
My setup:
Dev machine: Ubuntu 18.04
Swift version:
$ swift --version
Swift version 4.2.1 (swift-4.2.1-RELEASE)
Target: x86_64-unknown-linux-gnu
Anything I might be missing? Below is the raw build output:
Build Output:
/home/me/workspace/Cacao$ swift build
Fetching https://github.com/PureSwift/Cairo.git
Fetching https://github.com/PureSwift/CFreeType.git
Fetching https://github.com/PureSwift/CCairo.git
Fetching https://github.com/PureSwift/CFontConfig.git
Fetching https://github.com/PureSwift/SDL.git
Fetching https://github.com/PureSwift/Silica.git
Fetching https://github.com/PureSwift/CSDL2.git
Completed resolution in 16.69s
Cloning https://github.com/PureSwift/Silica.git
Resolving https://github.com/PureSwift/Silica.git at master
Cloning https://github.com/PureSwift/SDL.git
Resolving https://github.com/PureSwift/SDL.git at master
Cloning https://github.com/PureSwift/CSDL2.git
Resolving https://github.com/PureSwift/CSDL2.git at master
Cloning https://github.com/PureSwift/CFreeType.git
Resolving https://github.com/PureSwift/CFreeType.git at 1.0.4
Cloning https://github.com/PureSwift/Cairo.git
Resolving https://github.com/PureSwift/Cairo.git at master
Cloning https://github.com/PureSwift/CFontConfig.git
Resolving https://github.com/PureSwift/CFontConfig.git at 1.0.1
Cloning https://github.com/PureSwift/CCairo.git
Resolving https://github.com/PureSwift/CCairo.git at 1.1.1
warning: PackageDescription API v3 is deprecated and will be removed in the future; used by package(s): CSDL2, Silica, Cairo, CFreeType, CFontConfig, CCairo
Compile Swift Module 'SDL' (14 sources)
Compile Swift Module 'Cairo' (14 sources)
swift: /home/buildnode/jenkins/workspace/oss-swift-4.2-package-linux-ubuntu-18_04/llvm/tools/clang/lib/Serialization/ASTWriter.cpp:5508: clang::serialization::DeclID clang::ASTWriter::getDeclID(const clang::Decl *): Assertion `DeclIDs.find(D) != DeclIDs.end() && "Declaration not emitted!"' failed.
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3defe74]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3dedc8c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3df0032]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7f60b23ce890]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f60b0831e97]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f60b0833801]
/lib/x86_64-linux-gnu/libc.so.6(+0x3039a)[0x7f60b082339a]
/lib/x86_64-linux-gnu/libc.so.6(+0x30412)[0x7f60b0823412]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32b370a]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32aeb9c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32bfff9]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32bce9b]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x33024de]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f7c06c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x30dcbb6]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f54580]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2efff11]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f0ac20]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3d8bdeb]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3d8bf34]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3df11aa]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76db)[0x7f60b23c36db]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7f60b091488f]
Stack dump:
0. <eof> parser at end of file
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal 6 (use -v to see invocation)
swift: /home/buildnode/jenkins/workspace/oss-swift-4.2-package-linux-ubuntu-18_04/llvm/tools/clang/lib/Serialization/ASTWriter.cpp:5508: clang::serialization::DeclID clang::ASTWriter::getDeclID(const clang::Decl *): Assertion `DeclIDs.find(D) != DeclIDs.end() && "Declaration not emitted!"' failed.
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3defe74]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3dedc8c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3df0032]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7f26a9ad9890]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f26a7f3ce97]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f26a7f3e801]
/lib/x86_64-linux-gnu/libc.so.6(+0x3039a)[0x7f26a7f2e39a]
/lib/x86_64-linux-gnu/libc.so.6(+0x30412)[0x7f26a7f2e412]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32b370a]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32aeb9c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32bfff9]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32bce9b]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x33024de]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f7c06c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x30dcbb6]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f54580]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2efff11]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f0ac20]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3d8bdeb]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3d8bf34]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3df11aa]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76db)[0x7f26a9ace6db]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7f26a801f88f]
Stack dump:
0. <eof> parser at end of file
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal 6 (use -v to see invocation)
swift: /home/buildnode/jenkins/workspace/oss-swift-4.2-package-linux-ubuntu-18_04/llvm/tools/clang/lib/Serialization/ASTWriter.cpp:5508: clang::serialization::DeclID clang::ASTWriter::getDeclID(const clang::Decl *): Assertion `DeclIDs.find(D) != DeclIDs.end() && "Declaration not emitted!"' failed.
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3defe74]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3dedc8c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3df0032]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7f26985d9890]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f2696a3ce97]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f2696a3e801]
/lib/x86_64-linux-gnu/libc.so.6(+0x3039a)[0x7f2696a2e39a]
/lib/x86_64-linux-gnu/libc.so.6(+0x30412)[0x7f2696a2e412]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32b370a]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32aeb9c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32bfff9]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32bce9b]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x33024de]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f7c06c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x30dcbb6]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f54580]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2efff11]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f0ac20]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3d8bdeb]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3d8bf34]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3df11aa]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76db)[0x7f26985ce6db]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7f2696b1f88f]
Stack dump:
0. <eof> parser at end of file
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal 6 (use -v to see invocation)
swift: /home/buildnode/jenkins/workspace/oss-swift-4.2-package-linux-ubuntu-18_04/llvm/tools/clang/lib/Serialization/ASTWriter.cpp:5508: clang::serialization::DeclID clang::ASTWriter::getDeclID(const clang::Decl *): Assertion `DeclIDs.find(D) != DeclIDs.end() && "Declaration not emitted!"' failed.
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3defe74]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3dedc8c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3df0032]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7fe71f5e3890]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7fe71da46e97]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7fe71da48801]
/lib/x86_64-linux-gnu/libc.so.6(+0x3039a)[0x7fe71da3839a]
/lib/x86_64-linux-gnu/libc.so.6(+0x30412)[0x7fe71da38412]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32b370a]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32aeb9c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32bfff9]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x32bce9b]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x33024de]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f7c06c]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x30dcbb6]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f54580]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2efff11]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x2f0ac20]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3d8bdeb]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3d8bf34]
/my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift[0x3df11aa]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76db)[0x7fe71f5d86db]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7fe71db2988f]
Stack dump:
0. <eof> parser at end of file
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal 6 (use -v to see invocation)
error: terminated(1): /my/path/bin/swift/swift-4.2.1-RELEASE-ubuntu18.04/usr/bin/swift-build-tool -f /media/truecrypt1/development/swift/Cacao/.build/debug.yaml main output:
Only single line text rendering is working properly, implement multiline rendering.
UIPanGestureRecognizer
might be a requirement for this component.
Depends on UIScrollView
#13
Autolayout makes layouts for different screen sizes a breeze. I think it would be a great addition to the project.
It looks like some efforts have already been made to port or wrap the cassowary constraint solver to swift, see https://github.com/FormidableLabs/Phaedo
A similar effort has been made in this project, but wrapping to objective-j, and it has worked quite well
https://github.com/cacaodev/cappuccino
Sent from my Google Nexus 6P using FastHub
miss Cairo.framework Silica,framework and Typealias.swift
The temporary workaround for this is to convert the Cairo surface to PNG data, and then discard that data. Its hard to debug this because in the rendering unit tests, the SDL texture raw data is as expected, and the code works fine on macOS, so the source of the problem is currently unknown.
Implement UIDevice
for Linux and macOS.
Hello,
I would like to know if there's any plans to publish a new minor version with swift 3 support?
Cheers, Max.
Also UITabBar
and if necessary the view transition methods (e.g. viewWillAppear()
).
pi@raspberrypi:~/Cacao $ swift build
Fetching https://github.com/PureSwift/Silica.git
Fetching https://github.com/PureSwift/Cairo.git
Fetching https://github.com/PureSwift/SDL.git
Fetching https://github.com/PureSwift/CSDL2.git
Fetching https://github.com/PureSwift/LittleCMS.git
Fetching https://github.com/PureSwift/CCairo.git
Fetching https://github.com/PureSwift/CLCMS.git
Fetching https://github.com/PureSwift/CFreeType.git
Fetching https://github.com/PureSwift/CFontConfig.git
Cloning https://github.com/PureSwift/Silica.git
Resolving https://github.com/PureSwift/Silica.git at 1.3.1
Cloning https://github.com/PureSwift/CFontConfig.git
Resolving https://github.com/PureSwift/CFontConfig.git at 1.0.1
Cloning https://github.com/PureSwift/CSDL2.git
Resolving https://github.com/PureSwift/CSDL2.git at 1.0.1
Cloning https://github.com/PureSwift/Cairo.git
Resolving https://github.com/PureSwift/Cairo.git at 1.2.3
Cloning https://github.com/PureSwift/LittleCMS.git
Resolving https://github.com/PureSwift/LittleCMS.git at 1.0.2
Cloning https://github.com/PureSwift/CLCMS.git
Resolving https://github.com/PureSwift/CLCMS.git at 1.0.0
Cloning https://github.com/PureSwift/CCairo.git
Resolving https://github.com/PureSwift/CCairo.git at 1.1.1
Cloning https://github.com/PureSwift/SDL.git
Resolving https://github.com/PureSwift/SDL.git at 1.0.1
Cloning https://github.com/PureSwift/CFreeType.git
Resolving https://github.com/PureSwift/CFreeType.git at 1.0.4
error: nonWhitelistedFlags("Non whitelisted flags found: [\"-D_REENTRANT\"] in pc file sdl2")
===================
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
How to fix that?
Also improve UIView animations (#16) implementation to use this new class.
I cant build this project because dependencies
>swift build
Cloning https://github.com/PureSwift/Silica.git
git clone --recursive --depth 10 https://github.com/PureSwift/Silica.git /home/admin1/Downloads/Cacao-master/Packages/Silica.git
fatal error: unexpectedly found nil while unwrapping an Optional value
Current stack trace:
0 libswiftCore.so 0x00007f22f5201fc0 swift_reportError + 117
1 libswiftCore.so 0x00007f22f5214df0 _swift_stdlib_reportFatalError + 63
2 libswiftCore.so 0x00007f22f50226a3 <unavailable> + 0
3 libswiftCore.so 0x00007f22f517fdfd <unavailable> + 0
4 libswiftCore.so 0x00007f22f50226a3 <unavailable> + 0
5 libswiftCore.so 0x00007f22f51416b0 specialized _fatalErrorMessage(StaticString, StaticString, StaticString, UInt, flags : UInt32) -> Never + 96
6 swift-build 0x00000000005a9ad5 <unavailable> + 0
7 swift-build 0x0000000000652707 <unavailable> + 0
8 swift-build 0x000000000065e08d <unavailable> + 0
9 swift-build 0x000000000065fd92 <unavailable> + 0
10 swift-build 0x0000000000654f41 <unavailable> + 0
11 swift-build 0x0000000000656ebe <unavailable> + 0
12 swift-build 0x00000000006565dd <unavailable> + 0
13 swift-build 0x0000000000656f8c <unavailable> + 0
14 libswiftCore.so 0x00007f22f50c3ea0 Sequence.flatMap<A where ...> ((A.Iterator.Element) throws -> A1) throws -> [A1.Iterator.Element] + 576
15 swift-build 0x00000000006531dc <unavailable> + 0
16 swift-build 0x0000000000652bb4 <unavailable> + 0
17 swift-build 0x000000000065b232 <unavailable> + 0
18 swift-build 0x0000000000703f0b <unavailable> + 0
19 swift-build 0x00000000006f9615 <unavailable> + 0
20 swift-build 0x00000000004156b8 <unavailable> + 0
21 libc.so.6 0x00007f22f31d9740 __libc_start_main + 240
22 swift-build 0x0000000000415579 <unavailable> + 0
Illegal instruction (core dumped)
For some reason the layout is invalid on Linux, but fine on macOS. The previous Cairo-backed version did not have this issue, so the issue probably lies in our use of SDL.
I found that Cacao is using Cairo for 2D rendering.It's said that Cairo's performance is worse than Skia (which is based on OpenGL and Vulkan). And Metal2.0 is even much faster than Vulkan.
Take Flutter For example, it performs not so well in iOS. The render engine should be taken into consideration.
Hi.
Maybe it's a configuration error from myself but :
I launched the CacaoDemo .xcodeproj in Xcode and tried to run it. Building is OK but while running, I can see this error (even for iOS or tvOS version) :
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
Also, here is the return for updating package :
Hackintosh:Cacao-develop anard$ swift package update
Updating https://github.com/PureSwift/SDL.git
Updating https://github.com/PureSwift/Cairo.git
Updating https://github.com/PureSwift/Silica.git
https://github.com/PureSwift/Silica.git @ master: error: manifest parse error(s):
/var/folders/t_/hcs46zld3wz4qn55xkhldg4h0000gn/T/TemporaryFile.a3iNIj.swift:11:5: error: argument 'dependencies' must precede argument 'targets'
dependencies: [
~~~~^~~~~~~~~~~~~~~
Hackintosh:Cacao-develop anard$
Thanks for your work
Depends on UIView
animations #16.
NSString.drawWithRect()
. Fonts have been added to Silica, and the main rendering code should be done there, NSString.drawWithRect()
is for UIKit compatibility.Text
branch in Cacao and the master
branch in Silica.A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.