move xcode/ into tools/

This commit is contained in:
Marco Antognini 2012-01-07 15:34:11 +01:00
parent 1e34d04aac
commit 2720532d63
33 changed files with 1 additions and 1 deletions

View file

@ -0,0 +1,43 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
// Laurent Gomila (laurent.gom@gmail.com),
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
#ifndef RESOURCE_PATH_HPP
#define RESOURCE_PATH_HPP
////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////
#include <string>
////////////////////////////////////////////////////////////
/// \brief Return the path to the resource folder.
///
/// \return The path to the resource folder associate
/// with the main bundle or an empty string is there is no bundle.
///
////////////////////////////////////////////////////////////
std::string ResourcePath(void);
#endif

View file

@ -0,0 +1,52 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
// Laurent Gomila (laurent.gom@gmail.com),
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////
#include "ResourcePath.hpp"
#import <Foundation/Foundation.h>
////////////////////////////////////////////////////////////
std::string ResourcePath(void)
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
std::string rpath;
NSBundle* bundle = [NSBundle mainBundle];
if (bundle == nil) {
#ifdef DEBUG
NSLog(@"bundle is nil... thus no resources path can be found.");
#endif
} else {
NSString* path = [bundle resourcePath];
rpath = [path UTF8String] + std::string("/");
}
[pool drain];
return rpath;
}

View file

