Hello,
I'm using the Vala programming language to write a game. I wish to build it using the SFML library as the frontend - the bit that communicates with the window manager (using Linux btw). I'm planning on using OpenGL to render a GL context, then display that using SFML in the window.
Luckily, I have found a set of SFML Vala VAPIs (API bindings) and have put them into the right directory. Unfortunately when compiling, I run into issues and I'm not sure why.
Here is my Vala code (in sfml.vala)
using GLib;
using SFML.Audio;
using SFML.System;
using SFML.Window;
using SFML.Graphics;
namespace GLib
{
class Default : Object
{
public static int main(string[] args)
{
stdout.printf("Hello, World!\n");
return 0;
}
}
}
As you can see, I am using SFML. But when I try to compile using this command...
valac src/sfml.vala --pkg sfml-graphics --pkg sfml-system --pkg sfml-window --pkg sfml-audio --vapidir=vapi
...I run into the errors posted below.
sfml-window.vapi:15.2-15.20: error: `SFML.System' already contains a definition for `SFTime'
public class SFTime {
^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:15.2-15.20: note: previous definition of `SFTime' was here
public class SFTime {
^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:47.2-47.19: error: `SFML.System' already contains a definition for `Clock'
public class Clock {
^^^^^^^^^^^^^^^^^^
sfml-system.vapi:47.2-47.19: note: previous definition of `Clock' was here
public class Clock {
^^^^^^^^^^^^^^^^^^
sfml-window.vapi:102.2-102.19: error: `SFML.System' already contains a definition for `Mutex'
public class Mutex {
^^^^^^^^^^^^^^^^^^
sfml-system.vapi:102.2-102.19: note: previous definition of `Mutex' was here
public class Mutex {
^^^^^^^^^^^^^^^^^^
sfml-window.vapi:10.2-10.19: error: `SFML.System' already contains a definition for `Time'
public struct Time {
^^^^^^^^^^^^^^^^^^
sfml-system.vapi:10.2-10.19: note: previous definition of `Time' was here
public struct Time {
^^^^^^^^^^^^^^^^^^
sfml-window.vapi:79.2-79.26: error: `SFML.System' already contains a definition for `InputStream'
public struct InputStream {
^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:79.2-79.26: note: previous definition of `InputStream' was here
public struct InputStream {
^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:160.2-160.23: error: `SFML.System' already contains a definition for `Vector2i'
public struct Vector2i {
^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:160.2-160.23: note: previous definition of `Vector2i' was here
public struct Vector2i {
^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:169.2-169.23: error: `SFML.System' already contains a definition for `Vector2u'
public struct Vector2u {
^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:169.2-169.23: note: previous definition of `Vector2u' was here
public struct Vector2u {
^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:178.2-178.23: error: `SFML.System' already contains a definition for `Vector2f'
public struct Vector2f {
^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:178.2-178.23: note: previous definition of `Vector2f' was here
public struct Vector2f {
^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:194.2-194.23: error: `SFML.System' already contains a definition for `Vector3f'
public struct Vector3f {
^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:194.2-194.23: note: previous definition of `Vector3f' was here
public struct Vector3f {
^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:66.2-66.32: error: `SFML.System' already contains a definition for `ReadDeleg'
public delegate int64 ReadDeleg (void* data, int64 size, void* userData);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:66.2-66.32: note: previous definition of `ReadDeleg' was here
public delegate int64 ReadDeleg (void* data, int64 size, void* userData);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:69.2-69.32: error: `SFML.System' already contains a definition for `SeekDeleg'
public delegate int64 SeekDeleg (int64 position, void* userData);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:69.2-69.32: note: previous definition of `SeekDeleg' was here
public delegate int64 SeekDeleg (int64 position, void* userData);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:72.2-72.32: error: `SFML.System' already contains a definition for `TellDeleg'
public delegate int64 TellDeleg (void* userData);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:72.2-72.32: note: previous definition of `TellDeleg' was here
public delegate int64 TellDeleg (void* userData);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:75.2-75.35: error: `SFML.System' already contains a definition for `GetSizeDeleg'
public delegate int64 GetSizeDeleg (void* userData);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:75.2-75.35: note: previous definition of `GetSizeDeleg' was here
public delegate int64 GetSizeDeleg (void* userData);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:36.2-36.23: error: `SFML.System' already contains a definition for `_time_zero'
public Time _time_zero;
^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:36.2-36.23: note: previous definition of `_time_zero' was here
public Time _time_zero;
^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:149.2-149.18: error: `SFML.System' already contains a definition for `sleep'
public void sleep (Time duration);
^^^^^^^^^^^^^^^^^
sfml-system.vapi:149.2-149.18: note: previous definition of `sleep' was here
public void sleep (Time duration);
^^^^^^^^^^^^^^^^^
Compilation failed: 15 error(s), 0 warning(s)
If you are wondering, the VAPI files are here in this repository: https://bitbucket.org/hohoo/vala-sfml/src/24927cd9f649?at=default
Does anyone know why this is happening or how I can fix it?
Thanks,
Zesterer