From b87a232668d9f9f3b32c2fceb60bc5f6ef46df22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Thu, 9 Feb 2017 00:07:44 +0100 Subject: Reorder the folders in tools to prepare moving tools/editor - `certs` and `editor_fonts` go to `thirdparty` - `dist` and `scripts` go to a new `misc` folder - `collada` and `doc` go to `tools/editor` The next step will be to rename `tools/editor` to `editor` directly, but this will be done at the right time to avoid breaking too many PRs. --- misc/dist/docker/Dockerfile | 13 + misc/dist/docker/README.md | 40 +++ misc/dist/docker/scripts/install-android-tools | 90 +++++ misc/dist/html_fs/godotfs.js | 149 +++++++++ misc/dist/ios_xcode/godot_xcode/data.pck | 0 misc/dist/ios_xcode/godot_xcode/godot_debug.iphone | 0 .../godot_ios.xcodeproj/project.pbxproj | 370 +++++++++++++++++++++ .../project.xcworkspace/contents.xcworkspacedata | 7 + .../godot_ios/Default-568h@2x~iphone.png | Bin 0 -> 564 bytes .../godot_xcode/godot_ios/Default-667h.png | Bin 0 -> 683 bytes .../godot_xcode/godot_ios/Default-667h@2x.png | Bin 0 -> 817 bytes .../godot_xcode/godot_ios/Default-736h.png | Bin 0 -> 1676 bytes .../godot_xcode/godot_ios/Default-736h@3x.png | Bin 0 -> 2582 bytes .../godot_ios/Default-Landscape-736h.png | Bin 0 -> 2582 bytes .../godot_ios/Default-Landscape@2x~ipad.png | Bin 0 -> 3131 bytes .../godot_ios/Default-Landscape~ipad.png | Bin 0 -> 634 bytes .../godot_ios/Default-Portrait@2x~ipad.png | Bin 0 -> 3070 bytes .../godot_ios/Default-Portrait~ipad.png | Bin 0 -> 589 bytes .../godot_xcode/godot_ios/Default@2x~iphone.png | Bin 0 -> 515 bytes .../godot_xcode/godot_ios/Default~iphone.png | Bin 0 -> 309 bytes .../AppIcon.appiconset/Contents.json | 128 +++++++ .../AppIcon.appiconset/Icon-100.png | Bin 0 -> 250 bytes .../AppIcon.appiconset/Icon-114.png | Bin 0 -> 253 bytes .../AppIcon.appiconset/Icon-120.png | Bin 0 -> 253 bytes .../AppIcon.appiconset/Icon-144.png | Bin 0 -> 259 bytes .../AppIcon.appiconset/Icon-152.png | Bin 0 -> 260 bytes .../AppIcon.appiconset/Icon-180.png | Bin 0 -> 265 bytes .../Images.xcassets/AppIcon.appiconset/Icon-29.png | Bin 0 -> 242 bytes .../Images.xcassets/AppIcon.appiconset/Icon-40.png | Bin 0 -> 240 bytes .../Images.xcassets/AppIcon.appiconset/Icon-50.png | Bin 0 -> 243 bytes .../Images.xcassets/AppIcon.appiconset/Icon-57.png | Bin 0 -> 243 bytes .../Images.xcassets/AppIcon.appiconset/Icon-58.png | Bin 0 -> 243 bytes .../Images.xcassets/AppIcon.appiconset/Icon-60.png | Bin 0 -> 244 bytes .../Images.xcassets/AppIcon.appiconset/Icon-72.png | Bin 0 -> 244 bytes .../Images.xcassets/AppIcon.appiconset/Icon-76.png | Bin 0 -> 246 bytes .../Images.xcassets/AppIcon.appiconset/Icon-80.png | Bin 0 -> 245 bytes .../AppIcon.appiconset/icon-167.png | Bin 0 -> 262 bytes .../Images.xcassets/AppIcon.appiconset/icon-87.png | Bin 0 -> 247 bytes .../Images.xcassets/AppIcon.appiconset/sizes | 17 + .../godot_ios/en.lproj/InfoPlist.strings | 2 + .../godot_xcode/godot_ios/godot_ios-Info.plist | 50 +++ misc/dist/ios_xcode/godot_xcode/godot_ios/main.m | 39 +++ misc/dist/ios_xcode/godot_xcode/godot_opt.iphone | 0 misc/dist/osx_template.app/Contents/Info.plist | 39 +++ misc/dist/osx_template.app/Contents/PkgInfo | 1 + .../osx_template.app/Contents/Resources/icon.icns | Bin 0 -> 120942 bytes misc/dist/osx_tools.app/Contents/Info.plist | 69 ++++ misc/dist/osx_tools.app/Contents/PkgInfo | 1 + .../osx_tools.app/Contents/Resources/Godot.icns | Bin 0 -> 120942 bytes misc/dist/uwp_template/AppxManifest.xml | 32 ++ .../uwp_template/Assets/SplashScreen.scale-100.png | Bin 0 -> 14919 bytes .../Assets/Square150x150Logo.scale-100.png | Bin 0 -> 7001 bytes .../Assets/Square310x310Logo.scale-100.png | Bin 0 -> 14490 bytes .../Assets/Square44x44Logo.scale-100.png | Bin 0 -> 2067 bytes .../Assets/Square71x71Logo.scale-100.png | Bin 0 -> 3369 bytes .../uwp_template/Assets/StoreLogo.scale-100.png | Bin 0 -> 2339 bytes .../Assets/Wide310x150Logo.scale-100.png | Bin 0 -> 7390 bytes misc/scripts/addheader.py | 70 ++++ misc/scripts/file-hex-array.py | 56 ++++ misc/scripts/make_bmfhdr.py | 67 ++++ misc/scripts/make_glwrapper.py | 178 ++++++++++ misc/scripts/make_icons.sh | 5 + misc/scripts/makeargs.py | 82 +++++ misc/scripts/memsort.py | 35 ++ misc/scripts/sort-demos.sh | 29 ++ misc/scripts/svgs_2_pngs.py | 137 ++++++++ 66 files changed, 1706 insertions(+) create mode 100644 misc/dist/docker/Dockerfile create mode 100644 misc/dist/docker/README.md create mode 100644 misc/dist/docker/scripts/install-android-tools create mode 100644 misc/dist/html_fs/godotfs.js create mode 100644 misc/dist/ios_xcode/godot_xcode/data.pck create mode 100755 misc/dist/ios_xcode/godot_xcode/godot_debug.iphone create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios.xcodeproj/project.pbxproj create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default-568h@2x~iphone.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default-667h.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default-667h@2x.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default-736h.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default-736h@3x.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape-736h.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape@2x~ipad.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape~ipad.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Portrait@2x~ipad.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Portrait~ipad.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default@2x~iphone.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Default~iphone.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-100.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-114.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-120.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-144.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-152.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-180.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-29.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-40.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-50.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-57.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-58.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-60.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-72.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-76.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-80.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-167.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-87.png create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/sizes create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/en.lproj/InfoPlist.strings create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/godot_ios-Info.plist create mode 100644 misc/dist/ios_xcode/godot_xcode/godot_ios/main.m create mode 100755 misc/dist/ios_xcode/godot_xcode/godot_opt.iphone create mode 100755 misc/dist/osx_template.app/Contents/Info.plist create mode 100644 misc/dist/osx_template.app/Contents/PkgInfo create mode 100644 misc/dist/osx_template.app/Contents/Resources/icon.icns create mode 100755 misc/dist/osx_tools.app/Contents/Info.plist create mode 100644 misc/dist/osx_tools.app/Contents/PkgInfo create mode 100644 misc/dist/osx_tools.app/Contents/Resources/Godot.icns create mode 100644 misc/dist/uwp_template/AppxManifest.xml create mode 100644 misc/dist/uwp_template/Assets/SplashScreen.scale-100.png create mode 100644 misc/dist/uwp_template/Assets/Square150x150Logo.scale-100.png create mode 100644 misc/dist/uwp_template/Assets/Square310x310Logo.scale-100.png create mode 100644 misc/dist/uwp_template/Assets/Square44x44Logo.scale-100.png create mode 100644 misc/dist/uwp_template/Assets/Square71x71Logo.scale-100.png create mode 100644 misc/dist/uwp_template/Assets/StoreLogo.scale-100.png create mode 100644 misc/dist/uwp_template/Assets/Wide310x150Logo.scale-100.png create mode 100644 misc/scripts/addheader.py create mode 100755 misc/scripts/file-hex-array.py create mode 100644 misc/scripts/make_bmfhdr.py create mode 100644 misc/scripts/make_glwrapper.py create mode 100644 misc/scripts/make_icons.sh create mode 100644 misc/scripts/makeargs.py create mode 100644 misc/scripts/memsort.py create mode 100644 misc/scripts/sort-demos.sh create mode 100644 misc/scripts/svgs_2_pngs.py (limited to 'misc') diff --git a/misc/dist/docker/Dockerfile b/misc/dist/docker/Dockerfile new file mode 100644 index 0000000000..428de9d1a7 --- /dev/null +++ b/misc/dist/docker/Dockerfile @@ -0,0 +1,13 @@ +FROM ubuntu:14.04 +MAINTAINER Mohammad Rezai, https://github.com/mrezai +WORKDIR /godot-dev +COPY scripts/install-android-tools /godot-dev/ +ENV DEBIAN_FRONTEND noninteractive +RUN dpkg --add-architecture i386 && \ + apt-get update && \ + apt-get upgrade -y && \ + apt-get install --no-install-recommends -y -q \ + build-essential gcc-multilib g++-multilib mingw32 mingw-w64 scons pkg-config libx11-dev libxcursor-dev \ + libasound2-dev libfreetype6-dev libgl1-mesa-dev libglu-dev libssl-dev libxinerama-dev libudev-dev \ + git wget openjdk-7-jdk libbcprov-java libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386 lib32z1 + diff --git a/misc/dist/docker/README.md b/misc/dist/docker/README.md new file mode 100644 index 0000000000..7f10b46ad8 --- /dev/null +++ b/misc/dist/docker/README.md @@ -0,0 +1,40 @@ +## A Docker image to build Linux, Windows and Android godot binaries. + +The main reason to write this, is to provide a simple way in all platforms to integrate external godot modules and build a custom version of godot. + +## usage +1. Install docker on Linux or docker toolbox on Windows or Mac. +2. Open a terminal on linux or "Docker Quickstart Terminal" on Windows or Mac. +3. Run command: + - Linux: `cd` + - Windows: `cd /c/Users/YOUR_USERNAME` + - Mac: `cd /Users/YOUR_USERNAME` +4. Get godot source code: `git clone https://github.com/godotengine/godot.git` +5. Run command: `cd godot/tools/docker` +6. Run command: `docker build -t godot .`(In Linux run Docker commands with `sudo` or add your user to docker group before run the Docker commands). The godot docker image will be build after a while. +7. Run command: + - Linux: `docker run -it --name=godot-dev -v /home/YOUR_USERNAME/godot:/godot-dev/godot godot` + - Windows: `docker run -it --name=godot-dev -v /c/Users/YOUR_USERNAME/godot:/godot-dev/godot godot` + - Mac: `docker run -it --name=godot-dev -v /Users/YOUR_USERNAME/godot:/godot-dev/godot godot` + You are in the godot-dev container and /godot-dev directory now. +8. Run `./install-android-tools` to download and install all android development tools. +9. Run command: `source ~/.bashrc` +10. Run command: `cd godot` +11. Run command: `scons p=android target=release` to test everything is ok. You can set platform to x11, windows, android, haiku and server. + +After use and exit, you can use this environment again by open terminal and type commands: `docker start godot-dev && docker attach godot-dev`. + +### Windows and Mac stuffs: + +- Speed up compilation: + - Exit from container. + - Run command: `docker-machine stop` + - Open "Oracle VM VirtualBox". + - In settings of default VM increase CPU cores and RAM to suitable values. + - Run command: `docker-machine start` + - Run command: `docker start godot-dev && docker attach godot-dev` + +- ssh to VM(can be useful sometimes): + - `docker-machine ssh` + +Check docker and boot2docker projects for more details. diff --git a/misc/dist/docker/scripts/install-android-tools b/misc/dist/docker/scripts/install-android-tools new file mode 100644 index 0000000000..8a617d9942 --- /dev/null +++ b/misc/dist/docker/scripts/install-android-tools @@ -0,0 +1,90 @@ +#!/bin/bash + +BASH_RC=~/.bashrc +GODOT_BUILD_TOOLS_PATH=/godot-dev/build-tools +mkdir -p $GODOT_BUILD_TOOLS_PATH +cd $GODOT_BUILD_TOOLS_PATH + +ANDROID_BASE_URL=http://dl.google.com/android + +ANDROID_SDK_RELEASE=android-sdk_r24.4.1 +ANDROID_SDK_DIR=android-sdk-linux +ANDROID_SDK_FILENAME=$ANDROID_SDK_RELEASE-linux.tgz +ANDROID_SDK_URL=$ANDROID_BASE_URL/$ANDROID_SDK_FILENAME +ANDROID_SDK_PATH=$GODOT_BUILD_TOOLS_PATH/$ANDROID_SDK_DIR +ANDROID_SDK_SHA1=725bb360f0f7d04eaccff5a2d57abdd49061326d + +ANDROID_NDK_RELEASE=android-ndk-r10e +ANDROID_NDK_DIR=$ANDROID_NDK_RELEASE +ANDROID_NDK_FILENAME=$ANDROID_NDK_RELEASE-linux-x86_64.bin +ANDROID_NDK_URL=$ANDROID_BASE_URL/ndk/$ANDROID_NDK_FILENAME +ANDROID_NDK_PATH=$GODOT_BUILD_TOOLS_PATH/$ANDROID_NDK_DIR +ANDROID_NDK_MD5=19af543b068bdb7f27787c2bc69aba7f + +echo +echo "Download and install Android development tools ..." +echo + +if [ ! -e $ANDROID_SDK_FILENAME ]; then + echo "Downloading: Android SDK ..." + wget $ANDROID_SDK_URL +else + echo $ANDROID_SDK_SHA1 $ANDROID_SDK_FILENAME > $ANDROID_SDK_FILENAME.sha1 + sha1sum --check --strict $ANDROID_SDK_FILENAME.sha1 + if [ ! $? -eq 0 ]; then + echo "Downloading: Android SDK ..." + wget $ANDROID_SDK_URL + fi +fi + +if [ ! -d $ANDROID_SDK_DIR ]; then + tar -xvzf $ANDROID_SDK_FILENAME +fi + +if [ ! -e $ANDROID_NDK_FILENAME ]; then + echo "Downloading: Android NDK ..." + wget $ANDROID_NDK_URL +else + echo $ANDROID_NDK_MD5 $ANDROID_NDK_FILENAME > $ANDROID_NDK_FILENAME.md5 + md5sum --check --strict $ANDROID_NDK_FILENAME.md5 + if [ ! $? -eq 0 ]; then + echo "Downloading: Android NDK ..." + wget $ANDROID_NDK_URL + fi +fi + +if [ ! -d $ANDROID_NDK_DIR ]; then + chmod a+x $ANDROID_NDK_FILENAME + ./$ANDROID_NDK_FILENAME + echo +fi + +cd $ANDROID_SDK_DIR/tools +chmod a+x android + +if ! ./android list target | grep -q 'android-19'; then + echo "Installing: Android Tools ..." + echo y | ./android update sdk --no-ui --all --filter "platform-tools,android-19,build-tools-19.1.0,\ + extra-android-m2repository,extra-android-support,extra-google-google_play_services,extra-google-m2repository,\ + extra-google-play_apk_expansion,extra-google-play_billing,extra-google-play_licensing" +fi + +EXPORT_VAL="export ANDROID_HOME=$ANDROID_SDK_PATH" +if ! grep -q "^$EXPORT_VAL" $BASH_RC; then + echo $EXPORT_VAL >> ~/.bashrc +fi + + +EXPORT_VAL="export ANDROID_NDK_ROOT=$ANDROID_NDK_PATH" +if ! grep -q "^$EXPORT_VAL" $BASH_RC; then + echo $EXPORT_VAL >> ~/.bashrc +fi + +EXPORT_VAL="export PATH=$PATH:$ANDROID_SDK_PATH/tools" +if ! grep -q "^export PATH=.*$ANDROID_SDK_PATH/tools.*" $BASH_RC; then + echo $EXPORT_VAL >> ~/.bashrc +fi + +echo +echo "Done!" +echo \ No newline at end of file diff --git a/misc/dist/html_fs/godotfs.js b/misc/dist/html_fs/godotfs.js new file mode 100644 index 0000000000..2c59344cf5 --- /dev/null +++ b/misc/dist/html_fs/godotfs.js @@ -0,0 +1,149 @@ + +var Module; +if (typeof Module === 'undefined') Module = eval('(function() { try { return Module || {} } catch(e) { return {} } })()'); +if (!Module.expectedDataFileDownloads) { + Module.expectedDataFileDownloads = 0; + Module.finishedDataFileDownloads = 0; +} +Module.expectedDataFileDownloads++; +(function() { + + function fetchRemotePackage(packageName, callback, errback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', packageName, true); + xhr.responseType = 'arraybuffer'; + xhr.onprogress = function(event) { + var url = packageName; + if (event.loaded && event.total) { + if (!xhr.addedTotal) { + xhr.addedTotal = true; + if (!Module.dataFileDownloads) Module.dataFileDownloads = {}; + Module.dataFileDownloads[url] = { + loaded: event.loaded, + total: event.total + }; + } else { + Module.dataFileDownloads[url].loaded = event.loaded; + } + var total = 0; + var loaded = 0; + var num = 0; + for (var download in Module.dataFileDownloads) { + var data = Module.dataFileDownloads[download]; + total += data.total; + loaded += data.loaded; + num++; + } + total = Math.ceil(total * Module.expectedDataFileDownloads/num); + if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')'); + } else if (!Module.dataFileDownloads) { + if (Module['setStatus']) Module['setStatus']('Downloading data...'); + } + }; + xhr.onload = function(event) { + var packageData = xhr.response; + callback(packageData); + }; + xhr.send(null); + }; + + function handleError(error) { + console.error('package error:', error); + }; + + var fetched = null, fetchedCallback = null; + fetchRemotePackage('data.pck', function(data) { + if (fetchedCallback) { + fetchedCallback(data); + fetchedCallback = null; + } else { + fetched = data; + } + }, handleError); + + function runWithFS() { + +function assert(check, msg) { + if (!check) throw msg + new Error().stack; +} + + function DataRequest(start, end, crunched, audio) { + this.start = start; + this.end = end; + this.crunched = crunched; + this.audio = audio; + } + DataRequest.prototype = { + requests: {}, + open: function(mode, name) { + this.name = name; + this.requests[name] = this; + Module['addRunDependency']('fp ' + this.name); + }, + send: function() {}, + onload: function() { + var byteArray = this.byteArray.subarray(this.start, this.end); + + this.finish(byteArray); + + }, + finish: function(byteArray) { + var that = this; + Module['FS_createPreloadedFile'](this.name, null, byteArray, true, true, function() { + Module['removeRunDependency']('fp ' + that.name); + }, function() { + if (that.audio) { + Module['removeRunDependency']('fp ' + that.name); // workaround for chromium bug 124926 (still no audio with this, but at least we don't hang) + } else { + Module.printErr('Preloading file ' + that.name + ' failed'); + } + }, false, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change + this.requests[this.name] = null; + }, + }; + new DataRequest(0, $DPLEN, 0, 0).open('GET', '/data.pck'); + + var PACKAGE_PATH; + if (typeof window === 'object') { + PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/'); + } else { + // worker + PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/'); + } + var PACKAGE_NAME = 'data.pck'; + var REMOTE_PACKAGE_NAME = 'data.pck'; + var PACKAGE_UUID = 'b39761ce-0348-4959-9b16-302ed8e1592e'; + + function processPackageData(arrayBuffer) { + Module.finishedDataFileDownloads++; + assert(arrayBuffer, 'Loading data file failed.'); + var byteArray = new Uint8Array(arrayBuffer); + var curr; + + // Reuse the bytearray from the XHR as the source for file reads. + DataRequest.prototype.byteArray = byteArray; + DataRequest.prototype.requests["/data.pck"].onload(); + Module['removeRunDependency']('datafile_datapack'); + + }; + Module['addRunDependency']('datafile_datapack'); + + if (!Module.preloadResults) Module.preloadResults = {}; + + Module.preloadResults[PACKAGE_NAME] = {fromCache: false}; + if (fetched) { + processPackageData(fetched); + fetched = null; + } else { + fetchedCallback = processPackageData; + } + + } + if (Module['calledRun']) { + runWithFS(); + } else { + if (!Module['preRun']) Module['preRun'] = []; + Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it + } + +})(); diff --git a/misc/dist/ios_xcode/godot_xcode/data.pck b/misc/dist/ios_xcode/godot_xcode/data.pck new file mode 100644 index 0000000000..e69de29bb2 diff --git a/misc/dist/ios_xcode/godot_xcode/godot_debug.iphone b/misc/dist/ios_xcode/godot_xcode/godot_debug.iphone new file mode 100755 index 0000000000..e69de29bb2 diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios.xcodeproj/project.pbxproj b/misc/dist/ios_xcode/godot_xcode/godot_ios.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..bdba8488c8 --- /dev/null +++ b/misc/dist/ios_xcode/godot_xcode/godot_ios.xcodeproj/project.pbxproj @@ -0,0 +1,370 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + D07CD43F1C5D573600B7FB28 /* Default-568h@2x~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4331C5D573600B7FB28 /* Default-568h@2x~iphone.png */; }; + D07CD4401C5D573600B7FB28 /* Default-667h.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4341C5D573600B7FB28 /* Default-667h.png */; }; + D07CD4411C5D573600B7FB28 /* Default-667h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4351C5D573600B7FB28 /* Default-667h@2x.png */; }; + D07CD4421C5D573600B7FB28 /* Default-736h.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4361C5D573600B7FB28 /* Default-736h.png */; }; + D07CD4431C5D573600B7FB28 /* Default-736h@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4371C5D573600B7FB28 /* Default-736h@3x.png */; }; + D07CD4441C5D573600B7FB28 /* Default-Landscape-736h.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4381C5D573600B7FB28 /* Default-Landscape-736h.png */; }; + D07CD4451C5D573600B7FB28 /* Default-Landscape@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4391C5D573600B7FB28 /* Default-Landscape@2x~ipad.png */; }; + D07CD4461C5D573600B7FB28 /* Default-Landscape~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD43A1C5D573600B7FB28 /* Default-Landscape~ipad.png */; }; + D07CD4471C5D573600B7FB28 /* Default-Portrait@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD43B1C5D573600B7FB28 /* Default-Portrait@2x~ipad.png */; }; + D07CD4481C5D573600B7FB28 /* Default-Portrait~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD43C1C5D573600B7FB28 /* Default-Portrait~ipad.png */; }; + D07CD4491C5D573600B7FB28 /* Default@2x~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD43D1C5D573600B7FB28 /* Default@2x~iphone.png */; }; + D07CD44A1C5D573600B7FB28 /* Default~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD43E1C5D573600B7FB28 /* Default~iphone.png */; }; + D07CD44E1C5D589C00B7FB28 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D07CD44D1C5D589C00B7FB28 /* Images.xcassets */; }; + D0BCFE3818AEBDA2004A7AAE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3718AEBDA2004A7AAE /* Foundation.framework */; }; + D0BCFE3A18AEBDA2004A7AAE /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3918AEBDA2004A7AAE /* CoreGraphics.framework */; }; + D0BCFE3C18AEBDA2004A7AAE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3B18AEBDA2004A7AAE /* UIKit.framework */; }; + D0BCFE3E18AEBDA2004A7AAE /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3D18AEBDA2004A7AAE /* GLKit.framework */; }; + D0BCFE4018AEBDA2004A7AAE /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */; }; + D0BCFE4618AEBDA2004A7AAE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */; }; + D0BCFE7818AEBFEB004A7AAE /* data.pck in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE7718AEBFEB004A7AAE /* data.pck */; }; + D0BCFE7A18AEC06A004A7AAE /* godot_opt.iphone in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE7918AEC06A004A7AAE /* godot_opt.iphone */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D07CD4331C5D573600B7FB28 /* Default-568h@2x~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x~iphone.png"; sourceTree = ""; }; + D07CD4341C5D573600B7FB28 /* Default-667h.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-667h.png"; sourceTree = ""; }; + D07CD4351C5D573600B7FB28 /* Default-667h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-667h@2x.png"; sourceTree = ""; }; + D07CD4361C5D573600B7FB28 /* Default-736h.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-736h.png"; sourceTree = ""; }; + D07CD4371C5D573600B7FB28 /* Default-736h@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-736h@3x.png"; sourceTree = ""; }; + D07CD4381C5D573600B7FB28 /* Default-Landscape-736h.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Landscape-736h.png"; sourceTree = ""; }; + D07CD4391C5D573600B7FB28 /* Default-Landscape@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Landscape@2x~ipad.png"; sourceTree = ""; }; + D07CD43A1C5D573600B7FB28 /* Default-Landscape~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Landscape~ipad.png"; sourceTree = ""; }; + D07CD43B1C5D573600B7FB28 /* Default-Portrait@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait@2x~ipad.png"; sourceTree = ""; }; + D07CD43C1C5D573600B7FB28 /* Default-Portrait~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait~ipad.png"; sourceTree = ""; }; + D07CD43D1C5D573600B7FB28 /* Default@2x~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x~iphone.png"; sourceTree = ""; }; + D07CD43E1C5D573600B7FB28 /* Default~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default~iphone.png"; sourceTree = ""; }; + D07CD44D1C5D589C00B7FB28 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + D0BCFE3418AEBDA2004A7AAE /* godot_ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = godot_ios.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D0BCFE3718AEBDA2004A7AAE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D0BCFE3918AEBDA2004A7AAE /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + D0BCFE3B18AEBDA2004A7AAE /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D0BCFE3D18AEBDA2004A7AAE /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; }; + D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + D0BCFE4318AEBDA2004A7AAE /* godot_ios-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "godot_ios-Info.plist"; sourceTree = ""; }; + D0BCFE4518AEBDA2004A7AAE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + D0BCFE4918AEBDA2004A7AAE /* godot_ios-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "godot_ios-Prefix.pch"; sourceTree = ""; }; + D0BCFE6118AEBDA3004A7AAE /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + D0BCFE7718AEBFEB004A7AAE /* data.pck */ = {isa = PBXFileReference; lastKnownFileType = text; path = data.pck; sourceTree = ""; }; + D0BCFE7918AEC06A004A7AAE /* godot_opt.iphone */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = godot_opt.iphone; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D0BCFE3118AEBDA2004A7AAE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D0BCFE4018AEBDA2004A7AAE /* OpenGLES.framework in Frameworks */, + D0BCFE3A18AEBDA2004A7AAE /* CoreGraphics.framework in Frameworks */, + D0BCFE3C18AEBDA2004A7AAE /* UIKit.framework in Frameworks */, + D0BCFE3E18AEBDA2004A7AAE /* GLKit.framework in Frameworks */, + D0BCFE3818AEBDA2004A7AAE /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D0BCFE2B18AEBDA2004A7AAE = { + isa = PBXGroup; + children = ( + D0BCFE7918AEC06A004A7AAE /* godot_opt.iphone */, + D0BCFE7718AEBFEB004A7AAE /* data.pck */, + D0BCFE4118AEBDA2004A7AAE /* godot_ios */, + D0BCFE3618AEBDA2004A7AAE /* Frameworks */, + D0BCFE3518AEBDA2004A7AAE /* Products */, + ); + sourceTree = ""; + }; + D0BCFE3518AEBDA2004A7AAE /* Products */ = { + isa = PBXGroup; + children = ( + D0BCFE3418AEBDA2004A7AAE /* godot_ios.app */, + ); + name = Products; + sourceTree = ""; + }; + D0BCFE3618AEBDA2004A7AAE /* Frameworks */ = { + isa = PBXGroup; + children = ( + D0BCFE3718AEBDA2004A7AAE /* Foundation.framework */, + D0BCFE3918AEBDA2004A7AAE /* CoreGraphics.framework */, + D0BCFE3B18AEBDA2004A7AAE /* UIKit.framework */, + D0BCFE3D18AEBDA2004A7AAE /* GLKit.framework */, + D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */, + D0BCFE6118AEBDA3004A7AAE /* XCTest.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D0BCFE4118AEBDA2004A7AAE /* godot_ios */ = { + isa = PBXGroup; + children = ( + D07CD4331C5D573600B7FB28 /* Default-568h@2x~iphone.png */, + D07CD4341C5D573600B7FB28 /* Default-667h.png */, + D07CD4351C5D573600B7FB28 /* Default-667h@2x.png */, + D07CD4361C5D573600B7FB28 /* Default-736h.png */, + D07CD4371C5D573600B7FB28 /* Default-736h@3x.png */, + D07CD4381C5D573600B7FB28 /* Default-Landscape-736h.png */, + D07CD4391C5D573600B7FB28 /* Default-Landscape@2x~ipad.png */, + D07CD43A1C5D573600B7FB28 /* Default-Landscape~ipad.png */, + D07CD43B1C5D573600B7FB28 /* Default-Portrait@2x~ipad.png */, + D07CD43C1C5D573600B7FB28 /* Default-Portrait~ipad.png */, + D07CD43D1C5D573600B7FB28 /* Default@2x~iphone.png */, + D07CD43E1C5D573600B7FB28 /* Default~iphone.png */, + D07CD44D1C5D589C00B7FB28 /* Images.xcassets */, + D0BCFE4218AEBDA2004A7AAE /* Supporting Files */, + ); + path = godot_ios; + sourceTree = ""; + }; + D0BCFE4218AEBDA2004A7AAE /* Supporting Files */ = { + isa = PBXGroup; + children = ( + D0BCFE4318AEBDA2004A7AAE /* godot_ios-Info.plist */, + D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */, + D0BCFE4918AEBDA2004A7AAE /* godot_ios-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + D0BCFE3318AEBDA2004A7AAE /* godot_ios */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0BCFE7118AEBDA3004A7AAE /* Build configuration list for PBXNativeTarget "godot_ios" */; + buildPhases = ( + D0BCFE3018AEBDA2004A7AAE /* Sources */, + D0BCFE3118AEBDA2004A7AAE /* Frameworks */, + D0BCFE3218AEBDA2004A7AAE /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = godot_ios; + productName = godot_ios; + productReference = D0BCFE3418AEBDA2004A7AAE /* godot_ios.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D0BCFE2C18AEBDA2004A7AAE /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + ORGANIZATIONNAME = GodotEngine; + }; + buildConfigurationList = D0BCFE2F18AEBDA2004A7AAE /* Build configuration list for PBXProject "godot_ios" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = D0BCFE2B18AEBDA2004A7AAE; + productRefGroup = D0BCFE3518AEBDA2004A7AAE /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D0BCFE3318AEBDA2004A7AAE /* godot_ios */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D0BCFE3218AEBDA2004A7AAE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D07CD4471C5D573600B7FB28 /* Default-Portrait@2x~ipad.png in Resources */, + D07CD44E1C5D589C00B7FB28 /* Images.xcassets in Resources */, + D0BCFE7818AEBFEB004A7AAE /* data.pck in Resources */, + D07CD4461C5D573600B7FB28 /* Default-Landscape~ipad.png in Resources */, + D07CD4411C5D573600B7FB28 /* Default-667h@2x.png in Resources */, + D07CD4401C5D573600B7FB28 /* Default-667h.png in Resources */, + D07CD4431C5D573600B7FB28 /* Default-736h@3x.png in Resources */, + D07CD43F1C5D573600B7FB28 /* Default-568h@2x~iphone.png in Resources */, + D07CD4451C5D573600B7FB28 /* Default-Landscape@2x~ipad.png in Resources */, + D07CD44A1C5D573600B7FB28 /* Default~iphone.png in Resources */, + D07CD4491C5D573600B7FB28 /* Default@2x~iphone.png in Resources */, + D07CD4441C5D573600B7FB28 /* Default-Landscape-736h.png in Resources */, + D07CD4421C5D573600B7FB28 /* Default-736h.png in Resources */, + D0BCFE4618AEBDA2004A7AAE /* InfoPlist.strings in Resources */, + D0BCFE7A18AEC06A004A7AAE /* godot_opt.iphone in Resources */, + D07CD4481C5D573600B7FB28 /* Default-Portrait~ipad.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D0BCFE3018AEBDA2004A7AAE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + D0BCFE4518AEBDA2004A7AAE /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + D0BCFE6F18AEBDA3004A7AAE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + D0BCFE7018AEBDA3004A7AAE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + D0BCFE7218AEBDA3004A7AAE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "godot_ios/godot_ios-Prefix.pch"; + INFOPLIST_FILE = "godot_ios/godot_ios-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + PRODUCT_BUNDLE_IDENTIFIER = org.godotengine.game.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = "armv7 armv7s"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + D0BCFE7318AEBDA3004A7AAE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Distribution: Ariel Manzur (BYC57PA2Q5)"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "godot_ios/godot_ios-Prefix.pch"; + INFOPLIST_FILE = "godot_ios/godot_ios-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + PRODUCT_BUNDLE_IDENTIFIER = org.godotengine.game.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = "armv7 armv7s"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D0BCFE2F18AEBDA2004A7AAE /* Build configuration list for PBXProject "godot_ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0BCFE6F18AEBDA3004A7AAE /* Debug */, + D0BCFE7018AEBDA3004A7AAE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D0BCFE7118AEBDA3004A7AAE /* Build configuration list for PBXNativeTarget "godot_ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0BCFE7218AEBDA3004A7AAE /* Debug */, + D0BCFE7318AEBDA3004A7AAE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D0BCFE2C18AEBDA2004A7AAE /* Project object */; +} diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/misc/dist/ios_xcode/godot_xcode/godot_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..3c9ba38bbe --- /dev/null +++ b/misc/dist/ios_xcode/godot_xcode/godot_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-568h@2x~iphone.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-568h@2x~iphone.png new file mode 100644 index 0000000000..1d5e472665 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-568h@2x~iphone.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-667h.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-667h.png new file mode 100644 index 0000000000..b13a399c83 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-667h.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-667h@2x.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-667h@2x.png new file mode 100644 index 0000000000..b51598fed0 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-667h@2x.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-736h.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-736h.png new file mode 100644 index 0000000000..8c44edbccd Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-736h.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-736h@3x.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-736h@3x.png new file mode 100644 index 0000000000..33847ac136 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-736h@3x.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape-736h.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape-736h.png new file mode 100644 index 0000000000..2a025b745b Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape-736h.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape@2x~ipad.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape@2x~ipad.png new file mode 100644 index 0000000000..7099f3e18d Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape@2x~ipad.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape~ipad.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape~ipad.png new file mode 100644 index 0000000000..4a761c339a Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Landscape~ipad.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Portrait@2x~ipad.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Portrait@2x~ipad.png new file mode 100644 index 0000000000..b09cf21186 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Portrait@2x~ipad.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Portrait~ipad.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Portrait~ipad.png new file mode 100644 index 0000000000..fa698eb70c Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default-Portrait~ipad.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default@2x~iphone.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default@2x~iphone.png new file mode 100644 index 0000000000..ddf2861f4d Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default@2x~iphone.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Default~iphone.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default~iphone.png new file mode 100644 index 0000000000..c485a33b03 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Default~iphone.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Contents.json b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..a458b67873 --- /dev/null +++ b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,128 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "1x", + "filename": "Icon-29.png", + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x", + "filename": "Icon-58.png", + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x", + "filename": "icon-87.png", + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x", + "filename": "Icon-80.png", + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x", + "filename": "Icon-120.png", + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "1x", + "filename": "Icon-57.png", + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "2x", + "filename": "Icon-114.png", + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x", + "filename": "Icon-120.png", + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x", + "filename": "Icon-180.png", + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x", + "filename": "Icon-29.png", + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x", + "filename": "Icon-58.png", + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x", + "filename": "Icon-40.png", + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x", + "filename": "Icon-80.png", + }, + { + "idiom" : "ipad", + "size" : "50x50", + "scale" : "1x", + "filename": "Icon-50.png", + }, + { + "idiom" : "ipad", + "size" : "50x50", + "scale" : "2x", + "filename": "Icon-100.png", + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "1x", + "filename": "Icon-72.png", + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "2x", + "filename": "Icon-144.png", + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-76.png", + "scale" : "1x", + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x", + "filename": "Icon-152.png", + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x", + "filename": "icon-167.png", + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-100.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-100.png new file mode 100644 index 0000000000..165f4423b3 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-100.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-114.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-114.png new file mode 100644 index 0000000000..2e205e920c Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-114.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-120.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-120.png new file mode 100644 index 0000000000..6245f83f48 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-120.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-144.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-144.png new file mode 100644 index 0000000000..7b24e01bc6 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-144.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-152.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-152.png new file mode 100644 index 0000000000..344b470fa3 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-152.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-180.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-180.png new file mode 100644 index 0000000000..0dcebbc3f2 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-180.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-29.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-29.png new file mode 100644 index 0000000000..9ae94e9aaf Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-29.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-40.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-40.png new file mode 100644 index 0000000000..569f24df91 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-40.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-50.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-50.png new file mode 100644 index 0000000000..9e69ed3121 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-50.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-57.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-57.png new file mode 100644 index 0000000000..b970fa3067 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-57.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-58.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-58.png new file mode 100644 index 0000000000..6097a6c73b Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-58.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-60.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-60.png new file mode 100644 index 0000000000..21b9622eb6 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-60.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-72.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-72.png new file mode 100644 index 0000000000..34dea8e6ad Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-72.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-76.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-76.png new file mode 100644 index 0000000000..f72eb0b345 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-76.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-80.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-80.png new file mode 100644 index 0000000000..793c9b1f5f Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-80.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-167.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-167.png new file mode 100644 index 0000000000..7cd0e054ab Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-167.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-87.png b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-87.png new file mode 100644 index 0000000000..e9b2429754 Binary files /dev/null and b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-87.png differ diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/sizes b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/sizes new file mode 100644 index 0000000000..e328a62cb6 --- /dev/null +++ b/misc/dist/ios_xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/sizes @@ -0,0 +1,17 @@ +100 +114 +120 +144 +152 +167 +180 +29 +40 +50 +57 +58 +60 +72 +76 +80 +87 diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/en.lproj/InfoPlist.strings b/misc/dist/ios_xcode/godot_xcode/godot_ios/en.lproj/InfoPlist.strings new file mode 100644 index 0000000000..477b28ff8f --- /dev/null +++ b/misc/dist/ios_xcode/godot_xcode/godot_ios/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/godot_ios-Info.plist b/misc/dist/ios_xcode/godot_xcode/godot_ios/godot_ios-Info.plist new file mode 100644 index 0000000000..f97b0fca36 --- /dev/null +++ b/misc/dist/ios_xcode/godot_xcode/godot_ios/godot_ios-Info.plist @@ -0,0 +1,50 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + Insert Name Here + CFBundleExecutable + godot_opt.iphone + CFBundleIcons + + CFBundleIcons~ipad + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIRequiredDeviceCapabilities + + armv7 + + UIRequiresFullScreen + + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/misc/dist/ios_xcode/godot_xcode/godot_ios/main.m b/misc/dist/ios_xcode/godot_xcode/godot_ios/main.m new file mode 100644 index 0000000000..88b8e60670 --- /dev/null +++ b/misc/dist/ios_xcode/godot_xcode/godot_ios/main.m @@ -0,0 +1,39 @@ +/*************************************************************************/ +/* main.m */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#import + +#import "AppDelegate.h" + +int main(int argc, char * argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/misc/dist/ios_xcode/godot_xcode/godot_opt.iphone b/misc/dist/ios_xcode/godot_xcode/godot_opt.iphone new file mode 100755 index 0000000000..e69de29bb2 diff --git a/misc/dist/osx_template.app/Contents/Info.plist b/misc/dist/osx_template.app/Contents/Info.plist new file mode 100755 index 0000000000..eee787bdaf --- /dev/null +++ b/misc/dist/osx_template.app/Contents/Info.plist @@ -0,0 +1,39 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + $binary + CFBundleName + $name + CFBundleGetInfoString + $info + CFBundleIconFile + icon.icns + CFBundleIdentifier + $identifier + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleShortVersionString + $short_version + CFBundleSignature + $signature + CFBundleVersion + $version + NSHumanReadableCopyright + $copyright + LSMinimumSystemVersion + 10.9.0 + LSMinimumSystemVersionByArchitecture + + x86_64 + 10.9.0 + + NSHighResolutionCapable + $highres + + \ No newline at end of file diff --git a/misc/dist/osx_template.app/Contents/PkgInfo b/misc/dist/osx_template.app/Contents/PkgInfo new file mode 100644 index 0000000000..6f749b0f37 --- /dev/null +++ b/misc/dist/osx_template.app/Contents/PkgInfo @@ -0,0 +1 @@ +APPL???? diff --git a/misc/dist/osx_template.app/Contents/Resources/icon.icns b/misc/dist/osx_template.app/Contents/Resources/icon.icns new file mode 100644 index 0000000000..375f61437d Binary files /dev/null and b/misc/dist/osx_template.app/Contents/Resources/icon.icns differ diff --git a/misc/dist/osx_tools.app/Contents/Info.plist b/misc/dist/osx_tools.app/Contents/Info.plist new file mode 100755 index 0000000000..4d88e97503 --- /dev/null +++ b/misc/dist/osx_tools.app/Contents/Info.plist @@ -0,0 +1,69 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + Godot + CFBundleName + Godot + CFBundleGetInfoString + (c) 2007-2017 Juan Linietsky, Ariel Manzur + CFBundleIconFile + Godot.icns + CFBundleIdentifier + org.godotengine.godot + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleShortVersionString + 2.2-dev + CFBundleSignature + godot + CFBundleVersion + 2.2-dev + NSHumanReadableCopyright + © 2007-2017 Juan Linietsky, Ariel Manzur + LSMinimumSystemVersion + 10.9.0 + LSMinimumSystemVersionByArchitecture + + x86_64 + 10.9.0 + + NSHighResolutionCapable + + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + scn + SCN + + CFBundleTypeIconFile + Godot.icns + CFBundleTypeMIMETypes + + scene/x-scn + + CFBundleTypeName + Godot Scene + CFBundleTypeOSTypes + + SCN + + CFBundleTypeRole + Editor + LSIsAppleDefaultForType + + LSItemContentTypes + + org.godotengine.scn + + + + + diff --git a/misc/dist/osx_tools.app/Contents/PkgInfo b/misc/dist/osx_tools.app/Contents/PkgInfo new file mode 100644 index 0000000000..6f749b0f37 --- /dev/null +++ b/misc/dist/osx_tools.app/Contents/PkgInfo @@ -0,0 +1 @@ +APPL???? diff --git a/misc/dist/osx_tools.app/Contents/Resources/Godot.icns b/misc/dist/osx_tools.app/Contents/Resources/Godot.icns new file mode 100644 index 0000000000..375f61437d Binary files /dev/null and b/misc/dist/osx_tools.app/Contents/Resources/Godot.icns differ diff --git a/misc/dist/uwp_template/AppxManifest.xml b/misc/dist/uwp_template/AppxManifest.xml new file mode 100644 index 0000000000..d5e653708c --- /dev/null +++ b/misc/dist/uwp_template/AppxManifest.xml @@ -0,0 +1,32 @@ + + + + + + $display_name$ + $publisher_display_name$ + Assets\StoreLogo.png + + + + + + + + + + + + + $name_on_tiles$ + + + $rotation_preference$ + + + + $capabilities_place$ + + + + \ No newline at end of file diff --git a/misc/dist/uwp_template/Assets/SplashScreen.scale-100.png b/misc/dist/uwp_template/Assets/SplashScreen.scale-100.png new file mode 100644 index 0000000000..540bfb1c01 Binary files /dev/null and b/misc/dist/uwp_template/Assets/SplashScreen.scale-100.png differ diff --git a/misc/dist/uwp_template/Assets/Square150x150Logo.scale-100.png b/misc/dist/uwp_template/Assets/Square150x150Logo.scale-100.png new file mode 100644 index 0000000000..6cff663eb5 Binary files /dev/null and b/misc/dist/uwp_template/Assets/Square150x150Logo.scale-100.png differ diff --git a/misc/dist/uwp_template/Assets/Square310x310Logo.scale-100.png b/misc/dist/uwp_template/Assets/Square310x310Logo.scale-100.png new file mode 100644 index 0000000000..12ec232c87 Binary files /dev/null and b/misc/dist/uwp_template/Assets/Square310x310Logo.scale-100.png differ diff --git a/misc/dist/uwp_template/Assets/Square44x44Logo.scale-100.png b/misc/dist/uwp_template/Assets/Square44x44Logo.scale-100.png new file mode 100644 index 0000000000..ad059994ed Binary files /dev/null and b/misc/dist/uwp_template/Assets/Square44x44Logo.scale-100.png differ diff --git a/misc/dist/uwp_template/Assets/Square71x71Logo.scale-100.png b/misc/dist/uwp_template/Assets/Square71x71Logo.scale-100.png new file mode 100644 index 0000000000..b1bf331365 Binary files /dev/null and b/misc/dist/uwp_template/Assets/Square71x71Logo.scale-100.png differ diff --git a/misc/dist/uwp_template/Assets/StoreLogo.scale-100.png b/misc/dist/uwp_template/Assets/StoreLogo.scale-100.png new file mode 100644 index 0000000000..8d7a625c82 Binary files /dev/null and b/misc/dist/uwp_template/Assets/StoreLogo.scale-100.png differ diff --git a/misc/dist/uwp_template/Assets/Wide310x150Logo.scale-100.png b/misc/dist/uwp_template/Assets/Wide310x150Logo.scale-100.png new file mode 100644 index 0000000000..b06f1ad50f Binary files /dev/null and b/misc/dist/uwp_template/Assets/Wide310x150Logo.scale-100.png differ diff --git a/misc/scripts/addheader.py b/misc/scripts/addheader.py new file mode 100644 index 0000000000..056e807c81 --- /dev/null +++ b/misc/scripts/addheader.py @@ -0,0 +1,70 @@ +header = """\ +/*************************************************************************/ +/* $filename */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ +""" + +f = open("files", "rb") + +fname = f.readline() +while (fname != ""): + + fr = open(fname.strip(), "rb") + l = fr.readline() + bc = False + fsingle = fname.strip() + + if (fsingle.find("/") != -1): + fsingle = fsingle[fsingle.rfind("/") + 1:] + rep_fl = "$filename" + rep_fi = fsingle + len_fl = len(rep_fl) + len_fi = len(rep_fi) + if (len_fi < len_fl): + for x in range(len_fl - len_fi): + rep_fi += " " + elif (len_fl < len_fi): + for x in range(len_fi - len_fl): + rep_fl += " " + if (header.find(rep_fl) != -1): + text = header.replace(rep_fl, rep_fi) + else: + text = header.replace("$filename", fsingle) + + while (l != ""): + if ((l.find("//") != 0 and l.find("/*") != 0 and l.strip() != "") or bc): + text += l + bc = True + l = fr.readline() + + fr.close() + fr = open(fname.strip(), "wb") + fr.write(text) + fr.close() + # print(text) + fname = f.readline() diff --git a/misc/scripts/file-hex-array.py b/misc/scripts/file-hex-array.py new file mode 100755 index 0000000000..a6cdfe541f --- /dev/null +++ b/misc/scripts/file-hex-array.py @@ -0,0 +1,56 @@ +import binascii +import os.path +import sys + + +def tof(filepath): + with open(filepath, 'r') as f: + content = f.read() + content = content.replace("0x", "") + content = content.split(',') + for i in range(len(content)): + if len(content[i]) == 1: + content[i] = "0" + content[i] + content = "".join(content) + with open(filepath + ".file", 'wb') as f: + content = f.write(content.decode("hex")) + print(os.path.basename(filepath) + ".file created.") + exit(0) + + +def toa(filepath): + with open(filepath, 'rb') as f: + content = f.read() + content = binascii.hexlify(content) + content = [content[i:i + 2] for i in range(0, len(content), 2)] + content = ",0x".join(content) + content = "0x" + content + content = content.replace("0x00", "0x0") + with open(filepath + ".array", 'w') as f: + content = f.write(content) + print(os.path.basename(filepath) + ".array created.") + exit(0) + + +def usage(): + print("========================================================\n\ +#\n\ +# Usage: python file-hex-array.py [action] [option]\n\ +#\n\ +# Arguments:\n\ +# action ==> toa # convert file to array [option is file path]\n\ +# tof # convert array to file [option is array file path]\n\ +#\n\ +# Example : python file-hex-array.py toa 1.png\n\ +#\n\ +========================================================") + exit(1) + +if len(sys.argv) != 3: + usage() +if sys.argv[1] == "toa" and os.path.isfile(sys.argv[2]): + toa(sys.argv[2]) +elif sys.argv[1] == "tof" and os.path.isfile(sys.argv[2]): + tof(sys.argv[2]) +else: + usage() diff --git a/misc/scripts/make_bmfhdr.py b/misc/scripts/make_bmfhdr.py new file mode 100644 index 0000000000..1d3c40f9c6 --- /dev/null +++ b/misc/scripts/make_bmfhdr.py @@ -0,0 +1,67 @@ + + +import sys + +if (len(sys.argv) != 2): + print("Pass me a .fnt argument!") + +f = open(sys.argv[1], "rb") + +name = sys.argv[1].lower().replace(".fnt", "") + +l = f.readline() + +font_height = 0 +font_ascent = 0 +font_charcount = 0 +font_chars = [] +font_cc = 0 + +while(l != ""): + + fs = l.strip().find(" ") + if (fs == -1): + l = f.readline() + continue + t = l[0:fs] + + dv = l[fs + 1:].split(" ") + d = {} + for x in dv: + if (x.find("=") == -1): + continue + s = x.split("=") + d[s[0]] = s[1] + + if (t == "common"): + font_height = d["lineHeight"] + font_ascent = d["base"] + + if (t == "char"): + font_chars.append(d["id"]) + font_chars.append(d["x"]) + font_chars.append(d["y"]) + font_chars.append(d["width"]) + font_chars.append(d["height"]) + font_chars.append(d["xoffset"]) + font_chars.append(d["yoffset"]) + font_chars.append(d["xadvance"]) + font_cc += 1 + + l = f.readline() + + +print("static const int _bi_font_" + name + "_height=" + str(font_height) + ";") +print("static const int _bi_font_" + name + "_ascent=" + str(font_ascent) + ";") +print("static const int _bi_font_" + name + "_charcount=" + str(font_cc) + ";") +cstr = "static const int _bi_font_" + name + "_characters={" +for i in range(len(font_chars)): + + c = font_chars[i] + if (i > 0): + cstr += ", " + cstr += c + +cstr += ("};") + +print(cstr) diff --git a/misc/scripts/make_glwrapper.py b/misc/scripts/make_glwrapper.py new file mode 100644 index 0000000000..5694d2327e --- /dev/null +++ b/misc/scripts/make_glwrapper.py @@ -0,0 +1,178 @@ +#! /usr/bin/env python +import sys + +if (len(sys.argv) < 2): + print("usage: make_glwrapper.py ") + sys.exit(255) + + +functions = [] +types = [] +constants = [] + +READ_FUNCTIONS = 0 +READ_TYPES = 1 +READ_CONSTANTS = 2 + +read_what = READ_TYPES + +for x in (range(len(sys.argv) - 1)): + f = open(sys.argv[x + 1], "r") + + while(True): + + line = f.readline() + if (line == ""): + break + + line = line.replace("\n", "").strip() + """ + if (line.find("[types]")!=-1): + read_what=READ_TYPES + continue + elif (line.find("[constants]")!=-1): + read=READ_TYPES + continue + elif (line.find("[functions]")!=-1): + read_what=READ_FUNCTIONS + continue + """ + + if (line.find("#define") != -1): + if (line.find("0x") == -1 and line.find("GL_VERSION") == -1): + continue + constants.append(line) + elif (line.find("typedef") != -1): + if (line.find("(") != -1 or line.find(")") != -1 or line.find("ARB") != -1 or line.find("EXT") != -1 or line.find("GL") == -1): + continue + types.append(line) + elif (line.find("APIENTRY") != -1 and line.find("GLAPI") != -1): + + if (line.find("ARB") != -1 or line.find("EXT") != -1 or line.find("NV") != -1): + continue + + line = line.replace("APIENTRY", "") + line = line.replace("GLAPI", "") + + glpos = line.find(" gl") + if (glpos == -1): + + glpos = line.find("\tgl") + if (glpos == -1): + continue + + ret = line[:glpos].strip() + + line = line[glpos:].strip() + namepos = line.find("(") + + if (namepos == -1): + continue + + name = line[:namepos].strip() + line = line[namepos:] + + argpos = line.rfind(")") + if (argpos == -1): + continue + + args = line[1:argpos] + + funcdata = {} + funcdata["ret"] = ret + funcdata["name"] = name + funcdata["args"] = args + + functions.append(funcdata) + print(funcdata) + + +# print(types) +# print(constants) +# print(functions) + + +f = open("glwrapper.h", "w") + +f.write("#ifndef GL_WRAPPER\n") +f.write("#define GL_WRAPPER\n\n\n") + +header_code = """\ +#if defined(__gl_h_) || defined(__GL_H__) +#error gl.h included before glwrapper.h +#endif +#if defined(__glext_h_) || defined(__GLEXT_H_) +#error glext.h included before glwrapper.h +#endif +#if defined(__gl_ATI_h_) +#error glATI.h included before glwrapper.h +#endif + +#define __gl_h_ +#define __GL_H__ +#define __glext_h_ +#define __GLEXT_H_ +#define __gl_ATI_h_ + +#define GL_TRUE 1 +#define GL_FALSE 0 + +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_NONE 0 +#define GL_NO_ERROR 0 + +\n\n +""" + +f.write("#include \n\n\n") + +f.write(header_code) + +f.write("#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n\n") +f.write("#if defined(_WIN32) && !defined(__CYGWIN__)\n") +f.write("#define GLWRP_APIENTRY __stdcall\n") +f.write("#else\n") +f.write("#define GLWRP_APIENTRY \n") +f.write("#endif\n\n") +for x in types: + f.write(x + "\n") + +f.write("\n\n") + +for x in constants: + f.write(x + "\n") + +f.write("\n\n") + +for x in functions: + f.write("extern " + x["ret"] + " GLWRP_APIENTRY (*__wrapper_" + x["name"] + ")(" + x["args"] + ");\n") + f.write("#define " + x["name"] + " __wrapper_" + x["name"] + "\n") + +f.write("\n\n") +f.write("typedef void (*GLWrapperFuncPtr)(void);\n\n") +f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) );\n") + +f.write("#ifdef __cplusplus\n}\n#endif\n") + +f.write("#endif\n\n") + +f = open("glwrapper.c", "w") + +f.write("\n\n") +f.write("#include \"glwrapper.h\"\n") +f.write("\n\n") + +for x in functions: + f.write(x["ret"] + " GLWRP_APIENTRY (*__wrapper_" + x["name"] + ")(" + x["args"] + ")=NULL;\n") + +f.write("\n\n") +f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) ) {\n") +f.write("\n") + +for x in functions: + f.write("\t__wrapper_" + x["name"] + "=(" + x["ret"] + " GLWRP_APIENTRY (*)(" + x["args"] + "))wrapperFunc(\"" + x["name"] + "\");\n") + +f.write("\n\n") +f.write("}\n") +f.write("\n\n") diff --git a/misc/scripts/make_icons.sh b/misc/scripts/make_icons.sh new file mode 100644 index 0000000000..71037cd1c3 --- /dev/null +++ b/misc/scripts/make_icons.sh @@ -0,0 +1,5 @@ +convert -resize 32x32 ../../icon.svg icon32.ico +convert -resize 32x32 ../../icon.svg icon32.icns +for s in 16 24 32 64 96 128 256; do convert -resize ${s}x$s ../../icon.svg icon$s.png; done +zip icons.zip icon*.png +rm icon*.png diff --git a/misc/scripts/makeargs.py b/misc/scripts/makeargs.py new file mode 100644 index 0000000000..2cd47ae087 --- /dev/null +++ b/misc/scripts/makeargs.py @@ -0,0 +1,82 @@ + +text = """ +#define FUNC$numR(m_r,m_func,$argt)\\ + virtual m_r m_func($argtp) { \\ + if (Thread::get_caller_ID()!=server_thread) {\\ + m_r ret;\\ + command_queue.push_and_ret( visual_server, &VisualServer::m_func,$argp,&ret);\\ + return ret;\\ + } else {\\ + return visual_server->m_func($argp);\\ + }\\ + } + +#define FUNC$numRC(m_r,m_func,$argt)\\ + virtual m_r m_func($argtp) const { \\ + if (Thread::get_caller_ID()!=server_thread) {\\ + m_r ret;\\ + command_queue.push_and_ret( visual_server, &VisualServer::m_func,$argp,&ret);\\ + return ret;\\ + } else {\\ + return visual_server->m_func($argp);\\ + }\\ + } + + +#define FUNC$numS(m_func,$argt)\\ + virtual void m_func($argtp) { \\ + if (Thread::get_caller_ID()!=server_thread) {\\ + command_queue.push_and_sync( visual_server, &VisualServer::m_func,$argp);\\ + } else {\\ + visual_server->m_func($argp);\\ + }\\ + } + +#define FUNC$numSC(m_func,$argt)\\ + virtual void m_func($argtp) const { \\ + if (Thread::get_caller_ID()!=server_thread) {\\ + command_queue.push_and_sync( visual_server, &VisualServer::m_func,$argp);\\ + } else {\\ + visual_server->m_func($argp);\\ + }\\ + } + + +#define FUNC$num(m_func,$argt)\\ + virtual void m_func($argtp) { \\ + if (Thread::get_caller_ID()!=server_thread) {\\ + command_queue.push( visual_server, &VisualServer::m_func,$argp);\\ + } else {\\ + visual_server->m_func($argp);\\ + }\\ + } + +#define FUNC$numC(m_func,$argt)\\ + virtual void m_func($argtp) const { \\ + if (Thread::get_caller_ID()!=server_thread) {\\ + command_queue.push( visual_server, &VisualServer::m_func,$argp);\\ + } else {\\ + visual_server->m_func($argp);\\ + }\\ + } + + +""" + + +for i in range(1, 8): + + tp = "" + p = "" + t = "" + for j in range(i): + if (j > 0): + tp += ", " + p += ", " + t += ", " + tp += ("m_arg" + str(j + 1) + " p" + str(j + 1)) + p += ("p" + str(j + 1)) + t += ("m_arg" + str(j + 1)) + + t = text.replace("$argtp", tp).replace("$argp", p).replace("$argt", t).replace("$num", str(i)) + print(t) diff --git a/misc/scripts/memsort.py b/misc/scripts/memsort.py new file mode 100644 index 0000000000..fb636b0f78 --- /dev/null +++ b/misc/scripts/memsort.py @@ -0,0 +1,35 @@ + +import sys + +arg = "memdump.txt" + +if (len(sys.argv) > 1): + arg = sys.argv[1] + +f = open(arg, "rb") + + +l = f.readline() + + +sum = {} +cnt = {} + + +while(l != ""): + + s = l.split("-") + amount = int(s[1]) + what = s[2] + if (what in sum): + sum[what] += amount + cnt[what] += 1 + else: + sum[what] = amount + cnt[what] = 1 + + l = f.readline() + + +for x in sum: + print(x.strip() + "(" + str(cnt[x]) + "):\n: " + str(sum[x])) diff --git a/misc/scripts/sort-demos.sh b/misc/scripts/sort-demos.sh new file mode 100644 index 0000000000..2121d78c15 --- /dev/null +++ b/misc/scripts/sort-demos.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# When scanning for demos, the project manager sorts them based on their +# timestamp, i.e. last modification date. This can make for a pretty +# messy output, so this script 'touches' each godot.cfg file in reverse +# alphabetical order to ensure a nice listing. +# +# It's good practice to run it once before packaging demos on the build +# server. + +if [ ! -d "demos" ]; then + echo "Run this script from the root directory where 'demos/' is contained." + exit 1 +fi + +if [ -e demos.list ]; then + rm -f demos.list +fi + +for dir in 2d 3d gui misc viewport; do + find "demos/$dir" -name "godot.cfg" |sort >> demos.list +done +cat demos.list |sort -r > demos_r.list + +while read line; do + touch $line + sleep 0.2 +done < demos_r.list + +#rm -f demos.list demos_r.list diff --git a/misc/scripts/svgs_2_pngs.py b/misc/scripts/svgs_2_pngs.py new file mode 100644 index 0000000000..b24324dcd7 --- /dev/null +++ b/misc/scripts/svgs_2_pngs.py @@ -0,0 +1,137 @@ +# -*- coding: utf-8 -*- + +# Basic exporter for svg icons + +from os import listdir +from os.path import isfile, join, dirname, realpath +import subprocess +import sys + +import rsvg +import cairo + +last_svg_path = None +last_svg_data = None + +SCRIPT_FOLDER = dirname(realpath(__file__)) + '/' +theme_dir_base = SCRIPT_FOLDER + '../../scene/resources/default_theme/' +theme_dir_source = theme_dir_base + 'source/' +icons_dir_base = SCRIPT_FOLDER + '../editor/icons/' +icons_dir_2x = icons_dir_base + '2x/' +icons_dir_source = icons_dir_base + 'source/' + + +def svg_to_png(svg_path, png_path, dpi): + global last_svg_path, last_svg_data + + zoom = int(dpi / 90) + if last_svg_path != svg_path: + last_svg_data = open(svg_path, 'r').read() + last_svg_path = svg_path + svg = rsvg.Handle(data=last_svg_data) + img = cairo.ImageSurface( + cairo.FORMAT_ARGB32, + svg.props.width * zoom, + svg.props.height * zoom + ) + ctx = cairo.Context(img) + ctx.set_antialias(cairo.ANTIALIAS_DEFAULT) + ctx.scale(zoom, zoom) + svg.render_cairo(ctx) + img.write_to_png('%s.png' % png_path) + svg.close() + + +def export_icons(): + svgs_path = icons_dir_source + + file_names = [f for f in listdir(svgs_path) if isfile(join(svgs_path, f))] + + for file_name in file_names: + # name without extensions + name_only = file_name.replace('.svg', '') + + out_icon_names = [name_only] # export to a png with the same file name + theme_out_icon_names = [] + # special cases + if special_icons.has_key(name_only): + special_icon = special_icons[name_only] + if type(special_icon) is dict: + if special_icon.get('avoid_self'): + out_icon_names = [] + if special_icon.has_key('output_names'): + out_icon_names += special_icon['output_names'] + if special_icon.has_key('theme_output_names'): + theme_out_icon_names += special_icon['theme_output_names'] + + source_path = '%s%s.svg' % (svgs_path, name_only) + + for out_icon_name in out_icon_names: + svg_to_png(source_path, icons_dir_base + out_icon_name, 90) + svg_to_png(source_path, icons_dir_2x + out_icon_name, 180) + for theme_out_icon_name in theme_out_icon_names: + svg_to_png(source_path, theme_dir_base + theme_out_icon_name, 90) + + +def export_theme(): + svgs_path = theme_dir_source + file_names = [f for f in listdir(svgs_path) if isfile(join(svgs_path, f))] + + for file_name in file_names: + # name without extensions + name_only = file_name.replace('.svg', '') + + out_icon_names = [name_only] # export to a png with the same file name + # special cases + if theme_icons.has_key(name_only): + special_icon = theme_icons[name_only] + if type(special_icon) is dict: + if special_icon.has_key('output_names'): + out_icon_names += special_icon['output_names'] + + source_path = '%s%s.svg' % (svgs_path, name_only) + + for out_icon_name in out_icon_names: + svg_to_png(source_path, theme_dir_base + out_icon_name, 90) + + +# special cases for icons that will be exported to multiple target pngs or that require transforms. +special_icons = { + 'icon_add_track': dict( + output_names=['icon_add'], + theme_output_names=['icon_add', 'icon_zoom_more'] + ), + 'icon_new': dict(output_names=['icon_file']), + 'icon_animation_tree_player': dict(output_names=['icon_animation_tree']), + 'icon_tool_rotate': dict( + output_names=['icon_reload'], + theme_output_names=['icon_reload'] + ), + 'icon_multi_edit': dict(output_names=['icon_multi_node_edit']), + 'icon_folder': dict( + output_names=['icon_load', 'icon_open'], + theme_output_names=['icon_folder'] + ), + 'icon_file_list': dict(output_names=['icon_enum']), + 'icon_collision_2d': dict(output_names=['icon_collision_polygon_2d', 'icon_polygon_2d']), + 'icon_class_list': dict(output_names=['icon_filesystem']), + 'icon_color_ramp': dict(output_names=['icon_graph_color_ramp']), + 'icon_translation': dict(output_names=['icon_p_hash_translation']), + 'icon_shader': dict(output_names=['icon_shader_material', 'icon_material_shader']), + 'icon_canvas_item_shader_graph': dict(output_names=['icon_material_shader_graph']), + + 'icon_color_pick': dict(theme_output_names=['icon_color_pick'], avoid_self=True), + 'icon_play': dict(theme_output_names=['icon_play']), + 'icon_stop': dict(theme_output_names=['icon_stop']), + 'icon_zoom_less': dict(theme_output_names=['icon_zoom_less'], avoid_self=True), + 'icon_zoom_reset': dict(theme_output_names=['icon_zoom_reset'], avoid_self=True), + 'icon_snap': dict(theme_output_names=['icon_snap']) +} + +theme_icons = { + 'icon_close': dict(output_names=['close', 'close_hl']), + 'tab_menu': dict(output_names=['tab_menu_hl']) +} + +export_icons() +export_theme() -- cgit v1.2.3