-
Notifications
You must be signed in to change notification settings - Fork 1
/
prepare_resources-ios.py
124 lines (100 loc) · 5.34 KB
/
prepare_resources-ios.py
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
#!/usr/bin/python3
# this script will create/update info plist files based on config.h
kAudioUnitType_MusicDevice = "aumu"
kAudioUnitType_MusicEffect = "aumf"
kAudioUnitType_Effect = "aufx"
kAudioUnitType_MIDIProcessor = "aumi"
import plistlib, os, datetime, fileinput, glob, sys, string, shutil
scriptpath = os.path.dirname(os.path.realpath(__file__))
projectpath = os.path.abspath(os.path.join(scriptpath, os.pardir))
IPLUG2_ROOT = "../../.."
sys.path.insert(0, os.path.join(os.getcwd(), IPLUG2_ROOT + '/Scripts'))
from parse_config import parse_config, parse_xcconfig
def main():
if(len(sys.argv) == 2):
if(sys.argv[1] == "app"):
print("Copying resources ...")
dst = os.environ["TARGET_BUILD_DIR"] + "/" + os.environ["UNLOCALIZED_RESOURCES_FOLDER_PATH"]
if os.path.exists(projectpath + "/resources/img/"):
imgs = os.listdir(projectpath + "/resources/img/")
for img in imgs:
print("copying " + img + " to " + dst)
shutil.copy(projectpath + "/resources/img/" + img, dst)
if os.path.exists(projectpath + "/resources/fonts/"):
fonts = os.listdir(projectpath + "/resources/fonts/")
for font in fonts:
print("copying " + font + " to " + dst)
shutil.copy(projectpath + "/resources/fonts/" + font, dst)
config = parse_config(projectpath)
xcconfig = parse_xcconfig(os.path.join(os.getcwd(), IPLUG2_ROOT + '/common-ios.xcconfig'))
CFBundleGetInfoString = config['BUNDLE_NAME'] + " v" + config['FULL_VER_STR'] + " " + config['PLUG_COPYRIGHT_STR']
CFBundleVersion = config['FULL_VER_STR']
CFBundlePackageType = "BNDL"
CSResourcesFileMapped = True
LSMinimumSystemVersion = xcconfig['DEPLOYMENT_TARGET']
print("Processing Info.plist files...")
# AUDIOUNIT v3
if config['PLUG_TYPE'] == 0:
if config['PLUG_DOES_MIDI_IN']:
COMPONENT_TYPE = kAudioUnitType_MusicEffect
else:
COMPONENT_TYPE = kAudioUnitType_Effect
elif config['PLUG_TYPE'] == 1:
COMPONENT_TYPE = kAudioUnitType_MusicDevice
elif config['PLUG_TYPE'] == 2:
COMPONENT_TYPE = kAudioUnitType_MIDIProcessor
if config['PLUG_HAS_UI'] == 1:
NSEXTENSIONPOINTIDENTIFIER = "com.apple.AudioUnit-UI"
else:
NSEXTENSIONPOINTIDENTIFIER = "com.apple.AudioUnit"
plistpath = projectpath + "/resources/" + config['BUNDLE_NAME'] + "-iOS-AUv3-Info.plist"
NSEXTENSIONATTRDICT = dict(
NSExtensionAttributes = dict(AudioComponents = [{}]),
NSExtensionPointIdentifier = NSEXTENSIONPOINTIDENTIFIER
)
with open(plistpath, 'rb') as fp:
auv3 = plistlib.load(fp)
auv3['CFBundleExecutable'] = config['BUNDLE_NAME'] + "AppExtension"
auv3['CFBundleIdentifier'] = "$(PRODUCT_BUNDLE_IDENTIFIER)"
auv3['CFBundleName'] = config['BUNDLE_NAME'] + "AppExtension"
auv3['CFBundleDisplayName'] = config['BUNDLE_NAME'] + "AppExtension"
auv3['CFBundleVersion'] = CFBundleVersion
auv3['CFBundleShortVersionString'] = CFBundleVersion
auv3['CFBundlePackageType'] = "XPC!"
auv3['NSExtension'] = NSEXTENSIONATTRDICT
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'] = [{}]
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['description'] = config['PLUG_NAME']
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['manufacturer'] = config['PLUG_MFR_ID']
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['name'] = config['PLUG_MFR'] + ": " + config['PLUG_NAME']
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['subtype'] = config['PLUG_UNIQUE_ID']
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['type'] = COMPONENT_TYPE
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['version'] = config['PLUG_VERSION_INT']
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['sandboxSafe'] = True
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['tags'] = ["",""]
if config['PLUG_TYPE'] == 1:
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['tags'][0] = "Synth"
else:
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['tags'][0] = "Effects"
if config['PLUG_HAS_UI'] == 1:
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['tags'][1] = "size:{" + str(config['PLUG_WIDTH']) + "," + str(config['PLUG_HEIGHT']) + "}"
auv3['NSExtension']['NSExtensionAttributes']['AudioComponents'][0]['factoryFunction'] = "IPlugAUViewController_vTIME1"
auv3['NSExtension']['NSExtensionMainStoryboard'] = config['BUNDLE_NAME'] + "-iOS-MainInterface"
else:
auv3['NSExtension']['NSExtensionPrincipalClass'] = "IPlugAUViewController_vTIME1"
with open(plistpath, 'wb') as fp:
plistlib.dump(auv3, fp)
# Standalone APP
plistpath = projectpath + "/resources/" + config['BUNDLE_NAME'] + "-iOS-Info.plist"
with open(plistpath, 'rb') as fp:
iOSapp = plistlib.load(fp)
iOSapp['CFBundleExecutable'] = config['BUNDLE_NAME']
iOSapp['CFBundleIdentifier'] = "$(PRODUCT_BUNDLE_IDENTIFIER)"
iOSapp['CFBundleName'] = config['BUNDLE_NAME']
iOSapp['CFBundleVersion'] = CFBundleVersion
iOSapp['CFBundleShortVersionString'] = CFBundleVersion
iOSapp['CFBundlePackageType'] = "APPL"
iOSapp['LSApplicationCategoryType'] = "public.app-category.music"
with open(plistpath, 'wb') as fp:
plistlib.dump(iOSapp, fp)
if __name__ == '__main__':
main()