| @@ -1016,6 +1016,8 @@ add_library( ${BINARY_NAME} | |||
| "../../../../../modules/juce_core/javascript/juce_JSON.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation_test.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.h" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.cpp" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.h" | |||
| "../../../../../modules/juce_core/logging/juce_Logger.cpp" | |||
| @@ -3082,6 +3084,8 @@ set_source_files_properties( | |||
| "../../../../../modules/juce_core/javascript/juce_JSON.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation_test.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.h" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.cpp" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.h" | |||
| "../../../../../modules/juce_core/logging/juce_Logger.cpp" | |||
| @@ -1313,6 +1313,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -3332,6 +3335,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1930,6 +1930,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -5196,6 +5199,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -1313,6 +1313,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -3332,6 +3335,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1930,6 +1930,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -5196,6 +5199,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -1313,6 +1313,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -3332,6 +3335,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1930,6 +1930,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -5196,6 +5199,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -892,6 +892,8 @@ add_library( ${BINARY_NAME} | |||
| "../../../../../modules/juce_core/javascript/juce_JSON.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation_test.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.h" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.cpp" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.h" | |||
| "../../../../../modules/juce_core/logging/juce_Logger.cpp" | |||
| @@ -2658,6 +2660,8 @@ set_source_files_properties( | |||
| "../../../../../modules/juce_core/javascript/juce_JSON.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation_test.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.h" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.cpp" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.h" | |||
| "../../../../../modules/juce_core/logging/juce_Logger.cpp" | |||
| @@ -1153,6 +1153,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -2888,6 +2891,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1639,6 +1639,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -4476,6 +4479,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -925,6 +925,8 @@ add_library( ${BINARY_NAME} | |||
| "../../../../../modules/juce_core/javascript/juce_JSON.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation_test.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.h" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.cpp" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.h" | |||
| "../../../../../modules/juce_core/logging/juce_Logger.cpp" | |||
| @@ -2844,6 +2846,8 @@ set_source_files_properties( | |||
| "../../../../../modules/juce_core/javascript/juce_JSON.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation_test.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.h" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.cpp" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.h" | |||
| "../../../../../modules/juce_core/logging/juce_Logger.cpp" | |||
| @@ -1161,6 +1161,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -3068,6 +3071,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1714,6 +1714,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -4752,6 +4755,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -1161,6 +1161,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -3068,6 +3071,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1714,6 +1714,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -4752,6 +4755,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -1161,6 +1161,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -3068,6 +3071,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1714,6 +1714,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -4752,6 +4755,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -220,6 +220,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -528,6 +531,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -160,6 +160,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -558,6 +561,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -896,6 +896,8 @@ add_library( ${BINARY_NAME} | |||
| "../../../../../modules/juce_core/javascript/juce_JSON.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation_test.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.h" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.cpp" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.h" | |||
| "../../../../../modules/juce_core/logging/juce_Logger.cpp" | |||
| @@ -2742,6 +2744,8 @@ set_source_files_properties( | |||
| "../../../../../modules/juce_core/javascript/juce_JSON.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation.h" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONSerialisation_test.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.cpp" | |||
| "../../../../../modules/juce_core/javascript/juce_JSONUtils.h" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.cpp" | |||
| "../../../../../modules/juce_core/logging/juce_FileLogger.h" | |||
| "../../../../../modules/juce_core/logging/juce_Logger.cpp" | |||
| @@ -1153,6 +1153,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -2979,6 +2982,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1669,6 +1669,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -4617,6 +4620,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -356,6 +356,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -1821,6 +1824,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -637,6 +637,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -2631,6 +2634,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -356,6 +356,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -1821,6 +1824,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -637,6 +637,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -2631,6 +2634,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -356,6 +356,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -1821,6 +1824,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -637,6 +637,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -2631,6 +2634,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -1169,6 +1169,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -3134,6 +3137,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1738,6 +1738,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -4842,6 +4845,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -1169,6 +1169,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -3134,6 +3137,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1738,6 +1738,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -4842,6 +4845,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -1169,6 +1169,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -3134,6 +3137,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1738,6 +1738,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -4842,6 +4845,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -1152,6 +1152,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <ExcludedFromBuild>true</ExcludedFromBuild> | |||
| </ClCompile> | |||
| @@ -2955,6 +2958,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_Logger.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\maths\juce_BigInteger.h"/> | |||
| @@ -1666,6 +1666,9 @@ | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation_test.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.cpp"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.cpp"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClCompile> | |||
| @@ -4584,6 +4587,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONUtils.h"> | |||
| <Filter>JUCE Modules\juce_core\javascript</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\logging\juce_FileLogger.h"> | |||
| <Filter>JUCE Modules\juce_core\logging</Filter> | |||
| </ClInclude> | |||
| @@ -398,29 +398,32 @@ public: | |||
| "hello world", | |||
| { 5, 6, 7 }, | |||
| { { "foo", 4 }, { "bar", 5 } } }), | |||
| makeObject ({ { "__version__", 2 }, | |||
| { "a", 7 }, | |||
| { "b", "hello world" }, | |||
| { "c", Array<var> { 5, 6, 7 } }, | |||
| { "d", Array<var> { makeObject ({ { "first", "bar" }, { "second", 5 } }), | |||
| makeObject ({ { "first", "foo" }, { "second", 4 } }) } } })); | |||
| JSONUtils::makeObject ({ { "__version__", 2 }, | |||
| { "a", 7 }, | |||
| { "b", "hello world" }, | |||
| { "c", Array<var> { 5, 6, 7 } }, | |||
| { "d", | |||
| Array<var> { JSONUtils::makeObject ({ { "first", "bar" }, | |||
| { "second", 5 } }), | |||
| JSONUtils::makeObject ({ { "first", "foo" }, | |||
| { "second", 4 } }) } } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithInternalUnifiedSerialisation { 7.89, | |||
| 4.321f, | |||
| "custom string", | |||
| { "foo", "bar", "baz" } }), | |||
| makeObject ({ { "__version__", 5 }, | |||
| { "a", 7.89 }, | |||
| { "b", 4.321f }, | |||
| { "c", "custom string" }, | |||
| { "d", Array<var> { "foo", "bar", "baz" } } })); | |||
| JSONUtils::makeObject ({ { "__version__", 5 }, | |||
| { "a", 7.89 }, | |||
| { "b", 4.321f }, | |||
| { "c", "custom string" }, | |||
| { "d", Array<var> { "foo", "bar", "baz" } } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithExternalSplitSerialisation { "string", { 1, 2, 3 } }), | |||
| makeObject ({ { "__version__", 10 }, | |||
| { "a", makeObject ({ { "engaged", true }, { "value", "string" } }) }, | |||
| { "b", Array<var> { "0x1", "0x2", "0x3" } } })); | |||
| JSONUtils::makeObject ({ { "__version__", 10 }, | |||
| { "a", JSONUtils::makeObject ({ { "engaged", true }, { "value", "string" } }) }, | |||
| { "b", Array<var> { "0x1", "0x2", "0x3" } } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithInternalSplitSerialisation { "string", { 16, 32, 48 } }), | |||
| makeObject ({ { "__version__", 1 }, | |||
| { "a", "string" }, | |||
| { "b", Array<var> { "0x10", "0x20", "0x30" } } })); | |||
| JSONUtils::makeObject ({ { "__version__", 1 }, | |||
| { "a", "string" }, | |||
| { "b", Array<var> { "0x10", "0x20", "0x30" } } })); | |||
| expect (ToVar::convert (TypeWithBrokenObjectSerialisation { 1, 2 }) == std::nullopt); | |||
| expect (ToVar::convert (TypeWithBrokenPrimitiveSerialisation { 1, 2 }) == std::nullopt); | |||
| @@ -429,69 +432,69 @@ public: | |||
| expect (ToVar::convert (TypeWithBrokenDynamicSerialisation { std::vector<TypeWithBrokenObjectSerialisation> (10) }) == std::nullopt); | |||
| expectDeepEqual (ToVar::convert (TypeWithVersionedSerialisation { 1, 2, 3, 4 }), | |||
| makeObject ({ { "__version__", 3 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 }, | |||
| { "d", 4 } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithVersionedSerialisation { 1, 2, 3, 4 }, ToVar::Options{}.withVersionIncluded (false)), | |||
| makeObject ({ { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 }, | |||
| { "d", 4 } })); | |||
| JSONUtils::makeObject ({ { "__version__", 3 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 }, | |||
| { "d", 4 } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithVersionedSerialisation { 1, 2, 3, 4 }, ToVar::Options {}.withVersionIncluded (false)), | |||
| JSONUtils::makeObject ({ { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 }, | |||
| { "d", 4 } })); | |||
| // Requested explicit version is higher than the type's declared version | |||
| expectDeepEqual (ToVar::convert (TypeWithVersionedSerialisation { 1, 2, 3, 4 }, ToVar::Options{}.withExplicitVersion (4)), | |||
| expectDeepEqual (ToVar::convert (TypeWithVersionedSerialisation { 1, 2, 3, 4 }, ToVar::Options {}.withExplicitVersion (4)), | |||
| std::nullopt); | |||
| expectDeepEqual (ToVar::convert (TypeWithVersionedSerialisation { 1, 2, 3, 4 }, ToVar::Options {}.withExplicitVersion (3)), | |||
| makeObject ({ { "__version__", 3 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 }, | |||
| { "d", 4 } })); | |||
| JSONUtils::makeObject ({ { "__version__", 3 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 }, | |||
| { "d", 4 } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithVersionedSerialisation { 1, 2, 3, 4 }, ToVar::Options {}.withExplicitVersion (2)), | |||
| makeObject ({ { "__version__", 2 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 } })); | |||
| JSONUtils::makeObject ({ { "__version__", 2 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithVersionedSerialisation { 1, 2, 3, 4 }, ToVar::Options {}.withExplicitVersion (1)), | |||
| makeObject ({ { "__version__", 1 }, | |||
| { "a", 1 }, | |||
| { "b", 2 } })); | |||
| JSONUtils::makeObject ({ { "__version__", 1 }, | |||
| { "a", 1 }, | |||
| { "b", 2 } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithVersionedSerialisation { 1, 2, 3, 4 }, ToVar::Options {}.withExplicitVersion (0)), | |||
| makeObject ({ { "__version__", 0 }, | |||
| { "a", 1 } })); | |||
| JSONUtils::makeObject ({ { "__version__", 0 }, | |||
| { "a", 1 } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithVersionedSerialisation { 1, 2, 3, 4 }, ToVar::Options {}.withExplicitVersion (std::nullopt)), | |||
| makeObject ({ { "a", 1 } })); | |||
| JSONUtils::makeObject ({ { "a", 1 } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithRawVarLast { 200, "success", true }), | |||
| makeObject ({ { "status", 200 }, { "message", "success" }, { "extended", true } })); | |||
| JSONUtils::makeObject ({ { "status", 200 }, { "message", "success" }, { "extended", true } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithRawVarLast { 200, | |||
| "success", | |||
| makeObject ({ { "status", 123.456 }, | |||
| { "message", "failure" }, | |||
| { "extended", true } }) }), | |||
| makeObject ({ { "status", 200 }, | |||
| { "message", "success" }, | |||
| { "extended", makeObject ({ { "status", 123.456 }, | |||
| { "message", "failure" }, | |||
| { "extended", true } }) } })); | |||
| JSONUtils::makeObject ({ { "status", 123.456 }, | |||
| { "message", "failure" }, | |||
| { "extended", true } }) }), | |||
| JSONUtils::makeObject ({ { "status", 200 }, | |||
| { "message", "success" }, | |||
| { "extended", JSONUtils::makeObject ({ { "status", 123.456 }, | |||
| { "message", "failure" }, | |||
| { "extended", true } }) } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithRawVarFirst { 200, "success", true }), | |||
| makeObject ({ { "status", 200 }, { "message", "success" }, { "extended", true } })); | |||
| JSONUtils::makeObject ({ { "status", 200 }, { "message", "success" }, { "extended", true } })); | |||
| expectDeepEqual (ToVar::convert (TypeWithRawVarFirst { 200, | |||
| "success", | |||
| makeObject ({ { "status", 123.456 }, | |||
| { "message", "failure" }, | |||
| { "extended", true } }) }), | |||
| makeObject ({ { "status", 200 }, | |||
| { "message", "success" }, | |||
| { "extended", makeObject ({ { "status", 123.456 }, | |||
| { "message", "failure" }, | |||
| { "extended", true } }) } })); | |||
| const auto payload = makeObject ({ { "foo", 1 }, { "bar", 2 } }); | |||
| JSONUtils::makeObject ({ { "status", 123.456 }, | |||
| { "message", "failure" }, | |||
| { "extended", true } }) }), | |||
| JSONUtils::makeObject ({ { "status", 200 }, | |||
| { "message", "success" }, | |||
| { "extended", JSONUtils::makeObject ({ { "status", 123.456 }, | |||
| { "message", "failure" }, | |||
| { "extended", true } }) } })); | |||
| const auto payload = JSONUtils::makeObject ({ { "foo", 1 }, { "bar", 2 } }); | |||
| expectDeepEqual (ToVar::convert (TypeWithInnerVar { 404, payload }), | |||
| makeObject ({ { "eventId", 404 }, { "payload", payload } })); | |||
| JSONUtils::makeObject ({ { "eventId", 404 }, { "payload", payload } })); | |||
| } | |||
| beginTest ("FromVar"); | |||
| @@ -505,34 +508,37 @@ public: | |||
| expect (FromVar::convert<int64> (JSON::fromString ("6")) == 6); | |||
| expect (FromVar::convert<String> (JSON::fromString ("\"hello world\"")) == "hello world"); | |||
| expect (FromVar::convert<std::vector<int>> (JSON::fromString ("[1,2,3]")) == std::vector<int> { 1, 2, 3 }); | |||
| expect (FromVar::convert<TypeWithExternalUnifiedSerialisation> (makeObject ({ { "__version__", 2 }, | |||
| { "a", 7 }, | |||
| { "b", "hello world" }, | |||
| { "c", Array<var> { 5, 6, 7 } }, | |||
| { "d", Array<var> { makeObject ({ { "first", "bar" }, { "second", 5 } }), | |||
| makeObject ({ { "first", "foo" }, { "second", 4 } }) } } })) | |||
| expect (FromVar::convert<TypeWithExternalUnifiedSerialisation> (JSONUtils::makeObject ({ { "__version__", 2 }, | |||
| { "a", 7 }, | |||
| { "b", "hello world" }, | |||
| { "c", Array<var> { 5, 6, 7 } }, | |||
| { "d", | |||
| Array<var> { JSONUtils::makeObject ({ { "first", "bar" }, | |||
| { "second", 5 } }), | |||
| JSONUtils::makeObject ({ { "first", "foo" }, | |||
| { "second", 4 } }) } } })) | |||
| == TypeWithExternalUnifiedSerialisation { 7, | |||
| "hello world", | |||
| { 5, 6, 7 }, | |||
| { { "foo", 4 }, { "bar", 5 } } }); | |||
| expect (FromVar::convert<TypeWithInternalUnifiedSerialisation> (makeObject ({ { "__version__", 5 }, | |||
| { "a", 7.89 }, | |||
| { "b", 4.321f }, | |||
| { "c", "custom string" }, | |||
| { "d", Array<var> { "foo", "bar", "baz" } } })) | |||
| expect (FromVar::convert<TypeWithInternalUnifiedSerialisation> (JSONUtils::makeObject ({ { "__version__", 5 }, | |||
| { "a", 7.89 }, | |||
| { "b", 4.321f }, | |||
| { "c", "custom string" }, | |||
| { "d", Array<var> { "foo", "bar", "baz" } } })) | |||
| == TypeWithInternalUnifiedSerialisation { 7.89, | |||
| 4.321f, | |||
| "custom string", | |||
| { "foo", "bar", "baz" } }); | |||
| expect (FromVar::convert<TypeWithExternalSplitSerialisation> (makeObject ({ { "__version__", 10 }, | |||
| { "a", makeObject ({ { "engaged", true }, { "value", "string" } }) }, | |||
| { "b", Array<var> { "0x1", "0x2", "0x3" } } })) | |||
| expect (FromVar::convert<TypeWithExternalSplitSerialisation> (JSONUtils::makeObject ({ { "__version__", 10 }, | |||
| { "a", JSONUtils::makeObject ({ { "engaged", true }, { "value", "string" } }) }, | |||
| { "b", Array<var> { "0x1", "0x2", "0x3" } } })) | |||
| == TypeWithExternalSplitSerialisation { "string", { 1, 2, 3 } }); | |||
| expect (FromVar::convert<TypeWithInternalSplitSerialisation> (makeObject ({ { "__version__", 1 }, | |||
| { "a", "string" }, | |||
| { "b", Array<var> { "0x10", "0x20", "0x30" } } })) | |||
| expect (FromVar::convert<TypeWithInternalSplitSerialisation> (JSONUtils::makeObject ({ { "__version__", 1 }, | |||
| { "a", "string" }, | |||
| { "b", Array<var> { "0x10", "0x20", "0x30" } } })) | |||
| == TypeWithInternalSplitSerialisation { "string", { 16, 32, 48 } }); | |||
| expect (FromVar::convert<TypeWithBrokenObjectSerialisation> (JSON::fromString ("null")) == std::nullopt); | |||
| @@ -541,47 +547,48 @@ public: | |||
| expect (FromVar::convert<TypeWithBrokenNestedSerialisation> (JSON::fromString ("null")) == std::nullopt); | |||
| expect (FromVar::convert<TypeWithBrokenDynamicSerialisation> (JSON::fromString ("null")) == std::nullopt); | |||
| expect (FromVar::convert<TypeWithInternalUnifiedSerialisation> (makeObject ({ { "a", 7.89 }, | |||
| { "b", 4.321f } })) == std::nullopt); | |||
| expect (FromVar::convert<TypeWithInternalUnifiedSerialisation> (JSONUtils::makeObject ({ { "a", 7.89 }, | |||
| { "b", 4.321f } })) | |||
| == std::nullopt); | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (makeObject ({ { "__version__", 3 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 }, | |||
| { "d", 4 } })) | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (JSONUtils::makeObject ({ { "__version__", 3 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 }, | |||
| { "d", 4 } })) | |||
| == TypeWithVersionedSerialisation { 1, 2, 3, 4 }); | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (makeObject ({ { "__version__", 4 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 }, | |||
| { "d", 4 } })) | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (JSONUtils::makeObject ({ { "__version__", 4 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 }, | |||
| { "d", 4 } })) | |||
| == TypeWithVersionedSerialisation { 1, 2, 3, 4 }); | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (makeObject ({ { "__version__", 2 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 } })) | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (JSONUtils::makeObject ({ { "__version__", 2 }, | |||
| { "a", 1 }, | |||
| { "b", 2 }, | |||
| { "c", 3 } })) | |||
| == TypeWithVersionedSerialisation { 1, 2, 3, 0 }); | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (makeObject ({ { "__version__", 1 }, | |||
| { "a", 1 }, | |||
| { "b", 2 } })) | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (JSONUtils::makeObject ({ { "__version__", 1 }, | |||
| { "a", 1 }, | |||
| { "b", 2 } })) | |||
| == TypeWithVersionedSerialisation { 1, 2, 0, 0 }); | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (makeObject ({ { "__version__", 0 }, | |||
| { "a", 1 } })) | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (JSONUtils::makeObject ({ { "__version__", 0 }, | |||
| { "a", 1 } })) | |||
| == TypeWithVersionedSerialisation { 1, 0, 0, 0 }); | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (makeObject ({ { "a", 1 } })) | |||
| expect (FromVar::convert<TypeWithVersionedSerialisation> (JSONUtils::makeObject ({ { "a", 1 } })) | |||
| == TypeWithVersionedSerialisation { 1, 0, 0, 0 }); | |||
| const auto raw = makeObject ({ { "status", 200 }, { "message", "success" }, { "extended", "another string" } }); | |||
| const auto raw = JSONUtils::makeObject ({ { "status", 200 }, { "message", "success" }, { "extended", "another string" } }); | |||
| expect (FromVar::convert<TypeWithRawVarLast> (raw) == TypeWithRawVarLast { 200, "success", "another string" }); | |||
| expect (FromVar::convert<TypeWithRawVarFirst> (raw) == TypeWithRawVarFirst { 200, "success", "another string" }); | |||
| const var payloads[] { makeObject ({ { "foo", 1 }, { "bar", 2 } }), | |||
| const var payloads[] { JSONUtils::makeObject ({ { "foo", 1 }, { "bar", 2 } }), | |||
| var (Array<var> { 1, 2 }), | |||
| var() }; | |||
| for (const auto& payload : payloads) | |||
| { | |||
| const auto objectWithPayload = makeObject ({ { "eventId", 404 }, { "payload", payload } }); | |||
| const auto objectWithPayload = JSONUtils::makeObject ({ { "eventId", 404 }, { "payload", payload } }); | |||
| expect (FromVar::convert<TypeWithInnerVar> (objectWithPayload) == TypeWithInnerVar { 404, payload }); | |||
| } | |||
| } | |||
| @@ -593,57 +600,12 @@ private: | |||
| expect (deepEqual (a, b), a.has_value() && b.has_value() ? JSON::toString (*a) + " != " + JSON::toString (*b) : String()); | |||
| } | |||
| static var makeObject (const std::map<Identifier, var>& map) | |||
| { | |||
| auto obj = std::make_unique<DynamicObject>(); | |||
| for (auto& [key, value] : map) | |||
| obj->setProperty (key, value); | |||
| return obj.release(); | |||
| } | |||
| static bool deepEqual (const DynamicObject& a, const DynamicObject& b) | |||
| { | |||
| if (a.getProperties().size() != b.getProperties().size()) | |||
| return false; | |||
| for (const auto& [key, value] : a.getProperties()) | |||
| { | |||
| if (! b.hasProperty (key)) | |||
| return false; | |||
| if (! deepEqual (value, b.getProperty (key))) | |||
| return false; | |||
| } | |||
| return true; | |||
| } | |||
| static bool deepEqual (const Array<var>& a, const Array<var>& b) | |||
| { | |||
| return std::equal (a.begin(), a.end(), b.begin(), b.end(), [] (const var& i, const var& j) { return deepEqual (i, j); }); | |||
| } | |||
| static bool deepEqual (const var& a, const var& b) | |||
| { | |||
| if (auto* i = a.getDynamicObject()) | |||
| if (auto* j = b.getDynamicObject()) | |||
| return deepEqual (*i, *j); | |||
| if (auto* i = a.getArray()) | |||
| if (auto* j = b.getArray()) | |||
| return deepEqual (*i, *j); | |||
| return a == b; | |||
| } | |||
| static bool deepEqual (const std::optional<var>& a, const std::optional<var>& b) | |||
| { | |||
| if (a.has_value() != b.has_value()) | |||
| return false; | |||
| if (a.has_value() && b.has_value()) | |||
| return JSONUtils::deepEqual (*a, *b); | |||
| return ! a.has_value() || deepEqual (*a, *b); | |||
| return a == b; | |||
| } | |||
| }; | |||
| @@ -0,0 +1,215 @@ | |||
| /* | |||
| ============================================================================== | |||
| This file is part of the JUCE library. | |||
| Copyright (c) 2022 - Raw Material Software Limited | |||
| JUCE is an open source library subject to commercial or open-source | |||
| licensing. | |||
| The code included in this file is provided under the terms of the ISC license | |||
| http://www.isc.org/downloads/software-support-policy/isc-license. Permission | |||
| To use, copy, modify, and/or distribute this software for any purpose with or | |||
| without fee is hereby granted provided that the above copyright notice and | |||
| this permission notice appear in all copies. | |||
| JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER | |||
| EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE | |||
| DISCLAIMED. | |||
| ============================================================================== | |||
| */ | |||
| namespace juce | |||
| { | |||
| var JSONUtils::makeObject (const std::map<Identifier, var>& source) | |||
| { | |||
| auto result = std::make_unique<DynamicObject>(); | |||
| for (const auto& [name, value] : source) | |||
| result->setProperty (name, value); | |||
| return var (result.release()); | |||
| } | |||
| var JSONUtils::makeObjectWithKeyFirst (const std::map<Identifier, var>& source, | |||
| Identifier key) | |||
| { | |||
| auto result = std::make_unique<DynamicObject>(); | |||
| if (const auto iter = source.find (key); iter != source.end()) | |||
| result->setProperty (key, iter->second); | |||
| for (const auto& [name, value] : source) | |||
| if (name != key) | |||
| result->setProperty (name, value); | |||
| return var (result.release()); | |||
| } | |||
| std::optional<var> JSONUtils::setPointer (const var& v, | |||
| String pointer, | |||
| const var& newValue) | |||
| { | |||
| if (pointer.isEmpty()) | |||
| return newValue; | |||
| if (! pointer.startsWith ("/")) | |||
| { | |||
| // This is not a well-formed JSON pointer | |||
| jassertfalse; | |||
| return {}; | |||
| } | |||
| const auto findResult = pointer.indexOfChar (1, '/'); | |||
| const auto pos = findResult < 0 ? pointer.length() : findResult; | |||
| const String head (pointer.begin() + 1, pointer.begin() + pos); | |||
| const String tail (pointer.begin() + pos, pointer.end()); | |||
| const auto unescaped = head.replace ("~1", "/").replace ("~0", "~"); | |||
| if (auto* object = v.getDynamicObject()) | |||
| { | |||
| if (const auto newProperty = setPointer (object->getProperty (unescaped), tail, newValue)) | |||
| { | |||
| auto cloned = object->clone(); | |||
| cloned->setProperty (unescaped, *newProperty); | |||
| return var (cloned.release()); | |||
| } | |||
| } | |||
| else if (auto* array = v.getArray()) | |||
| { | |||
| const auto index = [&]() -> size_t | |||
| { | |||
| if (unescaped == "-") | |||
| return (size_t) array->size(); | |||
| if (unescaped == "0") | |||
| return 0; | |||
| if (! unescaped.startsWith ("0")) | |||
| return (size_t) unescaped.getLargeIntValue(); | |||
| return std::numeric_limits<size_t>::max(); | |||
| }(); | |||
| if (const auto newIndex = setPointer ((*array)[(int) index], tail, newValue)) | |||
| { | |||
| auto copied = *array; | |||
| if ((int) index == copied.size()) | |||
| copied.add ({}); | |||
| if (isPositiveAndBelow (index, copied.size())) | |||
| { | |||
| copied.getReference ((int) index) = *newIndex; | |||
| return var (copied); | |||
| } | |||
| } | |||
| } | |||
| return {}; | |||
| } | |||
| bool JSONUtils::deepEqual (const var& a, const var& b) | |||
| { | |||
| const auto compareObjects = [] (const DynamicObject& x, const DynamicObject& y) | |||
| { | |||
| if (x.getProperties().size() != y.getProperties().size()) | |||
| return false; | |||
| for (const auto& [key, value] : x.getProperties()) | |||
| { | |||
| if (! y.hasProperty (key)) | |||
| return false; | |||
| if (! deepEqual (value, y.getProperty (key))) | |||
| return false; | |||
| } | |||
| return true; | |||
| }; | |||
| if (auto* i = a.getDynamicObject()) | |||
| if (auto* j = b.getDynamicObject()) | |||
| return compareObjects (*i, *j); | |||
| if (auto* i = a.getArray()) | |||
| if (auto* j = b.getArray()) | |||
| return std::equal (i->begin(), i->end(), j->begin(), j->end(), [] (const var& x, const var& y) { return deepEqual (x, y); }); | |||
| return a == b; | |||
| } | |||
| //============================================================================== | |||
| //============================================================================== | |||
| #if JUCE_UNIT_TESTS | |||
| class JSONUtilsTests : public UnitTest | |||
| { | |||
| public: | |||
| JSONUtilsTests() : UnitTest ("JSONUtils", UnitTestCategories::json) {} | |||
| void runTest() override | |||
| { | |||
| beginTest ("JSON pointers"); | |||
| { | |||
| const auto obj = JSON::parse (R"({ "name": "PIANO 4" | |||
| , "lfoSpeed": 30 | |||
| , "lfoWaveform": "triangle" | |||
| , "pitchEnvelope": { "rates": [94,67,95,60], "levels": [50,50,50,50] } | |||
| })"); | |||
| expectDeepEqual (JSONUtils::setPointer (obj, "", "hello world"), var ("hello world")); | |||
| expectDeepEqual (JSONUtils::setPointer (obj, "/lfoWaveform/foobar", "str"), std::nullopt); | |||
| expectDeepEqual (JSONUtils::setPointer (JSON::parse (R"({"foo":0,"bar":1})"), "/foo", 2), JSON::parse (R"({"foo":2,"bar":1})")); | |||
| expectDeepEqual (JSONUtils::setPointer (JSON::parse (R"({"foo":0,"bar":1})"), "/baz", 2), JSON::parse (R"({"foo":0,"bar":1,"baz":2})")); | |||
| expectDeepEqual (JSONUtils::setPointer (JSON::parse (R"({"foo":{},"bar":{}})"), "/foo/bar", 2), JSON::parse (R"({"foo":{"bar":2},"bar":{}})")); | |||
| expectDeepEqual (JSONUtils::setPointer (obj, "/pitchEnvelope/rates/01", "str"), std::nullopt); | |||
| expectDeepEqual (JSONUtils::setPointer (obj, "/pitchEnvelope/rates/10", "str"), std::nullopt); | |||
| expectDeepEqual (JSONUtils::setPointer (obj, "/lfoSpeed", 10), JSON::parse (R"({ "name": "PIANO 4" | |||
| , "lfoSpeed": 10 | |||
| , "lfoWaveform": "triangle" | |||
| , "pitchEnvelope": { "rates": [94,67,95,60], "levels": [50,50,50,50] } | |||
| })")); | |||
| expectDeepEqual (JSONUtils::setPointer (JSON::parse (R"([0,1,2])"), "/0", "bang"), JSON::parse (R"(["bang",1,2])")); | |||
| expectDeepEqual (JSONUtils::setPointer (JSON::parse (R"([0,1,2])"), "/0", "bang"), JSON::parse (R"(["bang",1,2])")); | |||
| expectDeepEqual (JSONUtils::setPointer (JSON::parse (R"({"/":"fizz"})"), "/~1", "buzz"), JSON::parse (R"({"/":"buzz"})")); | |||
| expectDeepEqual (JSONUtils::setPointer (JSON::parse (R"({"~":"fizz"})"), "/~0", "buzz"), JSON::parse (R"({"~":"buzz"})")); | |||
| expectDeepEqual (JSONUtils::setPointer (obj, "/pitchEnvelope/rates/0", 80), JSON::parse (R"({ "name": "PIANO 4" | |||
| , "lfoSpeed": 30 | |||
| , "lfoWaveform": "triangle" | |||
| , "pitchEnvelope": { "rates": [80,67,95,60], "levels": [50,50,50,50] } | |||
| })")); | |||
| expectDeepEqual (JSONUtils::setPointer (obj, "/pitchEnvelope/levels/0", 80), JSON::parse (R"({ "name": "PIANO 4" | |||
| , "lfoSpeed": 30 | |||
| , "lfoWaveform": "triangle" | |||
| , "pitchEnvelope": { "rates": [94,67,95,60], "levels": [80,50,50,50] } | |||
| })")); | |||
| expectDeepEqual (JSONUtils::setPointer (obj, "/pitchEnvelope/levels/-", 100), JSON::parse (R"({ "name": "PIANO 4" | |||
| , "lfoSpeed": 30 | |||
| , "lfoWaveform": "triangle" | |||
| , "pitchEnvelope": { "rates": [94,67,95,60], "levels": [50,50,50,50,100] } | |||
| })")); | |||
| } | |||
| } | |||
| void expectDeepEqual (const std::optional<var>& a, const std::optional<var>& b) | |||
| { | |||
| expect (deepEqual (a, b), a.has_value() && b.has_value() ? JSON::toString (*a) + " != " + JSON::toString (*b) : String()); | |||
| } | |||
| static bool deepEqual (const std::optional<var>& a, const std::optional<var>& b) | |||
| { | |||
| if (a.has_value() && b.has_value()) | |||
| return JSONUtils::deepEqual (*a, *b); | |||
| return a == b; | |||
| } | |||
| }; | |||
| static JSONUtilsTests jsonUtilsTests; | |||
| #endif | |||
| } // namespace juce | |||
| @@ -0,0 +1,67 @@ | |||
| /* | |||
| ============================================================================== | |||
| This file is part of the JUCE library. | |||
| Copyright (c) 2022 - Raw Material Software Limited | |||
| JUCE is an open source library subject to commercial or open-source | |||
| licensing. | |||
| The code included in this file is provided under the terms of the ISC license | |||
| http://www.isc.org/downloads/software-support-policy/isc-license. Permission | |||
| To use, copy, modify, and/or distribute this software for any purpose with or | |||
| without fee is hereby granted provided that the above copyright notice and | |||
| this permission notice appear in all copies. | |||
| JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER | |||
| EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE | |||
| DISCLAIMED. | |||
| ============================================================================== | |||
| */ | |||
| namespace juce | |||
| { | |||
| /** | |||
| A mini namespace to hold utility functions for working with juce::vars. | |||
| @tags{Core} | |||
| */ | |||
| struct JSONUtils | |||
| { | |||
| /** No constructor. */ | |||
| JSONUtils() = delete; | |||
| /** Given a JSON array/object 'v', a string representing a JSON pointer, | |||
| and a new property value 'newValue', returns a copy of 'v' where the | |||
| property or array index referenced by the pointer has been set to 'newValue'. | |||
| If the pointer cannot be followed, due to referencing missing array indices | |||
| or fields, then this returns nullopt. | |||
| For more details, check the JSON Pointer RFC 6901: | |||
| https://datatracker.ietf.org/doc/html/rfc6901 | |||
| */ | |||
| static std::optional<var> setPointer (const var& v, String pointer, const var& newValue); | |||
| /** Converts the provided key/value pairs into a JSON object. */ | |||
| static var makeObject (const std::map<Identifier, var>& source); | |||
| /** Converts the provided key/value pairs into a JSON object with the provided | |||
| key at the first position in the object. | |||
| This is useful because the MIDI-CI spec requires that certain fields (e.g. | |||
| status) should be placed at the beginning of a MIDI-CI header. | |||
| */ | |||
| static var makeObjectWithKeyFirst (const std::map<Identifier, var>& source, Identifier key); | |||
| /** Returns true if and only if the contents of a match the contents of b. | |||
| Unlike var::operator==, this will recursively check that contained DynamicObject and Array | |||
| instances compare equal. | |||
| */ | |||
| static bool deepEqual (const var& a, const var& b); | |||
| }; | |||
| } // namespace juce | |||
| @@ -178,6 +178,7 @@ | |||
| #include "unit_tests/juce_UnitTest.cpp" | |||
| #include "containers/juce_Variant.cpp" | |||
| #include "javascript/juce_JSON.cpp" | |||
| #include "javascript/juce_JSONUtils.cpp" | |||
| #include "javascript/juce_Javascript.cpp" | |||
| #include "containers/juce_DynamicObject.cpp" | |||
| #include "xml/juce_XmlDocument.cpp" | |||
| @@ -309,6 +309,7 @@ JUCE_END_IGNORE_WARNINGS_MSVC | |||
| #include "streams/juce_FileInputSource.h" | |||
| #include "logging/juce_FileLogger.h" | |||
| #include "javascript/juce_JSON.h" | |||
| #include "javascript/juce_JSONUtils.h" | |||
| #include "serialisation/juce_Serialisation.h" | |||
| #include "javascript/juce_JSONSerialisation.h" | |||
| #include "javascript/juce_Javascript.h" | |||