Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle unsupported but known settings #501

Merged
merged 7 commits into from
May 8, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 78 additions & 2 deletions Jucer2Reprojucer/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -727,6 +727,11 @@ int main(int argc, char* argv[])
return juce::StringArray::fromTokens(v.toString(), ";\r\n", {});
});

convertSettingIfDefined(jucerProject, "postExportShellCommandPosix",
"POST_EXPORT_SHELL_COMMAND_MACOS_LINUX", {});
convertSettingIfDefined(jucerProject, "postExportShellCommandWin",
"POST_EXPORT_SHELL_COMMAND_WINDOWS", {});

writeUserNotes(wLn, jucerProject);

wLn(")");
Expand Down Expand Up @@ -795,7 +800,7 @@ int main(int argc, char* argv[])
convertOnOffSettingWithDefault(jucerProject, "buildStandalone",
"BUILD_STANDALONE_PLUGIN", false);
convertOnOffSettingWithDefault(jucerProject, "enableIAA",
"ENABLE_INTERAPP_AUDIO", false);
"ENABLE_INTER_APP_AUDIO", false);
}
}

Expand Down Expand Up @@ -1443,6 +1448,75 @@ int main(int argc, char* argv[])
});
}

convertOnOffSettingIfDefined(exporter, "appSandbox", "USE_APP_SANDBOX", {});
convertSettingAsListIfDefined(
exporter, "appSandboxOptions", "APP_SANDBOX_OPTIONS",
[&convertIdsToStrings](const juce::var& v) {
return convertIdsToStrings(
v,
{{"com.apple.security.network.server",
"Network: Incoming Connections (Server)"},
{"com.apple.security.network.client",
"Network: Outgoing Connections (Client)"},
{"com.apple.security.device.camera", "Hardware: Camera"},
{"com.apple.security.device.microphone", "Hardware: Microphone"},
{"com.apple.security.device.usb", "Hardware: USB"},
{"com.apple.security.print", "Hardware: Printing"},
{"com.apple.security.device.bluetooth", "Hardware: Bluetooth"},
{"com.apple.security.personal-information.addressbook",
"App Data: Contacts"},
{"com.apple.security.personal-information.location", "App Data: Location"},
{"com.apple.security.personal-information.calendars",
"App Data: Calendar"},
{"com.apple.security.files.user-selected.read-only",
"File Access: User Selected File (Read Only)"},
{"com.apple.security.files.user-selected.read-write",
"File Access: User Selected File (Read/Write)"},
{"com.apple.security.files.downloads.read-only",
"File Access: Downloads Folder (Read Only)"},
{"com.apple.security.files.downloads.read-write",
"File Access: Downloads Folder (Read/Write)"},
{"com.apple.security.files.pictures.read-only",
"File Access: Pictures Folder (Read Only)"},
{"com.apple.security.files.pictures.read-write",
"File Access: Pictures Folder (Read/Write)"},
{"com.apple.security.assets.music.read-only",
"File Access: Music Folder (Read Only)"},
{"com.apple.security.assets.music.read-write",
"File Access: Music Folder (Read/Write)"},
{"com.apple.security.assets.movies.read-only",
"File Access: Movies Folder (Read Only)"},
{"com.apple.security.assets.movies.read-write",
"File Access: Movies Folder (Read/Write)"}});
});

convertOnOffSettingIfDefined(exporter, "hardenedRuntime", "USE_HARDENED_RUNTIME",
{});
convertSettingAsListIfDefined(
exporter, "hardenedRuntimeOptions", "HARDENED_RUNTIME_OPTIONS",
[&convertIdsToStrings](const juce::var& v) {
return convertIdsToStrings(
v, {{"com.apple.security.cs.allow-jit",
"Allow Execution of JIT-compiled Code"},
{"com.apple.security.cs.allow-unsigned-executable-memory",
"Allow Unsigned Executable Memory"},
{"com.apple.security.cs.allow-dyld-environment-variables",
"Allow DYLD Environment Variables"},
{"com.apple.security.cs.disable-library-validation",
"Disable Library Validation"},
{"com.apple.security.cs.disable-executable-page-protection",
"Disable Executable Memory Protection"},
{"com.apple.security.cs.debugger", "Debugging Tool"},
{"com.apple.security.device.audio-input", "Audio Input"},
{"com.apple.security.device.camera", "Camera"},
{"com.apple.security.personal-information.location", "Location"},
{"com.apple.security.personal-information.addressbook", "Address Book"},
{"com.apple.security.personal-information.calendars", "Calendar"},
{"com.apple.security.personal-information.photos-library",
"Photos Library"},
{"com.apple.security.automation.apple-events", "Apple Events"}});
});

