react-native-windows 0.81.24 → 0.81.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,12 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
3
  <PropertyGroup Label="Globals">
4
- <ProjectGuid>{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}</ProjectGuid>
5
- <ProjectName>Common</ProjectName>
4
+ <ProjectGuid Condition="'$(ReactTargetWin32)' != 'true'">{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}</ProjectGuid>
5
+ <ProjectName Condition="'$(ReactTargetWin32)' != 'true'">Common</ProjectName>
6
6
  <Keyword>StaticLibrary</Keyword>
7
- <AppContainerApplication>true</AppContainerApplication>
8
- <ApplicationType>Windows Store</ApplicationType>
9
- <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
7
+ <AppContainerApplication Condition="'$(ReactTargetWin32)' != 'true'">true</AppContainerApplication>
8
+ <ApplicationType Condition="'$(ReactTargetWin32)' != 'true'">Windows Store</ApplicationType>
9
+ <ApplicationTypeRevision Condition="'$(ReactTargetWin32)' != 'true'">10.0</ApplicationTypeRevision>
10
10
  </PropertyGroup>
11
11
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
12
12
  <Import Project="$(ReactNativeWindowsDir)PropertySheets\React.Cpp.props" />
@@ -56,6 +56,7 @@
56
56
  </ImportGroup>
57
57
  <ImportGroup Label="PropertySheets">
58
58
  <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
59
+ <Import Project="$(ReactNativeWindowsDir)PropertySheets\HybridCRT.props" Condition="'$(ReactTargetWin32)' == 'true'" />
59
60
  </ImportGroup>
60
61
  <PropertyGroup Label="UserMacros" />
61
62
  <PropertyGroup>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <PropertyGroup Label="Globals">
4
+ <ProjectGuid>{07B21646-07A1-4C53-9D5C-FE7C8C9FA5C6}</ProjectGuid>
5
+ <ProjectName>Common.win32</ProjectName>
6
+ <Keyword>StaticLibrary</Keyword>
7
+ <ReactTargetWin32>true</ReactTargetWin32>
8
+ <NuGetLockFilePath>.\packages.lock.win32.json</NuGetLockFilePath>
9
+ </PropertyGroup>
10
+ <Import Project="Common.vcxproj" />
11
+ </Project>
@@ -0,0 +1,23 @@
1
+ {
2
+ "version": 1,
3
+ "dependencies": {
4
+ "native,Version=v0.0": {
5
+ "boost": {
6
+ "type": "Direct",
7
+ "requested": "[1.84.0, )",
8
+ "resolved": "1.84.0",
9
+ "contentHash": "4el2YP3cNJDVFPdzOso+LxGvdWP2rHxML4siq8VdonNypW2m4q503tHfCj6vK0L1UfxioE2hpFGb4ITEua73tg=="
10
+ },
11
+ "Microsoft.Windows.CppWinRT": {
12
+ "type": "Direct",
13
+ "requested": "[2.0.230706.1, )",
14
+ "resolved": "2.0.230706.1",
15
+ "contentHash": "l0D7oCw/5X+xIKHqZTi62TtV+1qeSz7KVluNFdrJ9hXsst4ghvqQ/Yhura7JqRdZWBXAuDS0G0KwALptdoxweQ=="
16
+ }
17
+ },
18
+ "native,Version=v0.0/win": {},
19
+ "native,Version=v0.0/win-arm64": {},
20
+ "native,Version=v0.0/win-x64": {},
21
+ "native,Version=v0.0/win-x86": {}
22
+ }
23
+ }
@@ -1,14 +1,14 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
3
  <PropertyGroup Label="Globals">
4
- <ProjectGuid>{a990658c-ce31-4bcc-976f-0fc6b1af693d}</ProjectGuid>
4
+ <ProjectGuid Condition="'$(ReactTargetWin32)' != 'true'">{a990658c-ce31-4bcc-976f-0fc6b1af693d}</ProjectGuid>
5
5
  <Keyword>StaticLibrary</Keyword>
6
- <ProjectName>Folly</ProjectName>
6
+ <ProjectName Condition="'$(ReactTargetWin32)' != 'true'">Folly</ProjectName>
7
7
  <RootNamespace>Folly</RootNamespace>
8
8
  <DefaultLanguage>en-US</DefaultLanguage>
