Hi all 
I'm trying to use the CLINGO answer set solver from Swift. CLINGO is written in C/C++ and this is already where my confusion begins. The project declares a clingo.h header, but all of its implementations files are .cc. Does this mean that the project is a C++ app, and can't be imported into Swift via SPM?
Thanks 
lukasa
(Cory Benfield)
2
So long as you only include clingo.h then this should be fine. SwiftPM can build C++, but Swift can't understand C++ code. clingo.h exposes a C-compatible header file, and so SwiftPM absolutely can understand that. You should be fine.
6 Likes
sharpblue
(Richard Baker)
3
Could you give me any pointers for using Clingo with Swift? I’m new to Swift and I’m not getting anywhere following tutorials for importing other C libraries into a Swift program and trying to perform the analogous steps for Clingo.
1 Like
Looking at the repository and the conference papers on clingo, it's written in C++. Interfacing with C++ is more involved with than with C because C++ interoperability is still a moving, experimental feature of Swift that is rather incomplete. So, current practice seems to be to write a wrapper to your library that provides a compatible Swift interface (C, Objective-C) interface, and is able to call the C++ routines. Objective-C++ is probably the best option if you know the language since you write the interface section in Objective-C, and the implementations in Objective-C++. However, you can also build a wrapper from C if that is more suited to your knowledge base.
1 Like