aboutsummaryrefslogtreecommitdiff
path: root/deep_test
diff options
context:
space:
mode:
authorBenoit Germain <benoit.germain@ubisoft.com>2024-04-15 14:39:05 +0200
committerBenoit Germain <benoit.germain@ubisoft.com>2024-04-15 14:39:05 +0200
commitf4b0527c7d11b3a95d44b880cbdd4aae2d58ca8d (patch)
tree431f4753f41f61a4adbbaed22553a01aa6625583 /deep_test
parente55e2a5ab1b1c411efd4d0d2f64626671a9079b4 (diff)
downloadlanes-f4b0527c7d11b3a95d44b880cbdd4aae2d58ca8d.tar.gz
lanes-f4b0527c7d11b3a95d44b880cbdd4aae2d58ca8d.tar.bz2
lanes-f4b0527c7d11b3a95d44b880cbdd4aae2d58ca8d.zip
C++ migration: deep userdata API rework. bye bye idfunc, hello DeepFactory
Diffstat (limited to 'deep_test')
-rw-r--r--deep_test/deep_test.cpp66
-rw-r--r--deep_test/deep_test.vcxproj14
2 files changed, 44 insertions, 36 deletions
diff --git a/deep_test/deep_test.cpp b/deep_test/deep_test.cpp
index 3467939..b11445b 100644
--- a/deep_test/deep_test.cpp
+++ b/deep_test/deep_test.cpp
@@ -5,6 +5,21 @@
5#include <memory.h> 5#include <memory.h>
6#include <assert.h> 6#include <assert.h>
7 7
8class MyDeepFactory : public DeepFactory
9{
10 private:
11
12 DeepPrelude* newDeepObjectInternal(lua_State* L) const override;
13 void deleteDeepObjectInternal(lua_State* L, DeepPrelude* o_) const override;
14 void createMetatable(lua_State* L) const override
15 {
16 luaL_getmetatable(L, "deep");
17 }
18 char const* moduleName() const override { return "deep_test"; }
19};
20
21static MyDeepFactory g_MyDeepFactory;
22
8// ################################################################################################ 23// ################################################################################################
9 24
10// a lanes-deep userdata. needs DeepPrelude and luaG_newdeepuserdata from Lanes code. 25// a lanes-deep userdata. needs DeepPrelude and luaG_newdeepuserdata from Lanes code.
@@ -15,44 +30,25 @@ struct MyDeepUserdata : public DeepPrelude // Deep userdata MUST start with a De
15 30
16// ################################################################################################ 31// ################################################################################################
17 32
18[[nodiscard]] static void* deep_test_id(lua_State* L, DeepOp op_) 33DeepPrelude* MyDeepFactory::newDeepObjectInternal(lua_State* L) const
19{ 34{
20 switch( op_) 35 MyDeepUserdata* deep_test = new MyDeepUserdata{ g_MyDeepFactory };
21 { 36 return deep_test;
22 case DeepOp::New: 37}
23 {
24 MyDeepUserdata* deep_test = new MyDeepUserdata;
25 return deep_test;
26 }
27
28 case DeepOp::Delete:
29 {
30 MyDeepUserdata* deep_test = static_cast<MyDeepUserdata*>(lua_touserdata( L, 1));
31 delete deep_test;
32 return nullptr;
33 }
34
35 case DeepOp::Metatable:
36 {
37 luaL_getmetatable( L, "deep"); // mt
38 return nullptr;
39 }
40 38
41 case DeepOp::Module: 39// ################################################################################################
42 return (void*)"deep_test";
43 40
44 default: 41void MyDeepFactory::deleteDeepObjectInternal(lua_State* L, DeepPrelude* o_) const
45 { 42{
46 return nullptr; 43 MyDeepUserdata* deep_test = static_cast<MyDeepUserdata*>(o_);
47 } 44 delete deep_test;
48 }
49} 45}
50 46
51// ################################################################################################ 47// ################################################################################################
52 48
53[[nodiscard]] static int deep_set(lua_State* L) 49[[nodiscard]] static int deep_set(lua_State* L)
54{ 50{
55 MyDeepUserdata* self = static_cast<MyDeepUserdata*>(luaG_todeep(L, deep_test_id, 1)); 51 MyDeepUserdata* const self{ static_cast<MyDeepUserdata*>(g_MyDeepFactory.toDeep(L, 1)) };
56 lua_Integer i = lua_tointeger( L, 2); 52 lua_Integer i = lua_tointeger( L, 2);
57 self->val = i; 53 self->val = i;
58 return 0; 54 return 0;
@@ -60,10 +56,9 @@ struct MyDeepUserdata : public DeepPrelude // Deep userdata MUST start with a De
60 56
61// ################################################################################################ 57// ################################################################################################
62 58
63// won't actually do anything as deep userdata don't have uservalue slots
64[[nodiscard]] static int deep_setuv(lua_State* L) 59[[nodiscard]] static int deep_setuv(lua_State* L)
65{ 60{
66 MyDeepUserdata* self = static_cast<MyDeepUserdata*>(luaG_todeep(L, deep_test_id, 1)); 61 MyDeepUserdata* const self{ static_cast<MyDeepUserdata*>(g_MyDeepFactory.toDeep(L, 1)) };
67 int uv = (int) luaL_optinteger(L, 2, 1); 62 int uv = (int) luaL_optinteger(L, 2, 1);
68 lua_settop( L, 3); 63 lua_settop( L, 3);
69 lua_pushboolean( L, lua_setiuservalue( L, 1, uv) != 0); 64 lua_pushboolean( L, lua_setiuservalue( L, 1, uv) != 0);
@@ -75,7 +70,7 @@ struct MyDeepUserdata : public DeepPrelude // Deep userdata MUST start with a De
75// won't actually do anything as deep userdata don't have uservalue slots 70// won't actually do anything as deep userdata don't have uservalue slots
76[[nodiscard]] static int deep_getuv(lua_State* L) 71[[nodiscard]] static int deep_getuv(lua_State* L)
77{ 72{
78 MyDeepUserdata* self = static_cast<MyDeepUserdata*>(luaG_todeep(L, deep_test_id, 1)); 73 MyDeepUserdata* const self{ static_cast<MyDeepUserdata*>(g_MyDeepFactory.toDeep(L, 1)) };
79 int uv = (int) luaL_optinteger(L, 2, 1); 74 int uv = (int) luaL_optinteger(L, 2, 1);
80 lua_getiuservalue( L, 1, uv); 75 lua_getiuservalue( L, 1, uv);
81 return 1; 76 return 1;
@@ -85,7 +80,7 @@ struct MyDeepUserdata : public DeepPrelude // Deep userdata MUST start with a De
85 80
86[[nodiscard]] static int deep_tostring(lua_State* L) 81[[nodiscard]] static int deep_tostring(lua_State* L)
87{ 82{
88 MyDeepUserdata* self = static_cast<MyDeepUserdata*>(luaG_todeep(L, deep_test_id, 1)); 83 MyDeepUserdata* const self{ static_cast<MyDeepUserdata*>(g_MyDeepFactory.toDeep(L, 1)) };
89 lua_pushfstring(L, "%p:deep(%d)", lua_topointer(L, 1), self->val); 84 lua_pushfstring(L, "%p:deep(%d)", lua_topointer(L, 1), self->val);
90 return 1; 85 return 1;
91} 86}
@@ -94,7 +89,7 @@ struct MyDeepUserdata : public DeepPrelude // Deep userdata MUST start with a De
94 89
95[[nodiscard]] static int deep_gc(lua_State* L) 90[[nodiscard]] static int deep_gc(lua_State* L)
96{ 91{
97 MyDeepUserdata* self = static_cast<MyDeepUserdata*>(luaG_todeep(L, deep_test_id, 1)); 92 MyDeepUserdata* const self{ static_cast<MyDeepUserdata*>(g_MyDeepFactory.toDeep(L, 1)) };
98 return 0; 93 return 0;
99} 94}
100 95
@@ -115,9 +110,8 @@ static luaL_Reg const deep_mt[] =
115int luaD_new_deep( lua_State* L) 110int luaD_new_deep( lua_State* L)
116{ 111{
117 int const nuv{ static_cast<int>(luaL_optinteger(L, 1, 0)) }; 112 int const nuv{ static_cast<int>(luaL_optinteger(L, 1, 0)) };
118 // no additional parameter to luaG_newdeepuserdata!
119 lua_settop(L, 0); 113 lua_settop(L, 0);
120 return luaG_newdeepuserdata(Dest{ L }, deep_test_id, nuv); 114 return g_MyDeepFactory.pushDeepUserdata(Dest{ L }, nuv);
121} 115}
122 116
123// ################################################################################################ 117// ################################################################################################
diff --git a/deep_test/deep_test.vcxproj b/deep_test/deep_test.vcxproj
index 5cd3c55..ddfad5d 100644
--- a/deep_test/deep_test.vcxproj
+++ b/deep_test/deep_test.vcxproj
@@ -388,6 +388,7 @@
388 <AdditionalIncludeDirectories>$(SolutionDir)..\Lua53\include;$(SolutionDir)Lanes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 388 <AdditionalIncludeDirectories>$(SolutionDir)..\Lua53\include;$(SolutionDir)Lanes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
389 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 389 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
390 <LanguageStandard>stdcpp20</LanguageStandard> 390 <LanguageStandard>stdcpp20</LanguageStandard>
391 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
391 </ClCompile> 392 </ClCompile>
392 <PostBuildEvent> 393 <PostBuildEvent>
393 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua53\bin\$(Platform)\Debug\</Command> 394 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua53\bin\$(Platform)\Debug\</Command>
@@ -407,6 +408,7 @@
407 <AdditionalIncludeDirectories>$(SolutionDir)..\Lua51\include;$(SolutionDir)Lanes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 408 <AdditionalIncludeDirectories>$(SolutionDir)..\Lua51\include;$(SolutionDir)Lanes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
408 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 409 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
409 <LanguageStandard>stdcpp20</LanguageStandard> 410 <LanguageStandard>stdcpp20</LanguageStandard>
411 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
410 </ClCompile> 412 </ClCompile>
411 <PostBuildEvent> 413 <PostBuildEvent>
412 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua51\bin\$(Platform)\Debug\</Command> 414 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua51\bin\$(Platform)\Debug\</Command>
@@ -426,6 +428,7 @@
426 <AdditionalIncludeDirectories>$(SolutionDir)..\Lua51\include;$(SolutionDir)Lanes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 428 <AdditionalIncludeDirectories>$(SolutionDir)..\Lua51\include;$(SolutionDir)Lanes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
427 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 429 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
428 <LanguageStandard>stdcpp20</LanguageStandard> 430 <LanguageStandard>stdcpp20</LanguageStandard>
431 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
429 </ClCompile> 432 </ClCompile>
430 <PostBuildEvent> 433 <PostBuildEvent>
431 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua52\bin\$(Platform)\Debug\</Command> 434 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua52\bin\$(Platform)\Debug\</Command>
@@ -446,6 +449,7 @@
446 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 449 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
447 <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 450 <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
448 <LanguageStandard>stdcpp20</LanguageStandard> 451 <LanguageStandard>stdcpp20</LanguageStandard>
452 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
449 </ClCompile> 453 </ClCompile>
450 <PostBuildEvent> 454 <PostBuildEvent>
451 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\LuaJIT-2.1.0-beta3\bin\$(Platform)\</Command> 455 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\LuaJIT-2.1.0-beta3\bin\$(Platform)\</Command>
@@ -466,6 +470,7 @@
466 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 470 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
467 <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 471 <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
468 <LanguageStandard>stdcpp20</LanguageStandard> 472 <LanguageStandard>stdcpp20</LanguageStandard>
473 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
469 </ClCompile> 474 </ClCompile>
470 <PostBuildEvent> 475 <PostBuildEvent>
471 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\LuaJIT-2.0.5\bin\$(Platform)\</Command> 476 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\LuaJIT-2.0.5\bin\$(Platform)\</Command>
@@ -485,6 +490,7 @@
485 <AdditionalIncludeDirectories>$(SolutionDir)..\Lua54\include;$(SolutionDir)Lanes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 490 <AdditionalIncludeDirectories>$(SolutionDir)..\Lua54\include;$(SolutionDir)Lanes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
486 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 491 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
487 <LanguageStandard>stdcpp20</LanguageStandard> 492 <LanguageStandard>stdcpp20</LanguageStandard>
493 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
488 </ClCompile> 494 </ClCompile>
489 <PostBuildEvent> 495 <PostBuildEvent>
490 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\framework\</Command> 496 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\framework\</Command>
@@ -504,6 +510,7 @@
504 <AdditionalIncludeDirectories>$(SolutionDir)..\MoonJIT\src;$(SolutionDir)Lanes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 510 <AdditionalIncludeDirectories>$(SolutionDir)..\MoonJIT\src;$(SolutionDir)Lanes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
505 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 511 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
506 <LanguageStandard>stdcpp20</LanguageStandard> 512 <LanguageStandard>stdcpp20</LanguageStandard>
513 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
507 </ClCompile> 514 </ClCompile>
508 <PostBuildEvent> 515 <PostBuildEvent>
509 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\MoonJIT\bin\$(Platform)\</Command> 516 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\MoonJIT\bin\$(Platform)\</Command>
@@ -524,6 +531,7 @@
524 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 531 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
525 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 532 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
526 <LanguageStandard>stdcpp20</LanguageStandard> 533 <LanguageStandard>stdcpp20</LanguageStandard>
534 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
527 </ClCompile> 535 </ClCompile>
528 <PostBuildEvent> 536 <PostBuildEvent>
529 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua53\bin\$(Platform)\Debug\</Command> 537 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua53\bin\$(Platform)\Debug\</Command>
@@ -544,6 +552,7 @@
544 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 552 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
545 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 553 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
546 <LanguageStandard>stdcpp20</LanguageStandard> 554 <LanguageStandard>stdcpp20</LanguageStandard>
555 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
547 </ClCompile> 556 </ClCompile>
548 <PostBuildEvent> 557 <PostBuildEvent>
549 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua51\bin\$(Platform)\Debug\</Command> 558 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua51\bin\$(Platform)\Debug\</Command>
@@ -564,6 +573,7 @@
564 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 573 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
565 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 574 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
566 <LanguageStandard>stdcpp20</LanguageStandard> 575 <LanguageStandard>stdcpp20</LanguageStandard>
576 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
567 </ClCompile> 577 </ClCompile>
568 <PostBuildEvent> 578 <PostBuildEvent>
569 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua52\bin\$(Platform)\Debug\</Command> 579 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\Lua52\bin\$(Platform)\Debug\</Command>
@@ -584,6 +594,7 @@
584 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 594 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
585 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 595 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
586 <LanguageStandard>stdcpp20</LanguageStandard> 596 <LanguageStandard>stdcpp20</LanguageStandard>
597 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
587 </ClCompile> 598 </ClCompile>
588 <PostBuildEvent> 599 <PostBuildEvent>
589 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\LuaJIT-2.1.0-beta3\bin\$(Platform)\</Command> 600 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\LuaJIT-2.1.0-beta3\bin\$(Platform)\</Command>
@@ -604,6 +615,7 @@
604 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 615 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
605 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 616 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
606 <LanguageStandard>stdcpp20</LanguageStandard> 617 <LanguageStandard>stdcpp20</LanguageStandard>
618 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
607 </ClCompile> 619 </ClCompile>
608 <PostBuildEvent> 620 <PostBuildEvent>
609 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\LuaJIT-2.0.5\bin\$(Platform)\</Command> 621 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\LuaJIT-2.0.5\bin\$(Platform)\</Command>
@@ -624,6 +636,7 @@
624 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 636 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
625 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 637 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
626 <LanguageStandard>stdcpp20</LanguageStandard> 638 <LanguageStandard>stdcpp20</LanguageStandard>
639 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
627 </ClCompile> 640 </ClCompile>
628 <PostBuildEvent> 641 <PostBuildEvent>
629 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\framework\</Command> 642 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\framework\</Command>
@@ -644,6 +657,7 @@
644 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> 657 <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
645 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 658 <PreprocessorDefinitions>_WINDLL;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
646 <LanguageStandard>stdcpp20</LanguageStandard> 659 <LanguageStandard>stdcpp20</LanguageStandard>
660 <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
647 </ClCompile> 661 </ClCompile>
648 <PostBuildEvent> 662 <PostBuildEvent>
649 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\MoonJIT\bin\$(Platform)\</Command> 663 <Command>xcopy /R /F /Y /I "$(TargetPath)" $(SolutionDir)..\MoonJIT\bin\$(Platform)\</Command>