[swift-users] Fwd: Re: Binding Regular C Functions (Gtk, Cairo, etc.)

Gage Morgan gagemorgan at outlook.com
Mon Dec 7 21:39:32 CST 2015


Okey, so I see what they're trying to say, but what about functions from C that actually take input? For example, in Cairo, cairo_move_to() would not make the cut on its own. Matter of fact, it would take a surface in the form of a pointer and an x and y value. So we would have
cairo_surface_t *crcairo_move_to(cr, x, y);
among countless others. Is Swift able to pull this out of thin air, or do we have to take each individual function and convert it to Swift ourselves? I guess what I'm asking is: Is Swift able to understand something like
import CCairofunc cairo_line_to: Void(let cairo_t = MutableUnsafePointer(cr), x: Double, y: Double)
after I include just a header file and map it? The function draws a line on a surface. Assuming the syntax is correct, then you're telling me the process is just:
1) Map the cairo.h file to a system module named CCairo2) Include that in a file3) Convert any functions you've entered in C into a Swift format, no binding "workarounds" necessary like other lagnguages, and4) Swift recognizes you meant to use that function that is written specifically in C and is included in that header file mapped by CCairo. If Swift cannot automatically know that you meant to pull a function from a C header file, what must I do if it cannot?
I came here because I've read tutorials but am still confused on whether or not the CCairo module itself can just recognize a function without having to do more.

Sent from Outlook




On Mon, Dec 7, 2015 at 6:49 PM -0800, "Gage Morgan" <gagemorgan at outlook.com> wrote:








    _____________________________
From: Gage Morgan <gagemorgan at outlook.com>
Sent: Monday, December 7, 2015 9:40 PM
Subject: Re: [swift-users] Binding Regular C Functions (Gtk, Cairo, etc.)
To: Mish Awadah <mawadah at apple.com>


              I read that. What I want to know is how to bind the functions themselves after creating a system package. How to use the c functions that got imported, if you will.

        Sent from     Outlook



      On Mon, Dec 7, 2015 at 6:39 PM -0800, "Mish Awadah"     <mawadah at apple.com> wrote:

         Please see the reference at    https://github.com/apple/swift-package-manager/blob/master/Documentation/SystemModules.md
            - mish
                         On Dec 7, 2015, at 6:33 PM, Gage Morgan via swift-users <       swift-users at swift.org> wrote:
                       For any project: How is a C to Swift function binding created? I'd like to know how to import C functions to Swift. Once I can do this successfully, I'll be all set.

                  Sent from           Outlook
                 _______________________________________________
 swift-users mailing list
        swift-users at swift.org
 https://lists.swift.org/mailman/listinfo/swift-users





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20151208/69745afb/attachment.html>


More information about the swift-users mailing list