1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-09 23:34:20 +00:00

Projucer (MSVC): Add setting to control intrinsic functions optimisation flag

This commit is contained in:
reuk 2025-07-22 15:47:40 +01:00
parent 6212a4c81f
commit f3840561b5
No known key found for this signature in database
2 changed files with 10 additions and 1 deletions

View file

@ -478,6 +478,7 @@ public:
fastMathValue (config, Ids::fastMath, getUndoManager()), fastMathValue (config, Ids::fastMath, getUndoManager()),
debugInformationFormatValue (config, Ids::debugInformationFormat, getUndoManager(), "ProgramDatabase"), debugInformationFormatValue (config, Ids::debugInformationFormat, getUndoManager(), "ProgramDatabase"),
pluginBinaryCopyStepValue (config, Ids::enablePluginBinaryCopyStep, getUndoManager(), false), pluginBinaryCopyStepValue (config, Ids::enablePluginBinaryCopyStep, getUndoManager(), false),
intrinsicFunctionsEnabledValue (config, Ids::intrinsicFunctions, getUndoManager(), false),
vstBinaryLocation (config, Ids::vstBinaryLocation, getUndoManager()), vstBinaryLocation (config, Ids::vstBinaryLocation, getUndoManager()),
vst3BinaryLocation (config, Ids::vst3BinaryLocation, getUndoManager()), vst3BinaryLocation (config, Ids::vst3BinaryLocation, getUndoManager()),
aaxBinaryLocation (config, Ids::aaxBinaryLocation, getUndoManager()), aaxBinaryLocation (config, Ids::aaxBinaryLocation, getUndoManager()),
@ -577,6 +578,7 @@ public:
bool shouldUseMultiProcessorCompilation() const { return multiProcessorCompilationValue.get(); } bool shouldUseMultiProcessorCompilation() const { return multiProcessorCompilationValue.get(); }
bool isFastMathEnabled() const { return fastMathValue.get(); } bool isFastMathEnabled() const { return fastMathValue.get(); }
bool isPluginBinaryCopyStepEnabled() const { return pluginBinaryCopyStepValue.get(); } bool isPluginBinaryCopyStepEnabled() const { return pluginBinaryCopyStepValue.get(); }
bool isIntrinsicFunctionsEnabled() const { return intrinsicFunctionsEnabledValue.get(); }
static bool shouldBuildTarget (build_tools::ProjectType::Target::Type targetType, Architecture arch) static bool shouldBuildTarget (build_tools::ProjectType::Target::Type targetType, Architecture arch)
{ {
@ -649,6 +651,9 @@ public:
{ optimisationOff, optimiseMinSize, optimiseMaxSpeed, optimiseFull }), { optimisationOff, optimiseMinSize, optimiseMaxSpeed, optimiseFull }),
"The optimisation level for this configuration"); "The optimisation level for this configuration");
props.add (new ChoicePropertyComponent (intrinsicFunctionsEnabledValue, "Intrinsic Functions"),
"Replaces some function calls with intrinsic or otherwise special forms of the function that help your application run faster.");
props.add (new TextPropertyComponent (intermediatesPathValue, "Intermediates Path", 2048, false), props.add (new TextPropertyComponent (intermediatesPathValue, "Intermediates Path", 2048, false),
"An optional path to a folder to use for the intermediate build files. Note that Visual Studio allows " "An optional path to a folder to use for the intermediate build files. Note that Visual Studio allows "
"you to use macros in this path, e.g. \"$(TEMP)\\MyAppBuildFiles\\$(Configuration)\", which is a handy way to " "you to use macros in this path, e.g. \"$(TEMP)\\MyAppBuildFiles\\$(Configuration)\", which is a handy way to "
@ -749,7 +754,7 @@ public:
ValueTreePropertyWithDefault warningLevelValue, warningsAreErrorsValue, prebuildCommandValue, postbuildCommandValue, generateDebugSymbolsValue, ValueTreePropertyWithDefault warningLevelValue, warningsAreErrorsValue, prebuildCommandValue, postbuildCommandValue, generateDebugSymbolsValue,
enableIncrementalLinkingValue, useRuntimeLibDLLValue, multiProcessorCompilationValue, enableIncrementalLinkingValue, useRuntimeLibDLLValue, multiProcessorCompilationValue,
intermediatesPathValue, characterSetValue, architectureTypeValue, fastMathValue, debugInformationFormatValue, intermediatesPathValue, characterSetValue, architectureTypeValue, fastMathValue, debugInformationFormatValue,
pluginBinaryCopyStepValue; pluginBinaryCopyStepValue, intrinsicFunctionsEnabledValue;
struct LocationProperties struct LocationProperties
{ {
@ -1117,6 +1122,9 @@ public:
auto cppStandard = owner.project.getCppStandardString(); auto cppStandard = owner.project.getCppStandardString();
cl->createNewChildElement ("LanguageStandard")->addTextElement ("stdcpp" + cppStandard); cl->createNewChildElement ("LanguageStandard")->addTextElement ("stdcpp" + cppStandard);
if (config.isIntrinsicFunctionsEnabled())
cl->createNewChildElement ("IntrinsicFunctions")->addTextElement ("true");
} }
{ {

View file

@ -125,6 +125,7 @@ namespace Ids
DECLARE_ID (cppLibType); DECLARE_ID (cppLibType);
DECLARE_ID (codeSigningIdentity); DECLARE_ID (codeSigningIdentity);
DECLARE_ID (fastMath); DECLARE_ID (fastMath);
DECLARE_ID (intrinsicFunctions);
DECLARE_ID (linkTimeOptimisation); DECLARE_ID (linkTimeOptimisation);
DECLARE_ID (vstBinaryLocation); DECLARE_ID (vstBinaryLocation);
DECLARE_ID (vst3BinaryLocation); DECLARE_ID (vst3BinaryLocation);