Simple and Fast Multimedia Library
Documentation for SFML 3.0.0
Initializing search
SFML
Home
Learn
Tutorials
Documentation
Download
Community
Development
Donate
Simple and Fast Multimedia Library
Home
Learn
Tutorials
Documentation
Documentation
SFML 3.0.2
SFML 3.0.1
SFML 3.0.0
SFML 2.6.2
SFML 2.6.1
SFML 2.6.0
SFML 2.5.1
SFML 2.5.0
SFML 2.4.2
SFML 2.4.1
SFML 2.4.0
SFML 2.3.2
SFML 2.3.1
SFML 2.3
SFML 2.2
SFML 2.1
SFML 2.0
SFML 1.6
Download
Community
Development
Warning
This page refers to an old version of SFML.
Click here to switch to the latest version.
Main Page
Topics
Namespaces
Classes
Files
File List
File Members
Loading...
Searching...
No Matches
SFML
include
SFML
Config.hpp
Go to the documentation of this file.
1
2
//
3
// SFML - Simple and Fast Multimedia Library
4
// Copyright (C) 2007-2024 Laurent Gomila (laurent@sfml-dev.org)
5
//
6
// This software is provided 'as-is', without any express or implied warranty.
7
// In no event will the authors be held liable for any damages arising from the use of this software.
8
//
9
// Permission is granted to anyone to use this software for any purpose,
10
// including commercial applications, and to alter it and redistribute it freely,
11
// subject to the following restrictions:
12
//
13
// 1. The origin of this software must not be misrepresented;
14
// you must not claim that you wrote the original software.
15
// If you use this software in a product, an acknowledgment
16
// in the product documentation would be appreciated but is not required.
17
//
18
// 2. Altered source versions must be plainly marked as such,
19
// and must not be misrepresented as being the original software.
20
//
21
// 3. This notice may not be removed or altered from any source distribution.
22
//
24
25
#pragma once
26
27
29
// SFML version
31
#define SFML_VERSION_MAJOR 3
32
#define SFML_VERSION_MINOR 0
33
#define SFML_VERSION_PATCH 0
34
#define SFML_VERSION_IS_RELEASE true
35
36
38
// Identify the operating system
39
// see https://sourceforge.net/p/predef/wiki/Home/
41
#if defined(_WIN32)
42
43
// Windows
44
#define SFML_SYSTEM_WINDOWS
45
#ifndef NOMINMAX
46
#define NOMINMAX
47
#endif
48
49
#elif defined(__APPLE__) && defined(__MACH__)
50
51
// Apple platform, see which one it is
52
#include "TargetConditionals.h"
53
54
#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
55
56
// iOS
57
#define SFML_SYSTEM_IOS
58
59
#elif TARGET_OS_MAC
60
61
// macOS
62
#define SFML_SYSTEM_MACOS
63
64
#else
65
66
// Unsupported Apple system
67
#error This Apple operating system is not supported by SFML library
68
69
#endif
70
71
#elif defined(__unix__)
72
73
// UNIX system, see which one it is
74
#if defined(__ANDROID__)
75
76
// Android
77
#define SFML_SYSTEM_ANDROID
78
79
#elif defined(__linux__)
80
81
// Linux
82
#define SFML_SYSTEM_LINUX
83
84
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
85
86
// FreeBSD
87
#define SFML_SYSTEM_FREEBSD
88
89
#elif defined(__OpenBSD__)
90
91
// OpenBSD
92
#define SFML_SYSTEM_OPENBSD
93
94
#elif defined(__NetBSD__)
95
96
// NetBSD
97
#define SFML_SYSTEM_NETBSD
98
99
#else
100
101
// Unsupported UNIX system
102
#error This UNIX operating system is not supported by SFML library
103
104
#endif
105
106
#else
107
108
// Unsupported system
109
#error This operating system is not supported by SFML library
110
111
#endif
112
113
115
// Portable debug macro
117
#if !defined(NDEBUG)
118
119
#define SFML_DEBUG
120
121
#endif
122
123
125
// Helpers to create portable import / export macros for each module
127
#if !defined(SFML_STATIC)
128
129
#if defined(SFML_SYSTEM_WINDOWS)
130
131
// Windows compilers need specific (and different) keywords for export and import
132
#define SFML_API_EXPORT __declspec(dllexport)
133
#define SFML_API_IMPORT __declspec(dllimport)
134
135
// For Visual C++ compilers, we also need to turn off this annoying C4251 warning
136
#ifdef _MSC_VER
137
138
#pragma warning(disable : 4251)
139
140
#endif
141
142
#else
// Linux, FreeBSD, macOS
143
144
#define SFML_API_EXPORT __attribute__((__visibility__("default")))
145
#define SFML_API_IMPORT __attribute__((__visibility__("default")))
146
147
#endif
148
149
#else
150
151
// Static build doesn't need import/export macros
152
#define SFML_API_EXPORT
153
#define SFML_API_IMPORT
154
155
#endif
Back to top