diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h index 73051b4030..bf07daf77b 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h @@ -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"); } { diff --git a/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h b/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h index 67073dce74..cde686e0e1 100644 --- a/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h +++ b/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h @@ -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);