XCODE TEMPLATES FOR SFML
========================

These templates help you to easily create a new SFML project for Xcode 4 or greater.



Web Site
--------

You can find more resources and information on the official web site: http://www.sfml-dev.org/



Authors & Licenses
----------------

The templates were written by Marco Antognini <antognini.marco@gmail.com> and are provided under
the terms of the zlib/png license: http://opensource.org/licenses/zlib-license.php

The assets including doodle_pop.ogg and background.jpg are public domain. More information
can be found in the examples/ folder.

Features
--------

 * You can choose between command line tool or bundle application, the latter will contains all
   SFML dependencies so you can run your app on another computer without manually installing SFML.
 * You can choose between using SFML libraries as dylibs or frameworks.
 * You can choose with SFML module you want to use into your project.
 * You automatically get a basic example to test SFML right away.



Prerequisites
-------------

Before installing the template, make sure you have installed:

 - Xcode 4 or greater, up to date;
 - the Command Line Tools;
 - SFML, either as frameworks or dylibs, as described in the official tutorials.


You should also be familiar with Xcode. If needed checkout this document:
http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/000-About_Xcode/about.html



Install
-------

If you are building SFML from sources you can set CMake's INSTALL_XCODE_TEMPLATES variable to ON
to install the templates automatically.



Usage
-----

To use these templates follow these steps:

 1. open Xcode,
 2. select "create a new Xcode project" from the "Welcome to Xcode" window or select menus
    File > New > New Project,
 3. select "SFML" subsection under "Mac OS X" on the left,
 4. then select either "SFML App", if you want an application bundle, or "SFML CLT", if you
    prefer a classic Unix executable,
 5. fill in the requested information and you're ready to go!

Note: some settings are marked as "[ADVANCED]" in the wizard. If you're not sure what they are,
simply keep the default settings. If you get errors later, explore the FAQ below.


FAQ
---

  * I want to use Xcode 3. Can I use these templates anyway?

    No, Xcode 3 and 4 don't have the same template system. Therefore these templates won't work with
    a older version of Xcode.



  * I would like to add/remove a module of SFML from my current project without creating a new
    project. How can I do that?

    1. select your project in the project navigator panel,
    2. select your project's target on the main area,
    3. go to the "Build Settings" tab,
    4. go down to the bottom,
    5. set SFML_XXX variable, where XXX is the name of the module to add/remove, to
       "$(SFML_LINK_PREFIX) sfml-XXX$(SFML_LINK_SUFFIX)" to add it or to "" (nothing) to remove it.



  * I changed my mind and would like to switch from dylibs to frameworks or vice versa. How can I do that?

    1. select your project in the project navigator panel,
    2. select your project's target on the main area,
    3. go to the "Build Settings" tab,
    4. go down to the bottom,
    5. set SFML_BINARY_TYPE to either "DYLIBS" or "FRAMEWORKS".



  * How to use/don't use debug dylibs?

    You can choose to use or not SFML debug binaries when creating a new project. However, if you
    have already created your project you can do the following:

    1. select your project from the project navigator panel,
    2. select your project's target on the main area,
    3. go to the "Build Settings" tab,
    4. go down to the bottom,
    5. set SFML_LINK_DYLIBS_SUFFIX to "-d" to use them or to "" (empty string) to use only
       release binaries.



  * I want to use the static version of SFML. Is it possible?

    Short answer: Don't do that!

    We strongly recommend you to use either dylibs or frameworks on macOS. Please refer to Apple
    documentation for information about static vs shared libraries debate.

    If you really need/want to use static libraries proceed as follow. First, set your project to
    use dylibs (see above Q & A). Then set SFML_LINK_DYLIBS_SUFFIX to "-s-d" in debug mode and to
    "-s" in release mode. Finally, remove the script automatically generated by the template (see
    Build Phases tab).



  * I get strange linker error about std::string and other STL types. What should I do?

    This probably means you're compiling your project against a different
    implementation of the STL than the one used by SFML. You can update your
    project build settings to match the settings used to compile SFML; more
    specifically the Compiler for C/C++/Objective-C, the C++ language Dialect
    and the C++ Standard Library.
