Skip to content

Commit ac8fa31

Browse files
committed
Updated README. Release scripts.
1 parent a3a4f90 commit ac8fa31

File tree

4 files changed

+150
-12
lines changed

4 files changed

+150
-12
lines changed

README.md

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,49 @@
11
# Godot iOS plugins
22

33

4-
## Building a `.a` library
4+
## Instructions
5+
6+
* Clone this repository and it's submodules:
7+
```
8+
git clone --recurse-submodules https://github.com/godotengine/godot-ios-plugins
9+
```
10+
You might require to update `godot` submodule in case you require latest (unreleased) Godot changes. To do this run:
11+
```
12+
cd godot
13+
git fetch
14+
git checkout origin/<branch you want to use>
15+
```
16+
17+
* Alternatively you can use pre-extracted Godot headers that will be provided with release tag at [Releases page](https://github.com/godotengine/godot-ios-plugins/releases).
18+
To do this clone this repo without submodules:
19+
```
20+
git clone https://github.com/godotengine/godot-ios-plugins
21+
```
22+
Then place extracted Godot headers in `godot` directory.
23+
If you choose this option you can skip next step to genarate of Godot headers.
24+
25+
* To generate Godot headers you need to run compilation command inside `godot` submodule directory.
26+
Example:
27+
```
28+
scons platform=iphone target=debug
29+
```
30+
You don't have to wait for full engine compilation as header files are generated first, so once an actual compilation starts you can stop this command.
31+
32+
* Running
33+
```
34+
scons target=<debug|release|release_debug> arch=<arch> simulator=<no|yes> plugin=<plugin_name> version=<3.2|4.0>
35+
```
36+
will generate `.a` static library for chosen target.
37+
Do note, that Godot's default `debug` export template is compiled with `release_debug` target.
538

6-
* Use submodule to pull required Godot version into `godot` folder. (`master` branch for `4.0` and `3.2` branch for `3.2` version)
7-
Alternatively you can place a Godot's header files including generated ones at `godot` folder.
8-
You can extract headers from Godot's source manually or by using `extract_headers.sh` script from `scripts` folder.
39+
## Building a `.a` library
940

10-
* Run `scons target=<debug|release|release_debug> arch=<arch> simulator=<no|yes> plugin=<plugin_name> version=<3.2|4.0>` to compile the plugin you need for specific version of Godot.
11-
You can also use `./scripts/generate_xcframework.sh <plugin_name> <debug|release|release_debug> <godot_version>` to generate fat static library with specific configuration.
41+
* Run `./scripts/generate_static_library.sh <plugin_name> <debug|release|release_debug> <godot_version>` to generate `fat` static library with specific configuration.
1242

1343
* The result `.a` binary will be stored in `bin` folder.
1444

1545
## Building a `.xcframework` library
1646

17-
* Use submodule to pull required Godot version into `godot` folder. (`master` branch for `4.0` and `3.2` branch for `3.2` version)
18-
Alternatively you can place a Godot's header files including generated ones at `godot` folder.
19-
You can extract headers from Godot's source manually or by using `extract_headers.sh` script from `scripts` folder.
20-
21-
* Run `./scripts/generate_xcframework.sh <plugin_name> <debug|release|release_debug> <godot_version>`
47+
* Run `./scripts/generate_xcframework.sh <plugin_name> <debug|release|release_debug> <godot_version>` to generate `xcframework` with specific configuration. `xcframework` allows plugin to support both `arm64` device and `arm64` simulator.
2248

2349
* The result `.xcframework` will be stored in `bin` folder as well as intermidiate `.a` binaries.

godot

Submodule godot updated 100 files

scripts/release_static_library.sh

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/bin/bash
2+
3+
# Compile GameCenter
4+
5+
./scripts/generate_static_library.sh gamecenter release $1
6+
./scripts/generate_static_library.sh gamecenter release_debug $1
7+
mv ./bin/gamecenter.release_debug.a ./bin/gamecenter.debug.a
8+
9+
# Compile InAppStore
10+
11+
./scripts/generate_static_library.sh inappstore release $1
12+
./scripts/generate_static_library.sh inappstore release_debug $1
13+
mv ./bin/inappstore.release_debug.a ./bin/inappstore.debug.a
14+
15+
# Compile iCloud
16+
17+
./scripts/generate_static_library.sh icloud release $1
18+
./scripts/generate_static_library.sh icloud release_debug $1
19+
mv ./bin/icloud.release_debug.a ./bin/icloud.debug.a
20+
21+
# Compile Camera
22+
23+
./scripts/generate_static_library.sh camera release $1
24+
./scripts/generate_static_library.sh camera release_debug $1
25+
mv ./bin/camera.release_debug.a ./bin/camera.debug.a
26+
27+
# Compile ARKit
28+
29+
./scripts/generate_static_library.sh arkit release $1
30+
./scripts/generate_static_library.sh arkit release_debug $1
31+
mv ./bin/arkit.release_debug.a ./bin/arkit.debug.a
32+
33+
# Move to release folder
34+
35+
rm -rf ./bin/release
36+
mkdir ./bin/release
37+
38+
# Move GameCenter
39+
mkdir ./bin/release/gamecenter
40+
mv ./bin/gamecenter.{release,debug}.a ./bin/release/gamecenter
41+
42+
# Move InAppStore
43+
mkdir ./bin/release/inappstore
44+
mv ./bin/inappstore.{release,debug}.a ./bin/release/inappstore
45+
46+
# Move InAppStore
47+
mkdir ./bin/release/icloud
48+
mv ./bin/icloud.{release,debug}.a ./bin/release/icloud
49+
50+
# Move Camera
51+
mkdir ./bin/release/camera
52+
mv ./bin/camera.{release,debug}.a ./bin/release/camera
53+
54+
# Move ARKit
55+
mkdir ./bin/release/arkit
56+
mv ./bin/arkit.{release,debug}.a ./bin/release/arkit

scripts/release_xcframework.sh

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/bin/bash
2+
3+
# Compile GameCenter
4+
5+
./scripts/generate_xcframework.sh gamecenter release $1
6+
./scripts/generate_xcframework.sh gamecenter release_debug $1
7+
mv ./bin/gamecenter.release_debug.xcframework ./bin/gamecenter.debug.xcframework
8+
9+
# Compile InAppStore
10+
11+
./scripts/generate_xcframework.sh inappstore release $1
12+
./scripts/generate_xcframework.sh inappstore release_debug $1
13+
mv ./bin/inappstore.release_debug.xcframework ./bin/inappstore.debug.xcframework
14+
15+
# Compile iCloud
16+
17+
./scripts/generate_xcframework.sh icloud release $1
18+
./scripts/generate_xcframework.sh icloud release_debug $1
19+
mv ./bin/icloud.release_debug.xcframework ./bin/icloud.debug.xcframework
20+
21+
# Compile Camera
22+
23+
./scripts/generate_xcframework.sh camera release $1
24+
./scripts/generate_xcframework.sh camera release_debug $1
25+
mv ./bin/camera.release_debug.xcframework ./bin/camera.debug.xcframework
26+
27+
# Compile ARKit
28+
29+
./scripts/generate_xcframework.sh arkit release $1
30+
./scripts/generate_xcframework.sh arkit release_debug $1
31+
mv ./bin/arkit.release_debug.xcframework ./bin/arkit.debug.xcframework
32+
33+
# Move to release folder
34+
35+
rm -rf ./bin/release
36+
mkdir ./bin/release
37+
38+
# Move GameCenter
39+
mkdir ./bin/release/gamecenter
40+
mv ./bin/gamecenter.{release,debug}.xcframework ./bin/release/gamecenter
41+
42+
# Move InAppStore
43+
mkdir ./bin/release/icloud
44+
mv ./bin/icloud.{release,debug}.xcframework ./bin/release/icloud
45+
46+
# Move InAppStore
47+
mkdir ./bin/release/inappstore
48+
mv ./bin/inappstore.{release,debug}.xcframework ./bin/release/inappstore
49+
50+
# Move Camera
51+
mkdir ./bin/release/camera
52+
mv ./bin/camera.{release,debug}.xcframework ./bin/release/camera
53+
54+
# Move ARKit
55+
mkdir ./bin/release/arkit
56+
mv ./bin/arkit.{release,debug}.xcframework ./bin/release/arkit

0 commit comments

Comments
 (0)