9
- <ApplicationType>Windows Store</ApplicationType>
10
- <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
11
- <AppContainerApplication>true</AppContainerApplication>
9
+ <ApplicationType Condition="'$(ReactTargetWin32)' != 'true'">Windows Store</ApplicationType>
10
+ <ApplicationTypeRevision Condition="'$(ReactTargetWin32)' != 'true'">10.0</ApplicationTypeRevision>
11
+ <AppContainerApplication Condition="'$(ReactTargetWin32)' != 'true'">true</AppContainerApplication>
12
12
  </PropertyGroup>
13
13
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
14
14
  <Import Project="$(ReactNativeWindowsDir)PropertySheets\React.Cpp.props" />
@@ -259,6 +259,7 @@
259
259
  </ImportGroup>
260
260
  <ImportGroup Label="PropertySheets">
261
261
  <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
262
+ <Import Project="$(ReactNativeWindowsDir)PropertySheets\HybridCRT.props" Condition="'$(ReactTargetWin32)' == 'true'" />
262
263
  </ImportGroup>
263
264
  <PropertyGroup Label="UserMacros" />
264
265
  <PropertyGroup>
@@ -268,6 +269,7 @@
268
269
  <ItemDefinitionGroup>
269
270
  <ClCompile>
270
271
  <PrecompiledHeader>Use</PrecompiledHeader>
272
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
271
273
  <CompileAsWinRT>false</CompileAsWinRT>
272
274
  <SDLCheck>true</SDLCheck>