@ -0,0 +1,736 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--
SFML - Simple and Fast Multimedia Library
Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
Laurent Gomila (laurent.gom@gmail.com),
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented;
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
-->
<!--
###########################################################################
*************************** org.sfml-dev.AppBase template *****************
###########################################################################
-->
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
<key>Identifier</key>
<string>org.sfml-dev.AppBase</string>
<key>Ancestors</key>
<array>
<string>com.apple.dt.unit.macBase</string>
</array>
<!-- ############################################################### Options -->
<key>Options</key>
<array>
<!-- ****************************************** Framework option -->
<dict>
<key>Identifier</key>
<string>libraryType</string>
<key>Name</key>
<string>Use frameworks</string>
<key>Description</key>
<string>Indicates whether frameworks should be used instead of dylibs or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>false</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_LINK_PREFIX</key>
<string>$(SFML_LINK_FRAMEWORKS_PREFIX)</string>
<key>SFML_LINK_SUFFIX</key>
<string>$(SFML_LINK_FRAMEWORKS_SUFFIX)</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$(HEADER_SEARCH_PATHS)</string>
</dict>
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_LINK_PREFIX</key>
<string>$(SFML_LINK_DYLIBS_PREFIX)</string>
<key>SFML_LINK_SUFFIX</key>
<string>$(SFML_LINK_DYLIBS_SUFFIX)</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$(HEADER_SEARCH_PATHS) /usr/local/include/</string>
</dict>
</dict>
</dict>
</dict>
</dict>
<!-- ********************************************* Window Module -->
<dict>
<key>Identifier</key>
<string>windowModule</string>
<key>Name</key>
<string>Use window module</string>
<key>Description</key>
<string>Indicates whether window module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_WINDOW</key>
<string>$(SFML_LINK_PREFIX)sfml-window$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:window:include</key>
<string>#include &lt;SFML/Window.hpp&gt;</string>
<key>main.cpp:main:window:content</key>
<string>sf::Window window(sf::VideoMode(800, 600), "SFML window");</string>
<!-- erase system/audio module content -->
<key>main.cpp:system:include</key>
<string></string>
<key>main.cpp:main:audio_loop</key>
<string></string>
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_WINDOW</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:window:include</key>
<string></string>
<key>main.cpp:main:window:content</key>
<string></string>
<!-- erase main loop & display -->
<key>main.cpp:main:event_loop</key>
<string></string>
<key>main.cpp:main:display</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ******************************************* Graphics Module -->
<dict>
<key>Identifier</key>
<string>graphicsModule</string>
<key>RequiredOptions</key>
<dict>
<key>windowModule</key>
<string>true</string>
</dict>
<key>Name</key>
<string>Use graphics module</string>
<key>Description</key>
<string>Indicates whether graphics module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_GRAPHICS</key>
<string>$(SFML_LINK_PREFIX)sfml-graphics$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:graphics:include</key>
<string>#include &lt;SFML/Graphics.hpp&gt;</string>
<key>main.cpp:main:graphics_init_window</key>
<string>// Create the main window
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");
</string>
<key>main.cpp:main:image_init</key>
<string>
// Load a sprite to display
sf::Texture texture;
</string>
<key>main.cpp:main:image_finalize</key>
<string> return EXIT_FAILURE;
sf::Sprite sprite(texture);
</string>
<key>main.cpp:main:image_load</key>
<string>if (!texture.LoadFromFile(ResourcePath() + "cute_image.jpg"))</string>
<key>main.cpp:main:text_init</key>
<string>
// Create a graphical text to display
sf::Font font;
</string>
<key>main.cpp:main:text_finalize</key>
<string> return EXIT_FAILURE;
sf::Text text("Hello SFML", font, 50);
text.SetColor(sf::Color::Black);
</string>
<key>main.cpp:main:text_load</key>
<string>if (!font.LoadFromFile(ResourcePath() + "sansation.ttf"))</string>
<key>main.cpp:main:graphics_display</key>
<string>
// Clear screen
window.Clear();
// Draw the sprite
window.Draw(sprite);
// Draw the string
window.Draw(text);
</string>
<!-- erase window module content -->
<key>main.cpp:window:include</key>
<string></string>
<key>main.cpp:main:window:content</key>
<string></string>
<key>sansation.ttf</key>
<dict>
<key>Group</key>
<string>Resources</string>
<key>Path</key>
<string>sansation.ttf</string>
</dict>
<key>cute_image.jpg</key>
<dict>
<key>Group</key>
<string>Resources</string>
<key>Path</key>
<string>cute_image.jpg</string>
</dict>
</dict>
<!-- resources -->
<key>Nodes</key>
<array>
<string>sansation.ttf</string>
<string>cute_image.jpg</string>
</array>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_GRAPHICS</key>
<string></string>
</dict>
</dict>
<!-- content definition : none -->
<key>Definitions</key>
<dict>
<key>main.cpp:graphics:include</key>
<string></string>
<key>main.cpp:main:graphics_init</key>
<string></string>
<key>main.cpp:main:graphics_display</key>
<string></string>
<key>main.cpp:main:image_load</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ********************************************** Audio Module -->
<dict>
<key>Identifier</key>
<string>audioModule</string>
<key>Name</key>
<string>Use audio module</string>
<key>Description</key>
<string>Indicates whether audio module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_AUDIO</key>
<string>$(SFML_LINK_PREFIX)sfml-audio$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:audio:include</key>
<string>#include &lt;SFML/Audio.hpp&gt;</string>
<key>main.cpp:main:audio:content</key>
<string>
// Load a music to play
sf::Music music;
if (!music.OpenFromFile(ResourcePath() + "nice_music.ogg"))
return EXIT_FAILURE;
// Play the music
music.Play();
</string>
<key>nice_music.ogg</key>
<dict>
<key>Group</key>
<string>Resources</string>
<key>Path</key>
<string>nice_music.ogg</string>
</dict>
</dict>
<!-- resources -->
<key>Nodes</key>
<array>
<string>nice_music.ogg</string>
</array>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_AUDIO</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:audio:include</key>
<string></string>
<key>main.cpp:main:audio:content</key>
<string></string>
<key>main.cpp:main:audio_loop</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ******************************************** Network Module -->
<dict>
<key>Identifier</key>
<string>networkModule</string>
<key>Name</key>
<string>Use network module</string>
<key>Description</key>
<string>Indicates whether network module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_NETWORK</key>
<string>$(SFML_LINK_PREFIX)sfml-network$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:network:include</key>
<string>#include &lt;SFML/Network.hpp&gt;</string>
<!-- no content example for network -->
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_NETWORK</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:network:include</key>
<string></string>
<!-- no content example for network -->
</dict>
</dict>
</dict>
</dict>
</array>
<!-- ################################################################# Nodes -->
<key>Nodes</key>
<array>
<string>main.cpp:system:include</string>
<string>main.cpp:window:include</string>
<string>main.cpp:graphics:include</string>
<string>main.cpp:audio:include</string>
<string>main.cpp:network:include</string>
<string>main.cpp:resources:include</string>
<string>main.cpp:main:window:content</string>
<string>main.cpp:main:graphics_init_window</string>
<string>main.cpp:main:image_init</string>
<string>main.cpp:main:image_load</string>
<string>main.cpp:main:image_finalize</string>
<string>main.cpp:main:text_init</string>
<string>main.cpp:main:text_load</string>
<string>main.cpp:main:text_finalize</string>
<string>main.cpp:main:audio:content</string>
<string>main.cpp:main:audio_loop</string>
<string>main.cpp:main:event_loop</string>
<string>main.cpp:main:graphics_display</string>
<string>main.cpp:main:display</string>
<string>ResourcePath.mm</string>
<string>ResourcePath.hpp</string>
</array>
<!-- ########################################################### Definitions -->
<key>Definitions</key>
<dict>
<!-- main function -->
<key>*:main</key>
<dict>
<key>Beginning</key>
<string>
int main (int argc, const char * argv[])
{</string>
<key>End</key>
<string>
return EXIT_SUCCESS;
}</string>
<key>Indent</key>
<integer>1</integer>
</dict>
<key>ResourcePath.mm</key>
<dict>
<key>Path</key>
<string>ResourcePath.mm</string>
</dict>
<key>ResourcePath.hpp</key>
<dict>
<key>Path</key>
<string>ResourcePath.hpp</string>
<key>TargetIndices</key>
<array/>
</dict>
<key>main.cpp:system:include</key>
<string>#include &lt;SFML/System.hpp&gt;</string>
<key>main.cpp:main:event_loop</key>
<string>
// Start the game loop
while (window.IsOpened())
{
// Process events
sf::Event event;
while (window.PollEvent(event))
{
// Close window : exit
if (event.Type == sf::Event::Closed)
window.Close();
// Escape pressed : exit
if (event.Type == sf::Event::KeyPressed &amp;&amp; event.Key.Code == sf::Keyboard::Escape)
window.Close();
}
</string>
<key>main.cpp:main:display</key>
<string>
// Update the window
window.Display();
}
</string>
<key>main.cpp:resources:include</key>
<string>#include "ResourcePath.hpp"</string>
<key>main.cpp:main:audio_loop</key>
<string>while (music.GetStatus() == sf::Music::Playing) {
sf::Sleep(100);
}</string>
</dict>
<!-- ###################################################### Project Settings -->
<key>Project</key>
<dict>
<!-- *************************************************** Basic stuff -->
<key>Name</key>
<string>___PACKAGENAME___</string>
<!-- *********************************************** Shared Settings -->
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>$(TARGET_NAME)</string>
<key>SFML_LINK_DYLIBS_PREFIX</key>
<string>-l</string>
<key>SFML_LINK_FRAMEWORKS_PREFIX</key>
<string>-framework </string>
<key>SFML_SYSTEM</key>
<string>$(SFML_LINK_PREFIX)sfml-system$(SFML_LINK_SUFFIX)</string>
<key>SFML_LINK_FRAMEWORKS_SUFFIX</key>
<string></string>
<key>CLANG_ENABLE_OBJC_ARC</key>
<string></string>
<key>GCC_ENABLE_OBJC_GC</key>
<string>unsupported</string>
</dict>
<key>Configurations</key>
<dict>
<!-- ***************************************************** Debug -->
<key>Debug</key>
<dict>
<key>SFML_LINK_DYLIBS_SUFFIX</key>
<string>-d</string>
<key>OTHER_LDFLAGS</key>
<string>$(OTHER_LDFLAGS) $(SFML_SYSTEM) $(SFML_WINDOW) $(SFML_GRAPHICS) $(SFML_AUDIO) $(SFML_NETWORK)</string>
</dict>
<!-- *************************************************** Release -->
<key>Release</key>
<dict>
<key>SFML_LINK_DYLIBS_SUFFIX</key>
<string></string>
<key>OTHER_LDFLAGS</key>
<string>$(OTHER_LDFLAGS) $(SFML_SYSTEM) $(SFML_WINDOW) $(SFML_GRAPHICS) $(SFML_AUDIO) $(SFML_NETWORK)</string>
</dict>
</dict>
</dict>
<key>Targets</key>
<array>
<dict>
<key>Frameworks</key>
<array>
<string>Foundation</string>
</array>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>ShellScript</string>
<key>ShellPath</key>
<string>/bin/sh</string>
<key>ShellScript</key>
<string># This shell script simply copies required sfml dylibs/frameworks into the application bundle frameworks folder.
# If you're using static libraries (which is not recommended) you should remove this script from your project.
# Are we building a project that uses framework or dylibs ?
if [ $SFML_LINK_PREFIX = $SFML_LINK_FRAMEWORKS_PREFIX ]
then
frameworks=1
else
frameworks=0
fi
require () # $1 is a SFML module like 'system' or 'audio'
{
dest=$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Contents/Frameworks
if [ -z $1 ]
then
echo "no parameter! ERROR!"
exit
else
# clean potentially old stuff
rm -f $dest/libsfml-$1.2.dylib
rm -f $dest/libsfml-$1-d.2.dylib
rm -fr $dest/sfml-$1.framework
# copy SFML libraries
if [ $frameworks ]
then
ditto /Library/Frameworks/sfml-$1.framework $dest/sfml-$1.framework
elif [ $CONFIGURATION = "Debug" ]
then
ditto /usr/local/lib/libsfml-$1-d.2.dylib $dest/libsfml-$1-d.2.dylib
else
ditto /usr/local/lib/libsfml-$1.2.dylib $dest/libsfml-$1.2.dylib
fi
if [ $1 = "audio" ]
then
# copy sndfile framework too
ditto /Library/Frameworks/sndfile.framework $dest/sndfile.framework
fi
fi
}
if [ -n "$SFML_SYSTEM" ]
then
require "system"
fi
if [ -n "$SFML_AUDIO" ]
then
require "audio"
fi
if [ -n "$SFML_NETWORK" ]
then
require "network"
fi
if [ -n "$SFML_WINDOW" ]
then
require "window"
fi
if [ -n "$SFML_GRAPHICS" ]
then
require "graphics"
fi
</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>NO</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View file

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--
SFML - Simple and Fast Multimedia Library
Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
Laurent Gomila (laurent.gom@gmail.com),
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented;
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
-->
<!--
###########################################################################
******************************** org.sfml-dev.app template ****************
###########################################################################
-->
<!-- *** Ancestors Hierarchy *** -->
<key>Ancestors</key>
<array>
<string>org.sfml-dev.AppBase</string>
<string>com.apple.dt.unit.bundleBase</string>
</array>
<!-- *** This is a Concrete Template *** -->
<key>Concrete</key>
<true/>
<!-- *** Basic Stuff *** -->
<key>Description</key>
<string>This template builds bundle application using SFML.</string>
<key>Identifier</key>
<string>org.sfml-dev.app</string>
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
<key>Nodes</key>
<array>
<string>___PACKAGENAME___-Info.plist:Basics</string>
</array>
<key>Definitions</key>
<dict>
<key>___PACKAGENAME___-Info.plist:Basics</key>
<string>&lt;key&gt;CFBundleDevelopmentRegion&lt;/key&gt;
&lt;string&gt;en&lt;/string&gt;
&lt;key&gt;CFBundleExecutable&lt;/key&gt;
&lt;string&gt;${EXECUTABLE_NAME}&lt;/string&gt;
&lt;key&gt;CFBundleIconFile&lt;/key&gt;
&lt;string&gt;&lt;/string&gt;
&lt;key&gt;CFBundleInfoDictionaryVersion&lt;/key&gt;
&lt;string&gt;6.0&lt;/string&gt;
&lt;key&gt;CFBundleName&lt;/key&gt;
&lt;string&gt;${PRODUCT_NAME}&lt;/string&gt;
&lt;key&gt;CFBundlePackageType&lt;/key&gt;
&lt;string&gt;APPL&lt;/string&gt;
&lt;key&gt;CFBundleSignature&lt;/key&gt;
&lt;string&gt;????&lt;/string&gt;
</string>
</dict>
<!-- *** Project's Targets *** -->
<key>Targets</key>
<array>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.application</string>
<key>SharedSettings</key>
<dict>
<key>WRAPPER_EXTENSION</key>
<string>app</string>
<key>GCC_PRECOMPILE_PREFIX_HEADER</key>
<string>NO</string>
<key>GCC_PREFIX_HEADER</key>
<string></string>
</dict>
<key>Configurations</key>
<dict>
<key>Debug</key>
<dict>
<key>COPY_PHASE_STRIP</key>
<string>NO</string>
<key>GCC_DYNAMIC_NO_PIC</key>
<string>NO</string>
</dict>
<key>Release</key>
<dict>
<key>COPY_PHASE_STRIP</key>
<string>YES</string>
</dict>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>Resources</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View file

