summaryrefslogtreecommitdiff
path: root/doc/classes/EditorExportPlugin.xml
blob: 8aa2db2cf80c1e75c1f6b0a4ed97d5119d2ce607 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorExportPlugin" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		A script that is executed when exporting the project.
	</brief_description>
	<description>
		[EditorExportPlugin]s are automatically invoked whenever the user exports the project. Their most common use is to determine what files are being included in the exported project. For each plugin, [method _export_begin] is called at the beginning of the export process and then [method _export_file] is called for each exported file.
		To use [EditorExportPlugin], register it using the [method EditorPlugin.add_export_plugin] method first.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="_export_begin" qualifiers="virtual">
			<return type="void" />
			<argument index="0" name="features" type="PackedStringArray" />
			<argument index="1" name="is_debug" type="bool" />
			<argument index="2" name="path" type="String" />
			<argument index="3" name="flags" type="int" />
			<description>
				Virtual method to be overridden by the user. It is called when the export starts and provides all information about the export. [code]features[/code] is the list of features for the export, [code]is_debug[/code] is [code]true[/code] for debug builds, [code]path[/code] is the target path for the exported project. [code]flags[/code] is only used when running a runnable profile, e.g. when using native run on Android.
			</description>
		</method>
		<method name="_export_end" qualifiers="virtual">
			<return type="void" />
			<description>
				Virtual method to be overridden by the user. Called when the export is finished.
			</description>
		</method>
		<method name="_export_file" qualifiers="virtual">
			<return type="void" />
			<argument index="0" name="path" type="String" />
			<argument index="1" name="type" type="String" />
			<argument index="2" name="features" type="PackedStringArray" />
			<description>
				Virtual method to be overridden by the user. Called for each exported file, providing arguments that can be used to identify the file. [code]path[/code] is the path of the file, [code]type[/code] is the [Resource] represented by the file (e.g. [PackedScene]) and [code]features[/code] is the list of features for the export.
				Calling [method skip] inside this callback will make the file not included in the export.
			</description>
		</method>
		<method name="add_file">
			<return type="void" />
			<argument index="0" name="path" type="String" />
			<argument index="1" name="file" type="PackedByteArray" />
			<argument index="2" name="remap" type="bool" />
			<description>
				Adds a custom file to be exported. [code]path[/code] is the virtual path that can be used to load the file, [code]file[/code] is the binary data of the file. If [code]remap[/code] is [code]true[/code], file will not be exported, but instead remapped to the given [code]path[/code].
			</description>
		</method>
		<method name="add_ios_bundle_file">
			<return type="void" />
			<argument index="0" name="path" type="String" />
			<description>
				Adds an iOS bundle file from the given [code]path[/code] to the exported project.
			</description>
		</method>
		<method name="add_ios_cpp_code">
			<return type="void" />
			<argument index="0" name="code" type="String" />
			<description>
				Adds a C++ code to the iOS export. The final code is created from the code appended by each active export plugin.
			</description>
		</method>
		<method name="add_ios_embedded_framework">
			<return type="void" />
			<argument index="0" name="path" type="String" />
			<description>
				Adds a dynamic library (*.dylib, *.framework) to Linking Phase in iOS's Xcode project and embeds it into resulting binary.
				[b]Note:[/b] For static libraries (*.a) works in same way as [code]add_ios_framework[/code].
				This method should not be used for System libraries as they are already present on the device.
			</description>
		</method>
		<method name="add_ios_framework">
			<return type="void" />
			<argument index="0" name="path" type="String" />
			<description>
				Adds a static library (*.a) or dynamic library (*.dylib, *.framework) to Linking Phase in iOS's Xcode project.
			</description>
		</method>
		<method name="add_ios_linker_flags">
			<return type="void" />
			<argument index="0" name="flags" type="String" />
			<description>
				Adds linker flags for the iOS export.
			</description>
		</method>
		<method name="add_ios_plist_content">
			<return type="void" />
			<argument index="0" name="plist_content" type="String" />
			<description>
				Adds content for iOS Property List files.
			</description>
		</method>
		<method name="add_ios_project_static_lib">
			<return type="void" />
			<argument index="0" name="path" type="String" />
			<description>
				Adds a static lib from the given [code]path[/code] to the iOS project.
			</description>
		</method>
		<method name="add_osx_plugin_file">
			<return type="void" />
			<argument index="0" name="path" type="String" />
			<description>
				Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] directory of macOS app bundle.
				[b]Note:[/b] This is useful only for macOS exports.
			</description>
		</method>
		<method name="add_shared_object">
			<return type="void" />
			<argument index="0" name="path" type="String" />
			<argument index="1" name="tags" type="PackedStringArray" />
			<argument index="2" name="target" type="String" />
			<description>
				Adds a shared object or a directory containing only shared objects with the given [code]tags[/code] and destination [code]path[/code].
				[b]Note:[/b] In case of macOS exports, those shared objects will be added to [code]Frameworks[/code] directory of app bundle.
				In case of a directory code-sign will error if you place non code object in directory.
			</description>
		</method>
		<method name="skip">
			<return type="void" />
			<description>
				To be called inside [method _export_file]. Skips the current file, so it's not included in the export.
			</description>
		</method>
	</methods>
</class>