273
275
  <AdditionalIncludeDirectories>$(ReactNativeWindowsDir)stubs;$(FollyDir);$(FastFloatDir)\include;$(FmtDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -372,7 +374,10 @@
372
374
  <Message Importance="High" Text="Applying temporary patches to folly." />
373
375
  <Copy DestinationFiles="@(TemporaryFollyPatchFiles->'$(FollyDir)folly\%(RecursiveDir)%(Filename)%(Extension)')" SourceFiles="@(TemporaryFollyPatchFiles)" />
374
376
  </Target>
375
- <ItemGroup>
376
- <ProjectReference Include="..\fmt\fmt.vcxproj" Project="{14b93DC8-FD93-4A6D-81CB-8BC96644501C}" />
377
+ <ItemGroup Condition="'$(ReactTargetWin32)' != 'true'">
378
+ <ProjectReference Include="..\fmt\fmt.vcxproj" Project="{14B93DC8-FD93-4A6D-81CB-8BC96644501C}" />
379
+ </ItemGroup>
380
+ <ItemGroup Condition="'$(ReactTargetWin32)' == 'true'">
381
+ <ProjectReference Include="..\fmt\fmt.win32.vcxproj" Project="{4A98E8E8-F0B2-4F45-8A0E-9F4C7A81A239}" />
377
382
  </ItemGroup>
378
383
  </Project>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <PropertyGroup Label="Globals">
4
+ <ProjectGuid>{BFF1EAC8-4C70-4A55-9A88-3810052E8FBA}</ProjectGuid>
5
+ <ProjectName>Folly.win32</ProjectName>
6
+ <Keyword>StaticLibrary</Keyword>
7
+ <ReactTargetWin32>true</ReactTargetWin32>
8
+ <NuGetLockFilePath>.\packages.lock.win32.json</NuGetLockFilePath>
9
+ </PropertyGroup>
10
+ <Import Project="Folly.vcxproj" />
11
+ </Project>
@@ -0,0 +1,20 @@
1
+ {
2
+ "version": 1,
3
+ "dependencies": {
4
+ "native,Version=v0.0": {
5
+ "boost": {
6
+ "type": "Direct",
7
+ "requested": "[1.84.0, )",
8
+ "resolved": "1.84.0",
9
+ "contentHash": "4el2YP3cNJDVFPdzOso+LxGvdWP2rHxML4siq8VdonNypW2m4q503tHfCj6vK0L1UfxioE2hpFGb4ITEua73tg=="
10
+ },
11
+ "fmt.win32": {
12
+ "type": "Project"
13
+ }
14
+ },
15
+ "native,Version=v0.0/win": {},
16
+ "native,Version=v0.0/win-arm64": {},
17
+ "native,Version=v0.0/win-x64": {},
18
+ "native,Version=v0.0/win-x86": {}
19
+ }
20
+ }
@@ -3,10 +3,57 @@
3
3
 
4
4
  #include "pch.h"
5
5
  #include "IcuUtils.h"
6
+
7
+ #include <cwctype>
8
+
9
+ #include <winrt/Windows.Data.Text.h>
10
+ #include <winrt/Windows.Foundation.Collections.h>
11
+
6
12
  #include <icu.h>
7
13
 
8
14
  namespace Microsoft::ReactNative::IcuUtils {
9
15
 
16
+ namespace {
17
+
18
+ // icu.dll ships in Windows 10 1903+. Desktop.DLL delay-loads it so that the
19
+ // react-native-win32.dll can still load on older Windows versions (e.g. 1809).
20
+ // Probe once per process to decide whether ICU calls are safe.
21
+ bool IsIcuDllAvailable() noexcept {
22
+ static const bool s_available = []() noexcept {
23
+ const HMODULE hIcu = ::LoadLibraryExW(L"icu.dll", nullptr, LOAD_LIBRARY_SEARCH_SYSTEM32);
24
+ return hIcu != nullptr;
25
+ }();
26
+ return s_available;
27
+ }
28
+
29
+ std::vector<std::pair<int32_t, int32_t>> ComputeBoundariesWithWinrt(const wchar_t *text, int32_t length) noexcept {
30
+ std::vector<std::pair<int32_t, int32_t>> boundaries;
31
+ try {
32
+ winrt::Windows::Data::Text::WordsSegmenter segmenter{L""};
33
+ const winrt::hstring src{text, static_cast<uint32_t>(length)};
34
+ for (const auto &token : segmenter.GetTokens(src)) {
35
+ const auto seg = token.SourceTextSegment();
36
+ const int32_t start = static_cast<int32_t>(seg.StartPosition);
37
+ const int32_t end = start + static_cast<int32_t>(seg.Length);
38
+ boundaries.emplace_back(start, end);
39
+ }
40
+ } catch (const winrt::hresult_error &) {
41
+ boundaries.clear();
42
+ }
43
+ return boundaries;
44
+ }
45
+
46
+ bool IsAlphanumericFallback(UChar32 codePoint) noexcept {
47
+ // Treat supplementary-plane code points as non-alphanumeric in the fallback;
48
+ // this matches the degraded behavior expected when ICU is unavailable.
49
+ if (codePoint < 0 || codePoint > 0xFFFF) {
50
+ return false;
51
+ }
52
+ return std::iswalnum(static_cast<wint_t>(codePoint)) != 0;
53
+ }
54
+
55
+ } // namespace
56
+
10
57
  void UBreakIteratorDeleter::operator()(void *ptr) const noexcept {
11
58
  if (ptr) {
12
59
  ubrk_close(static_cast<UBreakIterator *>(ptr));
@@ -14,46 +61,69 @@ void UBreakIteratorDeleter::operator()(void *ptr) const noexcept {
14
61
  }
15
62
 
16
63
  WordBreakIterator::WordBreakIterator(const wchar_t *text, int32_t length) noexcept : m_length(length) {
17
- UErrorCode status = U_ZERO_ERROR;
18
- auto *iter = ubrk_open(UBRK_WORD, nullptr, reinterpret_cast<const UChar *>(text), length, &status);
19
- if (U_SUCCESS(status)) {
20
- m_breakIterator.reset(static_cast<void *>(iter));
64
+ if (!text || length <= 0) {
65
+ return;
66
+ }
67
+
68
+ if (IsIcuDllAvailable()) {
69
+ UErrorCode status = U_ZERO_ERROR;
70
+ auto *iter = ubrk_open(UBRK_WORD, nullptr, reinterpret_cast<const UChar *>(text), length, &status);
71
+ if (U_SUCCESS(status)) {
72
+ m_breakIterator.reset(static_cast<void *>(iter));
73
+ }
74
+ return;
21
75
  }
76
+
77
+ m_winrtBoundaries = ComputeBoundariesWithWinrt(text, length);
22
78
  }
23
79
 
24
80
  bool WordBreakIterator::IsValid() const noexcept {
25
- return m_breakIterator != nullptr;
81
+ return m_breakIterator != nullptr || !m_winrtBoundaries.empty();
26
82
  }
27
83
 
28
84
  bool WordBreakIterator::GetWordBoundaries(int32_t position, int32_t &outStart, int32_t &outEnd) const noexcept {
29
- if (!m_breakIterator || position < 0 || position >= m_length) {
85
+ if (position < 0 || position >= m_length) {
30
86
  return false;
31
87
  }
32
88
 
33
- auto *iter = static_cast<UBreakIterator *>(m_breakIterator.get());
89
+ if (m_breakIterator) {
90
+ auto *iter = static_cast<UBreakIterator *>(m_breakIterator.get());
34
91
 
35
- int32_t start = ubrk_preceding(iter, position + 1);
36
- if (start == UBRK_DONE) {
37
- start = 0;
38
- }
92
+ int32_t start = ubrk_preceding(iter, position + 1);
93
+ if (start == UBRK_DONE) {
94
+ start = 0;
95
+ }
39
96
 
40
- int32_t end = ubrk_following(iter, position);
41
- if (end == UBRK_DONE) {
42
- end = m_length;
43
- }
97
+ int32_t end = ubrk_following(iter, position);
98
+ if (end == UBRK_DONE) {
99
+ end = m_length;
100
+ }
44
101
 
45
- int32_t ruleStatus = ubrk_getRuleStatus(iter);
46
- if (ruleStatus == UBRK_WORD_NONE) {
47
- return false;
102
+ int32_t ruleStatus = ubrk_getRuleStatus(iter);
103
+ if (ruleStatus == UBRK_WORD_NONE) {
104
+ return false;
105
+ }
106
+
107
+ outStart = start;
108
+ outEnd = end;
109
+ return true;
48
110
  }
49
111
 
50
- outStart = start;
51
- outEnd = end;
52
- return true;
112
+ for (const auto &[start, end] : m_winrtBoundaries) {
113
+ if (position >= start && position < end) {
114
+ outStart = start;
115
+ outEnd = end;
116
+ return true;
117
+ }
118
+ }
119
+ return false;
53
120
  }
54
121
 
55
122
  bool IsAlphanumeric(UChar32 codePoint) noexcept {
56
- return u_isalnum(codePoint) != 0;
123
+ if (IsIcuDllAvailable()) {
124
+ return u_isalnum(codePoint) != 0;
125
+ }
126
+ return IsAlphanumericFallback(codePoint);
57
127
  }
58
128
 
59
129
  UChar32 GetCodePointAt(const wchar_t *str, int32_t length, int32_t pos) noexcept {
@@ -5,6 +5,8 @@
5
5
 
6
6
  #include <cstdint>
7
7
  #include <memory>
8
+ #include <utility>
9
+ #include <vector>
8
10
 
9
11
  // ICU utilities wrapped in a namespace to avoid UChar naming conflicts with Folly's FBString.
10
12
  // Folly has a template parameter named 'UChar' which conflicts with ICU's global UChar typedef.
@@ -31,6 +33,9 @@ class WordBreakIterator {
31
33
 
32
34
  private:
33
35
  std::unique_ptr<void, UBreakIteratorDeleter> m_breakIterator{nullptr};
36
+ // Populated when icu.dll is unavailable (Windows < 1903); produced by
37
+ // Windows.Data.Text.WordsSegmenter, sorted as [start, end) ranges.
38
+ std::vector<std::pair<int32_t, int32_t>> m_winrtBoundaries;
34
39
  int32_t m_length = 0;
35
40
  };
36
41
 
@@ -10,11 +10,11 @@
10
10
  -->
11
11
  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
12
12
  <PropertyGroup>
13
- <ReactNativeWindowsVersion>0.81.24</ReactNativeWindowsVersion>
13
+ <ReactNativeWindowsVersion>0.81.25</ReactNativeWindowsVersion>
14
14
  <ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
15
15
  <ReactNativeWindowsMinor>81</ReactNativeWindowsMinor>
16
- <ReactNativeWindowsPatch>24</ReactNativeWindowsPatch>
16
+ <ReactNativeWindowsPatch>25</ReactNativeWindowsPatch>
17
17
  <ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
18
- <ReactNativeWindowsCommitId>4e9017a484c3cba57081dfef12c4d96edae2ebe4</ReactNativeWindowsCommitId>
18
+ <ReactNativeWindowsCommitId>add8cef8a9c2f2487a2838e0f8660018435e59c2</ReactNativeWindowsCommitId>
19
19
  </PropertyGroup>
20
20
  </Project>
@@ -1,34 +1,38 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <!-- Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See LICENSE in the project root for license information. -->
3
+ <!--
4
+ Hybrid CRT: Uses static C++ runtime with dynamic Universal CRT to avoid VCRUNTIME140[d].dll and MSVCP140[d].dll dependency.
5
+ See: https://github.com/microsoft/WindowsAppSDK/blob/main/docs/Coding-Guidelines/HybridCRT.md
6
+ -->
3
7
  <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4
8
 
5
- <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
6
- <ClCompile>
7
- <!-- We use MultiThreadedDebug, rather than MultiThreadedDebugDLL, to avoid DLL dependencies on VCRUNTIME140d.dll and MSVCP140d.dll. -->
8
- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
9
- </ClCompile>
10
- <Link>
11
- <!-- Link statically against the runtime and STL, but link dynamically against the CRT by ignoring the static CRT
9
+ <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
10
+ <ClCompile>
11
+ <!-- We use MultiThreadedDebug, rather than MultiThreadedDebugDLL, to avoid DLL dependencies on VCRUNTIME140d.dll and MSVCP140d.dll. -->
12
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
13
+ </ClCompile>
14
+ <Link>
15
+ <!-- Link statically against the runtime and STL, but link dynamically against the CRT by ignoring the static CRT
12
16
  lib and instead linking against the Universal CRT DLL import library. This "hybrid" linking mechanism is
13
17
  supported according to the CRT maintainer. Dynamic linking against the CRT makes the binaries a bit smaller
14
18
  than they would otherwise be if the CRT, runtime, and STL were all statically linked in. -->
15
- <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);libucrtd.lib</IgnoreSpecificDefaultLibraries>
16
- <AdditionalOptions>%(AdditionalOptions) /defaultlib:ucrtd.lib</AdditionalOptions>
17
- </Link>
18
- </ItemDefinitionGroup>
19
- <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
20
- <ClCompile>
21
- <!-- We use MultiThreaded, rather than MultiThreadedDLL, to avoid DLL dependencies on VCRUNTIME140.dll and MSVCP140.dll. -->
22
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
23
- </ClCompile>
24
- <Link>
25
- <!-- Link statically against the runtime and STL, but link dynamically against the CRT by ignoring the static CRT
19
+ <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);libucrtd.lib</IgnoreSpecificDefaultLibraries>
20
+ <AdditionalOptions>%(AdditionalOptions) /defaultlib:ucrtd.lib</AdditionalOptions>
21
+ </Link>
22
+ </ItemDefinitionGroup>
23
+ <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
24
+ <ClCompile>
25
+ <!-- We use MultiThreaded, rather than MultiThreadedDLL, to avoid DLL dependencies on VCRUNTIME140.dll and MSVCP140.dll. -->
26
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
27
+ </ClCompile>
28
+ <Link>
29
+ <!-- Link statically against the runtime and STL, but link dynamically against the CRT by ignoring the static CRT
26
30
  lib and instead linking against the Universal CRT DLL import library. This "hybrid" linking mechanism is
27
31
  supported according to the CRT maintainer. Dynamic linking against the CRT makes the binaries a bit smaller
28
32
  than they would otherwise be if the CRT, runtime, and STL were all statically linked in. -->
29
- <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);libucrt.lib</IgnoreSpecificDefaultLibraries>
30
- <AdditionalOptions>%(AdditionalOptions) /defaultlib:ucrt.lib</AdditionalOptions>
31
- </Link>
32
- </ItemDefinitionGroup>
33
+ <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);libucrt.lib</IgnoreSpecificDefaultLibraries>
34
+ <AdditionalOptions>%(AdditionalOptions) /defaultlib:ucrt.lib</AdditionalOptions>
35
+ </Link>
36
+ </ItemDefinitionGroup>
33
37
 
34
38
  </Project>
@@ -65,8 +65,11 @@
65
65
 
66
66
  <ItemDefinitionGroup>
67
67
  <ClCompile>
68
- <!-- /permissive- by default to enforce standards conformance, unless ENABLEPermissive has been set -->
69
- <AdditionalOptions Condition="'$(ENABLEPermissive)' == ''">/permissive- %(AdditionalOptions)</AdditionalOptions>
68
+ <!-- /permissive- by default to enforce standards conformance, unless ENABLEPermissive has been set.
69
+ Set via ConformanceMode rather than AdditionalOptions so MSBuild's cl task handles it
70
+ structurally; passing /permissive- through AdditionalOptions embeds the raw flag in .obj
71
+ metadata, which the LTCG p2 back-end in newer VS 2022 toolsets rejects with C1007. -->
72
+ <ConformanceMode Condition="'$(ENABLEPermissive)' == ''">true</ConformanceMode>
70
73
  <DisableSpecificWarnings>$(OfficePreDisabledWarnings);$(ExtraWarningsToDisable);$(DisableSpecificWarnings)</DisableSpecificWarnings>
71
74
 
72
75
  <!-- SDL REQUIREMENT: Treat warnings as errors -->
@@ -1,13 +1,13 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
3
  <PropertyGroup Label="Globals">
4
- <ProjectGuid>{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}</ProjectGuid>
4
+ <ProjectGuid Condition="'$(ReactTargetWin32)' != 'true'">{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}</ProjectGuid>
5
5
  <Keyword>StaticLibrary</Keyword>
6
- <ProjectName>ReactCommon</ProjectName>
6
+ <ProjectName Condition="'$(ReactTargetWin32)' != 'true'">ReactCommon</ProjectName>
7
7
  <RootNamespace>ReactCommon</RootNamespace>
8
- <AppContainerApplication>true</AppContainerApplication>
9
- <ApplicationType>Windows Store</ApplicationType>
10
- <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
8
+ <AppContainerApplication Condition="'$(ReactTargetWin32)' != 'true'">true</AppContainerApplication>
9
+ <ApplicationType Condition="'$(ReactTargetWin32)' != 'true'">Windows Store</ApplicationType>
10
+ <ApplicationTypeRevision Condition="'$(ReactTargetWin32)' != 'true'">10.0</ApplicationTypeRevision>
11
11
  </PropertyGroup>
12
12
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
13
13
  <Import Project="$(ReactNativeWindowsDir)PropertySheets\React.Cpp.props" />
@@ -57,6 +57,7 @@
57
57
  </ImportGroup>
58
58
  <ImportGroup Label="PropertySheets">
59
59
  <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
60
+ <Import Project="$(ReactNativeWindowsDir)PropertySheets\HybridCRT.props" Condition="'$(ReactTargetWin32)' == 'true'" />
60
61
  </ImportGroup>
61
62
  <PropertyGroup Label="UserMacros" />
62
63
  <PropertyGroup>
@@ -66,6 +67,7 @@
66
67
  <ItemDefinitionGroup>
67
68
  <ClCompile>
68
69
  <PrecompiledHeader>Use</PrecompiledHeader>
70
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
69
71
  <CompileAsWinRT>false</CompileAsWinRT>
70
72
  <SDLCheck>true</SDLCheck>
71
73
  <AdditionalIncludeDirectories>
@@ -243,11 +245,16 @@
243
245
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleUtils.cpp" />
244
246
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleWithJSIBindings.cpp" />
245
247
  </ItemGroup>
246
- <ItemGroup>
248
+ <ItemGroup Condition="'$(ReactTargetWin32)' != 'true'">
247
249
  <ProjectReference Include="..\Folly\Folly.vcxproj">
248
250
  <Project>{A990658C-CE31-4BCC-976F-0FC6B1AF693D}</Project>
249
251
  </ProjectReference>
250
252
  </ItemGroup>
253
+ <ItemGroup Condition="'$(ReactTargetWin32)' == 'true'">
254
+ <ProjectReference Include="..\Folly\Folly.win32.vcxproj">
255
+ <Project>{BFF1EAC8-4C70-4A55-9A88-3810052E8FBA}</Project>
256
+ </ProjectReference>
257
+ </ItemGroup>
251
258
  <ItemGroup>
252
259
  <PackageReference Include="boost" Version="1.84.0.0" />
253
260
  <PackageReference Include="Microsoft.Windows.CppWinRT" Version="$(CppWinRTVersion)" PrivateAssets="all" />
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <PropertyGroup Label="Globals">
4
+ <ProjectGuid>{5CB3C038-4A3C-4F09-A36B-66DB8EC650F5}</ProjectGuid>
5
+ <ProjectName>ReactCommon.win32</ProjectName>
6
+ <Keyword>StaticLibrary</Keyword>
7
+ <ReactTargetWin32>true</ReactTargetWin32>
8
+ </PropertyGroup>
9
+ <PropertyGroup>
10
+ <NuGetLockFilePath>.\packages.lock.win32.json</NuGetLockFilePath>
11
+ </PropertyGroup>
12
+ <Import Project="ReactCommon.vcxproj" />
13
+ </Project>
@@ -0,0 +1,33 @@
1
+ {
2
+ "version": 1,
3
+ "dependencies": {
4
+ "native,Version=v0.0": {
5
+ "boost": {
6
+ "type": "Direct",
7
+ "requested": "[1.84.0, )",
8
+ "resolved": "1.84.0",
9
+ "contentHash": "4el2YP3cNJDVFPdzOso+LxGvdWP2rHxML4siq8VdonNypW2m4q503tHfCj6vK0L1UfxioE2hpFGb4ITEua73tg=="
10
+ },
11
+ "Microsoft.Windows.CppWinRT": {
12
+ "type": "Direct",
13
+ "requested": "[2.0.230706.1, )",
14
+ "resolved": "2.0.230706.1",
15
+ "contentHash": "l0D7oCw/5X+xIKHqZTi62TtV+1qeSz7KVluNFdrJ9hXsst4ghvqQ/Yhura7JqRdZWBXAuDS0G0KwALptdoxweQ=="
16
+ },
17
+ "fmt.win32": {
18
+ "type": "Project"
19
+ },
20
+ "folly.win32": {
21
+ "type": "Project",
22
+ "dependencies": {
23
+ "boost": "[1.84.0, )",
24
+ "fmt.win32": "[1.0.0, )"
25
+ }
26
+ }
27
+ },
28
+ "native,Version=v0.0/win": {},
29
+ "native,Version=v0.0/win-arm64": {},
30
+ "native,Version=v0.0/win-x64": {},
31
+ "native,Version=v0.0/win-x86": {}
32
+ }
33
+ }
package/fmt/fmt.vcxproj CHANGED
@@ -1,14 +1,14 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
3
  <PropertyGroup Label="Globals">
4
- <ProjectGuid>{14b93dc8-fd93-4a6d-81cb-8bc96644501c}</ProjectGuid>
4
+ <ProjectGuid Condition="'$(ReactTargetWin32)' != 'true'">{14b93dc8-fd93-4a6d-81cb-8bc96644501c}</ProjectGuid>
5
5
  <Keyword>StaticLibrary</Keyword>
6
- <ProjectName>fmt</ProjectName>
6
+ <ProjectName Condition="'$(ReactTargetWin32)' != 'true'">fmt</ProjectName>
7
7
  <RootNamespace>fmt</RootNamespace>
8
8
  <DefaultLanguage>en-US</DefaultLanguage>
9
- <AppContainerApplication>true</AppContainerApplication>
10
- <ApplicationType>Windows Store</ApplicationType>
11
- <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
9
+ <AppContainerApplication Condition="'$(ReactTargetWin32)' != 'true'">true</AppContainerApplication>
10
+ <ApplicationType Condition="'$(ReactTargetWin32)' != 'true'">Windows Store</ApplicationType>
11
+ <ApplicationTypeRevision Condition="'$(ReactTargetWin32)' != 'true'">10.0</ApplicationTypeRevision>
12
12
  </PropertyGroup>
13
13
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
14
14
  <Import Project="$(ReactNativeWindowsDir)PropertySheets\React.Cpp.props" />
@@ -80,6 +80,7 @@
80
80
  </ImportGroup>
81
81
  <ImportGroup Label="PropertySheets">
82
82
  <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
83
+ <Import Project="$(ReactNativeWindowsDir)PropertySheets\HybridCRT.props" Condition="'$(ReactTargetWin32)' == 'true'" />
83
84
  </ImportGroup>
84
85
  <PropertyGroup Label="UserMacros" />
85
86
  <PropertyGroup>
@@ -89,6 +90,7 @@
89
90
  <ItemDefinitionGroup>
90
91
  <ClCompile>
91
92
  <PrecompiledHeader>Use</PrecompiledHeader>
93
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
92
94
  <CompileAsWinRT>false</CompileAsWinRT>
93
95
  <SDLCheck>true</SDLCheck>
94
96
  <AdditionalIncludeDirectories>$(FmtDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <PropertyGroup Label="Globals">
4
+ <ProjectGuid>{4A98E8E8-F0B2-4F45-8A0E-9F4C7A81A239}</ProjectGuid>
5
+ <ProjectName>fmt.win32</ProjectName>
6
+ <Keyword>StaticLibrary</Keyword>
7
+ <ReactTargetWin32>true</ReactTargetWin32>
8
+ </PropertyGroup>
9
+ <Import Project="fmt.vcxproj" />
10
+ </Project>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-windows",
3
- "version": "0.81.24",
3
+ "version": "0.81.25",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",