@ -0,0 +1,635 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--
SFML - Simple and Fast Multimedia Library
Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
Laurent Gomila (laurent.gom@gmail.com),
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented;
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
-->
<!--
###########################################################################
******************* org.sfml-dev.commandLineToolBase template *************
###########################################################################
-->
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
<key>Identifier</key>
<string>org.sfml-dev.commandLineToolBase</string>
<key>Ancestors</key>
<array>
<string>com.apple.dt.unit.macBase</string>
</array>
<!-- ############################################################### Options -->
<key>Options</key>
<array>
<!-- ****************************************** Framework option -->
<dict>
<key>Identifier</key>
<string>libraryType</string>
<key>Name</key>
<string>Use frameworks</string>
<key>Description</key>
<string>Indicates whether frameworks should be used instead of dylibs or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>false</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_LINK_PREFIX</key>
<string>$(SFML_LINK_FRAMEWORKS_PREFIX)</string>
<key>SFML_LINK_SUFFIX</key>
<string>$(SFML_LINK_FRAMEWORKS_SUFFIX)</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$(HEADER_SEARCH_PATHS)</string>
</dict>
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_LINK_PREFIX</key>
<string>$(SFML_LINK_DYLIBS_PREFIX)</string>
<key>SFML_LINK_SUFFIX</key>
<string>$(SFML_LINK_DYLIBS_SUFFIX)</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$(HEADER_SEARCH_PATHS) /usr/local/include/</string>
</dict>
</dict>
</dict>
</dict>
</dict>
<!-- ********************************************* Window Module -->
<dict>
<key>Identifier</key>
<string>windowModule</string>
<key>Name</key>
<string>Use window module</string>
<key>Description</key>
<string>Indicates whether window module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_WINDOW</key>
<string>$(SFML_LINK_PREFIX)sfml-window$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:window:include</key>
<string>#include &lt;SFML/Window.hpp&gt;</string>
<key>main.cpp:main:window:content</key>
<string>sf::Window window(sf::VideoMode(800, 600), "SFML window");</string>
<!-- erase system/audio module content -->
<key>main.cpp:system:include</key>
<string></string>
<key>main.cpp:main:audio_loop</key>
<string></string>
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_WINDOW</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:window:include</key>
<string></string>
<key>main.cpp:main:window:content</key>
<string></string>
<!-- erase main loop & display -->
<key>main.cpp:main:event_loop</key>
<string></string>
<key>main.cpp:main:display</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ******************************************* Graphics Module -->
<dict>
<key>Identifier</key>
<string>graphicsModule</string>
<key>RequiredOptions</key>
<dict>
<key>windowModule</key>
<string>true</string>
</dict>
<key>Name</key>
<string>Use graphics module</string>
<key>Description</key>
<string>Indicates whether graphics module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_GRAPHICS</key>
<string>$(SFML_LINK_PREFIX)sfml-graphics$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:graphics:include</key>
<string>#include &lt;SFML/Graphics.hpp&gt;</string>
<key>main.cpp:main:graphics_init_window</key>
<string>// Create the main window
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");
</string>
<key>main.cpp:main:image_init</key>
<string>
// Load a sprite to display
sf::Texture texture;
</string>
<key>main.cpp:main:image_finalize</key>
<string> return EXIT_FAILURE;
sf::Sprite sprite(texture);
</string>
<key>main.cpp:main:image_load</key>
<string>if (!texture.LoadFromFile("cute_image.jpg"))</string>
<key>main.cpp:main:text_init</key>
<string>
// Create a graphical text to display
sf::Font font;
</string>
<key>main.cpp:main:text_finalize</key>
<string> return EXIT_FAILURE;
sf::Text text("Hello SFML", font, 50);
text.SetColor(sf::Color::Black);
</string>
<key>main.cpp:main:text_load</key>
<string>if (!font.LoadFromFile("sansation.ttf"))</string>
<key>main.cpp:main:graphics_display</key>
<string>
// Clear screen
window.Clear();
// Draw the sprite
window.Draw(sprite);
// Draw the string
window.Draw(text);
</string>
<!-- erase window module content -->
<key>main.cpp:window:include</key>
<string></string>
<key>main.cpp:main:window:content</key>
<string></string>
<key>sansation.ttf</key>
<dict>
<key>Group</key>
<string>Supporting Files</string>
<key>Path</key>
<string>sansation.ttf</string>
</dict>
<key>cute_image.jpg</key>
<dict>
<key>Group</key>
<string>Supporting Files</string>
<key>Path</key>
<string>cute_image.jpg</string>
</dict>
</dict>
<!-- resources -->
<key>Nodes</key>
<array>
<string>sansation.ttf</string>
<string>cute_image.jpg</string>
</array>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_GRAPHICS</key>
<string></string>
</dict>
</dict>
<!-- content definition : none -->
<key>Definitions</key>
<dict>
<key>main.cpp:graphics:include</key>
<string></string>
<key>main.cpp:main:graphics_init</key>
<string></string>
<key>main.cpp:main:graphics_display</key>
<string></string>
<key>main.cpp:main:image_load</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ********************************************** Audio Module -->
<dict>
<key>Identifier</key>
<string>audioModule</string>
<key>Name</key>
<string>Use audio module</string>
<key>Description</key>
<string>Indicates whether audio module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_AUDIO</key>
<string>$(SFML_LINK_PREFIX)sfml-audio$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:audio:include</key>
<string>#include &lt;SFML/Audio.hpp&gt;</string>
<key>main.cpp:main:audio:content</key>
<string>
// Load a music to play
sf::Music music;
if (!music.OpenFromFile("nice_music.ogg"))
return EXIT_FAILURE;
// Play the music
music.Play();
</string>
<key>nice_music.ogg</key>
<dict>
<key>Group</key>
<string>Supporting Files</string>
<key>Path</key>
<string>nice_music.ogg</string>
</dict>
</dict>
<!-- resources -->
<key>Nodes</key>
<array>
<string>nice_music.ogg</string>
</array>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_AUDIO</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:audio:include</key>
<string></string>
<key>main.cpp:main:audio:content</key>
<string></string>
</dict>
</dict>
</dict>
</dict>
<!-- ******************************************** Network Module -->
<dict>
<key>Identifier</key>
<string>networkModule</string>
<key>Name</key>
<string>Use network module</string>
<key>Description</key>
<string>Indicates whether network module should be used or not.</string>
<key>Type</key>
<string>checkbox</string>
<key>SortOrder</key>
<integer>1</integer>
<key>Default</key>
<string>true</string>
<key>Units</key>
<dict>
<!-- ON -->
<key>true</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_NETWORK</key>
<string>$(SFML_LINK_PREFIX)sfml-network$(SFML_LINK_SUFFIX)</string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:network:include</key>
<string>#include &lt;SFML/Network.hpp&gt;</string>
<!-- no content example for network -->
</dict>
</dict>
<!-- OFF -->
<key>false</key>
<dict>
<!-- compilation options -->
<key>Project</key>
<dict>
<key>SharedSettings</key>
<dict>
<key>SFML_NETWORK</key>
<string></string>
</dict>
</dict>
<!-- content definition -->
<key>Definitions</key>
<dict>
<key>main.cpp:network:include</key>
<string></string>
<!-- no content example for network -->
</dict>
</dict>
</dict>
</dict>
</array>
<!-- ################################################################# Nodes -->
<key>Nodes</key>
<array>
<string>main.cpp:system:include</string>
<string>main.cpp:window:include</string>
<string>main.cpp:graphics:include</string>
<string>main.cpp:audio:include</string>
<string>main.cpp:network:include</string>
<string>main.cpp:resources_comment</string>
<string>main.cpp:main:window:content</string>
<string>main.cpp:main:graphics_init_window</string>
<string>main.cpp:main:image_init</string>
<string>main.cpp:main:image_load</string>
<string>main.cpp:main:image_finalize</string>
<string>main.cpp:main:text_init</string>
<string>main.cpp:main:text_load</string>
<string>main.cpp:main:text_finalize</string>
<string>main.cpp:main:audio:content</string>
<string>main.cpp:main:audio_loop</string>
<string>main.cpp:main:event_loop</string>
<string>main.cpp:main:graphics_display</string>
<string>main.cpp:main:display</string>
</array>
<!-- ########################################################### Definitions -->
<key>Definitions</key>
<dict>
<!-- main function -->
<key>*:main</key>
<dict>
<key>Beginning</key>
<string>
int main (int argc, const char * argv[])
{</string>
<key>End</key>
<string>
return EXIT_SUCCESS;
}</string>
<key>Indent</key>
<integer>1</integer>
</dict>
<key>main.cpp:system:include</key>
<string>#include &lt;SFML/System.hpp&gt;</string>
<key>main.cpp:main:event_loop</key>
<string>
// Start the game loop
while (window.IsOpened())
{
// Process events
sf::Event event;
while (window.PollEvent(event))
{
// Close window : exit
if (event.Type == sf::Event::Closed)
window.Close();
// Escape pressed : exit
if (event.Type == sf::Event::KeyPressed &amp;&amp; event.Key.Code == sf::Keyboard::Escape)
window.Close();
}
</string>
<key>main.cpp:main:display</key>
<string>
// Update the window
window.Display();
}
</string>
<key>main.cpp:resources_comment</key>
<string>
/* Resources :
* ===========
*
* In order to load the resources like cute_image.png, you have to set up
* your target scheme :
*
* - Select "Edit Scheme…" in the "Product" menu;
* - Check the box "use custom working directory";
* - Fill the text field with the folder path containing your resources;
* (e.g. your project folder)
* - Click OK.
*/
</string>
<key>main.cpp:main:audio_loop</key>
<string>while (music.GetStatus() == sf::Music::Playing) {
sf::Sleep(100);
}</string>
</dict>
<!-- ###################################################### Project Settings -->
<key>Project</key>
<dict>
<!-- *************************************************** Basic stuff -->
<key>Name</key>
<string>___PACKAGENAME___</string>
<!-- *********************************************** Shared Settings -->
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>$(TARGET_NAME)</string>
<key>SFML_LINK_DYLIBS_PREFIX</key>
<string>-l</string>
<key>SFML_LINK_FRAMEWORKS_PREFIX</key>
<string>-framework </string>
<key>SFML_SYSTEM</key>
<string>$(SFML_LINK_PREFIX)sfml-system$(SFML_LINK_SUFFIX)</string>
<key>SFML_LINK_FRAMEWORKS_SUFFIX</key>
<string></string>
<key>CLANG_ENABLE_OBJC_ARC</key>
<string></string>
<key>GCC_ENABLE_OBJC_GC</key>
<string>unsupported</string>
</dict>
<key>Configurations</key>
<dict>
<!-- ***************************************************** Debug -->
<key>Debug</key>
<dict>
<key>SFML_LINK_DYLIBS_SUFFIX</key>
<string>-d</string>
<key>OTHER_LDFLAGS</key>
<string>$(OTHER_LDFLAGS) $(SFML_SYSTEM) $(SFML_WINDOW) $(SFML_GRAPHICS) $(SFML_AUDIO) $(SFML_NETWORK)</string>
</dict>
<!-- *************************************************** Release -->
<key>Release</key>
<dict>
<key>SFML_LINK_DYLIBS_SUFFIX</key>
<string></string>
<key>OTHER_LDFLAGS</key>
<string>$(OTHER_LDFLAGS) $(SFML_SYSTEM) $(SFML_WINDOW) $(SFML_GRAPHICS) $(SFML_AUDIO) $(SFML_NETWORK)</string>
</dict>
</dict>
</dict>
</dict>
</plist>

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View file

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!--
SFML - Simple and Fast Multimedia Library
Copyright (C) 2007-2011 Marco Antognini (antognini.marco@gmail.com),
Laurent Gomila (laurent.gom@gmail.com),
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented;
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
-->
<!--
###########################################################################
*********************** org.sfml-dev.commandLineTool template *************
###########################################################################
-->
<!-- *** Ancestors Hierarchy *** -->
<key>Ancestors</key>
<array>
<string>org.sfml-dev.commandLineToolBase</string>
<string>com.apple.dt.unit.base</string>
</array>
<!-- *** This is a Concrete Template *** -->
<key>Concrete</key>
<true/>
<!-- *** Basic Stuff *** -->
<key>Description</key>
<string>This template builds a command-line tool using SFML.</string>
<key>Identifier</key>
<string>org.sfml-dev.commandLineTool</string>
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
<!-- *** Project's Targets *** -->
<key>Targets</key>
<array>
<dict>
<!-- *** Basic Stuff *** -->
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
</array>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
</dict>
</array>
</dict>
</plist>

