Guest User

SFML Run Script

a guest
Dec 9th, 2019
820
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.15 KB | None | 0 0
  1. # This shell script simply copies required SFML dylibs/frameworks into the application bundle frameworks folder.
  2. # If you're using static libraries (which is not recommended) you should remove this script from your project.
  3.  
  4. # SETTINGS
  5. SFML_DEPENDENCIES_INSTALL_PREFIX="/Users/SFML/Desktop/packaging/tmp/install/Library/Frameworks"
  6. CMAKE_INSTALL_FRAMEWORK_PREFIX="/Users/SFML/Desktop/packaging/tmp/install/Library/Frameworks"
  7. CMAKE_INSTALL_LIB_PREFIX="/Users/SFML/Desktop/packaging/tmp/install/Library/Frameworks/lib"
  8. FRAMEWORKS_FULL_PATH="$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH/"
  9.  
  10. # Are we building a project that uses frameworks or dylibs?
  11. case "$SFML_BINARY_TYPE" in
  12.     DYLIBS)
  13.         frameworks="false"
  14.         ;;
  15.     *)
  16.         frameworks="true"
  17.         ;;
  18. esac
  19.  
  20. # Echoes to stderr
  21. error () # $* message to display
  22. {
  23.     echo $* 1>&2
  24.     exit 2
  25. }
  26.  
  27. assert () # $1 is a boolean, $2...N is an error message
  28. {
  29.     if [ $# -lt 2 ]
  30.     then
  31.         error "Internal error in assert: not enough args"
  32.     fi
  33.  
  34.     if [ $1 -ne 0 ]
  35.     then
  36.         shift
  37.         error "$*"
  38.     fi
  39. }
  40.  
  41. force_remove () # $@ is some paths
  42. {
  43.     test $# -ge 1
  44.     assert $? "force_remove() requires at least one parameter"
  45.     rm -fr $@
  46.     assert $? "couldn't remove $@"
  47. }
  48.  
  49. copy () # $1 is a source, $2 is a destination
  50. {
  51.     test $# -eq 2
  52.     assert $? "copy() requires two parameters"
  53.     ditto "$1" "$2"
  54.     assert $? "couldn't copy $1 to $2"
  55. }
  56.  
  57. require () # $1 is a SFML module like 'system' or 'audio'
  58. {
  59.     dest="$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH/"
  60.  
  61.     if [ -z "$1" ]
  62.     then
  63.         error "require() requires one parameter!"
  64.     else
  65.         # clean potentially old stuff
  66.         force_remove "$dest/libsfml-$1"*
  67.         force_remove "$dest/sfml-$1.framework"
  68.  
  69.         # copy SFML libraries
  70.         if [ "$frameworks" = "true" ]
  71.         then
  72.             source="$CMAKE_INSTALL_FRAMEWORK_PREFIX/sfml-$1.framework"
  73.             target="sfml-$1.framework"
  74.         elif [ "$SFML_LINK_DYLIBS_SUFFIX" = "-d" ]
  75.         then
  76.             source="$CMAKE_INSTALL_LIB_PREFIX/libsfml-$1-d.dylib"
  77.             target="`readlink $source`"
  78.         else
  79.             source="$CMAKE_INSTALL_LIB_PREFIX/libsfml-$1.dylib"
  80.             target="`readlink $source`"
  81.         fi
  82.  
  83.         copy "$source" "$dest/$target"
  84.  
  85.         # copy extra dependencies
  86.         if [ "$1" = "audio" ]
  87.         then
  88.             # copy "FLAC" "ogg" "vorbis" "vorbisenc" "vorbisfile" "OpenAL" frameworks too
  89.             for f in "FLAC" "ogg" "vorbis" "vorbisenc" "vorbisfile" "OpenAL"
  90.             do
  91.                 copy "$SFML_DEPENDENCIES_INSTALL_PREFIX/$f.framework" "$dest/$f.framework"
  92.             done
  93.         elif [ "$1" = "graphics" ]
  94.         then
  95.             copy "$SFML_DEPENDENCIES_INSTALL_PREFIX/freetype.framework" "$dest/freetype.framework"
  96.         fi
  97.     fi
  98. }
  99.  
  100. if [ -n "$SFML_SYSTEM" ]
  101. then
  102.     require "system"
  103. fi
  104.  
  105. if [ -n "$SFML_AUDIO" ]
  106. then
  107.     require "audio"
  108. fi
  109.  
  110. if [ -n "$SFML_NETWORK" ]
  111. then
  112.     require "network"
  113. fi
  114.  
  115. if [ -n "$SFML_WINDOW" ]
  116. then
  117.     require "window"
  118. fi
  119.  
  120. if [ -n "$SFML_GRAPHICS" ]
  121. then
  122.     require "graphics"
  123. fi
Advertisement
Add Comment
Please, Sign In to add comment