convertOnOffSettingIfDefined(exporter, "microphonePermissionNeeded",
"MICROPHONE_ACCESS", {});
convertSettingIfDefined(exporter, "microphonePermissionsText",
Expand All @@ -1453,7 +1527,7 @@ int main(int argc, char* argv[])
{});

convertOnOffSettingIfDefined(exporter, "iosInAppPurchasesValue",
"INAPP_PURCHASES_CAPABILITY", {});
"IN_APP_PURCHASES_CAPABILITY", {});
convertOnOffSettingIfDefined(exporter, "iosPushNotifications",
"PUSH_NOTIFICATIONS_CAPABILITY", {});
convertSettingIfDefined(exporter, "customPList", "CUSTOM_PLIST", {});
Expand All @@ -1479,6 +1553,8 @@ int main(int argc, char* argv[])
convertSettingIfDefined(exporter, "prebuildCommand", "PREBUILD_SHELL_SCRIPT", {});
convertSettingIfDefined(exporter, "postbuildCommand", "POSTBUILD_SHELL_SCRIPT",
{});
convertSettingIfDefined(exporter, "bundleIdentifier",
"EXPORTER_BUNDLE_IDENTIFIER", {});
convertSettingIfDefined(exporter, "iosDevelopmentTeamID", "DEVELOPMENT_TEAM_ID",
{});
convertOnOffSettingIfDefined(exporter, "keepCustomXcodeSchemes",
Expand Down
9 changes: 6 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,13 @@ Supported Projucer exporters
<tr><th>Supported</th><th>Exporter</th><th>Missing features</th></tr>
</thead>
<tbody>
<tr><td align="center">✔️</td><td>Xcode (MacOSX)</td><td rowspan="2">
<a href="https://github.com/McMartin/FRUT/labels/exporter%3A%20Xcode">7 unsupported Xcode exporter settings</a>
<tr><td align="center">✔️</td><td>Xcode (MacOSX)</td><td>
<a href="https://github.com/McMartin/FRUT/labels/exporter%3A%20Xcode">8 unsupported Xcode exporter settings</a> and
<br /><a href="https://github.com/McMartin/FRUT/labels/exporter%3A%20Xcode%20%28MacOSX%29">2 unsupported Xcode (MacOSX) exporter settings</a>
</td></tr>
<tr><td align="center">❌</td><td>Xcode (iOS)</td><td>
<a href="https://github.com/McMartin/FRUT/labels/exporter%3A%20Xcode">8 unsupported Xcode exporter settings</a>
</td></tr>
<tr><td align="center">❌</td><td>Xcode (iOS)</td></tr>
<tr><td align="center">✔️</td><td>Visual Studio 2019</td><td rowspan="4">
<a href="https://github.com/McMartin/FRUT/labels/exporter%3A%20Visual%20Studio">2 unsupported Visual Studio exporter settings</a>
</td></tr>
Expand Down
57 changes: 50 additions & 7 deletions cmake/Reprojucer.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@ function(jucer_project_settings)
"INCLUDE_BINARYDATA"
"BINARYDATA_NAMESPACE"
"CXX_LANGUAGE_STANDARD"
"POST_EXPORT_SHELL_COMMAND_MACOS_LINUX"
"POST_EXPORT_SHELL_COMMAND_WINDOWS"
)
set(multi_value_keywords "PREPROCESSOR_DEFINITIONS" "HEADER_SEARCH_PATHS")

Expand Down Expand Up @@ -158,6 +160,18 @@ function(jucer_project_settings)
set(_HEADER_SEARCH_PATHS "${header_search_paths}")
endif()

if(DEFINED _POST_EXPORT_SHELL_COMMAND_MACOS_LINUX)
_FRUT_warn_about_unsupported_setting("POST_EXPORT_SHELL_COMMAND_MACOS_LINUX"
"Post-Export Shell Command (macOS, Linux)" 499
)
endif()

if(DEFINED _POST_EXPORT_SHELL_COMMAND_WINDOWS)
_FRUT_warn_about_unsupported_setting("POST_EXPORT_SHELL_COMMAND_WINDOWS"
"Post-Export Shell Command (Windows)" 500
)
endif()

