Commit Graph

36 Commits

Author SHA1 Message Date
Ceylo
ee08e18726 Modernize CMake files 2018-03-27 00:03:34 +02: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
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
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
James Cowgill
e199ef3790 Define SFML_OS_FREEBSD when compiling for kFreeBSD 2016-08-24 14:05:40 +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
Lukas Dürrenberger
6b9781475d Added support for VS 2015. 2015-09-30 08:32:30 +02: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
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
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
f60ab60263 Added SFML_OS_ prefix to IOS and ANDROID variables 2014-04-20 12:57:02 +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
Laurent Gomila
b9fd685a60 [iOS] Made the build independent of the iOS framework version 2014-04-20 12:53:15 +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
Jonathan De Wachter
63bbe2c91e Added the Android port 2014-04-20 12:52: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
ac28902b57 Removed support for OS X 10.6 and below 2014-04-15 20:18:20 +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
Baruch
165f2b1888 fix for static builds with mingw-w64 compilers - part 1 2012-05-01 23:00:24 +03:00
Laurent Gomila
b2f3787db1 Fixed incompatibility with CMake 2.8.7 2012-03-30 20:53:16 +02: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
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
a647c68a7f Fixed CMake files failing on FreeBSD 2011-09-14 17:58:51 +02:00
Marco Antognini
de70f691e1 Improved cmake for OS X 10.5 2011-07-03 18:45:51 +02:00
Laurent Gomila
4e3feba25b Added external dependencies and modified build files to enable 64 bits builds on Windows (VC++ only for now) 2011-03-26 23:57:10 +01:00
LaurentGom
e895d6516b Fixed double quotes in VS 2010 projects generated by CMake for static builds
git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1625 4e206d99-4929-0410-ac5d-dfc041789085
2010-11-07 19:51:33 +00:00
LaurentGom
a991fe8e4d Added support for the CMake build system
git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1550 4e206d99-4929-0410-ac5d-dfc041789085
2010-08-19 15:59:24 +00:00