Skip to content

Commit dfc218e

Browse files
Agnostic toolset for VS project + std link issue with MSVC 17.2+ (#580)
* Agnostic toolset for VS project * platform tool version * pragma for std * Update Modules/@babylonjs/react-native-windows/windows/BabylonReactNative/BabylonReactNative.vcxproj Co-authored-by: Gary Hsu <[email protected]> * update windows readme --------- Co-authored-by: Gary Hsu <[email protected]>
1 parent 76388a0 commit dfc218e

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

Modules/@babylonjs/react-native-windows/README.md

+8
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,11 @@ This package has several **peer dependencies**. If these dependencies are unmet,
1010

1111
This package will not work without installing the `@babylonjs/react-native` peer dependency.
1212
The `react-native-permissions` dependency is required for XR capabilities of Babylon.js.
13+
14+
### Toolset
15+
16+
Default toolset is v142. It's possible to change it using project variable named `BabylonReactNativeToolset`.
17+
There are multiple ways to specify it:
18+
- environment variable
19+
- msbuild property (`msbuild /p:BabylonReactNativeToolset=v143` for example)
20+
- customize the build by folder (https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-by-directory?view=vs-2022)

Modules/@babylonjs/react-native-windows/windows/BabylonReactNative/BabylonModule.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
#include "BabylonModule.h"
33
#include "JSI/JsiApiContext.h"
44

5+
// see https://developercommunity.visualstudio.com/t/-imp-std-init-once-complete-unresolved-external-sy/1684365
6+
#if _MSC_VER >= 1932 // Visual Studio 2022 version 17.2+
7+
# pragma comment(linker, "/alternatename:__imp___std_init_once_complete=__imp_InitOnceComplete")
8+
# pragma comment(linker, "/alternatename:__imp___std_init_once_begin_initialize=__imp_InitOnceBeginInitialize")
9+
#endif
10+
511
using namespace winrt::BabylonReactNative::implementation;
612

713
REACT_INIT(Initialize);

Modules/@babylonjs/react-native-windows/windows/BabylonReactNative/BabylonReactNative.vcxproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@
7777
<PropertyGroup Label="Configuration">
7878
<ConfigurationType>DynamicLibrary</ConfigurationType>
7979
<PlatformToolset>v142</PlatformToolset>
80-
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
81-
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
80+
<PlatformToolset Condition="'$(BabylonReactNativeToolset)'!=''">$(BabylonReactNativeToolset)</PlatformToolset>
81+
8282
<CharacterSet>Unicode</CharacterSet>
8383
<GenerateManifest>false</GenerateManifest>
8484
<PreferredToolArchitecture>x64</PreferredToolArchitecture>

0 commit comments

Comments
 (0)