foreach(keyword IN LISTS single_value_keywords multi_value_keywords)
if(DEFINED _${keyword})
set(JUCER_${keyword} "${_${keyword}}" PARENT_SCOPE)
Expand All @@ -178,7 +192,7 @@ function(jucer_audio_plugin_settings)
"BUILD_AAX"
"BUILD_STANDALONE_PLUGIN"
"BUILD_UNITY_PLUGIN"
"ENABLE_INTERAPP_AUDIO"
"ENABLE_INTER_APP_AUDIO"
)
set(plugin_characteristics_keywords
"PLUGIN_IS_A_SYNTH"
Expand Down Expand Up @@ -220,8 +234,8 @@ function(jucer_audio_plugin_settings)
if(DEFINED _BUILD_STANDALONE_PLUGIN)
message(WARNING "BUILD_STANDALONE_PLUGIN is a JUCE 5 feature only")
endif()
if(DEFINED _ENABLE_INTERAPP_AUDIO)
message(WARNING "ENABLE_INTERAPP_AUDIO is a JUCE 5 feature only")
if(DEFINED _ENABLE_INTER_APP_AUDIO)
message(WARNING "ENABLE_INTER_APP_AUDIO is a JUCE 5 feature only")
endif()
endif()

Expand Down Expand Up @@ -679,17 +693,22 @@ function(jucer_export_target exporter)
"VST3_SDK_FOLDER"
"AAX_SDK_FOLDER"
"RTAS_SDK_FOLDER"
"USE_APP_SANDBOX"
"APP_SANDBOX_OPTIONS"
"USE_HARDENED_RUNTIME"
"HARDENED_RUNTIME_OPTIONS"
"MICROPHONE_ACCESS"
"MICROPHONE_ACCESS_TEXT"
"CAMERA_ACCESS"
"CAMERA_ACCESS_TEXT"
"INAPP_PURCHASES_CAPABILITY"
"IN_APP_PURCHASES_CAPABILITY"
"PUSH_NOTIFICATIONS_CAPABILITY"
"CUSTOM_PLIST"
"PLIST_PREPROCESS"
"PLIST_PREFIX_HEADER"
"PREBUILD_SHELL_SCRIPT"
"POSTBUILD_SHELL_SCRIPT"
"EXPORTER_BUNDLE_IDENTIFIER"
"DEVELOPMENT_TEAM_ID"
"KEEP_CUSTOM_XCODE_SCHEMES"
"USE_HEADERMAP"
Expand Down Expand Up @@ -854,6 +873,24 @@ function(jucer_export_target exporter)
set(JUCER_DOCUMENT_FILE_EXTENSIONS "${_DOCUMENT_FILE_EXTENSIONS}" PARENT_SCOPE)
endif()

if(DEFINED _USE_APP_SANDBOX AND _USE_APP_SANDBOX)
_FRUT_warn_about_unsupported_setting("USE_APP_SANDBOX" "Use App Sandbox" 497)
endif()

if(DEFINED _APP_SANDBOX_OPTIONS)
# TODO with USE_APP_SANDBOX
endif()

if(DEFINED _USE_HARDENED_RUNTIME AND _USE_HARDENED_RUNTIME)
_FRUT_warn_about_unsupported_setting(
"USE_HARDENED_RUNTIME" "Use Hardened Runtime" 496
)
endif()

if(DEFINED _HARDENED_RUNTIME_OPTIONS)
# TODO with USE_HARDENED_RUNTIME
endif()

if(DEFINED _MICROPHONE_ACCESS)
set(JUCER_MICROPHONE_ACCESS "${_MICROPHONE_ACCESS}" PARENT_SCOPE)
endif()
Expand All @@ -870,9 +907,9 @@ function(jucer_export_target exporter)
set(JUCER_CAMERA_ACCESS_TEXT "${_CAMERA_ACCESS_TEXT}" PARENT_SCOPE)
endif()

if(DEFINED _INAPP_PURCHASES_CAPABILITY AND _INAPP_PURCHASES_CAPABILITY)
if(DEFINED _IN_APP_PURCHASES_CAPABILITY AND _IN_APP_PURCHASES_CAPABILITY)
_FRUT_warn_about_unsupported_setting(
"INAPP_PURCHASES_CAPABILITY" "In-App Purchases Capability" 395
"IN_APP_PURCHASES_CAPABILITY" "In-App Purchases Capability" 395
)
endif()

Expand Down Expand Up @@ -934,6 +971,12 @@ function(jucer_export_target exporter)
)
endif()

