mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
MacOS: Projucer: CMake: Add option to use an Icon Composer icon
This commit is contained in:
parent
ea5cffcbd2
commit
07120c2f4e
30 changed files with 323 additions and 53 deletions
|
|
@ -377,6 +377,11 @@ attributes directly to these creation functions, rather than adding them later.
|
|||
is specified, then that image will be used for all icon resolutions. If both arguments are
|
||||
specified, then the appropriate image will be picked for each icon resolution.
|
||||
|
||||
`ICON_COMPOSER_BUNDLE`
|
||||
- An Icon Composer bundle used for MacOS and iOS builds. This argument takes precedence over the
|
||||
ICON_BIG and ICON_SMALL settings with Xcode versions 26 and later. Older versions of Xcode will
|
||||
continue to use ICON_BIG and ICON_SMALL, even if this argument is specified.
|
||||
|
||||
`COMPANY_COPYRIGHT`
|
||||
- Copyright text which will be added to the app/plugin's Info.plist. The value of this argument
|
||||
will be inherited from the `JUCE_COMPANY_COPYRIGHT` property, so if you want to use the same
|
||||
|
|
|
|||
|
|
@ -35,11 +35,11 @@
|
|||
5E4310B3F6BB639875D3E9B8 /* Foundation.framework */ = {isa = PBXBuildFile; fileRef = 49ECA8B998B339A083674A22; };
|
||||
611298FAC1A543BDD10D4C41 /* include_juce_box2d.cpp */ = {isa = PBXBuildFile; fileRef = 4DF215D350FFE5E119CBA7E5; };
|
||||
63A2F309E55DAC206E9B97E3 /* App */ = {isa = PBXBuildFile; fileRef = CFF2BBEB242CC8B3B904B5F9; };
|
||||
675BFB499A7E0AAD2614F529 /* AppIcon.icns */ = {isa = PBXBuildFile; fileRef = 68A0F49281B13E51489A6874; };
|
||||
6A61CBB4E39BFD392D97528F /* CoreMIDI.framework */ = {isa = PBXBuildFile; fileRef = 61AE09C749B007B70A265D9B; };
|
||||
6B5560283DEEBD6DD2D6C984 /* include_juce_dsp.mm */ = {isa = PBXBuildFile; fileRef = C1E93FAF6C68A40A664422CD; };
|
||||
712D81867EC698463252FA79 /* include_juce_audio_utils.mm */ = {isa = PBXBuildFile; fileRef = EDDA01B246C6128CAF7A2914; };
|
||||
71DF4F5EB4C8305688416725 /* DemoContentComponent.cpp */ = {isa = PBXBuildFile; fileRef = E5BFC17E682AB426D203B3E6; };
|
||||
75DB074DBAE04408A0A917B7 /* Icon.icns */ = {isa = PBXBuildFile; fileRef = E0A3F113BC27B7B4D6F1D693; };
|
||||
7B4163348896EB1B86B15160 /* AVFoundation.framework */ = {isa = PBXBuildFile; fileRef = DC192EFA899E6CBE6B5CD394; };
|
||||
8584640341100008744861A5 /* IOKit.framework */ = {isa = PBXBuildFile; fileRef = 71A91516AFD980FEE694C0E1; };
|
||||
89AD16514B1F4133FFEA1DF9 /* WebKit.framework */ = {isa = PBXBuildFile; fileRef = 96D99A08027CA35D6A4E5CFD; };
|
||||
|
|
@ -116,6 +116,7 @@
|
|||
651ECE3C7BA845DDCFEE48F3 /* juce_osc */ /* juce_osc */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_osc; path = ../../../../modules/juce_osc; sourceTree = SOURCE_ROOT; };
|
||||
6847A9B2C5E3C2ED56D8D4E7 /* juce_audio_basics */ /* juce_audio_basics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_audio_basics; path = ../../../../modules/juce_audio_basics; sourceTree = SOURCE_ROOT; };
|
||||
685A261BE78585293F3EAD36 /* Assets */ /* Assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Assets; path = ../../../Assets; sourceTree = "<group>"; };
|
||||
68A0F49281B13E51489A6874 /* AppIcon.icns */ /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = AppIcon.icns; path = AppIcon.icns; sourceTree = SOURCE_ROOT; };
|
||||
6C198AF93E1F6E682189E2F6 /* juce_opengl */ /* juce_opengl */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_opengl; path = ../../../../modules/juce_opengl; sourceTree = SOURCE_ROOT; };
|
||||
6C2C1AC86623F457427965EF /* juce_box2d */ /* juce_box2d */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_box2d; path = ../../../../modules/juce_box2d; sourceTree = SOURCE_ROOT; };
|
||||
6C5E26B4D28F8450435B8AE1 /* include_juce_cryptography.mm */ /* include_juce_cryptography.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_cryptography.mm; path = ../../JuceLibraryCode/include_juce_cryptography.mm; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -151,7 +152,6 @@
|
|||
CFF2BBEB242CC8B3B904B5F9 /* App */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DemoRunner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
DC192EFA899E6CBE6B5CD394 /* AVFoundation.framework */ /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
||||
E061A1C75FA5722167FC4997 /* include_juce_audio_formats.mm */ /* include_juce_audio_formats.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_formats.mm; path = ../../JuceLibraryCode/include_juce_audio_formats.mm; sourceTree = SOURCE_ROOT; };
|
||||
E0A3F113BC27B7B4D6F1D693 /* Icon.icns */ /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = SOURCE_ROOT; };
|
||||
E5BFC17E682AB426D203B3E6 /* DemoContentComponent.cpp */ /* DemoContentComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DemoContentComponent.cpp; path = ../../Source/UI/DemoContentComponent.cpp; sourceTree = SOURCE_ROOT; };
|
||||
E67AB94002886AF67437D6AE /* include_juce_audio_processors.mm */ /* include_juce_audio_processors.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_processors.mm; path = ../../JuceLibraryCode/include_juce_audio_processors.mm; sourceTree = SOURCE_ROOT; };
|
||||
EB68BD1224CD9748BFA332C0 /* MainComponent.h */ /* MainComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainComponent.h; path = ../../Source/UI/MainComponent.h; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -361,7 +361,7 @@
|
|||
7B3243C92248D379A0489AA4,
|
||||
4EC2782DE1779A130835B64D,
|
||||
9672FCE6167ADB567A9EB2F8,
|
||||
E0A3F113BC27B7B4D6F1D693,
|
||||
68A0F49281B13E51489A6874,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -447,7 +447,7 @@
|
|||
1BA301E39E29966719B710A1,
|
||||
E33E8FE2E7F8EC8EB4279F1B,
|
||||
91CD2BCE4CA07E18229EB436,
|
||||
75DB074DBAE04408A0A917B7,
|
||||
675BFB499A7E0AAD2614F529,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Icon.icns</string>
|
||||
<string>AppIcon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.rmsl.jucedemorunner</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
|||
|
|
@ -35,11 +35,11 @@
|
|||
611298FAC1A543BDD10D4C41 /* include_juce_box2d.cpp */ = {isa = PBXBuildFile; fileRef = 4DF215D350FFE5E119CBA7E5; };
|
||||
63A2F309E55DAC206E9B97E3 /* App */ = {isa = PBXBuildFile; fileRef = CFF2BBEB242CC8B3B904B5F9; };
|
||||
6658EEC5F9D63D3419EB7098 /* CoreServices.framework */ = {isa = PBXBuildFile; fileRef = E07FC48041C3E9F9721F3BCE; };
|
||||
675BFB499A7E0AAD2614F529 /* AppIcon.icns */ = {isa = PBXBuildFile; fileRef = 68A0F49281B13E51489A6874; };
|
||||
6A61CBB4E39BFD392D97528F /* CoreMIDI.framework */ = {isa = PBXBuildFile; fileRef = 61AE09C749B007B70A265D9B; };
|
||||
6B5560283DEEBD6DD2D6C984 /* include_juce_dsp.mm */ = {isa = PBXBuildFile; fileRef = C1E93FAF6C68A40A664422CD; };
|
||||
712D81867EC698463252FA79 /* include_juce_audio_utils.mm */ = {isa = PBXBuildFile; fileRef = EDDA01B246C6128CAF7A2914; };
|
||||
71DF4F5EB4C8305688416725 /* DemoContentComponent.cpp */ = {isa = PBXBuildFile; fileRef = E5BFC17E682AB426D203B3E6; };
|
||||
75DB074DBAE04408A0A917B7 /* Icon.icns */ = {isa = PBXBuildFile; fileRef = E0A3F113BC27B7B4D6F1D693; };
|
||||
7B4163348896EB1B86B15160 /* AVFoundation.framework */ = {isa = PBXBuildFile; fileRef = DC192EFA899E6CBE6B5CD394; };
|
||||
7F57DB52C3CEFDC26DDD38FC /* CoreImage.framework */ = {isa = PBXBuildFile; fileRef = B28EFB9D1DF0B6D6499A7DEF; };
|
||||
89AD16514B1F4133FFEA1DF9 /* WebKit.framework */ = {isa = PBXBuildFile; fileRef = 96D99A08027CA35D6A4E5CFD; };
|
||||
|
|
@ -113,6 +113,7 @@
|
|||
651ECE3C7BA845DDCFEE48F3 /* juce_osc */ /* juce_osc */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_osc; path = ../../../../modules/juce_osc; sourceTree = SOURCE_ROOT; };
|
||||
6847A9B2C5E3C2ED56D8D4E7 /* juce_audio_basics */ /* juce_audio_basics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_audio_basics; path = ../../../../modules/juce_audio_basics; sourceTree = SOURCE_ROOT; };
|
||||
685A261BE78585293F3EAD36 /* Assets */ /* Assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Assets; path = ../../../Assets; sourceTree = "<group>"; };
|
||||
68A0F49281B13E51489A6874 /* AppIcon.icns */ /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = AppIcon.icns; path = AppIcon.icns; sourceTree = SOURCE_ROOT; };
|
||||
6C198AF93E1F6E682189E2F6 /* juce_opengl */ /* juce_opengl */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_opengl; path = ../../../../modules/juce_opengl; sourceTree = SOURCE_ROOT; };
|
||||
6C2C1AC86623F457427965EF /* juce_box2d */ /* juce_box2d */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_box2d; path = ../../../../modules/juce_box2d; sourceTree = SOURCE_ROOT; };
|
||||
6C5E26B4D28F8450435B8AE1 /* include_juce_cryptography.mm */ /* include_juce_cryptography.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_cryptography.mm; path = ../../JuceLibraryCode/include_juce_cryptography.mm; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -151,7 +152,6 @@
|
|||
DC192EFA899E6CBE6B5CD394 /* AVFoundation.framework */ /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
||||
E061A1C75FA5722167FC4997 /* include_juce_audio_formats.mm */ /* include_juce_audio_formats.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_formats.mm; path = ../../JuceLibraryCode/include_juce_audio_formats.mm; sourceTree = SOURCE_ROOT; };
|
||||
E07FC48041C3E9F9721F3BCE /* CoreServices.framework */ /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; };
|
||||
E0A3F113BC27B7B4D6F1D693 /* Icon.icns */ /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = SOURCE_ROOT; };
|
||||
E5BFC17E682AB426D203B3E6 /* DemoContentComponent.cpp */ /* DemoContentComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DemoContentComponent.cpp; path = ../../Source/UI/DemoContentComponent.cpp; sourceTree = SOURCE_ROOT; };
|
||||
E67AB94002886AF67437D6AE /* include_juce_audio_processors.mm */ /* include_juce_audio_processors.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_processors.mm; path = ../../JuceLibraryCode/include_juce_audio_processors.mm; sourceTree = SOURCE_ROOT; };
|
||||
EB68BD1224CD9748BFA332C0 /* MainComponent.h */ /* MainComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainComponent.h; path = ../../Source/UI/MainComponent.h; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -365,7 +365,7 @@
|
|||
4EC2782DE1779A130835B64D,
|
||||
8135645508EEFDBDCDF2ADC6,
|
||||
7FBD555B32197FEACDFF5AFB,
|
||||
E0A3F113BC27B7B4D6F1D693,
|
||||
68A0F49281B13E51489A6874,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -451,7 +451,7 @@
|
|||
47ED2C78B05B8A6A00E36C46,
|
||||
8E63755144E29269FD82C897,
|
||||
1C9AA8660D0DE180064ACF7B,
|
||||
75DB074DBAE04408A0A917B7,
|
||||
675BFB499A7E0AAD2614F529,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@
|
|||
2C3D221D2AA87F07B3F1044D /* include_juce_gui_basics.mm */ = {isa = PBXBuildFile; fileRef = 8FE7B37CDE0818DB27BDDEBD; };
|
||||
3154B78F0813DBD8A2C9234D /* include_juce_audio_processors_headless.mm */ = {isa = PBXBuildFile; fileRef = DAB71FA843B80756B5521A4E; };
|
||||
3E1689E23B9C85F03209DCEF /* GraphEditorPanel.cpp */ = {isa = PBXBuildFile; fileRef = 3D78A731234A833CA112AE45; };
|
||||
443244451A0F2064D4767337 /* Icon.icns */ = {isa = PBXBuildFile; fileRef = 2A6983F82B13F9E8B10299AE; };
|
||||
4DB15177DDC357F4503F88CF /* WebKit.framework */ = {isa = PBXBuildFile; fileRef = B457EE687507BF1DEEA7581F; };
|
||||
5C4D406B924230F83E3580AD /* include_juce_audio_devices.mm */ = {isa = PBXBuildFile; fileRef = 65968EA1B476D71F14DE1D58; };
|
||||
68FBFDA1FE637B3EDA09A592 /* IOKit.framework */ = {isa = PBXBuildFile; fileRef = 4DF6E6E41E10965AD169143B; };
|
||||
|
|
@ -33,6 +32,7 @@
|
|||
8390CF6AEF2090680E4535F7 /* MetalKit.framework */ = {isa = PBXBuildFile; fileRef = 118ABD8E91DF2E400358D8CD; settings = { ATTRIBUTES = (Weak, ); }; };
|
||||
8DD3EB0C33E3E7B30C086034 /* include_juce_audio_processors_headless_ara.cpp */ = {isa = PBXBuildFile; fileRef = A83A4730C7AC85876911E149; };
|
||||
9056B642BEF870098DE344E5 /* Foundation.framework */ = {isa = PBXBuildFile; fileRef = 03FA420AACDD03D50AA16E4A; };
|
||||
937574F3E6597DC4573F370E /* AppIcon.icns */ = {isa = PBXBuildFile; fileRef = 6FDEDC8A2EE1095C83DCAF09; };
|
||||
970A893BD34180916C9D01C4 /* ARAPlugin.cpp */ = {isa = PBXBuildFile; fileRef = 6A01D5F304346E0332264056; };
|
||||
A0144A682BF4843C8CF53FE4 /* BinaryData.cpp */ = {isa = PBXBuildFile; fileRef = 6D107D7946DC5976B766345B; };
|
||||
A02C9F4C4B840C27B6CAFEBD /* QuartzCore.framework */ = {isa = PBXBuildFile; fileRef = 89309C0C5F3269BD06BE7F27; };
|
||||
|
|
@ -66,7 +66,6 @@
|
|||
11E6340DB6A6F68F5040101B /* reverb_ir.wav */ /* reverb_ir.wav */ = {isa = PBXFileReference; lastKnownFileType = file.wav; name = reverb_ir.wav; path = ../../../../examples/Assets/reverb_ir.wav; sourceTree = SOURCE_ROOT; };
|
||||
17A29FEB16D4439351511947 /* guitar_amp.wav */ /* guitar_amp.wav */ = {isa = PBXFileReference; lastKnownFileType = file.wav; name = guitar_amp.wav; path = ../../../../examples/Assets/guitar_amp.wav; sourceTree = SOURCE_ROOT; };
|
||||
1DADAD8E34AAF4AFF1C69DC4 /* BinaryData.h */ /* BinaryData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = SOURCE_ROOT; };
|
||||
2A6983F82B13F9E8B10299AE /* Icon.icns */ /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = SOURCE_ROOT; };
|
||||
2BE6C2DFD6EBB9A89109AEB5 /* include_juce_gui_extra.mm */ /* include_juce_gui_extra.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_gui_extra.mm; path = ../../JuceLibraryCode/include_juce_gui_extra.mm; sourceTree = SOURCE_ROOT; };
|
||||
36689CA4EFC2AF183A0848AE /* include_juce_dsp.mm */ /* include_juce_dsp.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_dsp.mm; path = ../../JuceLibraryCode/include_juce_dsp.mm; sourceTree = SOURCE_ROOT; };
|
||||
37E4D5C341406B7072120006 /* include_juce_opengl.mm */ /* include_juce_opengl.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_opengl.mm; path = ../../JuceLibraryCode/include_juce_opengl.mm; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -93,6 +92,7 @@
|
|||
6A01D5F304346E0332264056 /* ARAPlugin.cpp */ /* ARAPlugin.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ARAPlugin.cpp; path = ../../Source/Plugins/ARAPlugin.cpp; sourceTree = SOURCE_ROOT; };
|
||||
6A71B2BCAC4239072BC2BD7E /* juce_audio_basics */ /* juce_audio_basics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_audio_basics; path = ../../../../modules/juce_audio_basics; sourceTree = SOURCE_ROOT; };
|
||||
6D107D7946DC5976B766345B /* BinaryData.cpp */ /* BinaryData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = SOURCE_ROOT; };
|
||||
6FDEDC8A2EE1095C83DCAF09 /* AppIcon.icns */ /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = AppIcon.icns; path = AppIcon.icns; sourceTree = SOURCE_ROOT; };
|
||||
7DA35787B5F6F7440D667CC8 /* RecentFilesMenuTemplate.nib */ /* RecentFilesMenuTemplate.nib */ = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = SOURCE_ROOT; };
|
||||
81C1A7770E082F56FE5A90A7 /* juce_opengl */ /* juce_opengl */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_opengl; path = ../../../../modules/juce_opengl; sourceTree = SOURCE_ROOT; };
|
||||
82800DBA287EF4BAB13B42FB /* include_juce_graphics.mm */ /* include_juce_graphics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_graphics.mm; path = ../../JuceLibraryCode/include_juce_graphics.mm; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -275,7 +275,7 @@
|
|||
5F0ADA39C70C892758A941F6,
|
||||
57DF618F1DE781556B7AFC32,
|
||||
7DA35787B5F6F7440D667CC8,
|
||||
2A6983F82B13F9E8B10299AE,
|
||||
6FDEDC8A2EE1095C83DCAF09,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -411,7 +411,7 @@
|
|||
files = (
|
||||
FE22E1AF24FA9ED43E983B81,
|
||||
D92C7BF86C9CCF6B4D14F809,
|
||||
443244451A0F2064D4767337,
|
||||
937574F3E6597DC4573F370E,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Icon.icns</string>
|
||||
<string>AppIcon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.juce.audiopluginhost</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@
|
|||
2C3D221D2AA87F07B3F1044D /* include_juce_gui_basics.mm */ = {isa = PBXBuildFile; fileRef = 8FE7B37CDE0818DB27BDDEBD; };
|
||||
3154B78F0813DBD8A2C9234D /* include_juce_audio_processors_headless.mm */ = {isa = PBXBuildFile; fileRef = DAB71FA843B80756B5521A4E; };
|
||||
3E1689E23B9C85F03209DCEF /* GraphEditorPanel.cpp */ = {isa = PBXBuildFile; fileRef = 3D78A731234A833CA112AE45; };
|
||||
443244451A0F2064D4767337 /* Icon.icns */ = {isa = PBXBuildFile; fileRef = 2A6983F82B13F9E8B10299AE; };
|
||||
4DB15177DDC357F4503F88CF /* WebKit.framework */ = {isa = PBXBuildFile; fileRef = B457EE687507BF1DEEA7581F; };
|
||||
50AFD116DCA6EC228EFB322D /* UIKit.framework */ = {isa = PBXBuildFile; fileRef = F9EDC54DFBCF3A63E0AA5D73; };
|
||||
59F4F23BFFDAB414B4801F85 /* Images.xcassets */ = {isa = PBXBuildFile; fileRef = 29E0972229FB44D969035B4E; };
|
||||
|
|
@ -39,6 +38,7 @@
|
|||
8DD3EB0C33E3E7B30C086034 /* include_juce_audio_processors_headless_ara.cpp */ = {isa = PBXBuildFile; fileRef = A83A4730C7AC85876911E149; };
|
||||
9056B642BEF870098DE344E5 /* Foundation.framework */ = {isa = PBXBuildFile; fileRef = 03FA420AACDD03D50AA16E4A; };
|
||||
92EE84159C7027A137F06204 /* CoreText.framework */ = {isa = PBXBuildFile; fileRef = 66643EDF46AE8C5B7956B91D; };
|
||||
937574F3E6597DC4573F370E /* AppIcon.icns */ = {isa = PBXBuildFile; fileRef = 6FDEDC8A2EE1095C83DCAF09; };
|
||||
970A893BD34180916C9D01C4 /* ARAPlugin.cpp */ = {isa = PBXBuildFile; fileRef = 6A01D5F304346E0332264056; };
|
||||
A0144A682BF4843C8CF53FE4 /* BinaryData.cpp */ = {isa = PBXBuildFile; fileRef = 6D107D7946DC5976B766345B; };
|
||||
A02C9F4C4B840C27B6CAFEBD /* QuartzCore.framework */ = {isa = PBXBuildFile; fileRef = 89309C0C5F3269BD06BE7F27; };
|
||||
|
|
@ -71,7 +71,6 @@
|
|||
17A29FEB16D4439351511947 /* guitar_amp.wav */ /* guitar_amp.wav */ = {isa = PBXFileReference; lastKnownFileType = file.wav; name = guitar_amp.wav; path = ../../../../examples/Assets/guitar_amp.wav; sourceTree = SOURCE_ROOT; };
|
||||
1DADAD8E34AAF4AFF1C69DC4 /* BinaryData.h */ /* BinaryData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = SOURCE_ROOT; };
|
||||
29E0972229FB44D969035B4E /* Images.xcassets */ /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AudioPluginHost/Images.xcassets; sourceTree = SOURCE_ROOT; };
|
||||
2A6983F82B13F9E8B10299AE /* Icon.icns */ /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = SOURCE_ROOT; };
|
||||
2BE6C2DFD6EBB9A89109AEB5 /* include_juce_gui_extra.mm */ /* include_juce_gui_extra.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_gui_extra.mm; path = ../../JuceLibraryCode/include_juce_gui_extra.mm; sourceTree = SOURCE_ROOT; };
|
||||
2F7D965A1284CEF0B20EB657 /* CoreGraphics.framework */ /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
||||
36689CA4EFC2AF183A0848AE /* include_juce_dsp.mm */ /* include_juce_dsp.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_dsp.mm; path = ../../JuceLibraryCode/include_juce_dsp.mm; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -99,6 +98,7 @@
|
|||
6A01D5F304346E0332264056 /* ARAPlugin.cpp */ /* ARAPlugin.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ARAPlugin.cpp; path = ../../Source/Plugins/ARAPlugin.cpp; sourceTree = SOURCE_ROOT; };
|
||||
6A71B2BCAC4239072BC2BD7E /* juce_audio_basics */ /* juce_audio_basics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_audio_basics; path = ../../../../modules/juce_audio_basics; sourceTree = SOURCE_ROOT; };
|
||||
6D107D7946DC5976B766345B /* BinaryData.cpp */ /* BinaryData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = SOURCE_ROOT; };
|
||||
6FDEDC8A2EE1095C83DCAF09 /* AppIcon.icns */ /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = AppIcon.icns; path = AppIcon.icns; sourceTree = SOURCE_ROOT; };
|
||||
7D924E83DABA5B54205C52F4 /* CoreServices.framework */ /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; };
|
||||
81C1A7770E082F56FE5A90A7 /* juce_opengl */ /* juce_opengl */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_opengl; path = ../../../../modules/juce_opengl; sourceTree = SOURCE_ROOT; };
|
||||
82800DBA287EF4BAB13B42FB /* include_juce_graphics.mm */ /* include_juce_graphics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_graphics.mm; path = ../../JuceLibraryCode/include_juce_graphics.mm; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -288,7 +288,7 @@
|
|||
57DF618F1DE781556B7AFC32,
|
||||
29E0972229FB44D969035B4E,
|
||||
F58EBA72DA53F75945B91321,
|
||||
2A6983F82B13F9E8B10299AE,
|
||||
6FDEDC8A2EE1095C83DCAF09,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -428,7 +428,7 @@
|
|||
FE22E1AF24FA9ED43E983B81,
|
||||
59F4F23BFFDAB414B4801F85,
|
||||
E283262A07376A7EDFCEAF6F,
|
||||
443244451A0F2064D4767337,
|
||||
937574F3E6597DC4573F370E,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -375,6 +375,7 @@ function(_juce_write_configure_time_info target)
|
|||
_juce_append_target_property(file_content SHOULD_ADD_STORYBOARD ${target} JUCE_SHOULD_ADD_STORYBOARD)
|
||||
_juce_append_target_property(file_content LAUNCH_STORYBOARD_FILE ${target} JUCE_LAUNCH_STORYBOARD_FILE)
|
||||
_juce_append_target_property(file_content ICON_FILE ${target} JUCE_ICON_FILE)
|
||||
_juce_append_target_property(file_content ICON_COMPOSER_BUNDLE ${target} JUCE_ICON_COMPOSER_BUNDLE)
|
||||
_juce_append_target_property(file_content PROJECT_NAME ${target} JUCE_PRODUCT_NAME)
|
||||
_juce_append_target_property(file_content COMPANY_COPYRIGHT ${target} JUCE_COMPANY_COPYRIGHT)
|
||||
_juce_append_target_property(file_content COMPANY_NAME ${target} JUCE_COMPANY_NAME)
|
||||
|
|
@ -636,6 +637,7 @@ function(_juce_generate_icon source_target dest_target)
|
|||
get_target_property(juce_library_code ${source_target} JUCE_GENERATED_SOURCES_DIRECTORY)
|
||||
get_target_property(juce_property_icon_big ${source_target} JUCE_ICON_BIG)
|
||||
get_target_property(juce_property_icon_small ${source_target} JUCE_ICON_SMALL)
|
||||
get_target_property(juce_property_icon_composer_bundle ${source_target} JUCE_ICON_COMPOSER_BUNDLE)
|
||||
|
||||
set(icon_args)
|
||||
|
||||
|
|
@ -647,8 +649,38 @@ function(_juce_generate_icon source_target dest_target)
|
|||
list(APPEND icon_args "${juce_property_icon_small}")
|
||||
endif()
|
||||
|
||||
get_filename_component(icon_composer_icon_name "${juce_property_icon_composer_bundle}" NAME_WE)
|
||||
|
||||
if(juce_property_icon_composer_bundle AND (CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS"))
|
||||
set_source_files_properties("${juce_property_icon_composer_bundle}"
|
||||
PROPERTIES
|
||||
MACOSX_PACKAGE_LOCATION Resources
|
||||
XCODE_EXPLICIT_FILE_TYPE folder.iconcomposer.icon
|
||||
)
|
||||
|
||||
target_sources(${dest_target} PRIVATE "${juce_property_icon_composer_bundle}")
|
||||
|
||||
set_target_properties(${dest_target} PROPERTIES
|
||||
XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "${icon_composer_icon_name}")
|
||||
|
||||
if((CMAKE_SYSTEM_NAME STREQUAL "Darwin") AND (NOT CMAKE_GENERATOR STREQUAL "Xcode"))
|
||||
add_custom_command(TARGET ${target} POST_BUILD
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
"-Dbundle_dir='$<TARGET_BUNDLE_DIR:${target}>'"
|
||||
"-Dicon_path=${juce_property_icon_composer_bundle}"
|
||||
"-P" "${JUCE_CMAKE_UTILS_DIR}/generateXcassetsFromIcon.cmake"
|
||||
VERBATIM)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(generated_icon)
|
||||
|
||||
set(apple_app_icon_name "${icon_composer_icon_name}")
|
||||
|
||||
if(NOT apple_app_icon_name)
|
||||
set(apple_app_icon_name "AppIcon")
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
if(NOT icon_args)
|
||||
return()
|
||||
|
|
@ -656,9 +688,9 @@ function(_juce_generate_icon source_target dest_target)
|
|||
|
||||
_juce_check_icon_files_exist("${icon_args}")
|
||||
|
||||
set(generated_icon "${juce_library_code}/Icon.icns")
|
||||
set(generated_icon "${juce_library_code}/${apple_app_icon_name}.icns")
|
||||
# To get compiled properly, we need the icon before the plist is generated!
|
||||
_juce_execute_juceaide(macicon "${generated_icon}" ${icon_args})
|
||||
_juce_execute_juceaide(macicon "${generated_icon}" "${apple_app_icon_name}" ${icon_args})
|
||||
set_source_files_properties(${generated_icon} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
if(NOT icon_args)
|
||||
|
|
@ -679,15 +711,19 @@ function(_juce_generate_icon source_target dest_target)
|
|||
set(generated_icon "${out_path}/Images.xcassets")
|
||||
|
||||
# To get compiled properly, we need iOS assets at configure time!
|
||||
_juce_execute_juceaide(iosassets "${out_path}" ${icon_args})
|
||||
_juce_execute_juceaide(iosassets "${out_path}" "${apple_app_icon_name}" ${icon_args})
|
||||
endif()
|
||||
|
||||
if(NOT generated_icon)
|
||||
return()
|
||||
endif()
|
||||
|
||||
set_target_properties(${dest_target} PROPERTIES
|
||||
XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon")
|
||||
get_target_property(existing_appicon ${dest_target} XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME)
|
||||
|
||||
if(NOT existing_appicon)
|
||||
set_target_properties(${dest_target} PROPERTIES
|
||||
XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "${apple_app_icon_name}")
|
||||
endif()
|
||||
|
||||
get_target_property(add_storyboard ${source_target} JUCE_SHOULD_ADD_STORYBOARD)
|
||||
|
||||
|
|
@ -1998,6 +2034,7 @@ function(_juce_initialise_target target)
|
|||
REQUIRES_FULL_SCREEN # iOS only
|
||||
ICON_BIG
|
||||
ICON_SMALL
|
||||
ICON_COMPOSER_BUNDLE # MacOS/iOS only
|
||||
COMPANY_COPYRIGHT
|
||||
COMPANY_NAME
|
||||
COMPANY_WEBSITE
|
||||
|
|
|
|||
91
extras/Build/CMake/generateXcassetsFromIcon.cmake
Normal file
91
extras/Build/CMake/generateXcassetsFromIcon.cmake
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
# ==============================================================================
|
||||
#
|
||||
# This file is part of the JUCE framework.
|
||||
# Copyright (c) Raw Material Software Limited
|
||||
#
|
||||
# JUCE is an open source framework subject to commercial or open source
|
||||
# licensing.
|
||||
#
|
||||
# By downloading, installing, or using the JUCE framework, or combining the
|
||||
# JUCE framework with any other source code, object code, content or any other
|
||||
# copyrightable work, you agree to the terms of the JUCE End User Licence
|
||||
# Agreement, and all incorporated terms including the JUCE Privacy Policy and
|
||||
# the JUCE Website Terms of Service, as applicable, which will bind you. If you
|
||||
# do not agree to the terms of these agreements, we will not license the JUCE
|
||||
# framework to you, and you must discontinue the installation or download
|
||||
# process and cease use of the JUCE framework.
|
||||
#
|
||||
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
|
||||
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy
|
||||
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
|
||||
#
|
||||
# Or:
|
||||
#
|
||||
# You may also use this code under the terms of the AGPLv3:
|
||||
# https://www.gnu.org/licenses/agpl-3.0.en.html
|
||||
#
|
||||
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
|
||||
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
|
||||
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
find_program(JUCE_XCRUN xcrun)
|
||||
|
||||
if(NOT JUCE_XCRUN)
|
||||
message(WARNING "No xcrun was found. Can't generate Icon Composer assets. Please ensure that the"
|
||||
" Xcode command-line tools are installed.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
function(get_actool_version output_var)
|
||||
execute_process(
|
||||
COMMAND xcrun actool --version
|
||||
OUTPUT_VARIABLE cmd_output
|
||||
ERROR_VARIABLE cmd_error
|
||||
RESULT_VARIABLE cmd_result
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
if(NOT cmd_result EQUAL 0)
|
||||
set(${output_var} "" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
string(REGEX REPLACE "[ \t\r\n]+" "" cmd_output "${cmd_output}")
|
||||
string(REGEX MATCH "<key>short-bundle-version</key>[^<]*<string>(.*)</string>" match_found "${cmd_output}")
|
||||
|
||||
if(match_found)
|
||||
set(${output_var} "${CMAKE_MATCH_1}" PARENT_SCOPE)
|
||||
else()
|
||||
set(${output_var} "" PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_actool_version(actool_version)
|
||||
|
||||
if(NOT "${actool_version}" VERSION_GREATER_EQUAL "26.0")
|
||||
message(WARNING "Couldn't find actool with version 26.0 or greater."
|
||||
" Icon Composer assets will not be generated.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
get_filename_component(icon_name "${icon_path}" NAME_WE)
|
||||
|
||||
execute_process(
|
||||
COMMAND "${JUCE_XCRUN}" actool
|
||||
--compile "${bundle_dir}/Contents/Resources"
|
||||
--platform macosx
|
||||
--minimum-deployment-target 10.11
|
||||
--output-partial-info-plist /dev/null
|
||||
--app-icon "${icon_name}"
|
||||
"${icon_path}"
|
||||
OUTPUT_VARIABLE result_stdout
|
||||
ERROR_VARIABLE result_stderr
|
||||
RESULT_VARIABLE result)
|
||||
|
||||
if(result)
|
||||
message(STATUS "${result_stdout}")
|
||||
message(WARNING "${result_stderr}")
|
||||
message(ERROR "Failed to generate Icon Composer asset. actool returned with exit code ${result}")
|
||||
endif()
|
||||
|
|
@ -494,11 +494,12 @@ namespace juce::build_tools
|
|||
|
||||
RelativePath createXcassetsFolderFromIcons (const Icons& icons,
|
||||
const File& targetFolder,
|
||||
String projectFilenameRootString)
|
||||
String projectFilenameRootString,
|
||||
String iconName)
|
||||
{
|
||||
const auto assets = targetFolder.getChildFile (projectFilenameRootString)
|
||||
.getChildFile ("Images.xcassets");
|
||||
const auto iconSet = assets.getChildFile ("AppIcon.appiconset");
|
||||
const auto iconSet = assets.getChildFile (iconName + ".appiconset");
|
||||
const auto launchImage = assets.getChildFile ("LaunchImage.launchimage");
|
||||
|
||||
overwriteFileIfDifferentOrThrow (iconSet.getChildFile ("Contents.json"), getiOSAppIconContents());
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ namespace juce::build_tools
|
|||
|
||||
RelativePath createXcassetsFolderFromIcons (const Icons& icons,
|
||||
const File& targetFolder,
|
||||
String projectFilenameRootString);
|
||||
String projectFilenameRootString,
|
||||
String iconName);
|
||||
|
||||
} // namespace juce::build_tools
|
||||
|
|
|
|||
|
|
@ -184,8 +184,13 @@ namespace juce::build_tools
|
|||
addPlistDictionaryKey (*dict, "CFBundleExecutable", executableName);
|
||||
|
||||
if (! iOS) // (NB: on iOS this causes error ITMS-90032 during publishing)
|
||||
{
|
||||
addPlistDictionaryKey (*dict, "CFBundleIconFile", iconFile.exists() ? iconFile.getFileName() : String());
|
||||
|
||||
if (iconComposerIcon.exists())
|
||||
addPlistDictionaryKey (*dict, "CFBundleIconName", iconComposerIcon.getFileNameWithoutExtension());
|
||||
}
|
||||
|
||||
addPlistDictionaryKey (*dict, "CFBundleIdentifier", bundleIdentifier);
|
||||
addPlistDictionaryKey (*dict, "CFBundleName", projectName);
|
||||
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ namespace juce::build_tools
|
|||
String localNetworkPermissionText;
|
||||
|
||||
File iconFile;
|
||||
File iconComposerIcon;
|
||||
String projectName;
|
||||
String marketingVersion;
|
||||
String currentProjectVersion;
|
||||
|
|
|
|||
|
|
@ -117,12 +117,26 @@ struct IconParseResults
|
|||
{
|
||||
juce::build_tools::Icons icons;
|
||||
juce::File output;
|
||||
juce::String iconName;
|
||||
};
|
||||
|
||||
IconParseResults parseIconArguments (juce::ArgumentList&& args)
|
||||
enum class IconNameSpecified
|
||||
{
|
||||
args.checkMinNumArguments (2);
|
||||
no,
|
||||
yes
|
||||
};
|
||||
|
||||
IconParseResults parseIconArguments (juce::ArgumentList&& args, IconNameSpecified iconNameSpecified)
|
||||
{
|
||||
args.checkMinNumArguments (iconNameSpecified == IconNameSpecified::yes ? 3 : 2);
|
||||
const auto output = args.arguments.removeAndReturn (0);
|
||||
const auto iconName = std::invoke ([&]
|
||||
{
|
||||
if (iconNameSpecified == IconNameSpecified::yes)
|
||||
return args.arguments.removeAndReturn (0).text;
|
||||
|
||||
return juce::String{};
|
||||
});
|
||||
|
||||
const auto popFile = [&args]() -> juce::File
|
||||
{
|
||||
|
|
@ -135,28 +149,29 @@ IconParseResults parseIconArguments (juce::ArgumentList&& args)
|
|||
const auto smallIcon = popFile();
|
||||
const auto bigIcon = popFile();
|
||||
|
||||
return { juce::build_tools::Icons::fromFilesSmallAndBig (smallIcon, bigIcon), output.text };
|
||||
return { juce::build_tools::Icons::fromFilesSmallAndBig (smallIcon, bigIcon), output.text, iconName };
|
||||
}
|
||||
|
||||
int writeMacIcon (juce::ArgumentList&& argumentList)
|
||||
{
|
||||
const auto parsed = parseIconArguments (std::move (argumentList));
|
||||
const auto parsed = parseIconArguments (std::move (argumentList), IconNameSpecified::yes);
|
||||
juce::build_tools::writeMacIcon (parsed.icons, parsed.output);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int writeiOSAssets (juce::ArgumentList&& argumentList)
|
||||
{
|
||||
const auto parsed = parseIconArguments (std::move (argumentList));
|
||||
const auto parsed = parseIconArguments (std::move (argumentList), IconNameSpecified::yes);
|
||||
juce::build_tools::createXcassetsFolderFromIcons (parsed.icons,
|
||||
parsed.output.getParentDirectory(),
|
||||
parsed.output.getFileName());
|
||||
parsed.output.getFileName(),
|
||||
parsed.iconName);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int writeWinIcon (juce::ArgumentList&& argumentList)
|
||||
{
|
||||
const auto parsed = parseIconArguments (std::move (argumentList));
|
||||
const auto parsed = parseIconArguments (std::move (argumentList), IconNameSpecified::no);
|
||||
juce::build_tools::writeWinIcon (parsed.icons, parsed.output);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -284,6 +299,7 @@ juce::build_tools::PlistOptions parsePlistOptions (const juce::File& file,
|
|||
updateField ("SUPPRESS_AU_PLIST_RESOURCE_USAGE", result.suppressResourceUsage);
|
||||
updateField ("BUNDLE_ID", result.bundleIdentifier);
|
||||
updateField ("ICON_FILE", result.iconFile);
|
||||
updateField ("ICON_COMPOSER_BUNDLE", result.iconComposerIcon);
|
||||
|
||||
result.type = type;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Icon.icns</string>
|
||||
<string>AppIcon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.juce.NetworkGraphicsDemo</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
006DF460F8DF66EFFA80D968 /* Icon.icns */ = {isa = PBXBuildFile; fileRef = 70F1CAF3C4C561DD81E6AFC1; };
|
||||
0977FEC02DAF29438583198A /* include_juce_core.mm */ = {isa = PBXBuildFile; fileRef = 01E0EEF68A11C1CAF180E173; };
|
||||
0FA2A3321630EBE83E439D99 /* include_juce_cryptography.mm */ = {isa = PBXBuildFile; fileRef = AFF729977947528F3E4AAA96; };
|
||||
204FE224D562F0519DE438A4 /* include_juce_core_CompilationTime.cpp */ = {isa = PBXBuildFile; fileRef = BD85090C86849423E95A0014; };
|
||||
|
|
@ -20,6 +19,7 @@
|
|||
65B2C4ED19229E0EDC8EF993 /* RecentFilesMenuTemplate.nib */ = {isa = PBXBuildFile; fileRef = 696F7896036B652369517438; };
|
||||
67DF295E93E54432043126DF /* CoreAudio.framework */ = {isa = PBXBuildFile; fileRef = 6799B056504F9F017998B9E2; };
|
||||
6C2200C52B65E1BE80544E50 /* include_juce_audio_devices.mm */ = {isa = PBXBuildFile; fileRef = AF330F41D1A4865108690E3C; };
|
||||
6E24A926494D678975AA56E5 /* AppIcon.icns */ = {isa = PBXBuildFile; fileRef = 3A798A17A29957CC426E04FB; };
|
||||
770AB74B1D3A0108F764DD47 /* CoreAudioKit.framework */ = {isa = PBXBuildFile; fileRef = 4D1DB6D77B6F3DE7A569780B; };
|
||||
77745BF98931B91341FE17F6 /* IOKit.framework */ = {isa = PBXBuildFile; fileRef = F3292E3563DB7ABB076DB400; };
|
||||
80B9F7ED2009922C693B7DD4 /* DiscRecording.framework */ = {isa = PBXBuildFile; fileRef = CB82A14817C3E2ABBBBC3864; };
|
||||
|
|
@ -57,6 +57,7 @@
|
|||
25DEDA8C9F94A6C8DFC8E53E /* SharedCanvas.h */ /* SharedCanvas.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SharedCanvas.h; path = ../../Source/SharedCanvas.h; sourceTree = SOURCE_ROOT; };
|
||||
2E13A899F4E3C99054A3656F /* Accelerate.framework */ /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
|
||||
33AA348465F512DBA8778DAF /* include_juce_events.mm */ /* include_juce_events.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_events.mm; path = ../../JuceLibraryCode/include_juce_events.mm; sourceTree = SOURCE_ROOT; };
|
||||
3A798A17A29957CC426E04FB /* AppIcon.icns */ /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = AppIcon.icns; path = AppIcon.icns; sourceTree = SOURCE_ROOT; };
|
||||
3BF06B70407FFDBE9534F942 /* include_juce_osc.cpp */ /* include_juce_osc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_osc.cpp; path = ../../JuceLibraryCode/include_juce_osc.cpp; sourceTree = SOURCE_ROOT; };
|
||||
448838BE6E937D450A3C84CE /* CoreMIDI.framework */ /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; };
|
||||
4D1DB6D77B6F3DE7A569780B /* CoreAudioKit.framework */ /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
|
||||
|
|
@ -70,7 +71,6 @@
|
|||
68EBC0BF5F01E05FDCB3EEAF /* juce_opengl */ /* juce_opengl */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_opengl; path = ../../../../modules/juce_opengl; sourceTree = SOURCE_ROOT; };
|
||||
696F7896036B652369517438 /* RecentFilesMenuTemplate.nib */ /* RecentFilesMenuTemplate.nib */ = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = SOURCE_ROOT; };
|
||||
6D1F9E505D20C09647124F0A /* include_juce_audio_basics.mm */ /* include_juce_audio_basics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_basics.mm; path = ../../JuceLibraryCode/include_juce_audio_basics.mm; sourceTree = SOURCE_ROOT; };
|
||||
70F1CAF3C4C561DD81E6AFC1 /* Icon.icns */ /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = SOURCE_ROOT; };
|
||||
74711D7544168CCAC4969A07 /* BinaryData.cpp */ /* BinaryData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = SOURCE_ROOT; };
|
||||
7525879E73E8AF32FFA0CDDE /* include_juce_data_structures.mm */ /* include_juce_data_structures.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_data_structures.mm; path = ../../JuceLibraryCode/include_juce_data_structures.mm; sourceTree = SOURCE_ROOT; };
|
||||
77C0AC21C1028911123844FC /* Main.cpp */ /* Main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -146,7 +146,7 @@
|
|||
children = (
|
||||
1FD6DBAC73414DD4C152E34E,
|
||||
696F7896036B652369517438,
|
||||
70F1CAF3C4C561DD81E6AFC1,
|
||||
3A798A17A29957CC426E04FB,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -343,7 +343,7 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
65B2C4ED19229E0EDC8EF993,
|
||||
006DF460F8DF66EFFA80D968,
|
||||
6E24A926494D678975AA56E5,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
006DF460F8DF66EFFA80D968 /* Icon.icns */ = {isa = PBXBuildFile; fileRef = 70F1CAF3C4C561DD81E6AFC1; };
|
||||
0977FEC02DAF29438583198A /* include_juce_core.mm */ = {isa = PBXBuildFile; fileRef = 01E0EEF68A11C1CAF180E173; };
|
||||
0E041BED84BAC24200949A78 /* UniformTypeIdentifiers.framework */ = {isa = PBXBuildFile; fileRef = 961965555B4DAA5BE2361933; settings = { ATTRIBUTES = (Weak, ); }; };
|
||||
0FA2A3321630EBE83E439D99 /* include_juce_cryptography.mm */ = {isa = PBXBuildFile; fileRef = AFF729977947528F3E4AAA96; };
|
||||
|
|
@ -24,6 +23,7 @@
|
|||
64DEB67F9523F28D899D1821 /* MetalKit.framework */ = {isa = PBXBuildFile; fileRef = C8C4E9A4028028FF1F5B76F2; settings = { ATTRIBUTES = (Weak, ); }; };
|
||||
67DF295E93E54432043126DF /* CoreAudio.framework */ = {isa = PBXBuildFile; fileRef = 6799B056504F9F017998B9E2; };
|
||||
6C2200C52B65E1BE80544E50 /* include_juce_audio_devices.mm */ = {isa = PBXBuildFile; fileRef = AF330F41D1A4865108690E3C; };
|
||||
6E24A926494D678975AA56E5 /* AppIcon.icns */ = {isa = PBXBuildFile; fileRef = 3A798A17A29957CC426E04FB; };
|
||||
770AB74B1D3A0108F764DD47 /* CoreAudioKit.framework */ = {isa = PBXBuildFile; fileRef = 4D1DB6D77B6F3DE7A569780B; };
|
||||
78CB229C1BA5093078BC6195 /* UserNotifications.framework */ = {isa = PBXBuildFile; fileRef = E8976208A3585295BF93D50D; settings = { ATTRIBUTES = (Weak, ); }; };
|
||||
80EE2C27B466BAFD83881D3F /* Accelerate.framework */ = {isa = PBXBuildFile; fileRef = 2E13A899F4E3C99054A3656F; };
|
||||
|
|
@ -64,6 +64,7 @@
|
|||
2E13A899F4E3C99054A3656F /* Accelerate.framework */ /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
|
||||
33AA348465F512DBA8778DAF /* include_juce_events.mm */ /* include_juce_events.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_events.mm; path = ../../JuceLibraryCode/include_juce_events.mm; sourceTree = SOURCE_ROOT; };
|
||||
379F77D23BFAE3795282CEB3 /* UIKit.framework */ /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
3A798A17A29957CC426E04FB /* AppIcon.icns */ /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = AppIcon.icns; path = AppIcon.icns; sourceTree = SOURCE_ROOT; };
|
||||
3BF06B70407FFDBE9534F942 /* include_juce_osc.cpp */ /* include_juce_osc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_osc.cpp; path = ../../JuceLibraryCode/include_juce_osc.cpp; sourceTree = SOURCE_ROOT; };
|
||||
448838BE6E937D450A3C84CE /* CoreMIDI.framework */ /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; };
|
||||
4D1DB6D77B6F3DE7A569780B /* CoreAudioKit.framework */ /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
|
||||
|
|
@ -77,7 +78,6 @@
|
|||
6799B056504F9F017998B9E2 /* CoreAudio.framework */ /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
|
||||
68EBC0BF5F01E05FDCB3EEAF /* juce_opengl */ /* juce_opengl */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_opengl; path = ../../../../modules/juce_opengl; sourceTree = SOURCE_ROOT; };
|
||||
6D1F9E505D20C09647124F0A /* include_juce_audio_basics.mm */ /* include_juce_audio_basics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_basics.mm; path = ../../JuceLibraryCode/include_juce_audio_basics.mm; sourceTree = SOURCE_ROOT; };
|
||||
70F1CAF3C4C561DD81E6AFC1 /* Icon.icns */ /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = SOURCE_ROOT; };
|
||||
74711D7544168CCAC4969A07 /* BinaryData.cpp */ /* BinaryData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = SOURCE_ROOT; };
|
||||
7525879E73E8AF32FFA0CDDE /* include_juce_data_structures.mm */ /* include_juce_data_structures.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_data_structures.mm; path = ../../JuceLibraryCode/include_juce_data_structures.mm; sourceTree = SOURCE_ROOT; };
|
||||
77C0AC21C1028911123844FC /* Main.cpp */ /* Main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -161,7 +161,7 @@
|
|||
1FD6DBAC73414DD4C152E34E,
|
||||
5273768FBB55D0DD57A5E70C,
|
||||
9D2DAC7D0C9DB77CB83E2992,
|
||||
70F1CAF3C4C561DD81E6AFC1,
|
||||
3A798A17A29957CC426E04FB,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -363,7 +363,7 @@
|
|||
files = (
|
||||
1282A62308CD1AC3F88A5D03,
|
||||
D832165EE981EF309D4B21BF,
|
||||
006DF460F8DF66EFFA80D968,
|
||||
6E24A926494D678975AA56E5,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Icon.icns</string>
|
||||
<string>AppIcon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.juce.theprojucer</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@
|
|||
10E26DA28CF28BBFDC64E796 /* include_juce_core_CompilationTime.cpp */ = {isa = PBXBuildFile; fileRef = 5F0374A45E6B5EC8E47D688F; };
|
||||
11D42F7EC6E6539D79A7F4B1 /* QuartzCore.framework */ = {isa = PBXBuildFile; fileRef = E5D6C36496F5BC84D7213BE8; };
|
||||
13180B0F6CE42B355C90CF3C /* include_juce_graphics_Harfbuzz.cpp */ = {isa = PBXBuildFile; fileRef = 39F69DABE999E4B2CBC6041F; };
|
||||
1321E6C1C6170B6C898AD09D /* Icon.icns */ = {isa = PBXBuildFile; fileRef = 951128CA33CCDEF570436B1C; };
|
||||
234B6BA2952CBC7C61EF70EF /* include_juce_events.mm */ = {isa = PBXBuildFile; fileRef = 5867DC4E39DF8539B54C0D59; };
|
||||
241F29FCBB7A17BB44A0B10C /* Cocoa.framework */ = {isa = PBXBuildFile; fileRef = D1F9B0E9F5D54FE48BEB46EA; };
|
||||
244567D3AE2E417A8CB2B95E /* jucer_ProjectExporter.cpp */ = {isa = PBXBuildFile; fileRef = C3BB9F92B02B06D04A73794C; };
|
||||
|
|
@ -54,6 +53,7 @@
|
|||
D0E26EB54B0087C8BE3D541E /* jucer_Icons.cpp */ = {isa = PBXBuildFile; fileRef = 846B2A670C5A19DE0039E11A; };
|
||||
D5C9125F65493CA481F18E53 /* include_juce_cryptography.mm */ = {isa = PBXBuildFile; fileRef = D766BB9D8C32B5560F0493F3; };
|
||||
D76134C6646C526A210A78E2 /* include_juce_graphics_Sheenbidi.c */ = {isa = PBXBuildFile; fileRef = 276A4D5D4A2DD84C6D41F0CA; };
|
||||
DBE437EE41F174A6F27FC0E2 /* AppIcon.icns */ = {isa = PBXBuildFile; fileRef = F3FE62637ACC2263A7594E8A; };
|
||||
DD0FF38F7E8DE0220D73671D /* Foundation.framework */ = {isa = PBXBuildFile; fileRef = BF006EF584FB274FF0319E08; };
|
||||
EE722B47BC36CC8A87E0FB76 /* jucer_AppearanceSettings.cpp */ = {isa = PBXBuildFile; fileRef = BE618CE21C794BDEE319E328; };
|
||||
F15F0512666FF8CDC0D08905 /* include_juce_gui_basics.mm */ = {isa = PBXBuildFile; fileRef = 0462692BAA9CD1BE6DFBCC33; };
|
||||
|
|
@ -168,7 +168,6 @@
|
|||
921D263A2EAFD96C8D389693 /* JuceLV2Defines.h.in */ /* JuceLV2Defines.h.in */ = {isa = PBXFileReference; lastKnownFileType = file.in; name = JuceLV2Defines.h.in; path = ../../../Build/CMake/JuceLV2Defines.h.in; sourceTree = SOURCE_ROOT; };
|
||||
92926A4D3CC4BB2A9D35EB0B /* jucer_UTF8WindowComponent.h */ /* jucer_UTF8WindowComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_UTF8WindowComponent.h; path = ../../Source/Application/Windows/jucer_UTF8WindowComponent.h; sourceTree = SOURCE_ROOT; };
|
||||
92A66A8BD87F98EB6B4FB6D0 /* jucer_ProjectContentComponent.h */ /* jucer_ProjectContentComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ProjectContentComponent.h; path = ../../Source/Project/UI/jucer_ProjectContentComponent.h; sourceTree = SOURCE_ROOT; };
|
||||
951128CA33CCDEF570436B1C /* Icon.icns */ /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = SOURCE_ROOT; };
|
||||
96A1EC6B50DBD2C526C60338 /* jucer_AudioPluginARADocumentControllerTemplate.cpp */ /* jucer_AudioPluginARADocumentControllerTemplate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_AudioPluginARADocumentControllerTemplate.cpp; path = ../../Source/BinaryData/Templates/jucer_AudioPluginARADocumentControllerTemplate.cpp; sourceTree = SOURCE_ROOT; };
|
||||
983CFBA01CA8811F30FA7F4C /* jucer_MiscUtilities.h */ /* jucer_MiscUtilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_MiscUtilities.h; path = ../../Source/Utility/Helpers/jucer_MiscUtilities.h; sourceTree = SOURCE_ROOT; };
|
||||
988A3851FBA511FB0B8FF754 /* jucer_AudioPluginARAEditorTemplate.h */ /* jucer_AudioPluginARAEditorTemplate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_AudioPluginARAEditorTemplate.h; path = ../../Source/BinaryData/Templates/jucer_AudioPluginARAEditorTemplate.h; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -246,6 +245,7 @@
|
|||
F2E4998FB2C7221587A79F8B /* jucer_CodeHelpers.cpp */ /* jucer_CodeHelpers.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_CodeHelpers.cpp; path = ../../Source/Utility/Helpers/jucer_CodeHelpers.cpp; sourceTree = SOURCE_ROOT; };
|
||||
F313EE01ECE306DB2CFE011D /* UnityPluginGUIScript.cs.in */ /* UnityPluginGUIScript.cs.in */ = {isa = PBXFileReference; lastKnownFileType = file.in; name = UnityPluginGUIScript.cs.in; path = ../../../Build/CMake/UnityPluginGUIScript.cs.in; sourceTree = SOURCE_ROOT; };
|
||||
F3CCA5545AB7B4B603D0BFEB /* jucer_AudioPluginARAPlaybackRendererTemplate.cpp */ /* jucer_AudioPluginARAPlaybackRendererTemplate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_AudioPluginARAPlaybackRendererTemplate.cpp; path = ../../Source/BinaryData/Templates/jucer_AudioPluginARAPlaybackRendererTemplate.cpp; sourceTree = SOURCE_ROOT; };
|
||||
F3FE62637ACC2263A7594E8A /* AppIcon.icns */ /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = file.icns; name = AppIcon.icns; path = AppIcon.icns; sourceTree = SOURCE_ROOT; };
|
||||
F58B23995765C9FDBE28F871 /* jucer_Modules.cpp */ /* jucer_Modules.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_Modules.cpp; path = ../../Source/Project/Modules/jucer_Modules.cpp; sourceTree = SOURCE_ROOT; };
|
||||
F5DD97B45B8EA60C1ED0DD80 /* jucer_StoredSettings.cpp */ /* jucer_StoredSettings.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = jucer_StoredSettings.cpp; path = ../../Source/Settings/jucer_StoredSettings.cpp; sourceTree = SOURCE_ROOT; };
|
||||
F63F46CA0A51C679867855A7 /* jucer_ProjectMessagesComponent.h */ /* jucer_ProjectMessagesComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ProjectMessagesComponent.h; path = ../../Source/Project/UI/jucer_ProjectMessagesComponent.h; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -410,7 +410,7 @@
|
|||
children = (
|
||||
E266DE67FF319D56F63193A6,
|
||||
6678E9B3EEACAD47F438B264,
|
||||
951128CA33CCDEF570436B1C,
|
||||
F3FE62637ACC2263A7594E8A,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -766,7 +766,7 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
2610F357881240ACBF612F48,
|
||||
1321E6C1C6170B6C898AD09D,
|
||||
DBE437EE41F174A6F27FC0E2,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1616,6 +1616,30 @@ void Project::findAllImageItems (OwnedArray<Project::Item>& items)
|
|||
findImages (getMainGroup(), items);
|
||||
}
|
||||
|
||||
static void findIconComposerIcons (const Project::Item& item, std::vector<Project::IconComposerNameAndItem>& found)
|
||||
{
|
||||
if (item.isFile())
|
||||
{
|
||||
const auto f = item.getFile();
|
||||
const auto parent = f.getParentDirectory();
|
||||
|
||||
if (f.getFileName() == "icon.json" && parent.hasFileExtension ("icon"))
|
||||
found.push_back ({ parent.getFileName(), item });
|
||||
}
|
||||
else if (item.isGroup())
|
||||
{
|
||||
for (int i = 0; i < item.getNumChildren(); ++i)
|
||||
findIconComposerIcons (item.getChild (i), found);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<Project::IconComposerNameAndItem> Project::findAllIconComposerItems()
|
||||
{
|
||||
std::vector<Project::IconComposerNameAndItem> items;
|
||||
findIconComposerIcons (getMainGroup(), items);
|
||||
return items;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
Project::Item::Item (Project& p, const ValueTree& s, bool isModuleCode)
|
||||
: project (p), state (s), belongsToModule (isModuleCode)
|
||||
|
|
@ -1997,13 +2021,27 @@ bool Project::Item::addFileRetainingSortOrder (const File& file, bool shouldComp
|
|||
return true;
|
||||
}
|
||||
|
||||
static bool isPartOfIconComposerBundle (const File& file)
|
||||
{
|
||||
const auto parent = file.getParentDirectory();
|
||||
|
||||
if (parent.isRoot())
|
||||
return false;
|
||||
|
||||
if (parent.getFileName().endsWith (".icon") && parent.getChildFile ("icon.json").existsAsFile())
|
||||
return true;
|
||||
|
||||
return isPartOfIconComposerBundle (parent);
|
||||
}
|
||||
|
||||
void Project::Item::addFileUnchecked (const File& file, int insertIndex, const bool shouldCompile)
|
||||
{
|
||||
Item item (project, ValueTree (Ids::FILE), belongsToModule);
|
||||
item.initialiseMissingProperties();
|
||||
item.getNameValue() = file.getFileName();
|
||||
item.getShouldCompileValue() = shouldCompile && file.hasFileExtension (fileTypesToCompileByDefault);
|
||||
item.getShouldAddToBinaryResourcesValue() = project.shouldBeAddedToBinaryResourcesByDefault (file);
|
||||
item.getShouldAddToBinaryResourcesValue() = project.shouldBeAddedToBinaryResourcesByDefault (file)
|
||||
&& ! isPartOfIconComposerBundle (file);
|
||||
|
||||
if (canContain (item))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -527,6 +527,14 @@ public:
|
|||
|
||||
void findAllImageItems (OwnedArray<Item>& items);
|
||||
|
||||
struct IconComposerNameAndItem
|
||||
{
|
||||
String name;
|
||||
Item item;
|
||||
};
|
||||
|
||||
std::vector<IconComposerNameAndItem> findAllIconComposerItems();
|
||||
|
||||
//==============================================================================
|
||||
ValueTree getExporters();
|
||||
int getNumExporters();
|
||||
|
|
|
|||
|
|
@ -209,6 +209,7 @@ public:
|
|||
iosDeviceFamilyValue (settings, Ids::iosDeviceFamily, getUndoManager(), "1,2"),
|
||||
iPhoneScreenOrientationValue (settings, Ids::iPhoneScreenOrientation, getUndoManager(), getDefaultScreenOrientations(), ","),
|
||||
iPadScreenOrientationValue (settings, Ids::iPadScreenOrientation, getUndoManager(), getDefaultScreenOrientations(), ","),
|
||||
iconComposerIconValue (settings, Ids::iconComposerIcon, getUndoManager()),
|
||||
customXcodeResourceFoldersValue (settings, Ids::customXcodeResourceFolders, getUndoManager()),
|
||||
customXcassetsFolderValue (settings, Ids::customXcassetsFolder, getUndoManager()),
|
||||
appSandboxValue (settings, Ids::appSandbox, getUndoManager()),
|
||||
|
|
@ -464,8 +465,35 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
void createIconComposerProperties (PropertyListBuilder& props)
|
||||
{
|
||||
StringArray choices;
|
||||
Array<var> ids;
|
||||
|
||||
choices.add ("<None>");
|
||||
ids.add (var());
|
||||
|
||||
for (const auto& icon : project.findAllIconComposerItems())
|
||||
{
|
||||
choices.add (icon.name);
|
||||
ids.add (icon.item.getID());
|
||||
}
|
||||
|
||||
String iconComposerTooltip
|
||||
{
|
||||
"Sets an Icon Composer icon to use for the executable. If specified, Xcode versions that "
|
||||
"support this format will use this icon for all platforms, and ignore the Icon (Small) "
|
||||
"and Icon (Large) setting."
|
||||
};
|
||||
|
||||
props.add (new ChoicePropertyComponent (iconComposerIconValue, "Icon (Icon Composer)", choices, ids),
|
||||
iconComposerTooltip);
|
||||
}
|
||||
|
||||
void createExporterProperties (PropertyListBuilder& props) override
|
||||
{
|
||||
createIconComposerProperties (props);
|
||||
|
||||
if (iOS)
|
||||
{
|
||||
props.add (new TextPropertyComponent (customXcassetsFolderValue, "Custom Xcassets Folder", 128, false),
|
||||
|
|
@ -1219,6 +1247,31 @@ public:
|
|||
kXPCServicesFolder = 16
|
||||
};
|
||||
|
||||
std::optional<build_tools::RelativePath> getIconComposerIconBundle() const
|
||||
{
|
||||
const auto iconJson = project.getMainGroup().findItemWithID (settings[Ids::iconComposerIcon]);
|
||||
|
||||
if (! iconJson.isValid())
|
||||
return std::nullopt;
|
||||
|
||||
jassert (iconJson.isFile());
|
||||
|
||||
return build_tools::RelativePath { iconJson.getFile().getParentDirectory(),
|
||||
project.getProjectFolder(),
|
||||
build_tools::RelativePath::projectFolder };
|
||||
}
|
||||
|
||||
String getAppIconNameOrElse (StringRef fallback) const
|
||||
{
|
||||
if (auto composerBundle = getIconComposerIconBundle())
|
||||
return composerBundle->getFileNameWithoutExtension();
|
||||
|
||||
if (iOS)
|
||||
return "AppIcon";
|
||||
|
||||
return fallback;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
struct XcodeTarget final : build_tools::ProjectType::Target
|
||||
{
|
||||
|
|
@ -1864,10 +1917,11 @@ public:
|
|||
|
||||
String gccVersion ("com.apple.compilers.llvm.clang.1_0");
|
||||
|
||||
if (auto appIconName = owner.getAppIconNameOrElse (""); appIconName.isNotEmpty())
|
||||
s.set ("ASSETCATALOG_COMPILER_APPICON_NAME", appIconName);
|
||||
|
||||
if (owner.iOS)
|
||||
{
|
||||
s.set ("ASSETCATALOG_COMPILER_APPICON_NAME", "AppIcon");
|
||||
|
||||
if (! owner.shouldAddStoryboardToProject())
|
||||
s.set ("ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME", "LaunchImage");
|
||||
}
|
||||
|
|
@ -2424,6 +2478,17 @@ private:
|
|||
resourceIDs.add (addBuildFile (FileOptions().withRelativePath (iconPath)));
|
||||
resourceFileRefs.add (createFileRefID (iconPath));
|
||||
}
|
||||
|
||||
if (auto iconComposerBundle = getIconComposerIconBundle())
|
||||
{
|
||||
const auto iconComposerPath = iconComposerBundle->rebased (project.getProjectFolder(),
|
||||
getTargetFolder(),
|
||||
build_tools::RelativePath::buildTargetFolder);
|
||||
|
||||
addFileReference (iconComposerPath.toUnixStyle());
|
||||
resourceIDs.add (addBuildFile (FileOptions().withRelativePath (iconComposerPath)));
|
||||
resourceFileRefs.add (createFileRefID (iconComposerPath));
|
||||
}
|
||||
}
|
||||
|
||||
void addBuildConfigurations() const
|
||||
|
|
@ -2722,7 +2787,7 @@ private:
|
|||
|
||||
if (! build_tools::asArray (icons).isEmpty())
|
||||
{
|
||||
iconFile = getTargetFolder().getChildFile ("Icon.icns");
|
||||
iconFile = getTargetFolder().getChildFile (getAppIconNameOrElse ("AppIcon") + ".icns");
|
||||
build_tools::writeMacIcon (icons, iconFile);
|
||||
}
|
||||
}
|
||||
|
|
@ -3820,7 +3885,8 @@ private:
|
|||
{
|
||||
const auto assetsPath = build_tools::createXcassetsFolderFromIcons (getIcons(),
|
||||
getTargetFolder(),
|
||||
project.getProjectFilenameRootString());
|
||||
project.getProjectFilenameRootString(),
|
||||
getAppIconNameOrElse ("AppIcon"));
|
||||
addFileReference (assetsPath.toUnixStyle());
|
||||
resourceIDs.add (addBuildFile (FileOptions().withRelativePath (assetsPath)));
|
||||
resourceFileRefs.add (createFileRefID (assetsPath));
|
||||
|
|
@ -3959,7 +4025,7 @@ private:
|
|||
extraFrameworksValue, frameworkSearchPathsValue, extraCustomFrameworksValue, embeddedFrameworksValue,
|
||||
postbuildCommandValue, prebuildCommandValue,
|
||||
duplicateAppExResourcesFolderValue, iosDeviceFamilyValue, iPhoneScreenOrientationValue,
|
||||
iPadScreenOrientationValue, customXcodeResourceFoldersValue, customXcassetsFolderValue,
|
||||
iPadScreenOrientationValue, iconComposerIconValue, customXcodeResourceFoldersValue, customXcassetsFolderValue,
|
||||
appSandboxValue, appSandboxInheritanceValue, appSandboxOptionsValue,
|
||||
appSandboxHomeDirROValue, appSandboxHomeDirRWValue, appSandboxAbsDirROValue, appSandboxAbsDirRWValue,
|
||||
appSandboxExceptionIOKitValue,
|
||||
|
|
|
|||
|
|
@ -159,6 +159,7 @@ namespace Ids
|
|||
DECLARE_ID (msvcModuleDefinitionFile);
|
||||
DECLARE_ID (bigIcon);
|
||||
DECLARE_ID (smallIcon);
|
||||
DECLARE_ID (iconComposerIcon);
|
||||
DECLARE_ID (prebuildCommand);
|
||||
DECLARE_ID (postbuildCommand);
|
||||
DECLARE_ID (useRuntimeLibDLL);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue