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()),
debugInformationFormatValue (config, Ids::debugInformationFormat, getUndoManager(), "ProgramDatabase"),
pluginBinaryCopyStepValue (config, Ids::enablePluginBinaryCopyStep, getUndoManager(), false),
intrinsicFunctionsEnabledValue (config, Ids::intrinsicFunctions, getUndoManager(), false),
vstBinaryLocation (config, Ids::vstBinaryLocation, getUndoManager()),
vst3BinaryLocation (config, Ids::vst3BinaryLocation, getUndoManager()),
aaxBinaryLocation (config, Ids::aaxBinaryLocation, getUndoManager()),
@ -577,6 +578,7 @@ public:
bool shouldUseMultiProcessorCompilation() const { return multiProcessorCompilationValue.get(); }
bool isFastMathEnabled() const { return fastMathValue.get(); }
bool isPluginBinaryCopyStepEnabled() const { return pluginBinaryCopyStepValue.get(); }
bool isIntrinsicFunctionsEnabled() const { return intrinsicFunctionsEnabledValue.get(); }
static bool shouldBuildTarget (build_tools::ProjectType::Target::Type targetType, Architecture arch)
{
@ -649,6 +651,9 @@ public:
{ optimisationOff, optimiseMinSize, optimiseMaxSpeed, optimiseFull }),
"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),
"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 "
@ -749,7 +754,7 @@ public:
ValueTreePropertyWithDefault warningLevelValue, warningsAreErrorsValue, prebuildCommandValue, postbuildCommandValue, generateDebugSymbolsValue,
enableIncrementalLinkingValue, useRuntimeLibDLLValue, multiProcessorCompilationValue,
intermediatesPathValue, characterSetValue, architectureTypeValue, fastMathValue, debugInformationFormatValue,
pluginBinaryCopyStepValue;
pluginBinaryCopyStepValue, intrinsicFunctionsEnabledValue;
struct LocationProperties
{
@ -1117,6 +1122,9 @@ public:
auto cppStandard = owner.project.getCppStandardString();
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 (codeSigningIdentity);
DECLARE_ID (fastMath);
DECLARE_ID (intrinsicFunctions);
DECLARE_ID (linkTimeOptimisation);
DECLARE_ID (vstBinaryLocation);
DECLARE_ID (vst3BinaryLocation);