if(DEFINED _EXPORTER_BUNDLE_IDENTIFIER)
_FRUT_warn_about_unsupported_setting(
"EXPORTER_BUNDLE_IDENTIFIER" "Exporter Bundle Identifier" 498
)
endif()

if(DEFINED _DEVELOPMENT_TEAM_ID)
_FRUT_warn_about_unsupported_setting("DEVELOPMENT_TEAM_ID" "Development Team ID" 251)
endif()
Expand Down Expand Up @@ -2838,7 +2881,7 @@ function(_FRUT_generate_AppConfig_header)
_FRUT_bool_to_int("${JUCER_BUILD_STANDALONE_PLUGIN}" Build_Standalone_value)
endif()
_FRUT_bool_to_int("${JUCER_BUILD_UNITY_PLUGIN}" Build_Unity_value)
_FRUT_bool_to_int("${JUCER_ENABLE_INTERAPP_AUDIO}" Enable_IAA_value)
_FRUT_bool_to_int("${JUCER_ENABLE_INTER_APP_AUDIO}" Enable_IAA_value)

set(Name_value "\"${JUCER_PLUGIN_NAME}\"")
set(Desc_value "\"${JUCER_PLUGIN_DESCRIPTION}\"")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ master/generated/JUCE-5.2.1/examples/PlugInSamples/MultiOutSynth/CMakeLists.txt
BUILD_RTAS OFF
BUILD_AAX ON
BUILD_STANDALONE_PLUGIN OFF
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "MultiOutSynth"
PLUGIN_DESCRIPTION "MultiOutSynth"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
2 changes: 1 addition & 1 deletion generated/JUCE-5.0.0/examples/AUv3Synth/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX OFF
BUILD_STANDALONE_PLUGIN ON
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "AUv3 Synth"
PLUGIN_DESCRIPTION "AUv3 Synth"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX OFF
BUILD_STANDALONE_PLUGIN OFF
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "Arpeggiator"
PLUGIN_DESCRIPTION "Arpeggiator"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX OFF
BUILD_STANDALONE_PLUGIN OFF
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "GainPlugIn"
PLUGIN_DESCRIPTION "GainPlugIn"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX OFF
BUILD_STANDALONE_PLUGIN ON
ENABLE_INTERAPP_AUDIO ON
ENABLE_INTER_APP_AUDIO ON
PLUGIN_NAME "InterAppAudioEffect"
PLUGIN_DESCRIPTION "InterAppAudioEffect"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX ON
BUILD_STANDALONE_PLUGIN OFF
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "MultiOutSynth"
PLUGIN_DESCRIPTION "MultiOutSynth"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX ON
BUILD_STANDALONE_PLUGIN OFF
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "Noise Gate"
PLUGIN_DESCRIPTION "Noise Gate"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX ON
BUILD_STANDALONE_PLUGIN OFF
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "Surround"
PLUGIN_DESCRIPTION "Surround"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX OFF
BUILD_STANDALONE_PLUGIN ON
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "Juce Demo Plugin"
PLUGIN_DESCRIPTION "Juce Demo Plugin"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
2 changes: 1 addition & 1 deletion generated/JUCE-5.2.1/examples/AUv3Synth/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX OFF
BUILD_STANDALONE_PLUGIN ON
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "AUv3 Synth"
PLUGIN_DESCRIPTION "AUv3 Synth"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX OFF
BUILD_STANDALONE_PLUGIN ON
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "DSP module plugin demo"
PLUGIN_DESCRIPTION "DSP module plugin demo"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX OFF
BUILD_STANDALONE_PLUGIN OFF
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "Arpeggiator"
PLUGIN_DESCRIPTION "Arpeggiator"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX OFF
BUILD_STANDALONE_PLUGIN OFF
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "GainPlugIn"
PLUGIN_DESCRIPTION "GainPlugIn"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX OFF
BUILD_STANDALONE_PLUGIN ON
ENABLE_INTERAPP_AUDIO ON
ENABLE_INTER_APP_AUDIO ON
PLUGIN_NAME "InterAppAudioEffect"
PLUGIN_DESCRIPTION "InterAppAudioEffect"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jucer_audio_plugin_settings(
BUILD_RTAS OFF
BUILD_AAX ON
BUILD_STANDALONE_PLUGIN OFF
ENABLE_INTERAPP_AUDIO OFF
ENABLE_INTER_APP_AUDIO OFF
PLUGIN_NAME "MultiOutSynth"
PLUGIN_DESCRIPTION "MultiOutSynth"
PLUGIN_MANUFACTURER "ROLI Ltd."
Expand Down
Loading