Commit Graph

173 Commits

Author SHA1 Message Date
Manu343726
9558c6d689 Correctly add XCB components if no components are requested
This commit fixes the FindXCB.cmake module for the case no components
are requested. The previous version assigned `XCB_FIND_COMPONENTS`
list to an empty variable name.

I was lucky enough to catch the bug in a corner case where both
`XCB_COMPONENTS` and `XCB_FIND_COMPONENTS` were empty and `set()`
command failed, but note this awesome CMake language supports more annoying
corner cases like `XCB_COMPONENTS` empty and `XCB_FIND_COMPONENTS`
with two elements, which results in the following `set()` invocation:

``` cmake
set(${XCB_FIND_COMPONENTS[0]} ${XCB_FIND_COMPONENTS[1]})
```

So always beware of CMake secret charms...
2016-08-24 14:05:17 +02:00
Mario Liebisch
3a2e176e59 Android: Readded support for libc++ and use it as the standard STL 2016-07-23 14:35:10 +02:00
Mario Liebisch
757094a25b Fixed current Android compilation issues
* Updated the Android toolchain file to support NDKs up to the latest release (r12b; based on https://github.com/gongminmin/android-cmake).
* Fixed missing sRGB extension defines - also SFML once again compiles for older target API levels not having the sRGB extensions (fixes #1079, supersedes #1085).
* Changed SFML's default STL runtime to `stlport_shared`, since `c++_shared` is no longer supported.
2016-07-21 10:42:45 +02:00
Mario Liebisch
ba9383f25e Updated/fixed string comparisons in Config.cmake
SFML so far used `${CMAKE_SYSTEM_NAME} MATCHES "Windows"`. This works, but only because there's a variable `WINDOWS` having the exact same content (`Windows`).

[More information and a similar issue can be found in this SO thread.](http://stackoverflow.com/questions/21995777/cygwins-cmake-does-not-match-for-cmake-system-name)
2016-07-17 20:13:14 +02:00
Andras Kucsma
fb40e7e43f Change comment chars in FindSFML.cmake to # 2016-06-05 00:08:55 +02:00
Jan Haller
77609e166a Added SFML_GENERATE_PDB CMake option; check CMake version dynamically 2016-03-01 17:14:21 +01:00
Jan Haller
2bd897c513 Create and install PDB debug symbols alongside binaries 2016-03-01 17:14:20 +01:00
Lukas Dürrenberger
1217699fe0 Added the missing -s postfix for the RelWithDebInfo config. 2015-12-31 11:13:58 +01:00
Lukas Dürrenberger
6b9781475d Added support for VS 2015. 2015-09-30 08:32:30 +02:00
Alexander Ankudinov
18193a5cde Fix FindSFML.cmake can't find SFML 2.1 2015-08-24 13:36:04 +02:00
dawid-aurobit
7fba68ac52 convert FLAC name to upper case 2015-08-04 09:50:18 +02:00
binary1248
e80bf0ba92 Fix whitespace: Convert tabs to spaces and remove trailing whitespace. 2015-04-15 01:53:43 +02:00
binary1248
3ec672afe9 Removed XCB dependencies (EWMH, ICCCM, Keysyms, Util), added XCB libraries to FindSFML.cmake, fixed checking for X11 library checking for XRandR instead. 2015-04-06 01:06:00 +02:00
Jan Haller
5ce73e9274 FindSFML.cmake: Added missing VorbisEnc dependency 2015-03-31 20:59:22 +02:00
Jan Haller
c0bee34d42 FindSFML.cmake: Ignored environment variables to find library paths
Environment variables (e.g. PATH on Windows) are looked up early by CMake, and libraries found there are prioritized over those in SFML's own folder. To avoid paths to wrong libraries, this commit modifies the CMake find_library() call, such that environment variables are no longer considered as suitable paths.
2015-03-31 20:59:21 +02:00
Lukas Dürrenberger
23cc8cfe3f Only link sfml-main for the GUI examples in release mode. 2015-03-26 10:23:28 +01:00
binary1248
3e397bff4b Replaced GLEW with (a highly customized) loader generated by glLoadGen, restructured GLExtensions.hpp for easier extension bookkeeping, make use of GLEXT definitions in Shader.cpp and Texture.cpp as well, replaced GL_MAX_TEXTURE_COORDS with GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, implemented flags for requesting a debug or core/compatibility profile context, changed the default context version from 2.0 to 2.1. 2015-03-23 16:10:28 +01:00
Lukas Dürrenberger
d53338298a Added the FindFreetype.cmake CMake module, set the minimum require CMake version to 2.8.3 and fixed the paths to the FreeType headers. 2015-03-21 10:30:31 +01:00
Lukas Dürrenberger
bbfa3d5a76 Changed the SOVERSION to major.minor. 2015-03-12 11:06:33 +01:00
Oleh Prypin
01d5d1b463 Replaced non-ASCII symbols with equivalents 2015-03-10 02:04:02 +02:00
Mario Liebisch
f17ea5872b Removed last references to libsndfile 2015-03-04 09:36:24 +01:00
Mario Liebisch
af4dac6fed Marked the FLAC/Vorbis/Ogg variables as advanced 2015-03-04 09:36:23 +01:00
Jonathan De Wachter
3fbfde39a5 Adjusted the new audio backends to compile on Linux 2015-03-04 09:33:06 +01:00
Laurent Gomila
5e0e645f46 Added support for FLAC audio files 2015-03-04 09:33:05 +01:00
Laurent Gomila
f0608eaed8 Redesigned the audio encoding/decoding classes to get rid of libsndfile 2015-03-04 09:33:03 +01:00
Mario Liebisch
34692d5a39 Android: Updated the toolchain file and CMake scripts
* Replaced the toolchain file with a new version based on [zuhowei's fork](https://github.com/zhuowei/android-cmake), which enables x64 builds as well as support for the latest NDK. This breaks compatibility with old build directories.
* Removed the STL dependency from **sfml-activity** rather than relying on *some* implementation implicitly linked by default.
* Deleted *project.properties*, which wasn't supposed to be part of the repository code. You have to use the Android SDK to recreate it (`android update project --path to/your/example --target 1 --name SFML-Example`).
* Made it possible to select a STL implementation to be used (default: `c++_shared`). Keep in mind that not all available configurations are necessarily compatible with SFML.
* Fixed linker flags to be compatible with Nvidia's Nsight Tegra for Visual Studio.
* It is now possible to compile the Android version using Nvidia's Nsight Tegra for Visual Studio (requires up-to-date CMake and `CMAKE_SFML_SYSTEM` to be set to `Android`; keep in mind that this is still experimental and requires further CMake updates).
* Updated and renamed some Android specific CMake variables.
* Made `armeabi-v7a` the default ABI for Android builds.
2015-03-04 09:05:22 +01:00
Mark Dresselhaus
66f38262f7 Fixed missing pthread dependency
The find script fails to add pthread to the SFML_SYSTEM_DEPENDENCIES when linking SFML statically on Linux.
2015-02-10 23:35:07 +01:00
Lukas W
135c1716e8 Replaced Xlib by XCB implementation.
* Added FindXCB.cmake script
* Added AutoPointer wrapper for automatically free'ing pointers
* Huge commit: Ported linux implementation of sfml-window to xcb
* Xcb is now used for window creation, event loop etc
* As GLX is linked to Xlib, that part of the implementation
  still uses Xlib.
* Also, some keyboard related (such as XLookupString) stuff
  is still Xlib, as xcb does not have it (yet?).
* Replaced some enums with the xcb equivalents
2014-12-29 08:59:20 +01:00
Danijar Hafner
f44c903e56 Hide CMake success message in quiet mode 2014-12-21 12:50:55 +01:00
Lukas Dürrenberger
1c46ec7c37 Updated the version to 2.2, added support for patch versions and added the changelog.txt 2014-12-04 16:09:54 +01:00
Lukas Dürrenberger
45810a1345 Fixed additional comments and documention spelling mistakes. 2014-11-18 01:02:07 +01:00
Lukas Dürrenberger
e257909a65 Fixes CMake issues with udev (#734) 2014-11-10 14:45:50 +01:00
Mario Liebisch
1271dff960 Reworked the UDev inclusion
* This fixes `SFML_DEPENDENCIES` missing the UDev library for static builds (issue #728).
2014-11-06 08:36:27 +01:00
Marco Antognini
ba1488ec97 Improve flexibility of dependencies locations on OS X
- Replaced @executable_path by @rpath for more flexibility
 - Updated freetype and sndfile libs as follow:

    install_name_tool -id "@rpath/../Frameworks/freetype.framework/Versions/A/freetype" freetype
    install_name_tool -id "@rpath/../Frameworks/sndfile.framework/Versions/A/sndfile" sndfile
2014-10-07 10:46:05 +02:00
Stefan Schindler
f24ca9a840 Source code changes.
* Changed newlines to \n.
* Removed whitespace before colons.
* Fixed several alignments.
2014-10-06 01:18:47 +02:00
Marco Antognini
2427aaf3bb Added support for OS X 10.10
Note: this only fix the compilation process. SFML was not thoroughly
tested on this OS yet.
2014-09-21 07:39:05 +02:00
binary1248
c37e442cee Fixed FindSFML.cmake not updating library entries when the user changes the value of SFML_STATIC_LIBRARIES after the initial configure (#637). 2014-08-26 08:27:33 +02:00
Laurent Gomila
83e019e7d3 Fixed order of dependent libraries (SFML_DEPENDENCIES variable) in FindSFML.cmake 2014-07-26 21:01:17 +02:00
Marco Antognini
b9f5f19f7c Reverted OS X implementation to non-ARC
* Apparently, there were some leaks not reported as such
 * Support for 32 bits computer is restored
 * Fix memory leak in sfStringToNSString (related to #484)
 * Unapply context when closing the window, freeing memory

The following commits are related to ARC modifications:

 * 42f6e83dfb
 * 6edc4b9518
 * f6c94451fb
 * 324d4a18e7
 * 0d47056132

Commit ac28902b57 is the last one before the introduction of ARC.
2014-05-23 09:52:17 +02:00
Laurent Gomila
a8ab8fb061 Removed unused duplicate code 2014-05-22 22:53:20 +02:00
Marco Antognini
1ce8a42954 Merge pull request #548 from jdpage/master
Adjust CMake module to provide correct deps on OSX
2014-04-23 11:08:19 +02:00
Jonathan De Wachter
76fddc0729 [Android] The armeabi version of SFML is now built by default (the example as well) 2014-04-20 12:58:41 +02:00
Mario Liebisch
84bd8c6c5b Fixed several issues
- Cmake errored out due to the ANDROID_NDK_* variables being used before being set/detected for the first time.
- Fixed one warning regarding one string replace in CMake.
- Fixed warnings when compiling SFML-Activity.
2014-04-20 12:58:37 +02:00
Jonathan De Wachter
75ddae7e90 [Android] Updated the Android CMake toolchain to use libc++ instead of stlport
Warning: I kept the same variable name because this file will be rewritten fairly soon since most of its code no longer applies to SFML and becomes incorrect (too hard to maintain).
Thus stlport variable names refers to libc++ stuff. E.g: ANDROID_USE_STLPORT=1 turns the use of libc++ on.
2014-04-20 12:58:35 +02:00
Jonathan De Wachter
45f23cdbbb Made the OpenGL ES implementation available on ARM-based Linux OSes 2014-04-20 12:58:00 +02:00
Laurent Gomila
d40399e431 Fixed the INSTALL_MISC_DIR CMake variable not defined on iOS 2014-04-20 12:57:55 +02:00
Jonathan De Wachter
663dad18f2 [Android] Fixed compilation issue and enabled audio module for mips arches 2014-04-20 12:57:14 +02:00
Jonathan De Wachter
bc46dfb8f5 [Android] Various adjustements 2014-04-20 12:57:11 +02:00
Jonathan De Wachter
f60ab60263 Added SFML_OS_ prefix to IOS and ANDROID variables 2014-04-20 12:57:02 +02:00
Jonathan De Wachter
cc0d982f72 [Android] Wrote a native activity acting as a bootstrap
A current limitation prevents one library from depending on shared libraries.
As we have legal issues here (LGPL wants us to use shared libs of OpenAL-Soft and libsndfile), we're forced to use this homemade native activity which will manually load our shared libraries.
2014-04-20 12:56:42 +02:00
Jonathan De Wachter
60894d1c1a [Android] Rewrote CMake scripts to compile SFML with our new toolchain 2014-04-20 12:56:40 +02:00
Jonathan De Wachter
f9e80e1a3b [Android] Updated the Android CMake toolchain to support NDK r9
It brings support for 64-bits toolchains.
2014-04-20 12:53:40 +02:00
Jonathan De Wachter
b167c7a8d5 [Android] Replaced our homemade Android CMake toolchain with the one used for the OpenCV project
http://code.google.com/p/android-cmake/
2014-04-20 12:53:38 +02:00
Laurent Gomila
c35b48bcea [iOS] Removed support for examples, it was too much trouble and not as robust as true iOS App Xcode projects 2014-04-20 12:53:22 +02:00
Laurent Gomila
3872b27569 Reworked the sfml-main module, added Main.hpp, moved the main() internal entry point for iOS from sfml-window to sfml-main 2014-04-20 12:53:17 +02:00
Laurent Gomila
b9fd685a60 [iOS] Made the build independent of the iOS framework version 2014-04-20 12:53:15 +02:00
Laurent Gomila
4bd1a66915 Removed a copy of the sfml_add_example CMake macro, which was duplicated by accident in the big Android commit 2014-04-20 12:53:12 +02:00
Laurent Gomila
239921b456 [iOS] Improved support for examples, removed the need for a toolchain file 2014-04-20 12:53:04 +02:00
Laurent Gomila
4e8e1629d1 Adapted the examples for iOS (WIP) 2014-04-20 12:52:10 +02:00
Jonathan De Wachter
63bbe2c91e Added the Android port 2014-04-20 12:52:04 +02:00
Laurent Gomila
e20ff86330 [iOS] Adjusted the code and build files to use Automatic Reference Counting 2014-04-20 12:48:04 +02:00
Laurent
e5ee38fc26 Added the iOS port 2014-04-20 12:48:00 +02:00
Marco Antognini
19012c66ea Updated Xcode templates and cmake script
What's new in the templates:
 - Removed support for 32 bits and gcc
 - Removed useless code
 - Removed custom warnings settings – let Xcode decide with its default values
 - Set default target version to CMAKE_OSX_DEPLOYMENT_TARGET

What's new in cmake script:
 - Added cmake options for archs and deployment target
 - Added minimum requirements checking
2014-04-15 20:19:12 +02:00
Marco Antognini
0d47056132 Updated Objective-C implementation to use ARC; removed i386 support 2014-04-15 20:19:09 +02:00
Marco Antognini
ac28902b57 Removed support for OS X 10.6 and below 2014-04-15 20:18:20 +02:00
Jonathan David Page
d7c9df7600 Adjust CMake module to provide correct deps on OSX
Module will now give the OpenGL framework as a dependency instead of the
nonexistent libGL.
2014-03-10 22:25:17 -04:00
Jan Haller
185c09a95c Added CMake find module for udev library 2014-03-09 13:10:42 +01:00
Laurent Gomila
4cddde79fe Updated FindSFML.cmake to provide a list of 3rd-party dependencies when SFML is linked statically 2013-11-04 22:38:25 +01:00
Laurent Gomila
dbf01a775b Removed the hack that copied external libs into SFML static libs, users now have to link them explicitly 2013-10-16 20:47:14 +02:00
Lukas Dürrenberger
004c12cfd2 Changed VS version to MSVC version and added support for VS 2013 and TDM compilers. 2013-10-15 16:15:41 +02:00
Laurent Gomila
3670eec5dd Fixed MSVC version detection code in CMake files 2013-10-15 07:55:01 +02:00
Laurent Gomila
9b0ed300b5 Made compiler and OS variable names much clearer in CMake files 2013-10-09 08:01:10 +02:00
David Demelier
cc3dc29ef4 Added joystick implementation for FreeBSD (#477) 2013-10-08 22:52:13 +02:00
Laurent Gomila
c697623689 Replaced the custom sfml_parse_arguments CMake macro with the standard equivalent cmake_parse_arguments 2013-08-08 18:01:42 +02:00
Laurent Gomila
86897a8347 Changed the install rules so that examples' source code is included in the final distribution 2013-04-06 10:20:58 +02:00
Laurent Gomila
ef78b6d0f3 Organized projects into folders, for IDEs that support it (e.g. Visual Studio) 2013-02-25 19:17:46 +01:00
Laurent Gomila
a40ef79a18 Added source file groups in CMake files (for better organization of sources when opening SFML projects in IDEs) 2013-02-21 20:25:11 +01:00
Laurent Gomila
274d316891 Merge pull request #218 from BMBurstein/master
fix for static builds with mingw-w64 compilers
2013-02-17 08:28:12 -08:00
Laurent Gomila
dd48427bb8 Improved the success message in FindSFML.cmake 2012-12-23 09:25:16 +01:00
Laurent Gomila
aa1007a619 Minor corrections in the documentation of FindSFML.cmake (components order) 2012-07-07 17:22:40 +02:00
Baruch
f784fe4c07 fix for static builds with mingw-w64 compilers - part 2 2012-05-01 23:01:56 +03:00
Baruch
165f2b1888 fix for static builds with mingw-w64 compilers - part 1 2012-05-01 23:00:24 +03:00
Marco Antognini
9e18f64d6b Added support of Mac OS X framework in FindSFML.cmake (Close #106) 2012-04-19 21:03:20 +02:00
Laurent Gomila
459bc291f5 Added the SFML_ prefix on all the CMake variables specific to SFML 2012-04-18 19:07:47 +02:00
Laurent Gomila
3cec4b29d6 FindSFML.cmake now uses the SFML_ROOT variable instead of SFMLDIR (the name is less confusing) 2012-04-18 18:42:49 +02:00
Laurent Gomila
be7bcae823 Improved the documentation of FindSFML.cmake 2012-04-08 18:47:02 +02:00
Laurent Gomila
b2f3787db1 Fixed incompatibility with CMake 2.8.7 2012-03-30 20:53:16 +02:00
Laurent Gomila
a1522d475c Examples now compile without linker errors when building statically on Linux 2012-02-15 22:41:42 +01:00
Laurent Gomila
e3d75f6d6a Fixed "-s" suffix missing for static libs in MinSizeRel configuration 2012-02-08 19:31:55 +01:00
Laurent Gomila
906a62df0f Each module now has its own export macro, which solves the "unresolved symbol" error with sf::Time::Zero 2012-01-21 10:34:17 +01:00
Laurent Gomila
91705fe25c The architecture (32/64 bits) is now detected only on Windows 2012-01-03 18:02:18 +01:00
Laurent Gomila
bb6ed5dd29 Added detection of Visual C++ 2011 in CMake files 2011-12-30 20:33:37 +01:00
Laurent Gomila
c67148eaf2 Fatal errors in CMake files (such as unsupported system) now abort the configuration step 2011-12-29 16:20:21 +01:00
Laurent Gomila
effe6d4cec Improved FindSFML.cmake: the SFMLDIR variable now has the priority over standard paths when searching SFML headers and libs (implements issue #142) 2011-12-29 16:16:09 +01:00
Laurent Gomila
aa633f6f12 Added support for CLang 2011-12-28 22:20:15 +01:00
Laurent Gomila
4107505a05 Made CMake files compatible with VC++ 2011, and other minor improvements 2011-12-28 21:39:23 +01:00
Laurent Gomila
eed112d9ea SFML shared libraries now use ELF visibility on Unixes with gcc >= 4 2011-10-16 19:30:37 +02:00
Laurent Gomila
512a7c63cb FindSFML.cmake now defines the SFML_STATIC macro when requesting static libraries 2011-10-09 11:20:45 +02:00
Laurent Gomila
a647c68a7f Fixed CMake files failing on FreeBSD 2011-09-14 17:58:51 +02:00
Marco Antognini
d6c1fda5bd fixed creation of SFML.framework 2011-09-09 15:24:09 +02:00