View file

@ -0,0 +1,66 @@
XCODE 4 TEMPLATES
=================
These are templates to create easily a new SFML project in Xcode 4.
Features
--------
* You can choose between command line tool or bundle application.
* You can choose between using SFML libraries as dylibs or frameworks.
* You can add independently each SFML module you'll use into your project.
* A basic example is included automatically into your project's code.
Install
-------
If you are building SFML from sources you can set CMake's INSTALL_XCODE4_TEMPLATES variable to TRUE to install the templates automatically. Otherwise proceed as follow :
1. Make sure "~/Library/Developer/Xcode/Templates/" folder exists;
2. Copy "SFML" folder into the above folder.
Usage
-----
To use these templates follow these steps :
1. open Xcode 4,
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",
4. then select either "SFML Application" or "SFML Command Line Tool",
5. fill in the requested information and you're done.
Question & Answer
-----------------
* I would like to add/remove a module of SFML from my current project without creating a new one. How can I do that ?
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_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 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. update SFML_LINK_PREFIX and SFML_LINK_SUFFIX as follow :
* if you want to use frameworks, then
1. set SFML_LINK_PREFIX to "$(SFML_LINK_FRAMEWORKS_PREFIX)",
2. set SFML_LINK_SUFFIX to "$(SFML_LINK_FRAMEWORKS_SUFFIX)"
* if you want to use dylibs, then
1. set SFML_LINK_PREFIX to "$(SFML_LINK_DYLIBS_PREFIX)",
2. set SFML_LINK_SUFFIX to "$(SFML_LINK_DYLIBS_SUFFIX)"
* 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 Mac OS X. 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 application template (see Build Phases tab).