Commit Graph

142 Commits

Author SHA1 Message Date
Ceylo
8b7a50a914 Fix CMake warning on macOS since CMake 3.9 2018-03-12 15:09:59 +01:00
Jonny Paton
910458cfb3 Remove references to SIMULATOR64, as 32 bit is no longer available 2018-03-12 15:04:30 +01:00
Jonny Paton
b196aac5c7 Drop 32 bit support on iOS 2018-03-12 15:04:29 +01:00
Jonny Paton
0118776b7e Force correct iOS architecture for cmake 2018-02-25 13:13:52 -08:00
Mario Liebisch
806813e937 Android: Removed custom toolchain file
This commit drops the previous custom CMake toolchain file for Android
in favor of CMake's new built-in toolchain for this (CMake >3.7.2).

This makes building SFML for Android a lot simpler and more straight
forward, working almost as smooth as other platforms.

To configure your build directory, all you have to do is defining just a
few variables the first time you invoke CMake.

**Required Variables**

* `CMAKE_SYSTEM_NAME` must be `Android`, so CMake knows we actually want
  to cross-compile.
* `CMAKE_ANDROID_NDK` must point to the NDK's installation directory,
  e.g. `/usr/android/ndk` or `c:/android/ndk`.

**Recommended Variables**
* `CMAKE_ANDROID_STL_TYPE` defines the STL implementation to be used.
  You should use `c++_shared`, although others might work.

**Optional Variables**
* `CMAKE_SYSTEM_VERSION` can be set to pick a specific SDK version other
  than the latest.
* `CMAKE_ANDROID_ARCH_ABI` defines the target architecture and ABI, for
  example `armeabi` or `armeabi-v7a`.

Based on your system, you might want to enforce a specific generator to
prevent issues, e.g. using `MinGW Makefiles`.
2018-02-11 20:15:54 +01:00
Alexander Weinrauch
0da25a0b87 Added support for the newest NDK version 2018-02-11 20:15:54 +01:00
Maximilian Wagenbach
989367e345 Turned the header image in readme.md into a link.
Updated all links to use https (tested).
2018-02-10 17:12:54 +01:00
Ceylo
511c16329e Use -stdlib=libc++ on macOS 2018-02-10 14:42:51 +01:00
Jonny Paton
d6c6345d4c Don't need to find vorbisfile or vorbisenc on iOS 2018-01-29 17:53:46 +01:00
papychacal
341bc2a130 Added Tagfile generation and finding 2018-01-25 22:00:38 +01:00
Ceylo
ce7ced5488 Replace INSTALL_RESOURCES_DIR option of sfml_add_example() command with RESOURCES_DIR 2018-01-25 00:23:33 +01:00
Ceylo
777ec2c04d Fix launch of Cocoa example due to missing MainMenu.nib in bundle app 2018-01-25 00:23:33 +01:00
Tucker Lein
b6c1acab3c add license to top of toolchain file 2018-01-09 22:06:55 +01:00
tlein
bba5808717 use a toolchain file for iOS instead of setting the necessary CMake variables in SFML 2018-01-09 22:06:55 +01:00
Laurent Gomila
2aa70def6f Removed dependency to libjpeg, stb_image_write now supports writing JPEG files 2017-09-28 19:55:10 +02:00
Rafael Kitover
5fe5e5d6d7 packaging support improvements
This grew out of my work creating an sfml port for macports, but should
be helpful for package maintainers of various distributions:

* add an SFML_USE_SYSTEM_DEPS option to ignore everything in extlibs/
  except for headers/stb_image, and use the system versions

* install pkg-config files if a pkg-config program is found
  and either lib/pkgconfig or libdata/pkgconfig exists under the
  INSTALL_PREFIX, or the SFML_INSTALL_PKGCONFIG_FILES flag is set
  explicitly

* install pkg-config files for static libs too, add the necessary
  Requires.private and Libs.private entries to the .pc files to support
  static linking

* on OS X, honor all INSTALL_NAME and RPATH related cmake variables and
  only set the INSTALL_NAME_DIR to "@rpath" if none of them is set, this
  preserves the default behavior of using @rpath but also allows
  overriding by the usual cmake mechanisms
2017-02-28 10:03:14 +01:00
Mario Liebisch
95828a85a2 Added some simple messaging when trying to build under Cygwin 2016-10-04 09:33:15 +02:00
binary1248
9996b7abb6 Converted Unix Window implementation from XCB back to Xlib. 2016-09-29 09:25:34 +02:00
James Cowgill
e199ef3790 Define SFML_OS_FREEBSD when compiling for kFreeBSD 2016-08-24 14:05:40 +02:00
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