Compare commits
15 Commits
v3.0.0-beta.1
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
| df1ef686f2 | |||
| 4ff7d68516 | |||
| d21f3da414 | |||
| 18ca0318a7 | |||
| e9dff1a12d | |||
| 67cbcba357 | |||
| 2784e6c38d | |||
| 90e133b03e | |||
| 861d6bf7b2 | |||
| 482f7a08a6 | |||
| 7fb898cc47 | |||
| ac16fe2974 | |||
| d78a443395 | |||
| 30b1d4d8b9 | |||
| e5754d51f0 |
@@ -13,7 +13,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ActiveLib17", "..\..\Active
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SpeckleLib17", "..\SpeckleLib\SpeckleLib17.vcxproj", "{942743B7-B3CB-4F91-BE46-28937F5E3FD1}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Build", "..\ci-build\Build.csproj", "{702DE13A-1CCF-485D-A50D-846F645F07D3}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Build", "..\ci-build\Build.csproj", "{702DE13A-1CCF-485D-A50D-846F645F07D3}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -21,16 +21,28 @@ Global
|
||||
Debug16|x86 = Debug16|x86
|
||||
Debug17|x64 = Debug17|x64
|
||||
Debug17|x86 = Debug17|x86
|
||||
DebugAC25|x64 = DebugAC25|x64
|
||||
DebugAC25|x86 = DebugAC25|x86
|
||||
DebugAC26|x64 = DebugAC26|x64
|
||||
DebugAC26|x86 = DebugAC26|x86
|
||||
DebugAC27|x64 = DebugAC27|x64
|
||||
DebugAC27|x86 = DebugAC27|x86
|
||||
DebugAC28|x64 = DebugAC28|x64
|
||||
DebugAC28|x86 = DebugAC28|x86
|
||||
DebugVS2022|x64 = DebugVS2022|x64
|
||||
DebugVS2022|x86 = DebugVS2022|x86
|
||||
Release16|x64 = Release16|x64
|
||||
Release16|x86 = Release16|x86
|
||||
Release17|x64 = Release17|x64
|
||||
Release17|x86 = Release17|x86
|
||||
ReleaseAC25|x64 = ReleaseAC25|x64
|
||||
ReleaseAC25|x86 = ReleaseAC25|x86
|
||||
ReleaseAC26|x64 = ReleaseAC26|x64
|
||||
ReleaseAC26|x86 = ReleaseAC26|x86
|
||||
ReleaseAC27|x64 = ReleaseAC27|x64
|
||||
ReleaseAC27|x86 = ReleaseAC27|x86
|
||||
ReleaseAC28|x64 = ReleaseAC28|x64
|
||||
ReleaseAC28|x86 = ReleaseAC28|x86
|
||||
ReleaseVS2019|x64 = ReleaseVS2019|x64
|
||||
ReleaseVS2019|x86 = ReleaseVS2019|x86
|
||||
ReleaseVS2022|x64 = ReleaseVS2022|x64
|
||||
@@ -45,10 +57,22 @@ Global
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.Debug17|x64.Build.0 = DebugVW2024|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.Debug17|x86.ActiveCfg = DebugAC27|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.Debug17|x86.Build.0 = DebugAC27|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC25|x64.ActiveCfg = DebugAC25|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC25|x64.Build.0 = DebugAC25|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC25|x86.ActiveCfg = DebugVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC25|x86.Build.0 = DebugVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC26|x64.ActiveCfg = DebugAC26|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC26|x64.Build.0 = DebugAC26|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC26|x86.ActiveCfg = DebugVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC26|x86.Build.0 = DebugVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC27|x64.ActiveCfg = DebugAC27|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC27|x64.Build.0 = DebugAC27|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC27|x86.ActiveCfg = DebugVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC27|x86.Build.0 = DebugVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC28|x64.ActiveCfg = DebugAC28|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC28|x64.Build.0 = DebugAC28|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC28|x86.ActiveCfg = DebugVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugAC28|x86.Build.0 = DebugVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugVS2022|x64.ActiveCfg = DebugVW2024|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugVS2022|x64.Build.0 = DebugVW2024|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.DebugVS2022|x86.ActiveCfg = DebugRV2024|Win32
|
||||
@@ -61,10 +85,22 @@ Global
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.Release17|x64.Build.0 = ReleaseVW2024|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.Release17|x86.ActiveCfg = ReleaseAC27|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.Release17|x86.Build.0 = ReleaseAC27|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC25|x64.ActiveCfg = ReleaseAC25|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC25|x64.Build.0 = ReleaseAC25|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC25|x86.ActiveCfg = ReleaseVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC25|x86.Build.0 = ReleaseVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC26|x64.ActiveCfg = ReleaseAC26|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC26|x64.Build.0 = ReleaseAC26|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC26|x86.ActiveCfg = ReleaseVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC26|x86.Build.0 = ReleaseVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC27|x64.ActiveCfg = ReleaseAC27|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC27|x64.Build.0 = ReleaseAC27|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC27|x86.ActiveCfg = ReleaseVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC27|x86.Build.0 = ReleaseVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC28|x64.ActiveCfg = ReleaseAC28|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC28|x64.Build.0 = ReleaseAC28|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC28|x86.ActiveCfg = ReleaseVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseAC28|x86.Build.0 = ReleaseVW2024|Win32
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseVS2019|x64.ActiveCfg = ReleaseVW2024|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseVS2019|x64.Build.0 = ReleaseVW2024|x64
|
||||
{CB120C04-054F-485B-BB5F-1EDE23F7FACB}.ReleaseVS2019|x86.ActiveCfg = ReleaseRV2024|Win32
|
||||
@@ -81,10 +117,22 @@ Global
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.Debug17|x64.Build.0 = Debug17|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.Debug17|x86.ActiveCfg = Debug17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.Debug17|x86.Build.0 = Debug17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC25|x64.ActiveCfg = Debug16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC25|x64.Build.0 = Debug16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC25|x86.ActiveCfg = Debug17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC25|x86.Build.0 = Debug17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC26|x64.ActiveCfg = Debug16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC26|x64.Build.0 = Debug16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC26|x86.ActiveCfg = Debug17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC26|x86.Build.0 = Debug17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC27|x64.ActiveCfg = Debug16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC27|x64.Build.0 = Debug16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC27|x86.ActiveCfg = Debug17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC27|x86.Build.0 = Debug17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC28|x64.ActiveCfg = Debug16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC28|x64.Build.0 = Debug16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC28|x86.ActiveCfg = Debug17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugAC28|x86.Build.0 = Debug17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugVS2022|x64.ActiveCfg = Debug16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugVS2022|x64.Build.0 = Debug16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.DebugVS2022|x86.ActiveCfg = Debug17|Win32
|
||||
@@ -97,10 +145,22 @@ Global
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.Release17|x64.Build.0 = Release17|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.Release17|x86.ActiveCfg = Release17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.Release17|x86.Build.0 = Release17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC25|x64.ActiveCfg = Release16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC25|x64.Build.0 = Release16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC25|x86.ActiveCfg = Release17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC25|x86.Build.0 = Release17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC26|x64.ActiveCfg = Release16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC26|x64.Build.0 = Release16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC26|x86.ActiveCfg = Release17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC26|x86.Build.0 = Release17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC27|x64.ActiveCfg = Release16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC27|x64.Build.0 = Release16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC27|x86.ActiveCfg = Release17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC27|x86.Build.0 = Release17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC28|x64.ActiveCfg = Release16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC28|x64.Build.0 = Release16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC28|x86.ActiveCfg = Release17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseAC28|x86.Build.0 = Release17|Win32
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseVS2019|x64.ActiveCfg = Release16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseVS2019|x64.Build.0 = Release16|x64
|
||||
{64EBDBC7-AB2D-4AE1-8E54-922B6FA6E1CC}.ReleaseVS2019|x86.ActiveCfg = Release17|Win32
|
||||
@@ -117,10 +177,22 @@ Global
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.Debug17|x64.Build.0 = DebugAC27|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.Debug17|x86.ActiveCfg = DebugAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.Debug17|x86.Build.0 = DebugAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC25|x64.ActiveCfg = DebugAC25|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC25|x64.Build.0 = DebugAC25|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC25|x86.ActiveCfg = DebugAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC25|x86.Build.0 = DebugAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC26|x64.ActiveCfg = DebugAC26|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC26|x64.Build.0 = DebugAC26|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC26|x86.ActiveCfg = DebugAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC26|x86.Build.0 = DebugAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC27|x64.ActiveCfg = DebugAC27|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC27|x64.Build.0 = DebugAC27|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC27|x86.ActiveCfg = DebugAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC27|x86.Build.0 = DebugAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC28|x64.ActiveCfg = DebugAC28|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC28|x64.Build.0 = DebugAC28|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC28|x86.ActiveCfg = DebugAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugAC28|x86.Build.0 = DebugAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugVS2022|x64.ActiveCfg = DebugAC27|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugVS2022|x64.Build.0 = DebugAC27|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.DebugVS2022|x86.ActiveCfg = DebugAC27|Win32
|
||||
@@ -133,10 +205,22 @@ Global
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.Release17|x64.Build.0 = ReleaseAC27|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.Release17|x86.ActiveCfg = ReleaseAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.Release17|x86.Build.0 = ReleaseAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC25|x64.ActiveCfg = ReleaseAC25|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC25|x64.Build.0 = ReleaseAC25|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC25|x86.ActiveCfg = ReleaseAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC25|x86.Build.0 = ReleaseAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC26|x64.ActiveCfg = ReleaseAC26|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC26|x64.Build.0 = ReleaseAC26|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC26|x86.ActiveCfg = ReleaseAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC26|x86.Build.0 = ReleaseAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC27|x64.ActiveCfg = ReleaseAC27|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC27|x64.Build.0 = ReleaseAC27|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC27|x86.ActiveCfg = ReleaseAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC27|x86.Build.0 = ReleaseAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC28|x64.ActiveCfg = ReleaseAC28|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC28|x64.Build.0 = ReleaseAC28|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC28|x86.ActiveCfg = ReleaseAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseAC28|x86.Build.0 = ReleaseAC27|Win32
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseVS2019|x64.ActiveCfg = ReleaseAC27|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseVS2019|x64.Build.0 = ReleaseAC27|x64
|
||||
{942743B7-B3CB-4F91-BE46-28937F5E3FD1}.ReleaseVS2019|x86.ActiveCfg = ReleaseAC27|Win32
|
||||
@@ -153,9 +237,18 @@ Global
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.Debug17|x64.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.Debug17|x86.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.Debug17|x86.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC25|x64.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC25|x86.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC25|x86.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC26|x64.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC26|x86.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC26|x86.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC27|x64.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC27|x86.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC27|x86.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC28|x64.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC28|x86.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugAC28|x86.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugVS2022|x64.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugVS2022|x64.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.DebugVS2022|x86.ActiveCfg = Debug|Any CPU
|
||||
@@ -168,8 +261,18 @@ Global
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.Release17|x64.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.Release17|x86.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.Release17|x86.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC25|x64.ActiveCfg = Release|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC25|x86.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC25|x86.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC26|x64.ActiveCfg = Release|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC26|x86.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC26|x86.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC27|x64.ActiveCfg = Release|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC27|x86.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC27|x86.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC28|x64.ActiveCfg = Release|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC28|x86.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC28|x86.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseVS2019|x64.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseVS2019|x64.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseVS2019|x86.ActiveCfg = Debug|Any CPU
|
||||
@@ -178,7 +281,6 @@ Global
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseVS2022|x64.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseVS2022|x86.ActiveCfg = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseVS2022|x86.Build.0 = Debug|Any CPU
|
||||
{702DE13A-1CCF-485D-A50D-846F645F07D3}.ReleaseAC27|x64.ActiveCfg = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -1,6 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="DebugAC25|Win32">
|
||||
<Configuration>DebugAC25</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="DebugAC25|x64">
|
||||
<Configuration>DebugAC25</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="DebugAC26|Win32">
|
||||
<Configuration>DebugAC26</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="DebugAC26|x64">
|
||||
<Configuration>DebugAC26</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="DebugAC27|Win32">
|
||||
<Configuration>DebugAC27</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
@@ -9,6 +25,14 @@
|
||||
<Configuration>DebugAC27</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="DebugAC28|Win32">
|
||||
<Configuration>DebugAC28</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="DebugAC28|x64">
|
||||
<Configuration>DebugAC28</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="DebugRV2024|Win32">
|
||||
<Configuration>DebugRV2024</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
@@ -21,6 +45,22 @@
|
||||
<Configuration>DebugVW2024</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="ReleaseAC25|Win32">
|
||||
<Configuration>ReleaseAC25</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="ReleaseAC25|x64">
|
||||
<Configuration>ReleaseAC25</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="ReleaseAC26|Win32">
|
||||
<Configuration>ReleaseAC26</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="ReleaseAC26|x64">
|
||||
<Configuration>ReleaseAC26</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="ReleaseAC27|Win32">
|
||||
<Configuration>ReleaseAC27</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
@@ -29,6 +69,14 @@
|
||||
<Configuration>ReleaseAC27</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="ReleaseAC28|Win32">
|
||||
<Configuration>ReleaseAC28</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="ReleaseAC28|x64">
|
||||
<Configuration>ReleaseAC28</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="ReleaseRV2024|Win32">
|
||||
<Configuration>ReleaseRV2024</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
@@ -64,12 +112,24 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseRV2024|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugVW2024|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseAC27|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseAC28|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseAC26|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseAC25|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugRV2024|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugAC27|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugAC28|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugAC26|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugAC25|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="RFIX.win\Connector.rc2">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseAC27|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseAC28|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseAC26|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseAC25|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugAC27|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugAC28|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugAC26|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugAC25|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="RINT\Connector.grc" />
|
||||
<None Include="RINT\ConnectorMenu.grc" />
|
||||
@@ -115,6 +175,8 @@
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Config\GetConfig.cpp" />
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Config\GetIsDevMode.cpp" />
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Config\UpdateConfig.cpp" />
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Receive\Receive.cpp" />
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Receive\ReceiveBridge.cpp" />
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Selection\Arg\SelectionInfo.cpp" />
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Selection\GetSelection.cpp" />
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Selection\SelectionBridge.cpp" />
|
||||
@@ -146,6 +208,7 @@
|
||||
<ClCompile Include="Connector\Record\Model\ModelCard.cpp" />
|
||||
<ClCompile Include="Connector\Record\Model\ReceiverModelCard.cpp" />
|
||||
<ClCompile Include="Connector\Record\Model\SenderModelCard.cpp" />
|
||||
<ClCompile Include="Connector\Tool\ElementHighlighter.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Connector\Connector.h" />
|
||||
@@ -174,6 +237,8 @@
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Config\GetConfig.h" />
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Config\GetIsDevMode.h" />
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Config\UpdateConfig.h" />
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Receive\Receive.h" />
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Receive\ReceiveBridge.h" />
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Selection\Arg\SelectionInfo.h" />
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Selection\GetSelection.h" />
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Selection\SelectionBridge.h" />
|
||||
@@ -208,6 +273,7 @@
|
||||
<ClInclude Include="Connector\Record\Model\ModelCard.h" />
|
||||
<ClInclude Include="Connector\Record\Model\ReceiverModelCard.h" />
|
||||
<ClInclude Include="Connector\Record\Model\SenderModelCard.h" />
|
||||
<ClInclude Include="Connector\Tool\ElementHighlighter.h" />
|
||||
<ClInclude Include="Connector\Version.h" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
@@ -237,6 +303,24 @@
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC28|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC26|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC25|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVW2024|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
@@ -258,6 +342,27 @@
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC28|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC26|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC25|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugVW2024|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
@@ -283,6 +388,30 @@
|
||||
<VCToolsVersion>
|
||||
</VCToolsVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC28|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
||||
<VCToolsVersion />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC26|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
||||
<VCToolsVersion />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC25|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
||||
<VCToolsVersion />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVW2024|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
@@ -311,6 +440,33 @@
|
||||
<VCToolsVersion>
|
||||
</VCToolsVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC28|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
||||
<VCToolsVersion />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC26|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
||||
<VCToolsVersion />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC25|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
||||
<VCToolsVersion />
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
@@ -325,6 +481,15 @@
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC27|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC28|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC26|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC25|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='ReleaseVW2024|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
@@ -334,6 +499,15 @@
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC27|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC28|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC26|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC25|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DebugVW2024|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\SpeckleLib\Make.win\VW2024.props" />
|
||||
@@ -349,6 +523,21 @@
|
||||
<Import Project="..\SpeckleLib\Make.win\AC27.props" />
|
||||
<Import Project="Make.win\ConnectorAC27.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC28|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\SpeckleLib\Make.win\AC28.props" />
|
||||
<Import Project="Make.win\ConnectorAC28.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC26|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\SpeckleLib\Make.win\AC26.props" />
|
||||
<Import Project="Make.win\ConnectorAC26.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC25|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\SpeckleLib\Make.win\AC25.props" />
|
||||
<Import Project="Make.win\ConnectorAC25.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='ReleaseVW2024|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\SpeckleLib\Make.win\VW2024.props" />
|
||||
@@ -364,6 +553,21 @@
|
||||
<Import Project="..\SpeckleLib\Make.win\AC27.props" />
|
||||
<Import Project="Make.win\ConnectorAC27.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC28|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\SpeckleLib\Make.win\AC28.props" />
|
||||
<Import Project="Make.win\ConnectorAC28.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC26|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\SpeckleLib\Make.win\AC26.props" />
|
||||
<Import Project="Make.win\ConnectorAC26.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC25|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\SpeckleLib\Make.win\AC25.props" />
|
||||
<Import Project="Make.win\ConnectorAC25.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugVW2024|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
@@ -374,6 +578,15 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC27|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC28|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC26|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC25|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVW2024|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
@@ -383,6 +596,15 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC27|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC28|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC26|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC25|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugVW2024|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<SourcePath>$(SourcePath)</SourcePath>
|
||||
@@ -404,6 +626,27 @@
|
||||
<OutDir>$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(BASE_NAME)</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC28|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<SourcePath>$(SourcePath)</SourcePath>
|
||||
<TargetExt>.apx</TargetExt>
|
||||
<OutDir>$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(BASE_NAME)</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC26|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<SourcePath>$(SourcePath)</SourcePath>
|
||||
<TargetExt>.apx</TargetExt>
|
||||
<OutDir>$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(BASE_NAME)</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC25|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<SourcePath>$(SourcePath)</SourcePath>
|
||||
<TargetExt>.apx</TargetExt>
|
||||
<OutDir>$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(BASE_NAME)</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVW2024|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetExt>.vlb</TargetExt>
|
||||
@@ -422,6 +665,24 @@
|
||||
<OutDir>$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(BASE_NAME)</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC28|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetExt>.apx</TargetExt>
|
||||
<OutDir>$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(BASE_NAME)</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC26|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetExt>.apx</TargetExt>
|
||||
<OutDir>$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(BASE_NAME)</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC25|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetExt>.apx</TargetExt>
|
||||
<OutDir>$(Platform)\$(Configuration)\</OutDir>
|
||||
<TargetName>$(BASE_NAME)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugVW2024|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
@@ -467,6 +728,51 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC28|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC26|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC25|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVW2024|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
@@ -524,6 +830,63 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC28|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC26|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC25|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugVW2024|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
@@ -685,6 +1048,219 @@ CALL "$(ProjectDir)..\SpeckleLib\Make.win\install.bat"</Command>
|
||||
<PostBuildEvent>
|
||||
<Command>REM Archicad installbuild script
|
||||
|
||||
SET PROJECTDIR=$(ProjectDir)
|
||||
SET TARGETNAME=$(TargetName)
|
||||
SET TARGETDIR=$(TargetDir)
|
||||
SET BIMVERSION=$(BIM_VERSION)
|
||||
ECHO ON
|
||||
ECHO "Starting Install"
|
||||
set CONFIGURATION=$(Configuration)
|
||||
set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\install.bat"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Creating VWR File</Message>
|
||||
</PostBuildEvent>
|
||||
<PreBuildEvent>
|
||||
<Command>set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\buildResAC.bat"</Command>
|
||||
</PreBuildEvent>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>$(HEADER_PATH_5)\Inc;$(HEADER_PATH_5)\Modules\DGLib;$(RES_OUTPUT);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC28|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>
|
||||
</SDLCheck>
|
||||
<PreprocessorDefinitions>TESTING_MODE;DEBUG;ARCHICAD;"__ACENV_CALL= ";WIN32;_WINDOWS;WINDOWS;AddOn_EXPORTS;ACExtension;_STLP_DONT_FORCE_MSVC_LIB_NAME;_USRDLL;_WIN_EXTERNAL_;_WINDLL;_CRT_SECURE_NO_WARNINGS;_SILENCE_ALL_CXX20_DEPRECATION_WARNINGS;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>false</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
||||
<AdditionalIncludeDirectories>./;$(HEADER_PATH_1)/;$(HEADER_PATH_2)/;$(HEADER_PATH_3)/;$(HEADER_PATH_3)/$(BIM_PLATFORM)/;$(HEADER_PATH_4)/;$(HEADER_PATH_5)/;$(HEADER_PATH_5)/Inc;$(HEADER_PATH_5)/Modules/AnalyticalModelAPI;$(HEADER_PATH_5)/Modules/ArchicadAPI;$(HEADER_PATH_5)/Modules/Brep;$(HEADER_PATH_5)/Modules/BuiltInLibrary;$(HEADER_PATH_5)/Modules/CADInfrastructureBase;$(HEADER_PATH_5)/Modules/CommunicationClient;$(HEADER_PATH_5)/Modules/CommunicationCommon;$(HEADER_PATH_5)/Modules/DGGraphix;$(HEADER_PATH_5)/Modules/DGLib;$(HEADER_PATH_5)/Modules/DesignVariantAPI;$(HEADER_PATH_5)/Modules/GDL;$(HEADER_PATH_5)/Modules/GSMSections;$(HEADER_PATH_5)/Modules/GSModelDevLib;$(HEADER_PATH_5)/Modules/GSModeler;$(HEADER_PATH_5)/Modules/GSModeler2D;$(HEADER_PATH_5)/Modules/GSRoot;$(HEADER_PATH_5)/Modules/GSUtils;$(HEADER_PATH_5)/Modules/GSXML;$(HEADER_PATH_5)/Modules/GSXMLUtils;$(HEADER_PATH_5)/Modules/GX;$(HEADER_PATH_5)/Modules/GXImage;$(HEADER_PATH_5)/Modules/GXImageBase;$(HEADER_PATH_5)/Modules/GXMedia;$(HEADER_PATH_5)/Modules/Geometry;$(HEADER_PATH_5)/Modules/Graphix;$(HEADER_PATH_5)/Modules/HTTP;$(HEADER_PATH_5)/Modules/InputOutput;$(HEADER_PATH_5)/Modules/JSON;$(HEADER_PATH_5)/Modules/JSONConversion;$(HEADER_PATH_5)/Modules/JavascriptEngine;$(HEADER_PATH_5)/Modules/LibXL;$(HEADER_PATH_5)/Modules/MEPAPI;$(HEADER_PATH_5)/Modules/MPIInterfaceDevLib;$(HEADER_PATH_5)/Modules/MPIInterfaceImpDevLib;$(HEADER_PATH_5)/Modules/Model3D;$(HEADER_PATH_5)/Modules/Model3DViewerControl;$(HEADER_PATH_5)/Modules/Network;$(HEADER_PATH_5)/Modules/Pattern;$(HEADER_PATH_5)/Modules/PointCloud;$(HEADER_PATH_5)/Modules/PointCloudManager;$(HEADER_PATH_5)/Modules/QGDrawing;$(HEADER_PATH_5)/Modules/RS;$(HEADER_PATH_5)/Modules/RapidJSON;$(HEADER_PATH_5)/Modules/SecureCommunication;$(HEADER_PATH_5)/Modules/TWClientLib;$(HEADER_PATH_5)/Modules/TWRoot;$(HEADER_PATH_5)/Modules/TextEngine;$(HEADER_PATH_5)/Modules/TransparentWindowLib;$(HEADER_PATH_5)/Modules/UCLib;$(HEADER_PATH_5)/Modules/UDLib;$(HEADER_PATH_5)/Modules/UserInterfaceAPI;$(HEADER_PATH_5)/Modules/VBElemDialogs;$(HEADER_PATH_5)/Modules/VBUtils;$(HEADER_PATH_5)/Modules/VectorImage $(inherited)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<StringPooling>true</StringPooling>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
<ForcedIncludeFiles>
|
||||
</ForcedIncludeFiles>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<TreatLinkerWarningAsErrors>false</TreatLinkerWarningAsErrors>
|
||||
<AdditionalDependencies>$(HEADER_PATH_5)\Lib\ACAP_STATD.lib;$(HEADER_PATH_5)\Modules\DGGraphix\Win\DGGraphixImp.LIB;$(HEADER_PATH_5)\Modules\DGLib\Win\DGImp.lib;$(HEADER_PATH_5)\Modules\Geometry\Win\GeometryImp.LIB;$(HEADER_PATH_5)\Modules\Graphix\Win\GraphixImp.LIB;$(HEADER_PATH_5)\Modules\GSModeler\Win\GSModelerImp.LIB;$(HEADER_PATH_5)\Modules\GSRoot\Win\GSRootImp.lib;$(HEADER_PATH_5)\Modules\GXImage\Win\GXImageImp.lib;$(HEADER_PATH_5)\Modules\GXImageBase\Win\GXImageBaseImp.lib;$(HEADER_PATH_5)\Modules\GX\Win\GXImp.LIB;$(HEADER_PATH_5)\Modules\InputOutput\Win\InputOutputImp.lib;$(HEADER_PATH_5)\Modules\RS\Win\RSImp.LIB;$(HEADER_PATH_5)\Modules\UCLib\Win\UCImp.lib;$(HEADER_PATH_5)\Modules\UDLib\Win\UDImp.lib;$(HEADER_PATH_5)\Modules\VBElemDialogs\Win\VBElemDialogsImp.LIB;$(HEADER_PATH_5)\Modules\VectorImage\Win\VectorImageImp.LIB;$(HEADER_PATH_5)\Modules\JavascriptEngine\Win\JavascriptEngineImp.LIB;$(HEADER_PATH_5)\Modules\JSON\Win\JSONImp.LIB;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreAllDefaultLibraries>
|
||||
</IgnoreAllDefaultLibraries>
|
||||
<IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalLibraryDirectories>$(HEADER_PATH_5)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<EntryPointSymbol>DllMainEntry</EntryPointSymbol>
|
||||
<AdditionalOptions>/export:GetExportedFuncAddrs,%401 /export:SetImportedFuncAddrs,%402 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalDependencies>../zlib/x64/ZlibStatRelease/zlibstat.lib</AdditionalDependencies>
|
||||
</Lib>
|
||||
<PostBuildEvent>
|
||||
<Command>REM Archicad installbuild script
|
||||
|
||||
SET PROJECTDIR=$(ProjectDir)
|
||||
SET TARGETNAME=$(TargetName)
|
||||
SET TARGETDIR=$(TargetDir)
|
||||
SET BIMVERSION=$(BIM_VERSION)
|
||||
ECHO ON
|
||||
ECHO "Starting Install"
|
||||
set CONFIGURATION=$(Configuration)
|
||||
set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\install.bat"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Creating VWR File</Message>
|
||||
</PostBuildEvent>
|
||||
<PreBuildEvent>
|
||||
<Command>set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\buildResAC.bat"</Command>
|
||||
</PreBuildEvent>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>$(HEADER_PATH_5)\Inc;$(HEADER_PATH_5)\Modules\DGLib;$(RES_OUTPUT);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC26|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>
|
||||
</SDLCheck>
|
||||
<PreprocessorDefinitions>TESTING_MODE;DEBUG;ARCHICAD;WIN32;_WINDOWS;WINDOWS;AddOn_EXPORTS;ACExtension;_STLP_DONT_FORCE_MSVC_LIB_NAME;_USRDLL;_WIN_EXTERNAL_;_WINDLL;_CRT_SECURE_NO_WARNINGS;_SILENCE_ALL_CXX20_DEPRECATION_WARNINGS;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>false</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
||||
<AdditionalIncludeDirectories>./;$(HEADER_PATH_1)/;$(HEADER_PATH_2)/;$(HEADER_PATH_3)/;$(HEADER_PATH_3)/$(BIM_PLATFORM)/;$(HEADER_PATH_4)/;$(HEADER_PATH_5)/;$(HEADER_PATH_5)/Inc;$(HEADER_PATH_5)/Modules/AnalyticalModelAPI;$(HEADER_PATH_5)/Modules/ArchicadAPI;$(HEADER_PATH_5)/Modules/Brep;$(HEADER_PATH_5)/Modules/BuiltInLibrary;$(HEADER_PATH_5)/Modules/CADInfrastructureBase;$(HEADER_PATH_5)/Modules/CommunicationClient;$(HEADER_PATH_5)/Modules/CommunicationCommon;$(HEADER_PATH_5)/Modules/DGGraphix;$(HEADER_PATH_5)/Modules/DGLib;$(HEADER_PATH_5)/Modules/DesignVariantAPI;$(HEADER_PATH_5)/Modules/GDL;$(HEADER_PATH_5)/Modules/GSMSections;$(HEADER_PATH_5)/Modules/GSModelDevLib;$(HEADER_PATH_5)/Modules/GSModeler;$(HEADER_PATH_5)/Modules/GSModeler2D;$(HEADER_PATH_5)/Modules/GSRoot;$(HEADER_PATH_5)/Modules/GSUtils;$(HEADER_PATH_5)/Modules/GSXML;$(HEADER_PATH_5)/Modules/GSXMLUtils;$(HEADER_PATH_5)/Modules/GX;$(HEADER_PATH_5)/Modules/GXImage;$(HEADER_PATH_5)/Modules/GXImageBase;$(HEADER_PATH_5)/Modules/GXMedia;$(HEADER_PATH_5)/Modules/Geometry;$(HEADER_PATH_5)/Modules/Graphix;$(HEADER_PATH_5)/Modules/HTTP;$(HEADER_PATH_5)/Modules/InputOutput;$(HEADER_PATH_5)/Modules/JSON;$(HEADER_PATH_5)/Modules/JSONConversion;$(HEADER_PATH_5)/Modules/JavascriptEngine;$(HEADER_PATH_5)/Modules/LibXL;$(HEADER_PATH_5)/Modules/MEPAPI;$(HEADER_PATH_5)/Modules/MPIInterfaceDevLib;$(HEADER_PATH_5)/Modules/MPIInterfaceImpDevLib;$(HEADER_PATH_5)/Modules/Model3D;$(HEADER_PATH_5)/Modules/Model3DViewerControl;$(HEADER_PATH_5)/Modules/Network;$(HEADER_PATH_5)/Modules/Pattern;$(HEADER_PATH_5)/Modules/PointCloud;$(HEADER_PATH_5)/Modules/PointCloudManager;$(HEADER_PATH_5)/Modules/QGDrawing;$(HEADER_PATH_5)/Modules/RS;$(HEADER_PATH_5)/Modules/RapidJSON;$(HEADER_PATH_5)/Modules/SecureCommunication;$(HEADER_PATH_5)/Modules/TWClientLib;$(HEADER_PATH_5)/Modules/TWRoot;$(HEADER_PATH_5)/Modules/TextEngine;$(HEADER_PATH_5)/Modules/TransparentWindowLib;$(HEADER_PATH_5)/Modules/UCLib;$(HEADER_PATH_5)/Modules/UDLib;$(HEADER_PATH_5)/Modules/UserInterfaceAPI;$(HEADER_PATH_5)/Modules/VBElemDialogs;$(HEADER_PATH_5)/Modules/VBUtils;$(HEADER_PATH_5)/Modules/VectorImage $(inherited)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<StringPooling>true</StringPooling>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
<ForcedIncludeFiles>
|
||||
</ForcedIncludeFiles>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<TreatLinkerWarningAsErrors>false</TreatLinkerWarningAsErrors>
|
||||
<AdditionalDependencies>$(HEADER_PATH_5)\Lib\Win\ACAP_STATD.lib;$(HEADER_PATH_5)\Modules\DGGraphix\Win\DGGraphixImp.LIB;$(HEADER_PATH_5)\Modules\DGLib\Win\DGImp.lib;$(HEADER_PATH_5)\Modules\Geometry\Win\GeometryImp.LIB;$(HEADER_PATH_5)\Modules\Graphix\Win\GraphixImp.LIB;$(HEADER_PATH_5)\Modules\GSModeler\Win\GSModelerImp.LIB;$(HEADER_PATH_5)\Modules\GSRoot\Win\GSRootImp.lib;$(HEADER_PATH_5)\Modules\GXImage\Win\GXImageImp.lib;$(HEADER_PATH_5)\Modules\GXImageBase\Win\GXImageBaseImp.lib;$(HEADER_PATH_5)\Modules\GX\Win\GXImp.LIB;$(HEADER_PATH_5)\Modules\InputOutput\Win\InputOutputImp.lib;$(HEADER_PATH_5)\Modules\RS\Win\RSImp.LIB;$(HEADER_PATH_5)\Modules\TextEngine\Win\TextEngineImp.LIB;$(HEADER_PATH_5)\Modules\UCLib\Win\UCImp.lib;$(HEADER_PATH_5)\Modules\UDLib\Win\UDImp.lib;$(HEADER_PATH_5)\Modules\VBElemDialogs\Win\VBElemDialogsImp.LIB;$(HEADER_PATH_5)\Modules\VectorImage\Win\VectorImageImp.LIB;$(HEADER_PATH_5)\Modules\JSON\Win\JSONImp.LIB;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreAllDefaultLibraries>
|
||||
</IgnoreAllDefaultLibraries>
|
||||
<IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalLibraryDirectories>$(HEADER_PATH_5)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<EntryPointSymbol>DllMainEntry</EntryPointSymbol>
|
||||
<AdditionalOptions>/export:GetExportedFuncAddrs,%401 /export:SetImportedFuncAddrs,%402 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalDependencies>../zlib/x64/ZlibStatRelease/zlibstat.lib</AdditionalDependencies>
|
||||
</Lib>
|
||||
<PostBuildEvent>
|
||||
<Command>REM Archicad installbuild script
|
||||
|
||||
SET PROJECTDIR=$(ProjectDir)
|
||||
SET TARGETNAME=$(TargetName)
|
||||
SET TARGETDIR=$(TargetDir)
|
||||
SET BIMVERSION=$(BIM_VERSION)
|
||||
ECHO ON
|
||||
ECHO "Starting Install"
|
||||
set CONFIGURATION=$(Configuration)
|
||||
set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\install.bat"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Creating VWR File</Message>
|
||||
</PostBuildEvent>
|
||||
<PreBuildEvent>
|
||||
<Command>set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\buildResAC.bat"</Command>
|
||||
</PreBuildEvent>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>$(HEADER_PATH_5)\Inc;$(HEADER_PATH_5)\Modules\DGLib;$(RES_OUTPUT);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC25|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>
|
||||
</SDLCheck>
|
||||
<PreprocessorDefinitions>TESTING_MODE;DEBUG;ARCHICAD;WIN32;_WINDOWS;WINDOWS;AddOn_EXPORTS;ACExtension;_STLP_DONT_FORCE_MSVC_LIB_NAME;_USRDLL;_WIN_EXTERNAL_;_WINDLL;_CRT_SECURE_NO_WARNINGS;_SILENCE_ALL_CXX20_DEPRECATION_WARNINGS;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>false</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
||||
<AdditionalIncludeDirectories>./;$(HEADER_PATH_1)/;$(HEADER_PATH_2)/;$(HEADER_PATH_3)/;$(HEADER_PATH_3)/$(BIM_PLATFORM)/;$(HEADER_PATH_4)/;$(HEADER_PATH_5)/;$(HEADER_PATH_5)/Inc;$(HEADER_PATH_5)/Modules/AnalyticalModelAPI;$(HEADER_PATH_5)/Modules/ArchicadAPI;$(HEADER_PATH_5)/Modules/Brep;$(HEADER_PATH_5)/Modules/BuiltInLibrary;$(HEADER_PATH_5)/Modules/CADInfrastructureBase;$(HEADER_PATH_5)/Modules/CommunicationClient;$(HEADER_PATH_5)/Modules/CommunicationCommon;$(HEADER_PATH_5)/Modules/DGGraphix;$(HEADER_PATH_5)/Modules/DGLib;$(HEADER_PATH_5)/Modules/DesignVariantAPI;$(HEADER_PATH_5)/Modules/GDL;$(HEADER_PATH_5)/Modules/GSMSections;$(HEADER_PATH_5)/Modules/GSModelDevLib;$(HEADER_PATH_5)/Modules/GSModeler;$(HEADER_PATH_5)/Modules/GSModeler2D;$(HEADER_PATH_5)/Modules/GSRoot;$(HEADER_PATH_5)/Modules/GSUtils;$(HEADER_PATH_5)/Modules/GSXML;$(HEADER_PATH_5)/Modules/GSXMLUtils;$(HEADER_PATH_5)/Modules/GX;$(HEADER_PATH_5)/Modules/GXImage;$(HEADER_PATH_5)/Modules/GXImageBase;$(HEADER_PATH_5)/Modules/GXMedia;$(HEADER_PATH_5)/Modules/Geometry;$(HEADER_PATH_5)/Modules/Graphix;$(HEADER_PATH_5)/Modules/HTTP;$(HEADER_PATH_5)/Modules/InputOutput;$(HEADER_PATH_5)/Modules/JSON;$(HEADER_PATH_5)/Modules/JSONConversion;$(HEADER_PATH_5)/Modules/JavascriptEngine;$(HEADER_PATH_5)/Modules/LibXL;$(HEADER_PATH_5)/Modules/MEPAPI;$(HEADER_PATH_5)/Modules/MPIInterfaceDevLib;$(HEADER_PATH_5)/Modules/MPIInterfaceImpDevLib;$(HEADER_PATH_5)/Modules/Model3D;$(HEADER_PATH_5)/Modules/Model3DViewerControl;$(HEADER_PATH_5)/Modules/Network;$(HEADER_PATH_5)/Modules/Pattern;$(HEADER_PATH_5)/Modules/PointCloud;$(HEADER_PATH_5)/Modules/PointCloudManager;$(HEADER_PATH_5)/Modules/QGDrawing;$(HEADER_PATH_5)/Modules/RS;$(HEADER_PATH_5)/Modules/RapidJSON;$(HEADER_PATH_5)/Modules/SecureCommunication;$(HEADER_PATH_5)/Modules/TWClientLib;$(HEADER_PATH_5)/Modules/TWRoot;$(HEADER_PATH_5)/Modules/TextEngine;$(HEADER_PATH_5)/Modules/TransparentWindowLib;$(HEADER_PATH_5)/Modules/UCLib;$(HEADER_PATH_5)/Modules/UDLib;$(HEADER_PATH_5)/Modules/UserInterfaceAPI;$(HEADER_PATH_5)/Modules/VBElemDialogs;$(HEADER_PATH_5)/Modules/VBUtils;$(HEADER_PATH_5)/Modules/VectorImage $(inherited)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<StringPooling>true</StringPooling>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
<ForcedIncludeFiles>
|
||||
</ForcedIncludeFiles>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<TreatLinkerWarningAsErrors>false</TreatLinkerWarningAsErrors>
|
||||
<AdditionalDependencies>$(HEADER_PATH_5)\Lib\Win\ACAP_STATD.lib;$(HEADER_PATH_5)\Modules\DGGraphix\Win\DGGraphixImp.LIB;$(HEADER_PATH_5)\Modules\DGLib\Win\DGImp.lib;$(HEADER_PATH_5)\Modules\Geometry\Win\GeometryImp.LIB;$(HEADER_PATH_5)\Modules\Graphix\Win\GraphixImp.LIB;$(HEADER_PATH_5)\Modules\GSModeler\Win\GSModelerImp.LIB;$(HEADER_PATH_5)\Modules\GSRoot\Win\GSRootImp.lib;$(HEADER_PATH_5)\Modules\GXImage\Win\GXImageImp.lib;$(HEADER_PATH_5)\Modules\GXImageBase\Win\GXImageBaseImp.lib;$(HEADER_PATH_5)\Modules\GX\Win\GXImp.LIB;$(HEADER_PATH_5)\Modules\InputOutput\Win\InputOutputImp.lib;$(HEADER_PATH_5)\Modules\RS\Win\RSImp.LIB;$(HEADER_PATH_5)\Modules\TextEngine\Win\TextEngineImp.LIB;$(HEADER_PATH_5)\Modules\UCLib\Win\UCImp.lib;$(HEADER_PATH_5)\Modules\UDLib\Win\UDImp.lib;$(HEADER_PATH_5)\Modules\VBAttributes\Win\VBAttributesImp.LIB;$(HEADER_PATH_5)\Modules\VBElemDialogs\Win\VBElemDialogsImp.LIB;$(HEADER_PATH_5)\Modules\VectorImage\Win\VectorImageImp.LIB;$(HEADER_PATH_5)\Modules\ObjectDatabase\Win\ObjectDatabaseImp.LIB;$(HEADER_PATH_5)\Modules\JSON\Win\JSONImp.LIB;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreAllDefaultLibraries>
|
||||
</IgnoreAllDefaultLibraries>
|
||||
<IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalLibraryDirectories>$(HEADER_PATH_5)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<EntryPointSymbol>DllMainEntry</EntryPointSymbol>
|
||||
<AdditionalOptions>/export:GetExportedFuncAddrs,%401 /export:SetImportedFuncAddrs,%402 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalDependencies>../zlib/x64/ZlibStatRelease/zlibstat.lib</AdditionalDependencies>
|
||||
</Lib>
|
||||
<PostBuildEvent>
|
||||
<Command>REM Archicad installbuild script
|
||||
|
||||
SET PROJECTDIR=$(ProjectDir)
|
||||
SET TARGETNAME=$(TargetName)
|
||||
SET TARGETDIR=$(TargetDir)
|
||||
@@ -872,6 +1448,228 @@ CALL "$(ProjectDir)..\SpeckleLib\Make.win\install.bat"</Command>
|
||||
<PostBuildEvent>
|
||||
<Command>REM Archicad installbuild script
|
||||
|
||||
SET PROJECTDIR=$(ProjectDir)
|
||||
SET TARGETNAME=$(TargetName)
|
||||
SET TARGETDIR=$(TargetDir)
|
||||
SET BIMVERSION=$(BIM_VERSION)
|
||||
ECHO ON
|
||||
ECHO "Starting Install $(TargetName)"
|
||||
set CONFIGURATION=$(Configuration)
|
||||
set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\install.bat"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Creating VWR File</Message>
|
||||
</PostBuildEvent>
|
||||
<PreBuildEvent>
|
||||
<Command>set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\buildResAC.bat"</Command>
|
||||
</PreBuildEvent>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>$(HEADER_PATH_5)\Inc;$(HEADER_PATH_5)\Modules\DGLib;$(RES_OUTPUT);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC28|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>
|
||||
</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;ARCHICAD;"__ACENV_CALL= ";WIN32;_WINDOWS;WINDOWS;AddOn_EXPORTS;ACExtension;_USRDLL;_WIN_EXTERNAL_;_WINDLL;_CRT_SECURE_NO_WARNINGS;_SILENCE_ALL_CXX20_DEPRECATION_WARNINGS;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>./;$(HEADER_PATH_1)/;$(HEADER_PATH_2)/;$(HEADER_PATH_3)/;$(HEADER_PATH_3)/$(BIM_PLATFORM)/;$(HEADER_PATH_4)/;$(HEADER_PATH_5)/;$(HEADER_PATH_5)/Inc;$(HEADER_PATH_5)/Modules/AnalyticalModelAPI;$(HEADER_PATH_5)/Modules/ArchicadAPI;$(HEADER_PATH_5)/Modules/Brep;$(HEADER_PATH_5)/Modules/BuiltInLibrary;$(HEADER_PATH_5)/Modules/CADInfrastructureBase;$(HEADER_PATH_5)/Modules/CommunicationClient;$(HEADER_PATH_5)/Modules/CommunicationCommon;$(HEADER_PATH_5)/Modules/DGGraphix;$(HEADER_PATH_5)/Modules/DGLib;$(HEADER_PATH_5)/Modules/DesignVariantAPI;$(HEADER_PATH_5)/Modules/GDL;$(HEADER_PATH_5)/Modules/GSMSections;$(HEADER_PATH_5)/Modules/GSModelDevLib;$(HEADER_PATH_5)/Modules/GSModeler;$(HEADER_PATH_5)/Modules/GSModeler2D;$(HEADER_PATH_5)/Modules/GSRoot;$(HEADER_PATH_5)/Modules/GSUtils;$(HEADER_PATH_5)/Modules/GSXML;$(HEADER_PATH_5)/Modules/GSXMLUtils;$(HEADER_PATH_5)/Modules/GX;$(HEADER_PATH_5)/Modules/GXImage;$(HEADER_PATH_5)/Modules/GXImageBase;$(HEADER_PATH_5)/Modules/GXMedia;$(HEADER_PATH_5)/Modules/Geometry;$(HEADER_PATH_5)/Modules/Graphix;$(HEADER_PATH_5)/Modules/HTTP;$(HEADER_PATH_5)/Modules/InputOutput;$(HEADER_PATH_5)/Modules/JSON;$(HEADER_PATH_5)/Modules/JSONConversion;$(HEADER_PATH_5)/Modules/JavascriptEngine;$(HEADER_PATH_5)/Modules/LibXL;$(HEADER_PATH_5)/Modules/MEPAPI;$(HEADER_PATH_5)/Modules/MPIInterfaceDevLib;$(HEADER_PATH_5)/Modules/MPIInterfaceImpDevLib;$(HEADER_PATH_5)/Modules/Model3D;$(HEADER_PATH_5)/Modules/Model3DViewerControl;$(HEADER_PATH_5)/Modules/Network;$(HEADER_PATH_5)/Modules/Pattern;$(HEADER_PATH_5)/Modules/PointCloud;$(HEADER_PATH_5)/Modules/PointCloudManager;$(HEADER_PATH_5)/Modules/QGDrawing;$(HEADER_PATH_5)/Modules/RS;$(HEADER_PATH_5)/Modules/RapidJSON;$(HEADER_PATH_5)/Modules/SecureCommunication;$(HEADER_PATH_5)/Modules/TWClientLib;$(HEADER_PATH_5)/Modules/TWRoot;$(HEADER_PATH_5)/Modules/TextEngine;$(HEADER_PATH_5)/Modules/TransparentWindowLib;$(HEADER_PATH_5)/Modules/UCLib;$(HEADER_PATH_5)/Modules/UDLib;$(HEADER_PATH_5)/Modules/UserInterfaceAPI;$(HEADER_PATH_5)/Modules/VBElemDialogs;$(HEADER_PATH_5)/Modules/VBUtils;$(HEADER_PATH_5)/Modules/VectorImage $(inherited)</AdditionalIncludeDirectories>
|
||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
||||
<ForcedIncludeFiles>
|
||||
</ForcedIncludeFiles>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<StringPooling>true</StringPooling>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<ForceConformanceInForLoopScope>
|
||||
</ForceConformanceInForLoopScope>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<TreatLinkerWarningAsErrors>false</TreatLinkerWarningAsErrors>
|
||||
<AdditionalDependencies>$(HEADER_PATH_5)\Lib\ACAP_STAT.lib;$(HEADER_PATH_5)\Modules\DGGraphix\Win\DGGraphixImp.LIB;$(HEADER_PATH_5)\Modules\DGLib\Win\DGImp.lib;$(HEADER_PATH_5)\Modules\Geometry\Win\GeometryImp.LIB;$(HEADER_PATH_5)\Modules\Graphix\Win\GraphixImp.LIB;$(HEADER_PATH_5)\Modules\GSModeler\Win\GSModelerImp.LIB;$(HEADER_PATH_5)\Modules\GSRoot\Win\GSRootImp.lib;$(HEADER_PATH_5)\Modules\GXImage\Win\GXImageImp.lib;$(HEADER_PATH_5)\Modules\GXImageBase\Win\GXImageBaseImp.lib;$(HEADER_PATH_5)\Modules\GX\Win\GXImp.LIB;$(HEADER_PATH_5)\Modules\InputOutput\Win\InputOutputImp.lib;$(HEADER_PATH_5)\Modules\RS\Win\RSImp.LIB;$(HEADER_PATH_5)\Modules\UCLib\Win\UCImp.lib;$(HEADER_PATH_5)\Modules\UDLib\Win\UDImp.lib;$(HEADER_PATH_5)\Modules\VBElemDialogs\Win\VBElemDialogsImp.LIB;$(HEADER_PATH_5)\Modules\VectorImage\Win\VectorImageImp.LIB;$(HEADER_PATH_5)\Modules\JavascriptEngine\Win\JavascriptEngineImp.LIB;$(HEADER_PATH_5)\Modules\JSON\Win\JSONImp.LIB;msvcrt.lib;msvcprt.lib;IPHLPAPI.lib;Wininet.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(HEADER_PATH_5)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreAllDefaultLibraries>
|
||||
</IgnoreAllDefaultLibraries>
|
||||
<IgnoreSpecificDefaultLibraries>msvcrtd.lib</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalOptions>/export:GetExportedFuncAddrs,%401 /export:SetImportedFuncAddrs,%402 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalDependencies>../zlib/x64/ZlibStatRelease/zlibstat.lib</AdditionalDependencies>
|
||||
</Lib>
|
||||
<PostBuildEvent>
|
||||
<Command>REM Archicad installbuild script
|
||||
|
||||
SET PROJECTDIR=$(ProjectDir)
|
||||
SET TARGETNAME=$(TargetName)
|
||||
SET TARGETDIR=$(TargetDir)
|
||||
SET BIMVERSION=$(BIM_VERSION)
|
||||
ECHO ON
|
||||
ECHO "Starting Install $(TargetName)"
|
||||
set CONFIGURATION=$(Configuration)
|
||||
set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\install.bat"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Creating VWR File</Message>
|
||||
</PostBuildEvent>
|
||||
<PreBuildEvent>
|
||||
<Command>set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\buildResAC.bat"</Command>
|
||||
</PreBuildEvent>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>$(HEADER_PATH_5)\Inc;$(HEADER_PATH_5)\Modules\DGLib;$(RES_OUTPUT);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC26|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>
|
||||
</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;ARCHICAD;WIN32;_WINDOWS;WINDOWS;AddOn_EXPORTS;ACExtension;_USRDLL;_WIN_EXTERNAL_;_WINDLL;_CRT_SECURE_NO_WARNINGS;_SILENCE_ALL_CXX20_DEPRECATION_WARNINGS;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>./;$(HEADER_PATH_1)/;$(HEADER_PATH_2)/;$(HEADER_PATH_3)/;$(HEADER_PATH_3)/$(BIM_PLATFORM)/;$(HEADER_PATH_4)/;$(HEADER_PATH_5)/;$(HEADER_PATH_5)/Inc;$(HEADER_PATH_5)/Modules/AnalyticalModelAPI;$(HEADER_PATH_5)/Modules/ArchicadAPI;$(HEADER_PATH_5)/Modules/Brep;$(HEADER_PATH_5)/Modules/BuiltInLibrary;$(HEADER_PATH_5)/Modules/CADInfrastructureBase;$(HEADER_PATH_5)/Modules/CommunicationClient;$(HEADER_PATH_5)/Modules/CommunicationCommon;$(HEADER_PATH_5)/Modules/DGGraphix;$(HEADER_PATH_5)/Modules/DGLib;$(HEADER_PATH_5)/Modules/DesignVariantAPI;$(HEADER_PATH_5)/Modules/GDL;$(HEADER_PATH_5)/Modules/GSMSections;$(HEADER_PATH_5)/Modules/GSModelDevLib;$(HEADER_PATH_5)/Modules/GSModeler;$(HEADER_PATH_5)/Modules/GSModeler2D;$(HEADER_PATH_5)/Modules/GSRoot;$(HEADER_PATH_5)/Modules/GSUtils;$(HEADER_PATH_5)/Modules/GSXML;$(HEADER_PATH_5)/Modules/GSXMLUtils;$(HEADER_PATH_5)/Modules/GX;$(HEADER_PATH_5)/Modules/GXImage;$(HEADER_PATH_5)/Modules/GXImageBase;$(HEADER_PATH_5)/Modules/GXMedia;$(HEADER_PATH_5)/Modules/Geometry;$(HEADER_PATH_5)/Modules/Graphix;$(HEADER_PATH_5)/Modules/HTTP;$(HEADER_PATH_5)/Modules/InputOutput;$(HEADER_PATH_5)/Modules/JSON;$(HEADER_PATH_5)/Modules/JSONConversion;$(HEADER_PATH_5)/Modules/JavascriptEngine;$(HEADER_PATH_5)/Modules/LibXL;$(HEADER_PATH_5)/Modules/MEPAPI;$(HEADER_PATH_5)/Modules/MPIInterfaceDevLib;$(HEADER_PATH_5)/Modules/MPIInterfaceImpDevLib;$(HEADER_PATH_5)/Modules/Model3D;$(HEADER_PATH_5)/Modules/Model3DViewerControl;$(HEADER_PATH_5)/Modules/Network;$(HEADER_PATH_5)/Modules/Pattern;$(HEADER_PATH_5)/Modules/PointCloud;$(HEADER_PATH_5)/Modules/PointCloudManager;$(HEADER_PATH_5)/Modules/QGDrawing;$(HEADER_PATH_5)/Modules/RS;$(HEADER_PATH_5)/Modules/RapidJSON;$(HEADER_PATH_5)/Modules/SecureCommunication;$(HEADER_PATH_5)/Modules/TWClientLib;$(HEADER_PATH_5)/Modules/TWRoot;$(HEADER_PATH_5)/Modules/TextEngine;$(HEADER_PATH_5)/Modules/TransparentWindowLib;$(HEADER_PATH_5)/Modules/UCLib;$(HEADER_PATH_5)/Modules/UDLib;$(HEADER_PATH_5)/Modules/UserInterfaceAPI;$(HEADER_PATH_5)/Modules/VBElemDialogs;$(HEADER_PATH_5)/Modules/VBUtils;$(HEADER_PATH_5)/Modules/VectorImage $(inherited)</AdditionalIncludeDirectories>
|
||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
||||
<ForcedIncludeFiles>
|
||||
</ForcedIncludeFiles>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<StringPooling>true</StringPooling>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<ForceConformanceInForLoopScope>
|
||||
</ForceConformanceInForLoopScope>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<TreatLinkerWarningAsErrors>false</TreatLinkerWarningAsErrors>
|
||||
<AdditionalDependencies>$(HEADER_PATH_5)\Lib\Win\ACAP_STAT.lib;$(HEADER_PATH_5)\Modules\DGGraphix\Win\DGGraphixImp.LIB;$(HEADER_PATH_5)\Modules\DGLib\Win\DGImp.lib;$(HEADER_PATH_5)\Modules\Geometry\Win\GeometryImp.LIB;$(HEADER_PATH_5)\Modules\Graphix\Win\GraphixImp.LIB;$(HEADER_PATH_5)\Modules\GSModeler\Win\GSModelerImp.LIB;$(HEADER_PATH_5)\Modules\GSRoot\Win\GSRootImp.lib;$(HEADER_PATH_5)\Modules\GXImage\Win\GXImageImp.lib;$(HEADER_PATH_5)\Modules\GXImageBase\Win\GXImageBaseImp.lib;$(HEADER_PATH_5)\Modules\GX\Win\GXImp.LIB;$(HEADER_PATH_5)\Modules\InputOutput\Win\InputOutputImp.lib;$(HEADER_PATH_5)\Modules\RS\Win\RSImp.LIB;$(HEADER_PATH_5)\Modules\TextEngine\Win\TextEngineImp.LIB;$(HEADER_PATH_5)\Modules\UCLib\Win\UCImp.lib;$(HEADER_PATH_5)\Modules\UDLib\Win\UDImp.lib;$(HEADER_PATH_5)\Modules\VBElemDialogs\Win\VBElemDialogsImp.LIB;$(HEADER_PATH_5)\Modules\VectorImage\Win\VectorImageImp.LIB;$(HEADER_PATH_5)\Modules\JSON\Win\JSONImp.LIB;msvcrt.lib;msvcprt.lib;IPHLPAPI.lib;Wininet.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(HEADER_PATH_5)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreAllDefaultLibraries>
|
||||
</IgnoreAllDefaultLibraries>
|
||||
<IgnoreSpecificDefaultLibraries>msvcrtd.lib</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalOptions>/export:GetExportedFuncAddrs,%401 /export:SetImportedFuncAddrs,%402 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalDependencies>../zlib/x64/ZlibStatRelease/zlibstat.lib</AdditionalDependencies>
|
||||
</Lib>
|
||||
<PostBuildEvent>
|
||||
<Command>REM Archicad installbuild script
|
||||
|
||||
SET PROJECTDIR=$(ProjectDir)
|
||||
SET TARGETNAME=$(TargetName)
|
||||
SET TARGETDIR=$(TargetDir)
|
||||
SET BIMVERSION=$(BIM_VERSION)
|
||||
ECHO ON
|
||||
ECHO "Starting Install $(TargetName)"
|
||||
set CONFIGURATION=$(Configuration)
|
||||
set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\install.bat"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Creating VWR File</Message>
|
||||
</PostBuildEvent>
|
||||
<PreBuildEvent>
|
||||
<Command>set PLATFORM_NAME=$(Platform)
|
||||
set SYMROOT=$(SolutionDir)
|
||||
"$(ProjectDir)..\SpeckleLib\Make.win\buildResAC.bat"</Command>
|
||||
</PreBuildEvent>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>$(HEADER_PATH_5)\Inc;$(HEADER_PATH_5)\Modules\DGLib;$(RES_OUTPUT);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC25|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>
|
||||
</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;ARCHICAD;WIN32;_WINDOWS;WINDOWS;AddOn_EXPORTS;ACExtension;_USRDLL;_WIN_EXTERNAL_;_WINDLL;_CRT_SECURE_NO_WARNINGS;_SILENCE_ALL_CXX20_DEPRECATION_WARNINGS;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>./;$(HEADER_PATH_1)/;$(HEADER_PATH_2)/;$(HEADER_PATH_3)/;$(HEADER_PATH_3)/$(BIM_PLATFORM)/;$(HEADER_PATH_4)/;$(HEADER_PATH_5)/;$(HEADER_PATH_5)/Inc;$(HEADER_PATH_5)/Modules/AnalyticalModelAPI;$(HEADER_PATH_5)/Modules/ArchicadAPI;$(HEADER_PATH_5)/Modules/Brep;$(HEADER_PATH_5)/Modules/BuiltInLibrary;$(HEADER_PATH_5)/Modules/CADInfrastructureBase;$(HEADER_PATH_5)/Modules/CommunicationClient;$(HEADER_PATH_5)/Modules/CommunicationCommon;$(HEADER_PATH_5)/Modules/DGGraphix;$(HEADER_PATH_5)/Modules/DGLib;$(HEADER_PATH_5)/Modules/DesignVariantAPI;$(HEADER_PATH_5)/Modules/GDL;$(HEADER_PATH_5)/Modules/GSMSections;$(HEADER_PATH_5)/Modules/GSModelDevLib;$(HEADER_PATH_5)/Modules/GSModeler;$(HEADER_PATH_5)/Modules/GSModeler2D;$(HEADER_PATH_5)/Modules/GSRoot;$(HEADER_PATH_5)/Modules/GSUtils;$(HEADER_PATH_5)/Modules/GSXML;$(HEADER_PATH_5)/Modules/GSXMLUtils;$(HEADER_PATH_5)/Modules/GX;$(HEADER_PATH_5)/Modules/GXImage;$(HEADER_PATH_5)/Modules/GXImageBase;$(HEADER_PATH_5)/Modules/GXMedia;$(HEADER_PATH_5)/Modules/Geometry;$(HEADER_PATH_5)/Modules/Graphix;$(HEADER_PATH_5)/Modules/HTTP;$(HEADER_PATH_5)/Modules/InputOutput;$(HEADER_PATH_5)/Modules/JSON;$(HEADER_PATH_5)/Modules/JSONConversion;$(HEADER_PATH_5)/Modules/JavascriptEngine;$(HEADER_PATH_5)/Modules/LibXL;$(HEADER_PATH_5)/Modules/MEPAPI;$(HEADER_PATH_5)/Modules/MPIInterfaceDevLib;$(HEADER_PATH_5)/Modules/MPIInterfaceImpDevLib;$(HEADER_PATH_5)/Modules/Model3D;$(HEADER_PATH_5)/Modules/Model3DViewerControl;$(HEADER_PATH_5)/Modules/Network;$(HEADER_PATH_5)/Modules/Pattern;$(HEADER_PATH_5)/Modules/PointCloud;$(HEADER_PATH_5)/Modules/PointCloudManager;$(HEADER_PATH_5)/Modules/QGDrawing;$(HEADER_PATH_5)/Modules/RS;$(HEADER_PATH_5)/Modules/RapidJSON;$(HEADER_PATH_5)/Modules/SecureCommunication;$(HEADER_PATH_5)/Modules/TWClientLib;$(HEADER_PATH_5)/Modules/TWRoot;$(HEADER_PATH_5)/Modules/TextEngine;$(HEADER_PATH_5)/Modules/TransparentWindowLib;$(HEADER_PATH_5)/Modules/UCLib;$(HEADER_PATH_5)/Modules/UDLib;$(HEADER_PATH_5)/Modules/UserInterfaceAPI;$(HEADER_PATH_5)/Modules/VBElemDialogs;$(HEADER_PATH_5)/Modules/VBUtils;$(HEADER_PATH_5)/Modules/VectorImage $(inherited)</AdditionalIncludeDirectories>
|
||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
||||
<ForcedIncludeFiles>
|
||||
</ForcedIncludeFiles>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<StringPooling>true</StringPooling>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<ForceConformanceInForLoopScope>
|
||||
</ForceConformanceInForLoopScope>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<TreatLinkerWarningAsErrors>false</TreatLinkerWarningAsErrors>
|
||||
<AdditionalDependencies>$(HEADER_PATH_5)\Lib\Win\ACAP_STAT.lib;$(HEADER_PATH_5)\Modules\DGGraphix\Win\DGGraphixImp.LIB;$(HEADER_PATH_5)\Modules\DGLib\Win\DGImp.lib;$(HEADER_PATH_5)\Modules\Geometry\Win\GeometryImp.LIB;$(HEADER_PATH_5)\Modules\Graphix\Win\GraphixImp.LIB;$(HEADER_PATH_5)\Modules\GSModeler\Win\GSModelerImp.LIB;$(HEADER_PATH_5)\Modules\GSRoot\Win\GSRootImp.lib;$(HEADER_PATH_5)\Modules\GXImage\Win\GXImageImp.lib;$(HEADER_PATH_5)\Modules\GXImageBase\Win\GXImageBaseImp.lib;$(HEADER_PATH_5)\Modules\GX\Win\GXImp.LIB;$(HEADER_PATH_5)\Modules\InputOutput\Win\InputOutputImp.lib;$(HEADER_PATH_5)\Modules\RS\Win\RSImp.LIB;$(HEADER_PATH_5)\Modules\TextEngine\Win\TextEngineImp.LIB;$(HEADER_PATH_5)\Modules\UCLib\Win\UCImp.lib;$(HEADER_PATH_5)\Modules\UDLib\Win\UDImp.lib;$(HEADER_PATH_5)\Modules\VBAttributes\Win\VBAttributesImp.LIB;$(HEADER_PATH_5)\Modules\VBElemDialogs\Win\VBElemDialogsImp.LIB;$(HEADER_PATH_5)\Modules\VectorImage\Win\VectorImageImp.LIB;$(HEADER_PATH_5)\Modules\ObjectDatabase\Win\ObjectDatabaseImp.LIB;$(HEADER_PATH_5)\Modules\JSON\Win\JSONImp.LIB;msvcrt.lib;msvcprt.lib;IPHLPAPI.lib;Wininet.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(HEADER_PATH_5)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreAllDefaultLibraries>
|
||||
</IgnoreAllDefaultLibraries>
|
||||
<IgnoreSpecificDefaultLibraries>msvcrtd.lib</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalOptions>/export:GetExportedFuncAddrs,%401 /export:SetImportedFuncAddrs,%402 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalDependencies>../zlib/x64/ZlibStatRelease/zlibstat.lib</AdditionalDependencies>
|
||||
</Lib>
|
||||
<PostBuildEvent>
|
||||
<Command>REM Archicad installbuild script
|
||||
|
||||
SET PROJECTDIR=$(ProjectDir)
|
||||
SET TARGETNAME=$(TargetName)
|
||||
SET TARGETDIR=$(TargetDir)
|
||||
|
||||
@@ -74,6 +74,12 @@
|
||||
<Filter Include="Connector\Environment">
|
||||
<UniqueIdentifier>{1d9a10c3-cac6-4b15-afb9-f117b99b3a24}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Connector\Interface\Browser\Bridge\Receive">
|
||||
<UniqueIdentifier>{896b7b9b-61d8-46e7-8432-cfbdab4918fb}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Connector\Tool">
|
||||
<UniqueIdentifier>{f9330e8f-8242-4605-b25c-b1ba24451825}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="RFIX.win\Connector.rc2">
|
||||
@@ -98,9 +104,6 @@
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Connector\Connector.cpp">
|
||||
<Filter>Connector</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Connector\Interface\ConnectorMenu.cpp">
|
||||
<Filter>Connector\Interface</Filter>
|
||||
</ClCompile>
|
||||
@@ -167,7 +170,6 @@
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Send\SendBridge.cpp">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Send</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Config\GetIsDevMode.cpp" />
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Send\Send.cpp">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Send</Filter>
|
||||
</ClCompile>
|
||||
@@ -258,6 +260,21 @@
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Base\HighlightObjects.cpp">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Base</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Config\GetIsDevMode.cpp">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Config</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Receive\Receive.cpp">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Receive</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Connector\Interface\Browser\Bridge\Receive\ReceiveBridge.cpp">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Receive</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Connector\Tool\ElementHighlighter.cpp">
|
||||
<Filter>Connector\Tool</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Connector\Connector.cpp">
|
||||
<Filter>Connector</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Connector\ConnectorResource.h">
|
||||
@@ -338,7 +355,6 @@
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Send\SendBridge.h">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Send</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Config\GetIsDevMode.h" />
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Send\Send.h">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Send</Filter>
|
||||
</ClInclude>
|
||||
@@ -441,5 +457,17 @@
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Base\HighlightObjects.h">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Config\GetIsDevMode.h">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Config</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Receive\Receive.h">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Receive</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Connector\Interface\Browser\Bridge\Receive\ReceiveBridge.h">
|
||||
<Filter>Connector\Interface\Browser\Bridge\Receive</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Connector\Tool\ElementHighlighter.h">
|
||||
<Filter>Connector\Tool</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -15,6 +15,21 @@
|
||||
<LocalDebuggerAttach>false</LocalDebuggerAttach>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC28|x64'">
|
||||
<LocalDebuggerCommand>C:\Program Files\Graphisoft\Archicad 28\Archicad.exe</LocalDebuggerCommand>
|
||||
<LocalDebuggerAttach>false</LocalDebuggerAttach>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC26|x64'">
|
||||
<LocalDebuggerCommand>C:\Program Files\Graphisoft\Archicad 26\Archicad.exe</LocalDebuggerCommand>
|
||||
<LocalDebuggerAttach>false</LocalDebuggerAttach>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugAC25|x64'">
|
||||
<LocalDebuggerCommand>C:\Program Files\Graphisoft\ARCHICAD 25\Archicad.exe</LocalDebuggerCommand>
|
||||
<LocalDebuggerAttach>false</LocalDebuggerAttach>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVW2024|x64'">
|
||||
<LocalDebuggerCommand>C:\Program Files\Vectorworks 2024\Vectorworks2024.exe</LocalDebuggerCommand>
|
||||
<LocalDebuggerAttach>false</LocalDebuggerAttach>
|
||||
@@ -30,4 +45,19 @@
|
||||
<LocalDebuggerAttach>false</LocalDebuggerAttach>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC28|x64'">
|
||||
<LocalDebuggerCommand>C:\Program Files\Graphisoft\Archicad 28\Archicad.exe</LocalDebuggerCommand>
|
||||
<LocalDebuggerAttach>false</LocalDebuggerAttach>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC26|x64'">
|
||||
<LocalDebuggerCommand>C:\Program Files\Graphisoft\Archicad 26\Archicad.exe</LocalDebuggerCommand>
|
||||
<LocalDebuggerAttach>false</LocalDebuggerAttach>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseAC25|x64'">
|
||||
<LocalDebuggerCommand>C:\Program Files\Graphisoft\ARCHICAD 25\Archicad.exe</LocalDebuggerCommand>
|
||||
<LocalDebuggerAttach>false</LocalDebuggerAttach>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
File diff suppressed because it is too large
Load Diff
+71
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1610"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES"
|
||||
buildArchitectures = "Automatic">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21BD79802CE23E4D00526AD1"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC25-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
shouldAutocreateTestPlan = "YES">
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
FilePath = "/Applications/Graphisoft/ARCHICAD 25/ARCHICAD 25.app">
|
||||
</PathRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21BD79802CE23E4D00526AD1"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC25-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1610"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES"
|
||||
buildArchitectures = "Automatic">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21BD79802CE23E4D00526AD1"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC25-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
shouldAutocreateTestPlan = "YES">
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
FilePath = "/Applications/Graphisoft/ARCHICAD 25/ARCHICAD 25.app">
|
||||
</PathRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21BD79802CE23E4D00526AD1"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC25-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Release">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1610"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES"
|
||||
buildArchitectures = "Automatic">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21CE8A922CE4F3370076522F"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC26-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
shouldAutocreateTestPlan = "YES">
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
BundleIdentifier = "com.graphisoft.archicad26"
|
||||
FilePath = "/Applications/Graphisoft/Archicad 26/Archicad 26.app">
|
||||
</PathRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21CE8A922CE4F3370076522F"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC26-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1610"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES"
|
||||
buildArchitectures = "Automatic">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21CE8A922CE4F3370076522F"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC26-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
shouldAutocreateTestPlan = "YES">
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
FilePath = "/Applications/Graphisoft/Archicad 26/Archicad 26.app">
|
||||
</PathRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21CE8A922CE4F3370076522F"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC26-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Release">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1530"
|
||||
LastUpgradeVersion = "1610"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1530"
|
||||
LastUpgradeVersion = "1610"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
||||
+5
-1
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1530"
|
||||
LastUpgradeVersion = "1610"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
@@ -39,6 +39,10 @@
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
FilePath = "/Applications/Graphisoft/Archicad 27/Archicad 27.app">
|
||||
</PathRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1530"
|
||||
LastUpgradeVersion = "1610"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1610"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES"
|
||||
buildArchitectures = "Automatic">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21CE8DD22CE5137C0076522F"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC28-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
shouldAutocreateTestPlan = "YES">
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
FilePath = "/Applications/Graphisoft/Archicad 28/Archicad 28.app">
|
||||
</PathRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21CE8DD22CE5137C0076522F"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC28-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1610"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES"
|
||||
buildArchitectures = "Automatic">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21CE8DD22CE5137C0076522F"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC28-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
shouldAutocreateTestPlan = "YES">
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
FilePath = "/Applications/Graphisoft/Archicad 28/Archicad 28.app">
|
||||
</PathRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "21CE8DD22CE5137C0076522F"
|
||||
BuildableName = "Speckle Connector.bundle"
|
||||
BlueprintName = "Connector-AC28-EN-GB"
|
||||
ReferencedContainer = "container:Connector.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Release">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@@ -4,10 +4,21 @@
|
||||
#include "Connector/Environment/ConnectorProject.h"
|
||||
#include "Connector/Interface/ConnectorMenu.h"
|
||||
#include "Connector/Interface/ConnectorPalette.h"
|
||||
#include "Connector/Tool/ElementHighlighter.h"
|
||||
#include "Speckle/Database/AccountDatabase.h"
|
||||
#include "Speckle/Environment/Addon.h"
|
||||
#include "Speckle/Utility/String.h"
|
||||
|
||||
#include <mutex>
|
||||
|
||||
#ifdef WINDOWS
|
||||
//NB: VS is ignoring template specialisations unless they are explicitly used in the top-level project
|
||||
#include "Active/Setting/Values/GuidValue.h"
|
||||
#include "Active/Setting/Values/TimeValue.h"
|
||||
#include "Active/Setting/Values/StringValue.h"
|
||||
using namespace active::setting;
|
||||
#endif
|
||||
|
||||
using namespace active::file;
|
||||
using namespace active::environment;
|
||||
using namespace connector;
|
||||
@@ -23,12 +34,24 @@ namespace {
|
||||
//The account database name
|
||||
const char* accountDBaseName = "Accounts.db";
|
||||
|
||||
///The Connector addon class
|
||||
|
||||
/*!
|
||||
Class for a concrete instance of an add-on
|
||||
|
||||
This class is private to prevent ad-hoc construction of instances while fulfilling the requirements of the public interface. Essentially
|
||||
this should behave as a singleton, representing the sole instance of the running add-on
|
||||
*/
|
||||
class ConnectorInstance : public ConnectorAddon {
|
||||
public:
|
||||
/*!
|
||||
Constructor
|
||||
@param name The connector add-on name
|
||||
*/
|
||||
ConnectorInstance(const String& name) : ConnectorAddon{name} {
|
||||
//Define the connector UI components
|
||||
add<ConnectorMenu>();
|
||||
add<ConnectorPalette>();
|
||||
add<ElementHighlighter>();
|
||||
}
|
||||
|
||||
// MARK: Functions (const)
|
||||
@@ -49,9 +72,13 @@ namespace {
|
||||
}
|
||||
|
||||
private:
|
||||
///The accounts database - always a single instance for the active user
|
||||
mutable std::unique_ptr<AccountDatabase> m_account;
|
||||
///Mutex to control access to the accounts database
|
||||
mutable std::mutex m_accountMutex;
|
||||
};
|
||||
|
||||
|
||||
///The active addon instance
|
||||
std::unique_ptr<ConnectorAddon> m_addonInstance;
|
||||
|
||||
@@ -67,6 +94,18 @@ namespace {
|
||||
return std::nullopt;
|
||||
return Directory{*appData, speckleDataDirName, true};
|
||||
} //getAppDataDirectory
|
||||
|
||||
#ifdef WINDOWS
|
||||
//NB: VS is ignoring template specialisations unless they are explicitly used in the top-level project
|
||||
void invokeSpecialisation() {
|
||||
StringValue stringValue;
|
||||
active::utility::String unusedString = stringValue;
|
||||
GuidValue guidValue;
|
||||
active::utility::Guid unusedGuid = guidValue;
|
||||
TimeValue timeValue;
|
||||
active::utility::Time unusedTime = timeValue;
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
@@ -76,6 +115,9 @@ namespace {
|
||||
name: The add-on name
|
||||
--------------------------------------------------------------------*/
|
||||
ConnectorAddon::ConnectorAddon(const speckle::utility::String& name) : Addon{name} {
|
||||
#ifdef WINDOWS
|
||||
invokeSpecialisation();
|
||||
#endif
|
||||
} //ConnectorAddon::ConnectorAddon
|
||||
|
||||
|
||||
@@ -85,6 +127,7 @@ ConnectorAddon::ConnectorAddon(const speckle::utility::String& name) : Addon{nam
|
||||
return: The account database
|
||||
--------------------------------------------------------------------*/
|
||||
const AccountDatabase* ConnectorInstance::getAccountDatabase() const {
|
||||
const std::lock_guard<std::mutex> lock{m_accountMutex};
|
||||
if (!m_account) {
|
||||
auto speckleDirectory = getAppDataDirectory();
|
||||
if (!speckleDirectory)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#include "Speckle/Environment/Addon.h"
|
||||
#include "Speckle/Utility/String.h"
|
||||
|
||||
namespace speckle::database {
|
||||
class AccountDatabase;
|
||||
|
||||
@@ -29,6 +29,7 @@ enum TitleString {
|
||||
addonNameID = 1,
|
||||
addonDescriptionID,
|
||||
noStoreyID,
|
||||
showLayersID,
|
||||
};
|
||||
|
||||
|
||||
@@ -44,6 +45,7 @@ enum GeneralString {
|
||||
|
||||
//Notification strings (advice displayed in alerts)
|
||||
enum NotifyString {
|
||||
showHiddenLayersID = 1,
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ Vector<ModelCard> ModelCardDatabase::getCards() const {
|
||||
|
||||
card: The card to write
|
||||
--------------------------------------------------------------------*/
|
||||
void ModelCardDatabase::write(const ModelCard& card) const {
|
||||
void ModelCardDatabase::write(ModelCard& card) const {
|
||||
m_store->write(card);
|
||||
} //ModelCardDatabase::write
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace connector::database {
|
||||
Write a card to storage
|
||||
@param card The card to write
|
||||
*/
|
||||
void write(const record::ModelCard& card) const;
|
||||
void write(record::ModelCard& card) const;
|
||||
/*!
|
||||
Erase a card
|
||||
@param cardID The ID of the card to erase
|
||||
|
||||
@@ -3,6 +3,20 @@
|
||||
|
||||
#include "Active/Utility/NameID.h"
|
||||
|
||||
// MARK: - Event identities
|
||||
|
||||
//Identifier for event signalling the connector palette visibility should be toggled
|
||||
inline const active::utility::NameID toggleConnectorPaletteID{"toggleConnectorPalette"};
|
||||
//Identifier for event signalling the connector palette has changed (state carried with event)
|
||||
inline const active::utility::NameID reflectPaletteVisibilityID{"setConnectorMenuCheck"};
|
||||
//Identifier for event signalling the that an attached list of elements should be highlighted
|
||||
inline const active::utility::NameID setElementHighlight{"setElementHighlight"};
|
||||
|
||||
// MARK: - Event setting identities
|
||||
|
||||
//Identifier for setting carrying a menu state
|
||||
inline const active::utility::NameID paletteVisibilityStateID{"menuCheckState"};
|
||||
//Identifier for setting carrying a list of element links
|
||||
inline const active::utility::NameID recordLinks{"recordLinks"};
|
||||
|
||||
#endif //CONNECTOR_EVENT_ID
|
||||
|
||||
@@ -29,6 +29,8 @@ void AddModel::run(const ModelCard& card) const {
|
||||
auto connectorProject = dynamic_cast<ConnectorProject*>(project.get());
|
||||
if (!connectorProject)
|
||||
return;
|
||||
if (auto modelCardDBase = connectorProject->getModelCardDatabase(); modelCardDBase != nullptr)
|
||||
modelCardDBase->write(card);
|
||||
if (auto modelCardDBase = connectorProject->getModelCardDatabase(); modelCardDBase != nullptr) {
|
||||
auto newCard = clone(card);
|
||||
modelCardDBase->write(*newCard);
|
||||
}
|
||||
} //AddModel::run
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
#include "Active/Setting/ValueSetting.h"
|
||||
#include "Active/Setting/Values/GuidValue.h"
|
||||
#include "Active/Event/Event.h"
|
||||
#include "Connector/Interface/Browser/Bridge/Base/HighlightModel.h"
|
||||
#include "Connector/Connector.h"
|
||||
#include "Connector/ConnectorResource.h"
|
||||
#include "Connector/Environment/ConnectorProject.h"
|
||||
#include "Connector/Event/ConnectorEventID.h"
|
||||
#include "Connector/Database/ModelCardDatabase.h"
|
||||
#include "Connector/Interface/Browser/Bridge/Send/Arg/SendError.h"
|
||||
#include "Connector/Record/Model/SenderModelCard.h"
|
||||
@@ -9,12 +13,16 @@
|
||||
#include "Speckle/Interface/Browser/Bridge/BrowserBridge.h"
|
||||
#include "Speckle/Record/Element/Element.h"
|
||||
#include "Speckle/Database/BIMElementDatabase.h"
|
||||
#include "Speckle/Environment/Host.h"
|
||||
#include "Speckle/Environment/Project.h"
|
||||
|
||||
using namespace speckle::record::element;
|
||||
using namespace active::event;
|
||||
using namespace active::setting;
|
||||
using namespace connector::environment;
|
||||
using namespace connector::interfac::browser::bridge;
|
||||
using namespace connector::record;
|
||||
using namespace speckle::environment;
|
||||
using namespace speckle::record::element;
|
||||
using namespace speckle::utility;
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
@@ -44,12 +52,9 @@ void HighlightModel::run(const String& modelCardID) const {
|
||||
return;
|
||||
}
|
||||
if (auto senderCard = dynamic_cast<SenderModelCard*>(modelCard.get())) {
|
||||
auto modelCardSelection = senderCard->getFilter().getElementIDs();
|
||||
auto project = connector()->getActiveProject().lock();
|
||||
if (!project)
|
||||
return; // TODO: is this OK? should this throw?
|
||||
auto elementDatabase = project->getElementDatabase();
|
||||
elementDatabase->clearSelection();
|
||||
elementDatabase->setSelection(modelCardSelection);
|
||||
ValueSetting elementIDs{recordLinks};
|
||||
for (const auto& elementID : senderCard->getFilter().getElementIDs())
|
||||
elementIDs.emplace_back(GuidValue{elementID});
|
||||
connector()->publish(Event{setElementHighlight, { elementIDs }});
|
||||
}
|
||||
} //HighlightModel::run
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
#include "Connector/Interface/Browser/Bridge/Base/HighlightObjects.h"
|
||||
|
||||
#include "Active/Setting/ValueSetting.h"
|
||||
#include "Active/Event/Event.h"
|
||||
#include "Connector/Connector.h"
|
||||
#include "Connector/Environment/ConnectorProject.h"
|
||||
#include "Speckle/Database/BIMElementDatabase.h"
|
||||
#include "Speckle/Environment/Project.h"
|
||||
#include "Connector/Event/ConnectorEventID.h"
|
||||
|
||||
using namespace connector::environment;
|
||||
using namespace active::event;
|
||||
using namespace active::setting;
|
||||
using namespace connector;
|
||||
using namespace connector::interfac::browser::bridge;
|
||||
using namespace speckle::database;
|
||||
using namespace speckle::environment;
|
||||
using namespace speckle::utility;
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
@@ -24,17 +27,5 @@ HighlightObjects::HighlightObjects() : BridgeMethod{"HighlightObjects", [&](cons
|
||||
objectIDs: List of object IDs to be highlighted
|
||||
--------------------------------------------------------------------*/
|
||||
void HighlightObjects::run(const StringList& objectIDs) const {
|
||||
BIMLinkList objectSelection;
|
||||
for (const auto& text : objectIDs)
|
||||
if (Guid guid{text}; !guid.empty())
|
||||
objectSelection.emplace_back(guid);
|
||||
if (objectSelection.empty())
|
||||
return;
|
||||
auto project = connector()->getActiveProject().lock();
|
||||
auto connectorProject = dynamic_cast<ConnectorProject*>(project.get());
|
||||
if (!connectorProject)
|
||||
return;
|
||||
auto elementDatabase = project->getElementDatabase();
|
||||
elementDatabase->clearSelection();
|
||||
elementDatabase->setSelection(objectSelection);
|
||||
connector()->publish(Event{setElementHighlight, { ValueSetting{objectIDs, recordLinks} }});
|
||||
} //HighlightObjects::run
|
||||
|
||||
@@ -36,6 +36,8 @@ void UpdateModel::run(const ModelCard& card) const {
|
||||
auto connectorProject = dynamic_cast<ConnectorProject*>(project.get());
|
||||
if (!connectorProject)
|
||||
return;
|
||||
if (auto modelCardDBase = connectorProject->getModelCardDatabase(); modelCardDBase != nullptr)
|
||||
modelCardDBase->write(card);
|
||||
if (auto modelCardDBase = connectorProject->getModelCardDatabase(); modelCardDBase != nullptr) {
|
||||
auto newCard = clone(card);
|
||||
modelCardDBase->write(*newCard);
|
||||
}
|
||||
} //UpdateModel::run
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
#include "Connector/Interface/Browser/Bridge/Receive/Receive.h"
|
||||
|
||||
#include "Active/Serialise/CargoHold.h"
|
||||
#include "Active/Serialise/Package/Wrapper/PackageWrap.h"
|
||||
#include "Connector/Connector.h"
|
||||
#include "Connector/ConnectorResource.h"
|
||||
#include "Connector/Database/ModelCardDatabase.h"
|
||||
#include "Connector/Environment/ConnectorProject.h"
|
||||
#include "Connector/Record/Collection/ProjectCollection.h"
|
||||
#include "Connector/Record/Model/ReceiverModelCard.h"
|
||||
#include "Speckle/Database/AccountDatabase.h"
|
||||
#include "Speckle/Database/BIMElementDatabase.h"
|
||||
#include "Speckle/Database/Content/BIMRecord.h"
|
||||
#include "Speckle/Environment/Project.h"
|
||||
#include "Speckle/Environment/Host.h"
|
||||
#include "Speckle/Interface/Browser/Bridge/BrowserBridge.h"
|
||||
#include "Speckle/Record/Credentials/Account.h"
|
||||
#include "Speckle/Record/Element/Element.h"
|
||||
#include "Speckle/Serialise/Detached/Storage/DetachedMemoryStore.h"
|
||||
#include "Speckle/Utility/Exception.h"
|
||||
|
||||
using namespace active::serialise;
|
||||
using namespace connector::environment;
|
||||
using namespace connector::interfac::browser::bridge;
|
||||
using namespace connector::record;
|
||||
using namespace speckle::database;
|
||||
using namespace speckle::environment;
|
||||
using namespace speckle::record::element;
|
||||
using namespace speckle::serialise;
|
||||
using namespace speckle::utility;
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Default constructor
|
||||
--------------------------------------------------------------------*/
|
||||
Receive::Receive() : BridgeMethod{"Receive", [&](const ReceiveArgs& args) {
|
||||
run(args);
|
||||
}} {}
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Receive a specified model
|
||||
|
||||
modelCardID: The ID of the model card identifying the objects to receive
|
||||
--------------------------------------------------------------------*/
|
||||
void Receive::run(const String& modelCardID) const {
|
||||
} //Receive::run
|
||||
@@ -0,0 +1,39 @@
|
||||
#ifndef CONNECTOR_INTERFACE_BRIDGE_RECEIVE
|
||||
#define CONNECTOR_INTERFACE_BRIDGE_RECEIVE
|
||||
|
||||
#include "Active/Serialise/CargoHold.h"
|
||||
#include "Active/Serialise/Item/Wrapper/ValueWrap.h"
|
||||
#include "Speckle/Interface/Browser/Bridge/BridgeMethod.h"
|
||||
|
||||
namespace connector::interfac::browser::bridge {
|
||||
|
||||
///Argument parameter for a string
|
||||
using StringHold = active::serialise::CargoHold<active::serialise::ValueWrap<speckle::utility::String>, speckle::utility::String>;
|
||||
///Argument type for this method
|
||||
using ReceiveArgs = speckle::interfac::browser::bridge::JSArgType<StringHold>;
|
||||
|
||||
/*!
|
||||
JS Function class to receive a specified model
|
||||
*/
|
||||
class Receive : public speckle::interfac::browser::bridge::BridgeMethod<ReceiveArgs, void> {
|
||||
public:
|
||||
|
||||
// MARK: - Constructors
|
||||
|
||||
/*!
|
||||
Constructor
|
||||
*/
|
||||
Receive();
|
||||
|
||||
// MARK: - Functions (const)
|
||||
|
||||
/*!
|
||||
Receive a specified model
|
||||
@param modelCardID The ID of the model card identifying the objects to receive
|
||||
*/
|
||||
void run(const speckle::utility::String& modelCardID) const;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif //CONNECTOR_INTERFACE_BRIDGE_RECEIVE
|
||||
@@ -0,0 +1,30 @@
|
||||
#include "Connector/Interface/Browser/Bridge/Receive/ReceiveBridge.h"
|
||||
#include "Connector/Interface/Browser/Bridge/Receive/Receive.h"
|
||||
#include "Connector/Connector.h"
|
||||
#include "Connector/ConnectorResource.h"
|
||||
#include "Connector/Database/ModelCardDatabase.h"
|
||||
#include "Connector/Environment/ConnectorProject.h"
|
||||
#include "Speckle/Event/Type/ElementEvent.h"
|
||||
#include "Speckle/Record/Element/Element.h"
|
||||
#include "Speckle/Database/BIMElementDatabase.h"
|
||||
#include "Speckle/Environment/Project.h"
|
||||
#include "Speckle/Database/Identity/RecordID.h"
|
||||
#include "Active/Serialise/CargoHold.h"
|
||||
#include "Active/Serialise/Package/Wrapper/ContainerWrap.h"
|
||||
#include "Connector/Record/Model/ReceiverModelCard.h"
|
||||
|
||||
using namespace speckle::database;
|
||||
using namespace connector::environment;
|
||||
using namespace connector::interfac::browser::bridge;
|
||||
using namespace speckle::utility;
|
||||
using namespace speckle::event;
|
||||
using namespace active::serialise;
|
||||
using namespace connector::record;
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Default constructor
|
||||
--------------------------------------------------------------------*/
|
||||
ReceiveBridge::ReceiveBridge() : BrowserBridge{"receiveBinding"} {
|
||||
//Add bridge methods
|
||||
addMethod<Receive>();
|
||||
} //ReceiveBridge::ReceiveBridge
|
||||
@@ -0,0 +1,29 @@
|
||||
#ifndef CONNECTOR_INTERFACE_BRIDGE_RECEIVE_BRIDGE
|
||||
#define CONNECTOR_INTERFACE_BRIDGE_RECEIVE_BRIDGE
|
||||
|
||||
#include "Speckle/Interface/Browser/Bridge/BrowserBridge.h"
|
||||
|
||||
namespace connector::interfac::browser::bridge {
|
||||
|
||||
/*!
|
||||
A browser bridge to support receiving model data from a Speckle server
|
||||
*/
|
||||
class ReceiveBridge : public speckle::interfac::browser::bridge::BrowserBridge {
|
||||
public:
|
||||
|
||||
// MARK: - Types
|
||||
|
||||
using base = speckle::interfac::browser::bridge::BrowserBridge;
|
||||
|
||||
// MARK: - Constructors
|
||||
|
||||
using base::base;
|
||||
/*!
|
||||
Default constructor
|
||||
*/
|
||||
ReceiveBridge();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif //CONNECTOR_INTERFACE_BRIDGE_RECEIVE_BRIDGE
|
||||
@@ -24,7 +24,7 @@ SelectionBridge::SelectionBridge() : BrowserBridge{"selectionBinding"} {
|
||||
--------------------------------------------------------------------*/
|
||||
bool SelectionBridge::handle(const speckle::event::SelectionEvent& event) {
|
||||
auto selectionInfo = std::make_unique<SelectionInfo>();
|
||||
auto wrapped = std::make_unique<CargoHold<PackageWrap, SelectionInfo>>(std::move(selectionInfo));
|
||||
auto wrapped = std::make_unique<CargoHold<PackageWrap, SelectionInfo>>(std::move(selectionInfo));
|
||||
sendEvent("setSelection", std::move(wrapped));
|
||||
return true;
|
||||
} //SelectionBridge::handle
|
||||
|
||||
@@ -76,10 +76,9 @@ void Send::run(const String& modelCardID) const {
|
||||
}
|
||||
//Get the selected elements from the modelcard
|
||||
auto elementDatabase = project->getElementDatabase();
|
||||
ElementIDList selected{};
|
||||
if (auto senderCard = dynamic_cast<SenderModelCard*>(modelCard.get())) {
|
||||
BIMRecordIDList selected{};
|
||||
if (auto senderCard = dynamic_cast<SenderModelCard*>(modelCard.get()))
|
||||
selected = senderCard->getFilter().getElementIDs();
|
||||
}
|
||||
//Build a collection from the selected elements
|
||||
auto collection = std::make_unique<ProjectCollection>(project, modelCard->getID());
|
||||
for (const auto& link : selected) {
|
||||
|
||||
@@ -59,10 +59,9 @@ bool SendBridge::handle(const ElementEvent& event) {
|
||||
// POC: this is probably not efficient, should test, review and refactor it
|
||||
RecordIDList expiredModelCardIds;
|
||||
for (const auto& modelCard : modelCards) {
|
||||
if (auto senderCard = dynamic_cast<SenderModelCard*>(modelCard.get())) {
|
||||
auto modelCardSelection = senderCard->getFilter().getElementIDs();
|
||||
for (const auto& elemId : modelCardSelection) {
|
||||
if (std::find(m_changedElements.begin(), m_changedElements.end(), elemId) != m_changedElements.end()) {
|
||||
if (auto senderCard = dynamic_cast<SenderModelCard*>(modelCard.get()); senderCard) {
|
||||
for (const auto& recordID : m_changedElements) {
|
||||
if (senderCard->contains(recordID)) {
|
||||
expiredModelCardIds.push_back(modelCard->getID());
|
||||
break;
|
||||
}
|
||||
@@ -76,8 +75,8 @@ bool SendBridge::handle(const ElementEvent& event) {
|
||||
break;
|
||||
}
|
||||
case changeElem: case editElem: case deleteElem: {
|
||||
if (event.getElmentID())
|
||||
m_changedElements.push_back(*event.getElmentID());
|
||||
if (event.getElementID())
|
||||
m_changedElements.insert(*event.getElementID());
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
||||
@@ -31,6 +31,10 @@ namespace connector::interfac::browser::bridge {
|
||||
@return True if the event should be closed
|
||||
*/
|
||||
bool handle(const speckle::event::ElementEvent& event) override;
|
||||
|
||||
private:
|
||||
///List of changed element IDs
|
||||
speckle::database::BIMRecordIDList m_changedElements;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -11,6 +11,12 @@ using namespace active::event;
|
||||
using namespace connector;
|
||||
using namespace speckle::event;
|
||||
|
||||
namespace {
|
||||
|
||||
auto connectorMenuItem = 1;
|
||||
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Default constructor
|
||||
--------------------------------------------------------------------*/
|
||||
@@ -22,6 +28,35 @@ ConnectorMenu::ConnectorMenu()
|
||||
} //ConnectorMenu::ConnectorMenu
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Get the event subscription list
|
||||
|
||||
return: The subscription list (an empty list will put the subscriber into a suspended state)
|
||||
--------------------------------------------------------------------*/
|
||||
Subscriber::Subscription ConnectorMenu::subscription() const {
|
||||
auto result = MenuSubscriber::subscription();
|
||||
result.insert(reflectPaletteVisibilityID);
|
||||
return result;
|
||||
} //ConnectorMenu::subscription
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Receive a subscribed event
|
||||
|
||||
event: The incoming event
|
||||
|
||||
return: True if the event should be closed
|
||||
--------------------------------------------------------------------*/
|
||||
bool ConnectorMenu::receive(const active::event::Event& event) {
|
||||
if (event != reflectPaletteVisibilityID)
|
||||
return MenuSubscriber::receive(event);
|
||||
//Set the menu checked state based on the palette visibility from the event
|
||||
if (auto menuState = event.findValue(paletteVisibilityStateID); menuState != nullptr)
|
||||
setMenuChecked(connectorMenuItem, menuState->boolVal());
|
||||
return false;
|
||||
} //ConnectorMenu::receive
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Handle the menu selection
|
||||
|
||||
|
||||
@@ -11,6 +11,21 @@ namespace connector {
|
||||
Default constructor
|
||||
*/
|
||||
ConnectorMenu();
|
||||
|
||||
/*!
|
||||
Get the event subscription list
|
||||
@return The subscription list (an empty list will put the subscriber into a suspended state)
|
||||
*/
|
||||
Subscription subscription() const override;
|
||||
|
||||
// MARK: - Functions (mutating)
|
||||
|
||||
/*!
|
||||
Receive a subscribed event
|
||||
@param event The incoming event
|
||||
@return True if the event should be closed
|
||||
*/
|
||||
bool receive(const active::event::Event& event) override;
|
||||
|
||||
protected:
|
||||
/*!
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
#include "Connector/Interface/ConnectorPalette.h"
|
||||
|
||||
#include "Active/Event/Event.h"
|
||||
#include "Active/Utility/String.h"
|
||||
#include "Active/Setting/ValueSetting.h"
|
||||
#include "Active/Serialise/JSON/JSONTransport.h"
|
||||
#include "Active/Utility/BufferOut.h"
|
||||
#include "Active/Utility/String.h"
|
||||
#include "Connector/Connector.h"
|
||||
#include "Connector/ConnectorResource.h"
|
||||
#include "Connector/Event/ConnectorEventID.h"
|
||||
#include "Connector/Interface/Browser/Bridge/Account/AccountBridge.h"
|
||||
#include "Connector/Interface/Browser/Bridge/Base/BaseBridge.h"
|
||||
#include "Connector/Interface/Browser/Bridge/Config/ConfigBridge.h"
|
||||
#include "Connector/Interface/Browser/Bridge/Receive/ReceiveBridge.h"
|
||||
#include "Connector/Interface/Browser/Bridge/Send/SendBridge.h"
|
||||
#include "Connector/Interface/Browser/Bridge/Selection/SelectionBridge.h"
|
||||
#include "Connector/Interface/Browser/Bridge/Test/TestBridge.h"
|
||||
#include "Speckle/Environment/Addon.h"
|
||||
#include "Speckle/Event/Type/MenuEvent.h"
|
||||
#include "Speckle/Interface/Browser/JSPortal.h"
|
||||
|
||||
#include "Speckle/Event/Type/ProjectEvent.h"
|
||||
#include "Speckle/Interface/Browser/JSPortal.h"
|
||||
|
||||
#include <ACAPinc.h>
|
||||
#include <DGModule.hpp>
|
||||
@@ -25,6 +26,7 @@
|
||||
|
||||
using namespace active::environment;
|
||||
using namespace active::event;
|
||||
using namespace active::setting;
|
||||
using namespace connector;
|
||||
using namespace speckle::interfac::browser;
|
||||
using namespace connector::interfac::browser::bridge;
|
||||
@@ -75,7 +77,7 @@ namespace {
|
||||
std::shared_ptr<DG::Browser> browser;
|
||||
|
||||
void InitBrowserControl();
|
||||
void SetMenuItemCheckedState(bool);
|
||||
void publshVisibilityChange(bool);
|
||||
|
||||
virtual void PanelResized(const DG::PanelResizeEvent& ev) override;
|
||||
virtual void PanelCloseRequested(const DG::PanelCloseRequestEvent& ev, bool* accepted) override;
|
||||
@@ -134,20 +136,19 @@ bool ConnectorPalette::start() {
|
||||
return: True if the event should be closed
|
||||
--------------------------------------------------------------------*/
|
||||
bool ConnectorPalette::receive(const active::event::Event& event) {
|
||||
if (event == toggleConnectorPaletteID) {
|
||||
if (BrowserPalette::HasInstance() && BrowserPalette::GetInstance().IsVisible()) {
|
||||
BrowserPalette::GetInstance().Hide();
|
||||
}
|
||||
else {
|
||||
if (!BrowserPalette::HasInstance())
|
||||
BrowserPalette::CreateInstance();
|
||||
BrowserPalette::GetInstance().Show();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return ProjectSubscriber::receive(event);
|
||||
|
||||
if (event == toggleConnectorPaletteID) {
|
||||
if (BrowserPalette::HasInstance() && BrowserPalette::GetInstance().IsVisible()) {
|
||||
BrowserPalette::GetInstance().Hide();
|
||||
}
|
||||
else {
|
||||
if (!BrowserPalette::HasInstance())
|
||||
BrowserPalette::CreateInstance();
|
||||
BrowserPalette::GetInstance().Show();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return ProjectSubscriber::receive(event);
|
||||
} //ConnectorPalette::receive
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
@@ -198,34 +199,34 @@ static GSErrCode __ACENV_CALL NotificationHandler(API_NotifyEventID notifID, Int
|
||||
BrowserPalette::BrowserPalette() :
|
||||
DG::Palette(ACAPI_GetOwnResModule(), BrowserPaletteResId, ACAPI_GetOwnResModule(), paletteGuid) {
|
||||
browser = std::make_shared<DG::Browser>(GetReference(), BrowserId);
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_ProjectOperation_CatchProjectEvent(APINotify_Quit, NotificationHandler);
|
||||
#else
|
||||
ACAPI_Notify_CatchProjectEvent(APINotify_Quit, NotificationHandler);
|
||||
#endif
|
||||
Attach(*this);
|
||||
BeginEventProcessing();
|
||||
//Install required connector bridges
|
||||
install<AccountBridge>();
|
||||
|
||||
if (auto ref = install<BaseBridge>(); ref) {
|
||||
if (auto baseBridgeRef = std::dynamic_pointer_cast<BaseBridge>(ref); baseBridgeRef) {
|
||||
connector::connector()->addWeak(baseBridgeRef);
|
||||
}
|
||||
}
|
||||
|
||||
install<ConfigBridge>();
|
||||
|
||||
install<ReceiveBridge>();
|
||||
if (auto ref = install<SendBridge>(); ref) {
|
||||
if (auto sendBridgeRef = std::dynamic_pointer_cast<SendBridge>(ref); sendBridgeRef) {
|
||||
connector::connector()->addWeak(sendBridgeRef);
|
||||
sendBridgeRef->start();
|
||||
}
|
||||
}
|
||||
|
||||
if (auto ref = install<SelectionBridge>(); ref) {
|
||||
if (auto selectionBridgeRef = std::dynamic_pointer_cast<SelectionBridge>(ref); selectionBridgeRef) {
|
||||
connector::connector()->addWeak(selectionBridgeRef);
|
||||
selectionBridgeRef->start();
|
||||
}
|
||||
}
|
||||
|
||||
install<TestBridge>();
|
||||
InitBrowserControl();
|
||||
}
|
||||
@@ -255,12 +256,12 @@ void BrowserPalette::DestroyInstance() {
|
||||
|
||||
void BrowserPalette::Show() {
|
||||
DG::Palette::Show();
|
||||
SetMenuItemCheckedState(true);
|
||||
publshVisibilityChange(true);
|
||||
}
|
||||
|
||||
void BrowserPalette::Hide() {
|
||||
DG::Palette::Hide();
|
||||
SetMenuItemCheckedState(false);
|
||||
publshVisibilityChange(false);
|
||||
}
|
||||
|
||||
void BrowserPalette::InitBrowserControl() {
|
||||
@@ -273,19 +274,9 @@ void BrowserPalette::InitBrowserControl() {
|
||||
}
|
||||
|
||||
|
||||
void BrowserPalette::SetMenuItemCheckedState(bool isChecked) {
|
||||
API_MenuItemRef itemRef = {};
|
||||
GSFlags itemFlags = {};
|
||||
|
||||
itemRef.menuResID = BrowserPaletteMenuResId;
|
||||
itemRef.itemIndex = BrowserPaletteMenuItemIndex;
|
||||
|
||||
ACAPI_MenuItem_GetMenuItemFlags(&itemRef, &itemFlags);
|
||||
if(isChecked)
|
||||
itemFlags |= API_MenuItemChecked;
|
||||
else
|
||||
itemFlags &= ~API_MenuItemChecked;
|
||||
ACAPI_MenuItem_SetMenuItemFlags(&itemRef, &itemFlags);
|
||||
void BrowserPalette::publshVisibilityChange(bool isChecked) {
|
||||
//Signal that the palette visibility has changed
|
||||
app()->publish(Event{reflectPaletteVisibilityID, { ValueSetting{isChecked, paletteVisibilityStateID} }});
|
||||
}
|
||||
|
||||
void BrowserPalette::PanelResized(const DG::PanelResizeEvent& ev) {
|
||||
@@ -319,7 +310,7 @@ GSErrCode __ACENV_CALL BrowserPalette::PaletteControlCallBack(Int32, API_Palette
|
||||
break;
|
||||
|
||||
case APIPalMsg_HidePalette_End:
|
||||
if (HasInstance() && !GetInstance().IsVisible())
|
||||
if(HasInstance() && !GetInstance().IsVisible())
|
||||
{
|
||||
GetInstance().Show();
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ Cargo::Unique DirectSelectionSendFilter::getCargo(const Inventory::Item& item) c
|
||||
using namespace active::serialise;
|
||||
switch (item.index) {
|
||||
case selectedElemID:
|
||||
return std::make_unique<ContainerWrap<ElementIDList>>(m_selectedElements, false, fieldID[selectedElemID].name);
|
||||
return std::make_unique<ContainerWrap<BIMRecordIDList>>(m_selectedElements, false, fieldID[selectedElemID].name);
|
||||
default:
|
||||
return nullptr; //Requested an unknown index
|
||||
}
|
||||
|
||||
@@ -32,11 +32,17 @@ namespace connector::record {
|
||||
|
||||
// MARK: - Functions (const)
|
||||
|
||||
/*!
|
||||
Determine if the send filter contains a specified record ID
|
||||
@param recordID The record ID to search for
|
||||
@return True if the filter contains the record ID
|
||||
*/
|
||||
virtual bool contains(const speckle::database::BIMRecordID& recordID) const override { return m_selectedElements.contains(recordID); }
|
||||
/*!
|
||||
Get the filtered element IDs
|
||||
@return The filter elements
|
||||
*/
|
||||
const speckle::database::ElementIDList& getElementIDs() const override { return m_selectedElements; }
|
||||
const speckle::database::BIMRecordIDList& getElementIDs() const override { return m_selectedElements; }
|
||||
|
||||
// MARK: - Serialisation
|
||||
|
||||
@@ -59,7 +65,7 @@ namespace connector::record {
|
||||
|
||||
private:
|
||||
///A list of selected element IDs
|
||||
speckle::database::ElementIDList m_selectedElements;
|
||||
speckle::database::BIMRecordIDList m_selectedElements;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ Cargo::Unique EverythingSendFilter::getCargo(const Inventory::Item& item) const
|
||||
using namespace active::serialise;
|
||||
switch (item.index) {
|
||||
case selectedElemID:
|
||||
return std::make_unique<ContainerWrap<ElementIDList>>(m_emptyList);
|
||||
return std::make_unique<ContainerWrap<BIMRecordIDList>>(m_emptyList);
|
||||
default:
|
||||
return nullptr; //Requested an unknown index
|
||||
}
|
||||
|
||||
@@ -32,17 +32,23 @@ namespace connector::record {
|
||||
|
||||
// MARK: - Functions (const)
|
||||
|
||||
/*!
|
||||
Determine if the send filter contains a specified record ID
|
||||
@param recordID The record ID to search for
|
||||
@return True if the filter contains the record ID
|
||||
*/
|
||||
virtual bool contains(const speckle::database::BIMRecordID& recordID) const override { return true; }
|
||||
/*!
|
||||
Get the filtered element IDs
|
||||
@return The filter elements
|
||||
*/
|
||||
const speckle::database::ElementIDList& getElementIDs() const override { return m_emptyList; }
|
||||
const speckle::database::BIMRecordIDList& getElementIDs() const override { return m_emptyList; }
|
||||
/*!
|
||||
Determine if the filter has expired because an element in the selection has changed
|
||||
@param changed The list of changed element IDs
|
||||
@return True if the one of the changed elements is in the selection
|
||||
*/
|
||||
virtual bool checkExpiry(const speckle::database::ElementIDList& changed) const override { return true; }
|
||||
virtual bool checkExpiry(const speckle::database::BIMRecordIDList& changed) const override { return true; }
|
||||
|
||||
// MARK: - Serialisation
|
||||
|
||||
@@ -65,7 +71,7 @@ namespace connector::record {
|
||||
|
||||
private:
|
||||
///Enables a const empty list to be returned
|
||||
speckle::database::ElementIDList m_emptyList;
|
||||
speckle::database::BIMRecordIDList m_emptyList;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -34,12 +34,10 @@ namespace {
|
||||
|
||||
return: True if the one of the changed elements is in the selection
|
||||
--------------------------------------------------------------------*/
|
||||
bool SendFilter::checkExpiry(const ElementIDList& changed) const {
|
||||
ElementIDList intersect;
|
||||
ElementIDList mine{getElementIDs()}, theirs{changed};
|
||||
std::sort(mine.begin(), mine.end());
|
||||
std::sort(theirs.begin(), theirs.end());
|
||||
std::set_intersection (mine.begin(), mine.end(), theirs.begin(), theirs.end(), std::back_inserter(intersect));
|
||||
bool SendFilter::checkExpiry(const BIMRecordIDList& changed) const {
|
||||
BIMRecordIDList intersect;
|
||||
BIMRecordIDList mine{getElementIDs()}, theirs{changed};
|
||||
std::set_intersection(mine.begin(), mine.end(), theirs.begin(), theirs.end(), std::inserter(intersect, intersect.begin()));
|
||||
return !intersect.empty();
|
||||
} //SendFilter::checkExpiry
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "Active/Serialise/Package/Package.h"
|
||||
#include "Active/Utility/Cloner.h"
|
||||
#include "Speckle/Database/Identity/RecordID.h"
|
||||
#include "Speckle/Database/Identity/BIMRecordID.h"
|
||||
#include "Speckle/Utility/String.h"
|
||||
|
||||
namespace connector::record {
|
||||
@@ -55,17 +56,23 @@ namespace connector::record {
|
||||
@return True if this is the default filter
|
||||
*/
|
||||
bool isDefault() const { return m_isDefault; };
|
||||
/*!
|
||||
Determine if the send filter contains a specified record ID
|
||||
@param recordID The record ID to search for
|
||||
@return True if the filter contains the record ID
|
||||
*/
|
||||
virtual bool contains(const speckle::database::BIMRecordID& recordID) const = 0;
|
||||
/*!
|
||||
Get the filtered element IDs
|
||||
@return The filter elements
|
||||
*/
|
||||
virtual const speckle::database::ElementIDList& getElementIDs() const = 0;
|
||||
virtual const speckle::database::BIMRecordIDList& getElementIDs() const = 0;
|
||||
/*!
|
||||
Determine if the filter has expired because an element in the selection has changed
|
||||
@param changed The list of changed element IDs
|
||||
@return True if the one of the changed elements is in the selection
|
||||
*/
|
||||
virtual bool checkExpiry(const speckle::database::ElementIDList& changed) const;
|
||||
virtual bool checkExpiry(const speckle::database::BIMRecordIDList& changed) const;
|
||||
|
||||
// MARK: - Serialisation
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "Active/Serialise/Item/Wrapper/ValueWrap.h"
|
||||
#include "Active/Serialise/Package/Wrapper/ContainerWrap.h"
|
||||
#include "Speckle/Database/Identity/BIMRecordID.h"
|
||||
|
||||
#include <array>
|
||||
|
||||
@@ -81,7 +82,7 @@ Cargo::Unique ReceiverModelCard::getCargo(const Inventory::Item& item) const {
|
||||
case warningDismissedID:
|
||||
return std::make_unique<BoolWrap>(m_hasDismissedUpdateWarning);
|
||||
case bakedObjectsID:
|
||||
return std::make_unique<ContainerWrap<ElementIDList>>(m_bakedObjectIDs);
|
||||
return std::make_unique<ContainerWrap<BIMRecordIDList>>(m_bakedObjectIDs);
|
||||
default:
|
||||
return nullptr; //Requested an unknown index
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef CONNECTOR_RECORD_RECEIVER_MODEL_CARD
|
||||
#define CONNECTOR_RECORD_RECEIVER_MODEL_CARD
|
||||
|
||||
#include "Speckle/Database/Identity/RecordID.h"
|
||||
#include "Speckle/Database/Identity/BIMRecordID.h"
|
||||
#include "Connector/Record/Model/ModelCard.h"
|
||||
|
||||
namespace connector::record {
|
||||
@@ -37,7 +37,7 @@ namespace connector::record {
|
||||
const speckle::database::RecordID& modelID, const speckle::utility::String& modelName,
|
||||
const speckle::database::RecordID& selectedVersion, const speckle::database::RecordID& latestVersion,
|
||||
const speckle::database::RecordID& accountID, const speckle::utility::String& serverURL,
|
||||
bool hasDimissedWarning, speckle::database::ElementIDList&& bakedObjects, const SettingList& settings) :
|
||||
bool hasDimissedWarning, speckle::database::BIMRecordIDList&& bakedObjects, const SettingList& settings) :
|
||||
ModelCard{modelID, projectID, accountID, serverURL, settings},
|
||||
m_projectName{projectName}, m_modelName{modelName}, m_selectedVersionID{selectedVersion}, m_latestVersionID{latestVersion},
|
||||
m_hasDismissedUpdateWarning{hasDimissedWarning}, m_bakedObjectIDs{bakedObjects} {}
|
||||
@@ -78,7 +78,7 @@ namespace connector::record {
|
||||
Get the IDs of objects accepted in the receive
|
||||
@return The accepted object IDs
|
||||
*/
|
||||
const speckle::database::ElementIDList& getBakedObjectIDs() const { return m_bakedObjectIDs; }
|
||||
const speckle::database::BIMRecordIDList& getBakedObjectIDs() const { return m_bakedObjectIDs; }
|
||||
|
||||
// MARK: - Serialisation
|
||||
|
||||
@@ -111,7 +111,7 @@ namespace connector::record {
|
||||
///True if the user has already dismissed an alert to update
|
||||
bool m_hasDismissedUpdateWarning = false;
|
||||
///IDs of objects accepted in the receive
|
||||
speckle::database::ElementIDList m_bakedObjectIDs;
|
||||
speckle::database::BIMRecordIDList m_bakedObjectIDs;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -61,6 +61,18 @@ SenderModelCard::~SenderModelCard() {
|
||||
} //SenderModelCard::~SenderModelCard
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Determine if the send filter contains a specified record ID
|
||||
|
||||
recordID: The record ID to search for
|
||||
|
||||
return: True if the filter contains the record ID
|
||||
--------------------------------------------------------------------*/
|
||||
bool SenderModelCard::contains(const speckle::database::BIMRecordID& recordID) const {
|
||||
return m_filter->contains(recordID);
|
||||
} //SenderModelCard::contains
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Fill an inventory with the package items
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define CONNECTOR_RECORD_SENDER_MODEL_CARD
|
||||
|
||||
#include "Connector/Record/Model/ModelCard.h"
|
||||
#include "Speckle/Database/Identity/BIMRecordID.h"
|
||||
|
||||
namespace connector::record {
|
||||
|
||||
@@ -46,6 +47,12 @@ namespace connector::record {
|
||||
|
||||
// MARK: - Functions (const)
|
||||
|
||||
/*!
|
||||
Determine if the send filter contains a specified record ID
|
||||
@param recordID The record ID to search for
|
||||
@return True if the filter contains the record ID
|
||||
*/
|
||||
bool contains(const speckle::database::BIMRecordID& recordID) const;
|
||||
/*!
|
||||
Get the filter applied when the model was sent
|
||||
@return The model filter
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
#include "Connector/Tool/ElementHighlighter.h"
|
||||
|
||||
#include "Active/Database/Transaction.h"
|
||||
#include "Active/Event/Event.h"
|
||||
#include "Connector/Connector.h"
|
||||
#include "Connector/ConnectorResource.h"
|
||||
#include "Connector/Environment/ConnectorProject.h"
|
||||
#include "Connector/Event/ConnectorEventID.h"
|
||||
#include "Speckle/Database/BIMAttributeDatabase.h"
|
||||
#include "Speckle/Database/BIMElementDatabase.h"
|
||||
#include "Speckle/Database/Identity/BIMLink.h"
|
||||
#include "Speckle/Environment/Host.h"
|
||||
#include "Speckle/Record/Filter/ElementVisibilityCollector.h"
|
||||
#include "Speckle/Utility/Guid.h"
|
||||
|
||||
using namespace active::database;
|
||||
using namespace active::event;
|
||||
using namespace active::setting;
|
||||
using namespace connector;
|
||||
using namespace connector::environment;
|
||||
using namespace speckle::database;
|
||||
using namespace speckle::environment;
|
||||
using namespace speckle::record;
|
||||
using namespace speckle::utility;
|
||||
|
||||
namespace {
|
||||
|
||||
/*!
|
||||
Transaction to make a selection of layers visible
|
||||
*/
|
||||
class ShowLayers : public Transaction {
|
||||
public:
|
||||
/*!
|
||||
Constructor
|
||||
@param project The target project
|
||||
@param layers The layers in the project to be made visible
|
||||
*/
|
||||
ShowLayers(Project::Shared project, ElementVisibilityCollector::Layers& layers) :
|
||||
Transaction{connector::connector()->getLocalString(titleString, showLayersID)}, m_project{project}, m_layers{layers} {}
|
||||
|
||||
protected:
|
||||
|
||||
//MARK: - Functions (App management)
|
||||
|
||||
/*!
|
||||
Perform the transaction. Database writes can be performed. NB: this function is not called if the prepare phase was unsuccessful)
|
||||
@return True if the transaction was successfully performed
|
||||
*/
|
||||
bool perform() override {
|
||||
auto attributeDatabase = m_project->getAttributeDatabase();
|
||||
for (auto& layer : m_layers) {
|
||||
if (layer.second.isHidden()) {
|
||||
layer.second.setHidden(false);
|
||||
attributeDatabase->write(layer.second);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
///The target project for showing layers
|
||||
Project::Shared m_project;
|
||||
///The layers to be made visible
|
||||
ElementVisibilityCollector::Layers& m_layers;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Get the event subscription list
|
||||
|
||||
return: The subscription list (an empty list will put the subscriber into a suspended state)
|
||||
--------------------------------------------------------------------*/
|
||||
Subscriber::Subscription ElementHighlighter::subscription() const {
|
||||
return Subscription{setElementHighlight};
|
||||
} //ElementHighlighter::subscription
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Receive a subscribed event
|
||||
|
||||
event: The incoming event
|
||||
|
||||
return: True if the event should be closed
|
||||
--------------------------------------------------------------------*/
|
||||
bool ElementHighlighter::receive(const active::event::Event& event) {
|
||||
//Collect the IDs of elements to be highlighted
|
||||
ValueSetting* elementIDs = nullptr;
|
||||
if (elementIDs = event.findValue(recordLinks); elementIDs == nullptr)
|
||||
return false;
|
||||
BIMLinkList elementSelection;
|
||||
for (const auto& value : *elementIDs)
|
||||
if (Guid guid{value->operator active::utility::Guid()}; guid)
|
||||
elementSelection.emplace_back(guid);
|
||||
if (elementSelection.empty())
|
||||
return false;
|
||||
auto project = connector()->getActiveProject().lock();
|
||||
auto connectorProject = dynamic_cast<ConnectorProject*>(project.get());
|
||||
if (!connectorProject)
|
||||
return false;
|
||||
auto elementDatabase = project->getElementDatabase();
|
||||
//Collect the layers assigned to the model card elements
|
||||
ElementVisibilityCollector collector;
|
||||
BIMElementDatabase::Filter filter = [&collector](const speckle::record::element::Element& elem) { return collector(elem); };
|
||||
elementDatabase->findElements(&filter, elementSelection);
|
||||
//If any collected layers are hidden, the useer is prompted to show them (otherwise they may see nothing happen when a model card is clicked)
|
||||
for (const auto& layer : collector.getLayers()) {
|
||||
if (layer.second.isHidden()) {
|
||||
//If a hidden layer is found, ask the user before taking any action
|
||||
if (host()->displayConfirmation(addon()->getLocalString(notifyString, showHiddenLayersID))) {
|
||||
//Run a transaction to ensure all layers are visible
|
||||
ShowLayers showLayers{project, collector.getLayers()};
|
||||
connector()->makeTransaction(showLayers);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
host()->makeModelViewActive();
|
||||
elementDatabase->clearSelection();
|
||||
elementDatabase->setSelection(elementSelection);
|
||||
host()->zoomToFit(true);
|
||||
return false;
|
||||
} //ElementHighlighter::receive
|
||||
@@ -0,0 +1,28 @@
|
||||
#ifndef CONNECTOR_ELEMENT_HIGHLIGHTER
|
||||
#define CONNECTOR_ELEMENT_HIGHLIGHTER
|
||||
|
||||
#include "Active/Event/Subscriber.h"
|
||||
|
||||
namespace connector {
|
||||
|
||||
class ElementHighlighter : public active::event::Subscriber {
|
||||
public:
|
||||
/*!
|
||||
Get the event subscription list
|
||||
@return The subscription list (an empty list will put the subscriber into a suspended state)
|
||||
*/
|
||||
Subscription subscription() const override;
|
||||
|
||||
// MARK: - Functions (mutating)
|
||||
|
||||
/*!
|
||||
Receive a subscribed event
|
||||
@param event The incoming event
|
||||
@return True if the event should be closed
|
||||
*/
|
||||
bool receive(const active::event::Event& event) override;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif //CONNECTOR_ELEMENT_HIGHLIGHTER
|
||||
@@ -0,0 +1,43 @@
|
||||
#include "ActiveLibDoctest/TestingPlatforms.h"
|
||||
|
||||
#include "Connector/Record/Model/CardMover.h"
|
||||
#include "Connector/Record/Model/ModelCard.h"
|
||||
#include "Active/Serialise/CargoHold.h"
|
||||
#include "Active/Serialise/JSON/JSONTransport.h"
|
||||
#include "Active/Utility/BufferIn.h"
|
||||
#include "Speckle/Utility/String.h"
|
||||
|
||||
namespace {
|
||||
|
||||
speckle::utility::String json{"{\n\
|
||||
\"typeDiscriminator\": \"SenderModelCard\",\n\
|
||||
\"modelCardId\": \"8a007ac08b43771ec20d\",\n\
|
||||
\"modelId\": \"c9b5a4fa94\",\n\
|
||||
\"projectId\": \"ce9a0d130e\",\n\
|
||||
\"workspaceId\": \"10ee1c0f73\",\n\
|
||||
\"accountId\": \"5724C96F3FF796628292B6E67E86CC2F\",\n\
|
||||
\"serverUrl\": \"https://app.speckle.systems\",\n\
|
||||
\"expired\": false,\n\
|
||||
\"sendFilter\": {\n\
|
||||
\"typeDiscriminator\": \"ArchicadSelectionFilter\",\n\
|
||||
\"selectedObjectIds\": [\n\
|
||||
\"7B531D03-0219-420F-BE86-633451AEF19B\"\n\
|
||||
],\n\
|
||||
\"name\": \"Selection\",\n\
|
||||
\"summary\": \"1 objects selected.\"\n\
|
||||
}\n\
|
||||
}"};
|
||||
|
||||
}
|
||||
using namespace speckle::utility;
|
||||
|
||||
TEST_SUITE(TESTQ(ModelCardSerialiseTest)) TEST_SUITE_OPEN
|
||||
|
||||
///Test for deserialising a ModelCard
|
||||
TEST_CASE(TESTQ(deserialiseModelCard)) {
|
||||
using CardHold = active::serialise::CargoHold<connector::record::CardMover, connector::record::ModelCard>;
|
||||
CardHold result;
|
||||
active::serialise::json::JSONTransport().receive(std::forward<CardHold&&>(result), active::serialise::Identity{}, json);
|
||||
}
|
||||
|
||||
TEST_SUITE_CLOSE
|
||||
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<HEADER_PATH_7>$(SolutionDir)RINT.$(BIM_PLATFORM)/$(LOCALISATION_SUFFIX)</HEADER_PATH_7>
|
||||
<WORD_SIZE>64</WORD_SIZE>
|
||||
<BASE_NAME>Speckle Connector</BASE_NAME>
|
||||
<DISPLAY_NAME>$(BASE_NAME)</DISPLAY_NAME>
|
||||
<WRAPPER_EXTENSION>apx</WRAPPER_EXTENSION>
|
||||
<LOCALISATION_SUFFIX>EN-GB</LOCALISATION_SUFFIX>
|
||||
<EXEC_PATH>$(BIM_PATH)</EXEC_PATH>
|
||||
<INSTALL_FOLDER>$(BASE_NAME)Win$(WORD_SIZE)-$(BIM_PLATFORM)$(BIM_VERSION)-$(LOCALISATION_SUFFIX)</INSTALL_FOLDER>
|
||||
<INSTALL_PATH>$(SolutionDir)Install/$(BASE_NAME)/$(LOCALISATION_SUFFIX)</INSTALL_PATH>
|
||||
<PLUGIN_FOLDER>Add-Ons</PLUGIN_FOLDER>
|
||||
<RESOURCE_EXTENSION>lcf</RESOURCE_EXTENSION>
|
||||
<RES_OUTPUT>$(SolutionDir)ResourceObjects</RES_OUTPUT>
|
||||
<RES_SOURCE>$(SolutionDir)RFIX.Win</RES_SOURCE>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="HEADER_PATH_7">
|
||||
<Value>$(HEADER_PATH_7)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="WORD_SIZE">
|
||||
<Value>$(WORD_SIZE)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="BASE_NAME">
|
||||
<Value>$(BASE_NAME)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="DISPLAY_NAME">
|
||||
<Value>$(DISPLAY_NAME)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="WRAPPER_EXTENSION">
|
||||
<Value>$(WRAPPER_EXTENSION)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="LOCALISATION_SUFFIX">
|
||||
<Value>$(LOCALISATION_SUFFIX)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="EXEC_PATH">
|
||||
<Value>$(EXEC_PATH)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="INSTALL_FOLDER">
|
||||
<Value>$(INSTALL_FOLDER)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="INSTALL_PATH">
|
||||
<Value>$(INSTALL_PATH)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="PLUGIN_FOLDER">
|
||||
<Value>$(PLUGIN_FOLDER)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="RESOURCE_EXTENSION">
|
||||
<Value>$(RESOURCE_EXTENSION)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="RES_OUTPUT">
|
||||
<Value>$(RES_OUTPUT)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="RES_SOURCE">
|
||||
<Value>$(RES_SOURCE)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<HEADER_PATH_7>$(SolutionDir)RINT.$(BIM_PLATFORM)/$(LOCALISATION_SUFFIX)</HEADER_PATH_7>
|
||||
<WORD_SIZE>64</WORD_SIZE>
|
||||
<BASE_NAME>Speckle Connector</BASE_NAME>
|
||||
<DISPLAY_NAME>$(BASE_NAME)</DISPLAY_NAME>
|
||||
<WRAPPER_EXTENSION>apx</WRAPPER_EXTENSION>
|
||||
<LOCALISATION_SUFFIX>EN-GB</LOCALISATION_SUFFIX>
|
||||
<EXEC_PATH>$(BIM_PATH)</EXEC_PATH>
|
||||
<INSTALL_FOLDER>$(BASE_NAME)Win$(WORD_SIZE)-$(BIM_PLATFORM)$(BIM_VERSION)-$(LOCALISATION_SUFFIX)</INSTALL_FOLDER>
|
||||
<INSTALL_PATH>$(SolutionDir)Install/$(BASE_NAME)/$(LOCALISATION_SUFFIX)</INSTALL_PATH>
|
||||
<PLUGIN_FOLDER>Add-Ons</PLUGIN_FOLDER>
|
||||
<RESOURCE_EXTENSION>lcf</RESOURCE_EXTENSION>
|
||||
<RES_OUTPUT>$(SolutionDir)ResourceObjects</RES_OUTPUT>
|
||||
<RES_SOURCE>$(SolutionDir)RFIX.Win</RES_SOURCE>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="HEADER_PATH_7">
|
||||
<Value>$(HEADER_PATH_7)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="WORD_SIZE">
|
||||
<Value>$(WORD_SIZE)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="BASE_NAME">
|
||||
<Value>$(BASE_NAME)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="DISPLAY_NAME">
|
||||
<Value>$(DISPLAY_NAME)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="WRAPPER_EXTENSION">
|
||||
<Value>$(WRAPPER_EXTENSION)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="LOCALISATION_SUFFIX">
|
||||
<Value>$(LOCALISATION_SUFFIX)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="EXEC_PATH">
|
||||
<Value>$(EXEC_PATH)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="INSTALL_FOLDER">
|
||||
<Value>$(INSTALL_FOLDER)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="INSTALL_PATH">
|
||||
<Value>$(INSTALL_PATH)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="PLUGIN_FOLDER">
|
||||
<Value>$(PLUGIN_FOLDER)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="RESOURCE_EXTENSION">
|
||||
<Value>$(RESOURCE_EXTENSION)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="RES_OUTPUT">
|
||||
<Value>$(RES_OUTPUT)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="RES_SOURCE">
|
||||
<Value>$(RES_SOURCE)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<HEADER_PATH_7>$(SolutionDir)RINT.$(BIM_PLATFORM)/$(LOCALISATION_SUFFIX)</HEADER_PATH_7>
|
||||
<WORD_SIZE>64</WORD_SIZE>
|
||||
<BASE_NAME>Speckle Connector</BASE_NAME>
|
||||
<DISPLAY_NAME>$(BASE_NAME)</DISPLAY_NAME>
|
||||
<WRAPPER_EXTENSION>apx</WRAPPER_EXTENSION>
|
||||
<LOCALISATION_SUFFIX>EN-GB</LOCALISATION_SUFFIX>
|
||||
<EXEC_PATH>$(BIM_PATH)</EXEC_PATH>
|
||||
<INSTALL_FOLDER>$(BASE_NAME)Win$(WORD_SIZE)-$(BIM_PLATFORM)$(BIM_VERSION)-$(LOCALISATION_SUFFIX)</INSTALL_FOLDER>
|
||||
<INSTALL_PATH>$(SolutionDir)Install/$(BASE_NAME)/$(LOCALISATION_SUFFIX)</INSTALL_PATH>
|
||||
<PLUGIN_FOLDER>Add-Ons</PLUGIN_FOLDER>
|
||||
<RESOURCE_EXTENSION>lcf</RESOURCE_EXTENSION>
|
||||
<RES_OUTPUT>$(SolutionDir)ResourceObjects</RES_OUTPUT>
|
||||
<RES_SOURCE>$(SolutionDir)RFIX.Win</RES_SOURCE>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="HEADER_PATH_7">
|
||||
<Value>$(HEADER_PATH_7)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="WORD_SIZE">
|
||||
<Value>$(WORD_SIZE)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="BASE_NAME">
|
||||
<Value>$(BASE_NAME)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="DISPLAY_NAME">
|
||||
<Value>$(DISPLAY_NAME)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="WRAPPER_EXTENSION">
|
||||
<Value>$(WRAPPER_EXTENSION)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="LOCALISATION_SUFFIX">
|
||||
<Value>$(LOCALISATION_SUFFIX)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="EXEC_PATH">
|
||||
<Value>$(EXEC_PATH)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="INSTALL_FOLDER">
|
||||
<Value>$(INSTALL_FOLDER)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="INSTALL_PATH">
|
||||
<Value>$(INSTALL_PATH)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="PLUGIN_FOLDER">
|
||||
<Value>$(PLUGIN_FOLDER)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="RESOURCE_EXTENSION">
|
||||
<Value>$(RESOURCE_EXTENSION)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="RES_OUTPUT">
|
||||
<Value>$(RES_OUTPUT)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="RES_SOURCE">
|
||||
<Value>$(RES_SOURCE)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>Speckle Connector for Archicad 25</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>ArchiCADPlugin.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Speckle Connector</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>.APX</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>Speckle Connector</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>GSAP</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
||||
<key>LSRequiresCarbon</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>Speckle Connector for Archicad 26</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>ArchiCADPlugin.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Speckle Connector</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>.APX</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>Speckle Connector</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>GSAP</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
||||
<key>LSRequiresCarbon</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>Speckle Connector for Archicad 28</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>ArchiCADPlugin.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Speckle Connector</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>.APX</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>Speckle Connector</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>GSAP</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
||||
<key>LSRequiresCarbon</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -2,8 +2,15 @@
|
||||
/* [ 1] */ "Speckle Connector"
|
||||
/* [ 2] */ "Connector to share model content with Speckle"
|
||||
/* [ 3] */ "No level"
|
||||
/* [ 4] */ "Show Layers"
|
||||
}
|
||||
|
||||
|
||||
'STR#' 32602 "Notify strings" {
|
||||
/* [ 1] */ "Some elements published with the selected model card are on hidden layers - do you wish to make these layers visible?"
|
||||
}
|
||||
|
||||
|
||||
'STR#' 32604 "Error strings" {
|
||||
/* [ 1] */ "No objects were found to convert. Please update your publish filter!"
|
||||
/* [ 2] */ "The specified model card cannot be found. Try another card or create a new one"
|
||||
|
||||
@@ -41,23 +41,19 @@ class ResourceCompiler (object):
|
||||
return True
|
||||
|
||||
def RunResConv (self, platformSign, codepage, inputFilePath, nativeResourceFileExtenion):
|
||||
resourcesFolders = [
|
||||
os.path.join (self.resourcesPath, 'RFIX', 'Images'),
|
||||
os.path.join (self.resourcesPath, 'RFIX')
|
||||
]
|
||||
imageResourcesFolder = os.path.join (self.resourcesPath, 'RFIX', 'Images')
|
||||
inputFileBaseName = os.path.splitext (os.path.split (inputFilePath)[1])[0]
|
||||
nativeResourceFilePath = os.path.join (self.resourceObjectsPath, inputFileBaseName + nativeResourceFileExtenion)
|
||||
buildcommand = [
|
||||
result = subprocess.call ([
|
||||
self.resConvPath,
|
||||
'-m', 'r', # resource compile mode
|
||||
'-T', platformSign, # target platform
|
||||
'-q', 'utf8', codepage, # code page conversion
|
||||
'-w', '2', # HiDPI image size list
|
||||
'-p', ';'.join (resourcesFolders), # resource search paths
|
||||
'-i', inputFilePath, # input path
|
||||
'-o', nativeResourceFilePath # output path
|
||||
]
|
||||
result = subprocess.call (buildcommand)
|
||||
'-m', 'r', # resource compile mode
|
||||
'-T', platformSign, # target platform
|
||||
'-q', 'utf8', codepage, # code page conversion
|
||||
'-w', '2', # HiDPI image size list
|
||||
'-p', imageResourcesFolder, # image search path
|
||||
'-i', inputFilePath, # input path
|
||||
'-o', nativeResourceFilePath # output path
|
||||
])
|
||||
if result != 0:
|
||||
return False
|
||||
return True
|
||||
@@ -98,13 +94,13 @@ class WinResourceCompiler (ResourceCompiler):
|
||||
'/I', os.path.join (self.devKitPath, 'Support', 'Modules', 'DGLib'),
|
||||
'/I', self.sourcesPath,
|
||||
'/DWINDOWS',
|
||||
'/utf-8',
|
||||
'/execution-charset:utf-8',
|
||||
'/Fi{}'.format (precompiledGrcFilePath),
|
||||
grcFilePath,
|
||||
])
|
||||
if result != 0:
|
||||
return False
|
||||
return self.RunResConv ('W', 'utf8', precompiledGrcFilePath, '.rc2')
|
||||
return self.RunResConv ('W', '1252', precompiledGrcFilePath, '.rc2')
|
||||
|
||||
def CompileNativeResource (self, resultResourcePath):
|
||||
nativeResourceFiles = self.CollectFilesFromFolderWithExtension (os.path.join (self.resourcesPath, 'RFIX.win'), '.rc2')
|
||||
@@ -116,7 +112,6 @@ class WinResourceCompiler (ResourceCompiler):
|
||||
return False
|
||||
result = subprocess.call ([
|
||||
'rc',
|
||||
'/c65001',
|
||||
'/i', os.path.join (self.devKitPath, 'Support', 'Inc'),
|
||||
'/i', os.path.join (self.devKitPath, 'Support', 'Modules', 'DGLib'),
|
||||
'/i', self.sourcesPath,
|
||||
|
||||
@@ -0,0 +1,280 @@
|
||||
#! /usr/bin/perl -w
|
||||
|
||||
use FindBin ;
|
||||
use File::Spec::Functions qw(splitpath catfile updir);
|
||||
use File::Copy;
|
||||
use Cwd;
|
||||
|
||||
my $os;
|
||||
my $devKitPath;
|
||||
my $acVersion = $ENV{BIM_VERSION};
|
||||
|
||||
if ($^O =~ /MSWin/) {
|
||||
$os = "Win";
|
||||
} else {
|
||||
$os = "Mac";
|
||||
}
|
||||
$devKitPath = catfile ($FindBin::Bin, updir (), updir (), "ArchiCAD " . $acVersion);
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Strip redundant expressions from the target file
|
||||
|
||||
# $targetDirectory: The target directory
|
||||
# $$targetFile: The target file
|
||||
#-----------------------------------------------------------------------
|
||||
sub StripRedundancies ($$)
|
||||
{
|
||||
my ($source, $destination) = @_ ;
|
||||
|
||||
open my $fh, "< :raw", $source or die "Cannot open $filename for reading: $!\n";
|
||||
my $saved_sep = $/;
|
||||
undef $/;
|
||||
$content = <$fh>;
|
||||
close ($fh) or die "Can't close file: $!";
|
||||
#Strip out comments
|
||||
$content =~ s { ( [^"'/]*
|
||||
+r comment.
|
||||
| "[^\\"]*(?:\\.[^\\"]*)*"
|
||||
| '[^\\']*(?:\\.[^\\']*)*'
|
||||
| / (?![*])
|
||||
)
|
||||
|
|
||||
( /[*] [^*]* (?: [*] [^*/]* )* [*]/ )
|
||||
}
|
||||
{ $2 ? "" : $1 }gsex;
|
||||
open $fh, "+> :raw", $destination or die "Cannot open $filename for writing: $!\n";
|
||||
print $fh $content;
|
||||
$/ = $saved_sep;
|
||||
close ($fh) or die "Can't close file: $!";
|
||||
} #StripRedundancies
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Convert all image resources to the svg format for AC >= 20
|
||||
|
||||
# $intermediaryFile: The target file
|
||||
#-----------------------------------------------------------------------
|
||||
sub UpdateSVG($)
|
||||
{
|
||||
my ($target) = @_;
|
||||
open my $fh, "< :raw", $target or die "Cannot open $filename for reading: $!\n";
|
||||
local $/ = undef;
|
||||
$contents = <$fh>;
|
||||
close ($fh) or die "Can't close file: $!";
|
||||
my @svg_defs = ();
|
||||
while ($contents =~ /('GBMP'|'GICN')\s*(\d{5})\s*("[^"]*")\s*\{/sg)
|
||||
{
|
||||
push @svg_defs, "'GICN' $2 $3 {\n}\n\n";
|
||||
}
|
||||
if (@svg_defs) {
|
||||
open $fh, "> :raw", $target or die "Cannot open $filename for writing: $!\n";
|
||||
print $fh "@ #include \"MDIDs_APICD.h\"\n\n";
|
||||
print $fh @svg_defs;
|
||||
close ($fh) or die "Can't close file: $!";
|
||||
}
|
||||
} #UpdateSVG
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Executes one GRC conversion command
|
||||
|
||||
# tool: Path to the GRC converter tool
|
||||
# headerDir: Path to headers included in resource files
|
||||
# sourceDir: Path to the input GRC source directory
|
||||
# inputFile: Name of the input GRC file
|
||||
# destinationDir: Path to the output native resource file directory
|
||||
# localCode: The localisation code, e.g. "EN-GB"
|
||||
# platformName: Name of the target platform, e.g. "ArchiCAD18"
|
||||
# resourcePath: Optional path to any supplementary resources, e.g. images
|
||||
#-----------------------------------------------------------------------
|
||||
sub DoGRC ($$$$$$$$)
|
||||
{
|
||||
my ($tool, $headerDir, $sourceDir, $inputFile, $destinationDir, $localCode, $platformName, $resourcePath) = @_ ;
|
||||
#Get the bare resource name
|
||||
my $outputName = $inputFile;
|
||||
$outputName =~ s/.grc//;
|
||||
#And extract the version number (if found)
|
||||
my ($outputNumber) = $outputName =~ /([0-9]+)$/;
|
||||
#If it has a version that doesn't match this build, we don't want it
|
||||
if ($outputNumber) {
|
||||
if ($outputNumber != $ENV{BIM_VERSION}) {
|
||||
return;
|
||||
}
|
||||
$outputName =~ s/$outputNumber\z//;
|
||||
}
|
||||
my $outputFile = $outputName . ".ro";
|
||||
my $imageRes = "";
|
||||
#Optional path to a resource directory
|
||||
if ($resourcePath ne "") {
|
||||
if ($ENV{BIM_VERSION} > 16) {
|
||||
$resourcePath = " -p \"" . $resourcePath . "\"";
|
||||
if ($ENV{BIM_VERSION} >= 20) {
|
||||
$imageRes = " -w 2";
|
||||
}
|
||||
} else {
|
||||
$resourcePath = " -j .roo -p \"" . $resourcePath . "\""
|
||||
}
|
||||
}
|
||||
#Create the destination directory
|
||||
if ( $localCode ne "" ) {
|
||||
$destinationDir = catfile ($destinationDir, $localCode) ;
|
||||
}
|
||||
mkdir $destinationDir;
|
||||
$destinationDir = catfile ($destinationDir, $platformName);
|
||||
mkdir $destinationDir;
|
||||
#Run the tool on the file
|
||||
print "\t$inputFile\n";
|
||||
my $toolOptions = "";
|
||||
if ($os eq "Win") {
|
||||
$toolOptions = " -m r -q utf8 0 -T W";
|
||||
} else {
|
||||
$toolOptions = " -m r -q utf8 utf16 -T M -n";
|
||||
}
|
||||
my $intermediaryFile = catfile ($destinationDir, $outputFile .".i");
|
||||
if ($os eq "Win") {
|
||||
StripRedundancies(catfile ($sourceDir, $inputFile), $intermediaryFile);
|
||||
}
|
||||
if ($os eq "Mac") {
|
||||
my $frameworkVersion = catfile ($ENV{FRAMEWORK_PATH}, "Speckle" . $acVersion );
|
||||
my $incHeaderDir = catfile (Cwd::realpath ($devKitPath), "Support", "Inc");
|
||||
system ("xcrun clang -x c++ -E -P -DPREPROCESS_GRC -DGS_64BIT -Dmacintosh -DINT__APP -I \"" . $headerDir . "\" -I \"" . $incHeaderDir . "\" -I \"" . $frameworkVersion . "\" \"" . catfile ($sourceDir, $inputFile) . "\" > \"" . $intermediaryFile . "\"");
|
||||
}
|
||||
UpdateSVG($intermediaryFile);
|
||||
if ($os eq "Win") {
|
||||
chdir($devKitPath);
|
||||
}
|
||||
system ($tool . $toolOptions . " -i \"" . $intermediaryFile . "\"" . $resourcePath . " -o \"" . catfile ($destinationDir, $outputFile) . "\"" . $imageRes);
|
||||
unlink($intermediaryFile);
|
||||
} #DoGRC
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Main - Convert GRC files
|
||||
|
||||
my ($localCode) = $ENV{LOCALISATION_SUFFIX};
|
||||
my $suffix = ".r" . $acVersion;
|
||||
my $fixed = "RFIX";
|
||||
my $output = "RO";
|
||||
my $platform = "ArchiCAD" . $acVersion;
|
||||
my $baseName = $ENV{BASE_NAME};
|
||||
my $makeResConvTool;
|
||||
if ($os eq "Win") {
|
||||
$makeResConvTool = catfile ("Support", "Tools", "Win", "ResConv");
|
||||
} else {
|
||||
$makeResConvTool = "\"" . catfile (Cwd::realpath ($devKitPath), "Support", "Tools", "OSX", "ResConv") . "\"";
|
||||
}
|
||||
my $projectPath = $ENV{PROJECT_PATH};
|
||||
my $resTarget = catfile ($ENV{TARGET_BUILD_DIR}, $ENV{UNLOCALIZED_RESOURCES_FOLDER_PATH});
|
||||
my $roFolder = catfile ($projectPath, $output);
|
||||
my $rfixFolder = catfile ($projectPath, $fixed);
|
||||
my $rintFolder = catfile ($projectPath, "RINT", $localCode);
|
||||
my $srcFolder = catfile ($projectPath, "Src");
|
||||
my @files;
|
||||
|
||||
print "Converting resource files:\n";
|
||||
mkdir $roFolder;
|
||||
#Convert the project fixed resources
|
||||
print $projectPath . "RFIX\n";
|
||||
opendir (DIR, catfile ($projectPath, "RFIX"));
|
||||
@files = readdir (DIR);
|
||||
closedir (DIR);
|
||||
foreach $path (@files) {
|
||||
($volume,$directories,$file) = splitpath ($path);
|
||||
DoGRC ($makeResConvTool, $srcFolder, $rfixFolder, $file, $roFolder, $fixed, $platform, catfile ($projectPath, "RFIX/Images") ) if ($file =~ /.*\.grc$/i);
|
||||
}
|
||||
#Convert the project localisable resources
|
||||
opendir (DIR, $rintFolder);
|
||||
@files = readdir (DIR);
|
||||
closedir (DIR);
|
||||
foreach $path (@files) {
|
||||
($volume,$directories,$file) = splitpath ($path);
|
||||
if ((index($file, "Subtype") != -1) || (index($file, "SubType") != -1)) {
|
||||
DoGRC ($makeResConvTool, $srcFolder, $rintFolder, $file, $roFolder, $localCode, $platform, catfile ($projectPath, "GDL", $baseName, $localCode, $os, $platform, "Built-in") ) if ($file =~ /.*\.grc$/i);
|
||||
} else {
|
||||
DoGRC ($makeResConvTool, $srcFolder, $rintFolder, $file, $roFolder, $localCode, $platform, "") if ($file =~ /.*\.grc$/i);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Copy tiff resources
|
||||
|
||||
$roFolder = catfile ($projectPath, $output, $fixed, $platform);
|
||||
opendir (DIR, $roFolder);
|
||||
@files = readdir (DIR);
|
||||
closedir (DIR);
|
||||
mkdir $resTarget;
|
||||
foreach $file (@files) {
|
||||
copy (catfile ($roFolder, $file), $resTarget) if ($file =~ /.*\.tif$/);
|
||||
}
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Copy localisable resource files and merge string resources to "Localizable.strings"
|
||||
|
||||
if (($os eq "Mac") && ($ENV{BIM_VERSION} > 17)) {
|
||||
|
||||
$roFolder = catfile ($projectPath, $output, $localCode, $platform);
|
||||
|
||||
my $localResources = $ENV{LANGUAGE_NAME} . ".lproj";
|
||||
system ("mkdir -p \"" . catfile ($resTarget, $localResources) . "\"") ;
|
||||
my $locStrings = catfile ($resTarget, $localResources, "Localizable.strings");
|
||||
open (OFILE, ">:encoding(UTF-16LE)", $locStrings) or die "Can't create file: $!";
|
||||
my $buf = "\x{feff}";
|
||||
print OFILE $buf;
|
||||
printf "\t=> Localizable resources\n";
|
||||
opendir (DIR, $roFolder);
|
||||
@files = readdir (DIR);
|
||||
closedir (DIR);
|
||||
undef $/; # enable slurp mode
|
||||
foreach $file (@files) {
|
||||
if ($file =~ /.*\.strings$/) {
|
||||
printf "\t\t$file\n";
|
||||
my $stringsFile = catfile ($roFolder, $file);
|
||||
if ((stat ($stringsFile))[7] > 2) { # check file size
|
||||
open (IFILE, "<:encoding(UTF-16LE)", $stringsFile) or die "Can't open file: $!";
|
||||
|
||||
read (IFILE, $buf, 1); # skip byte order mark
|
||||
if ($buf ne "\x{feff}") {
|
||||
print OFILE $buf;
|
||||
}
|
||||
|
||||
my $content = <IFILE>;
|
||||
close (IFILE) or die "Can't close file: $!";
|
||||
|
||||
print OFILE $content;
|
||||
}
|
||||
} else {
|
||||
if ($file =~ /.*\.rsrd$/) {
|
||||
printf "\t\t$file\n";
|
||||
copy (catfile ($roFolder, $file), catfile ($resTarget, $localResources));
|
||||
}
|
||||
}
|
||||
}
|
||||
close (OFILE) or die "Can't close $locStrings: $!";
|
||||
}
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Copy nonlocalisable resource files
|
||||
|
||||
if ($os eq "Mac") {
|
||||
|
||||
$roFolder = catfile ($projectPath, $output, $fixed, $platform);
|
||||
|
||||
my $localResources = $ENV{LANGUAGE_NAME} . ".lproj";
|
||||
system ("mkdir -p \"" . catfile ($resTarget, $localResources) . "\"") ;
|
||||
printf "\t=> Fixed resources\n";
|
||||
opendir (DIR, $roFolder);
|
||||
@files = readdir (DIR);
|
||||
closedir (DIR);
|
||||
foreach $file (@files) {
|
||||
if ($file =~ /.*\.rsrd$/) {
|
||||
printf "\t\t$file\n";
|
||||
copy (catfile ($roFolder, $file), catfile ($resTarget, $localResources));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print "done.\n";
|
||||
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<BIM_VERSION>25</BIM_VERSION>
|
||||
<BIM_PLATFORM>ARCHICAD</BIM_PLATFORM>
|
||||
<BIM_PATH>C:\Program Files\Graphisoft\$(BIM_PLATFORM) $(BIM_VERSION)</BIM_PATH>
|
||||
<HEADER_PATH_1>$(SolutionDir)..\..\ActiveLib</HEADER_PATH_1>
|
||||
<HEADER_PATH_2>$(SolutionDir)</HEADER_PATH_2>
|
||||
<HEADER_PATH_3>$(SolutionDir)..\SpeckleLib\Make.win</HEADER_PATH_3>
|
||||
<HEADER_PATH_4>$(SolutionDir)..\SpeckleLib</HEADER_PATH_4>
|
||||
<HEADER_PATH_5>$(SolutionDir)..\..\$(BIM_PLATFORM) $(BIM_VERSION)\Support</HEADER_PATH_5>
|
||||
<HEADER_PATH_6>$(SolutionDir)</HEADER_PATH_6>
|
||||
<WORD_SIZE>64</WORD_SIZE>
|
||||
<ARCHICAD>1</ARCHICAD>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="BIM_VERSION">
|
||||
<Value>$(BIM_VERSION)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="BIM_PLATFORM">
|
||||
<Value>$(BIM_PLATFORM)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="BIM_PATH">
|
||||
<Value>$(BIM_PATH)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_1">
|
||||
<Value>$(HEADER_PATH_1)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_2">
|
||||
<Value>$(HEADER_PATH_2)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_3">
|
||||
<Value>$(HEADER_PATH_3)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_4">
|
||||
<Value>$(HEADER_PATH_4)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_5">
|
||||
<Value>$(HEADER_PATH_5)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_6">
|
||||
<Value>$(HEADER_PATH_6)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="WORD_SIZE">
|
||||
<Value>$(WORD_SIZE)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="ARCHICAD">
|
||||
<Value>$(ARCHICAD)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<BIM_VERSION>26</BIM_VERSION>
|
||||
<BIM_PLATFORM>ARCHICAD</BIM_PLATFORM>
|
||||
<BIM_PATH>C:\Program Files\Graphisoft\$(BIM_PLATFORM) $(BIM_VERSION)</BIM_PATH>
|
||||
<HEADER_PATH_1>$(SolutionDir)..\..\ActiveLib</HEADER_PATH_1>
|
||||
<HEADER_PATH_2>$(SolutionDir)</HEADER_PATH_2>
|
||||
<HEADER_PATH_3>$(SolutionDir)..\..\$(BIM_PLATFORM) $(BIM_VERSION)\Support\Tools</HEADER_PATH_3>
|
||||
<HEADER_PATH_4>$(SolutionDir)..\SpeckleLib</HEADER_PATH_4>
|
||||
<HEADER_PATH_5>$(SolutionDir)..\..\$(BIM_PLATFORM) $(BIM_VERSION)\Support</HEADER_PATH_5>
|
||||
<HEADER_PATH_6>$(SolutionDir)</HEADER_PATH_6>
|
||||
<WORD_SIZE>64</WORD_SIZE>
|
||||
<ARCHICAD>1</ARCHICAD>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="BIM_VERSION">
|
||||
<Value>$(BIM_VERSION)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="BIM_PLATFORM">
|
||||
<Value>$(BIM_PLATFORM)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="BIM_PATH">
|
||||
<Value>$(BIM_PATH)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_1">
|
||||
<Value>$(HEADER_PATH_1)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_2">
|
||||
<Value>$(HEADER_PATH_2)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_3">
|
||||
<Value>$(HEADER_PATH_3)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_4">
|
||||
<Value>$(HEADER_PATH_4)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_5">
|
||||
<Value>$(HEADER_PATH_5)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_6">
|
||||
<Value>$(HEADER_PATH_6)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="WORD_SIZE">
|
||||
<Value>$(WORD_SIZE)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="ARCHICAD">
|
||||
<Value>$(ARCHICAD)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -7,8 +7,7 @@
|
||||
<BIM_PATH>C:\Program Files\Graphisoft\$(BIM_PLATFORM) $(BIM_VERSION)</BIM_PATH>
|
||||
<HEADER_PATH_1>$(SolutionDir)..\..\ActiveLib</HEADER_PATH_1>
|
||||
<HEADER_PATH_2>$(SolutionDir)</HEADER_PATH_2>
|
||||
<HEADER_PATH_3>
|
||||
</HEADER_PATH_3>
|
||||
<HEADER_PATH_3>$(SolutionDir)..\..\$(BIM_PLATFORM) $(BIM_VERSION)\Support\Tools</HEADER_PATH_3>
|
||||
<HEADER_PATH_4>$(SolutionDir)..\SpeckleLib</HEADER_PATH_4>
|
||||
<HEADER_PATH_5>$(SolutionDir)..\..\$(BIM_PLATFORM) $(BIM_VERSION)\Support</HEADER_PATH_5>
|
||||
<HEADER_PATH_6>$(SolutionDir)</HEADER_PATH_6>
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<BIM_VERSION>28</BIM_VERSION>
|
||||
<BIM_PLATFORM>ARCHICAD</BIM_PLATFORM>
|
||||
<BIM_PATH>C:\Program Files\Graphisoft\$(BIM_PLATFORM) $(BIM_VERSION)</BIM_PATH>
|
||||
<HEADER_PATH_1>$(SolutionDir)..\..\ActiveLib</HEADER_PATH_1>
|
||||
<HEADER_PATH_2>$(SolutionDir)</HEADER_PATH_2>
|
||||
<HEADER_PATH_3>$(SolutionDir)..\..\$(BIM_PLATFORM) $(BIM_VERSION)\Support\Tools</HEADER_PATH_3>
|
||||
<HEADER_PATH_4>$(SolutionDir)..\SpeckleLib</HEADER_PATH_4>
|
||||
<HEADER_PATH_5>$(SolutionDir)..\..\$(BIM_PLATFORM) $(BIM_VERSION)\Support</HEADER_PATH_5>
|
||||
<HEADER_PATH_6>$(SolutionDir)</HEADER_PATH_6>
|
||||
<WORD_SIZE>64</WORD_SIZE>
|
||||
<ARCHICAD>1</ARCHICAD>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="BIM_VERSION">
|
||||
<Value>$(BIM_VERSION)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="BIM_PLATFORM">
|
||||
<Value>$(BIM_PLATFORM)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="BIM_PATH">
|
||||
<Value>$(BIM_PATH)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_1">
|
||||
<Value>$(HEADER_PATH_1)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_2">
|
||||
<Value>$(HEADER_PATH_2)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_3">
|
||||
<Value>$(HEADER_PATH_3)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_4">
|
||||
<Value>$(HEADER_PATH_4)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_5">
|
||||
<Value>$(HEADER_PATH_5)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="HEADER_PATH_6">
|
||||
<Value>$(HEADER_PATH_6)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="WORD_SIZE">
|
||||
<Value>$(WORD_SIZE)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="ARCHICAD">
|
||||
<Value>$(ARCHICAD)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,212 @@
|
||||
import os
|
||||
import sys
|
||||
import platform
|
||||
import subprocess
|
||||
import shutil
|
||||
import codecs
|
||||
import glob
|
||||
|
||||
class ResourceCompiler (object):
|
||||
def __init__ (self, devKitPath, languageCode, sourcesPath, resourcesPath, resourceObjectsPath):
|
||||
self.devKitPath = devKitPath
|
||||
self.languageCode = languageCode
|
||||
self.sourcesPath = sourcesPath
|
||||
self.resourcesPath = resourcesPath
|
||||
self.resourceObjectsPath = resourceObjectsPath
|
||||
self.resConvPath = None
|
||||
|
||||
def IsValid (self):
|
||||
if self.resConvPath == None:
|
||||
return False
|
||||
if not os.path.exists (self.resConvPath):
|
||||
return False
|
||||
return True
|
||||
|
||||
def CompileLocalizedResources (self):
|
||||
locResourcesFolder = os.path.join (self.resourcesPath, 'R' + self.languageCode)
|
||||
grcFiles = self.CollectFilesFromFolderWithExtension (locResourcesFolder, '.grc')
|
||||
for grcFilePath in grcFiles:
|
||||
if not self.CompileResourceFile (grcFilePath):
|
||||
print ('Failed to compile resource: ' + grcFilePath)
|
||||
return False
|
||||
return True
|
||||
|
||||
def CompileFixResources (self):
|
||||
fixResourcesFolder = os.path.join (self.resourcesPath, 'RFIX')
|
||||
grcFiles = self.CollectFilesFromFolderWithExtension (fixResourcesFolder, '.grc')
|
||||
for grcFilePath in grcFiles:
|
||||
if not self.CompileResourceFile (grcFilePath):
|
||||
print ('Failed to compile resource: ' + grcFilePath)
|
||||
return False
|
||||
return True
|
||||
|
||||
def RunResConv (self, platformSign, codepage, inputFilePath, nativeResourceFileExtenion):
|
||||
imageResourcesFolder = os.path.join (self.resourcesPath, 'RFIX', 'Images')
|
||||
inputFileBaseName = os.path.splitext (os.path.split (inputFilePath)[1])[0]
|
||||
nativeResourceFilePath = os.path.join (self.resourceObjectsPath, inputFileBaseName + nativeResourceFileExtenion)
|
||||
result = subprocess.call ([
|
||||
self.resConvPath,
|
||||
'-m', 'r', # resource compile mode
|
||||
'-T', platformSign, # target platform
|
||||
'-q', 'utf8', codepage, # code page conversion
|
||||
'-w', '2', # HiDPI image size list
|
||||
'-p', imageResourcesFolder, # image search path
|
||||
'-i', inputFilePath, # input path
|
||||
'-o', nativeResourceFilePath # output path
|
||||
])
|
||||
if result != 0:
|
||||
return False
|
||||
return True
|
||||
|
||||
def CollectFilesFromFolderWithExtension (self, folderPath, extension):
|
||||
result = []
|
||||
for fileName in os.listdir (folderPath):
|
||||
fileExtension = os.path.splitext (fileName)[1]
|
||||
if fileExtension == extension:
|
||||
fullPath = os.path.join (folderPath, fileName)
|
||||
result.append (fullPath)
|
||||
return result
|
||||
|
||||
def CollectFilesFromFolderRecursive (self, path, name):
|
||||
result = []
|
||||
for folder, subs, files in os.walk (path):
|
||||
for fileName in files + subs:
|
||||
if fileName.lower () == name.lower ():
|
||||
fullPath = os.path.join (folder, fileName)
|
||||
result.append (fullPath)
|
||||
return result
|
||||
|
||||
class WinResourceCompiler (ResourceCompiler):
|
||||
def __init__ (self, devKitPath, languageCode, sourcesPath, resourcesPath, resourceObjectsPath):
|
||||
super (WinResourceCompiler, self).__init__ (devKitPath, languageCode, sourcesPath, resourcesPath, resourceObjectsPath)
|
||||
self.resConvPath = os.path.join (devKitPath, 'Support', 'Tools', 'Win', 'ResConv.exe')
|
||||
|
||||
def CompileResourceFile (self, grcFilePath):
|
||||
grcFileName = os.path.split (grcFilePath)[1]
|
||||
precompiledGrcFilePath = os.path.join (self.resourceObjectsPath, grcFileName + '.i')
|
||||
result = subprocess.call ([
|
||||
'cl',
|
||||
'/nologo',
|
||||
'/X',
|
||||
'/EP',
|
||||
'/P',
|
||||
'/I', os.path.join (self.devKitPath, 'Support', 'Inc'),
|
||||
'/I', os.path.join (self.devKitPath, 'Support', 'Modules', 'DGLib'),
|
||||
'/I', self.sourcesPath,
|
||||
'/DWINDOWS',
|
||||
'/execution-charset:utf-8',
|
||||
'/Fi{}'.format (precompiledGrcFilePath),
|
||||
grcFilePath,
|
||||
])
|
||||
if result != 0:
|
||||
return False
|
||||
return self.RunResConv ('W', '1252', precompiledGrcFilePath, '.rc2')
|
||||
|
||||
def CompileNativeResource (self, resultResourcePath):
|
||||
nativeResourceFiles = self.CollectFilesFromFolderWithExtension (os.path.join (self.resourcesPath, 'RFIX.win'), '.rc2')
|
||||
if not nativeResourceFiles:
|
||||
print ('Native resource file was not found')
|
||||
return False
|
||||
if len (nativeResourceFiles) > 1:
|
||||
print ('More than one native resource file was found')
|
||||
return False
|
||||
result = subprocess.call ([
|
||||
'rc',
|
||||
'/i', os.path.join (self.devKitPath, 'Support', 'Inc'),
|
||||
'/i', os.path.join (self.devKitPath, 'Support', 'Modules', 'DGLib'),
|
||||
'/i', self.sourcesPath,
|
||||
'/i', self.resourceObjectsPath,
|
||||
'/fo', resultResourcePath,
|
||||
nativeResourceFiles[0]
|
||||
])
|
||||
if result != 0:
|
||||
print ('Failed to compile native resource')
|
||||
return False
|
||||
return True
|
||||
|
||||
class MacResourceCompiler (ResourceCompiler):
|
||||
def __init__ (self, devKitPath, languageCode, sourcesPath, resourcesPath, resourceObjectsPath):
|
||||
super (MacResourceCompiler, self).__init__ (devKitPath, languageCode, sourcesPath, resourcesPath, resourceObjectsPath)
|
||||
self.resConvPath = os.path.join (devKitPath, 'Support', 'Tools', 'OSX', 'ResConv')
|
||||
|
||||
def CompileResourceFile (self, grcFilePath):
|
||||
grcFileName = os.path.split (grcFilePath)[1]
|
||||
precompiledGrcFilePath = os.path.join (self.resourceObjectsPath, grcFileName + '.i')
|
||||
result = subprocess.call ([
|
||||
'clang',
|
||||
'-x', 'c++',
|
||||
'-E',
|
||||
'-P',
|
||||
'-Dmacintosh',
|
||||
'-I', os.path.join (self.devKitPath, 'Support', 'Inc'),
|
||||
'-I', os.path.join (self.devKitPath, 'Support', 'Modules', 'DGLib'),
|
||||
'-I', self.sourcesPath,
|
||||
'-o', precompiledGrcFilePath,
|
||||
grcFilePath,
|
||||
])
|
||||
if result != 0:
|
||||
return False
|
||||
return self.RunResConv ('M', 'utf16', precompiledGrcFilePath, '.ro')
|
||||
|
||||
def CompileNativeResource (self, resultResourcePath):
|
||||
resultLocalizedResourcePath = os.path.join (resultResourcePath, 'English.lproj')
|
||||
if not os.path.exists (resultLocalizedResourcePath):
|
||||
os.makedirs (resultLocalizedResourcePath)
|
||||
resultLocalizableStringsPath = os.path.join (resultLocalizedResourcePath, 'Localizable.strings')
|
||||
resultLocalizableStringsFile = codecs.open (resultLocalizableStringsPath, 'w', 'utf-16')
|
||||
for fileName in os.listdir (self.resourceObjectsPath):
|
||||
filePath = os.path.join (self.resourceObjectsPath, fileName)
|
||||
extension = os.path.splitext (fileName)[1]
|
||||
if extension == '.tif':
|
||||
shutil.copy (filePath, resultResourcePath)
|
||||
elif extension == '.rsrd':
|
||||
shutil.copy (filePath, resultLocalizedResourcePath)
|
||||
elif extension == '.strings':
|
||||
stringsFile = codecs.open (filePath, 'r', 'utf-16')
|
||||
resultLocalizableStringsFile.write (stringsFile.read ())
|
||||
stringsFile.close ()
|
||||
resultLocalizableStringsFile.close ()
|
||||
return True
|
||||
|
||||
def Main (argv):
|
||||
if len (argv) != 7:
|
||||
print ('Usage: CompileResources.py <languageCode> <devKitPath> <sourcesPath> <resourcesPath> <resourceObjectsPath> <resultResourcePath>')
|
||||
return 1
|
||||
|
||||
currentDir = os.path.dirname (os.path.abspath (__file__))
|
||||
os.chdir (currentDir)
|
||||
|
||||
languageCode = argv[1]
|
||||
devKitPath = os.path.abspath (argv[2])
|
||||
sourcesPath = os.path.abspath (argv[3])
|
||||
resourcesPath = os.path.abspath (argv[4])
|
||||
resourceObjectsPath = os.path.abspath (argv[5])
|
||||
resultResourcePath = os.path.abspath (argv[6])
|
||||
|
||||
resourceCompiler = None
|
||||
system = platform.system ()
|
||||
if system == 'Windows':
|
||||
resourceCompiler = WinResourceCompiler (devKitPath, languageCode, sourcesPath, resourcesPath, resourceObjectsPath)
|
||||
elif system == 'Darwin':
|
||||
resourceCompiler = MacResourceCompiler (devKitPath, languageCode, sourcesPath, resourcesPath, resourceObjectsPath)
|
||||
|
||||
if resourceCompiler == None:
|
||||
print ('Platform is not supported')
|
||||
return 1
|
||||
|
||||
if not resourceCompiler.IsValid ():
|
||||
print ('Invalid resource compiler')
|
||||
return 1
|
||||
|
||||
if not resourceCompiler.CompileLocalizedResources ():
|
||||
return 1
|
||||
|
||||
if not resourceCompiler.CompileFixResources ():
|
||||
return 1
|
||||
|
||||
if not resourceCompiler.CompileNativeResource (resultResourcePath):
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
sys.exit (Main (sys.argv))
|
||||
@@ -3,7 +3,7 @@ REM AC Resource build script
|
||||
ECHO "Building AC Resources"
|
||||
|
||||
if not exist "%RES_OUTPUT%" MD "%RES_OUTPUT%"
|
||||
python "%HEADER_PATH_5%\Tools\CompileResources.py" "INT" "%HEADER_PATH_5%\.." "%HEADER_PATH_6%\Connector" "%SYMROOT%\" "%RES_OUTPUT%" "%RES_SOURCE%\Speckle Connector.apx.mui"
|
||||
python "%HEADER_PATH_5%\Tools\CompileResources.py" "INT" "%HEADER_PATH_5%\.." "%HEADER_PATH_4%\Speckle" "%HEADER_PATH_4%" "%RES_OUTPUT%" "%RES_SOURCE%\Speckle Connector.apx.mui"
|
||||
python "%HEADER_PATH_3%\CompileResources.py" "INT" "%HEADER_PATH_5%\.." "%HEADER_PATH_6%\Connector" "%SYMROOT%\" "%RES_OUTPUT%" "%RES_SOURCE%\Speckle Connector.apx.mui"
|
||||
python "%HEADER_PATH_3%\CompileResources.py" "INT" "%HEADER_PATH_5%\.." "%HEADER_PATH_4%\Speckle" "%HEADER_PATH_4%" "%RES_OUTPUT%" "%RES_SOURCE%\Speckle Connector.apx.mui"
|
||||
|
||||
ECHO "Finished AC Resource"
|
||||
|
||||
@@ -2,4 +2,9 @@
|
||||
/* [ 1] */ "Untitled"
|
||||
/* [ 2] */ "Unknown"
|
||||
/* [ 3] */ "Converting elements"
|
||||
/* [ 4] */ "Notification"
|
||||
/* [ 5] */ "Confirm"
|
||||
/* [ 6] */ "Yes"
|
||||
/* [ 7] */ "No"
|
||||
/* [ 8] */ "OK"
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace speckle::database {
|
||||
|
||||
///Attribute database engine declaration
|
||||
class BIMAttributeDatabase::Engine : public AttributeDatabaseEngine {
|
||||
using base = ArchicadAttributeDBaseEngine;
|
||||
using base = AttributeDatabaseEngine;
|
||||
using base::base;
|
||||
};
|
||||
|
||||
@@ -102,7 +102,7 @@ Vector<Attribute> BIMAttributeDatabase::getAttributes() const {
|
||||
|
||||
attribute: The attribute to write
|
||||
--------------------------------------------------------------------*/
|
||||
void BIMAttributeDatabase::write(const Attribute& attribute) const {
|
||||
void BIMAttributeDatabase::write(Attribute& attribute) const {
|
||||
m_store->write(attribute);
|
||||
} //BIMAttributeDatabase::write
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace speckle::database {
|
||||
Write an attribute to storage
|
||||
@param attribute The attribute to write
|
||||
*/
|
||||
void write(const record::attribute::Attribute& attribute) const;
|
||||
void write(record::attribute::Attribute& attribute) const;
|
||||
/*!
|
||||
Erase an attribute
|
||||
@param attributeID The ID of the attribute to erase
|
||||
|
||||
@@ -148,14 +148,15 @@ void BIMElementDatabase::clearSelection() const {
|
||||
Find a filtered list of objects
|
||||
|
||||
filter: The object filter (nullptr = find all objects)
|
||||
subset: A subset of the database content to search (specified by record ID)
|
||||
tableID: Optional table ID (defaults to the first table)
|
||||
documentID: Optional document ID (filter for this document only - nullopt = all objects)
|
||||
|
||||
return: A list containing IDs of found elements (empty if none found)
|
||||
--------------------------------------------------------------------*/
|
||||
BIMRecordIDList BIMElementDatabase::findElements(const Filter& filter, std::optional<BIMRecordID> tableID,
|
||||
std::optional<BIMRecordID> documentID) const {
|
||||
return m_engine->findObjects(filter, tableID, documentID);
|
||||
BIMRecordIDList BIMElementDatabase::findElements(const Filter* filter, const BIMRecordIDList& subset, std::optional<BIMRecordID> tableID,
|
||||
std::optional<BIMRecordID> documentID) const {
|
||||
return m_engine->findObjects(filter, subset, tableID, documentID);
|
||||
} //BIMElementDatabase::findElements
|
||||
|
||||
|
||||
@@ -212,7 +213,7 @@ Memo::Unique BIMElementDatabase::getMemo(const BIMRecordID& elementID, Part::fil
|
||||
|
||||
element: The element to write
|
||||
--------------------------------------------------------------------*/
|
||||
void BIMElementDatabase::write(const Element& element) const {
|
||||
void BIMElementDatabase::write(Element& element) const {
|
||||
m_store->write(element);
|
||||
} //BIMElementDatabase::write
|
||||
|
||||
|
||||
@@ -74,12 +74,13 @@ namespace speckle::database {
|
||||
/*!
|
||||
Find a filtered list of objects
|
||||
@param filter The object filter (nullptr = find all objects)
|
||||
@param subset A subset of the database content to search (specified by record ID)
|
||||
@param tableID Optional table ID (defaults to the first table)
|
||||
@param documentID Optional document ID (filter for this document only - nullopt = all objects)
|
||||
@return A list containing IDs of found elements (empty if none found)
|
||||
*/
|
||||
BIMRecordIDList findElements(const Filter& filter = nullptr, std::optional<BIMRecordID> tableID = std::nullopt,
|
||||
std::optional<BIMRecordID> documentID = std::nullopt) const;
|
||||
BIMRecordIDList findElements(const Filter* filter = nullptr, const BIMRecordIDList& subset = {},
|
||||
std::optional<BIMRecordID> tableID = std::nullopt, std::optional<BIMRecordID> documentID = std::nullopt) const;
|
||||
/*!
|
||||
Get a specified element
|
||||
@param elementID The ID of the target element
|
||||
@@ -114,7 +115,7 @@ namespace speckle::database {
|
||||
Write an element to storage
|
||||
@param element The element to write
|
||||
*/
|
||||
void write(const record::element::Element& element) const;
|
||||
void write(record::element::Element& element) const;
|
||||
/*!
|
||||
Erase an element
|
||||
@param elementID The ID of the element to erase
|
||||
|
||||
@@ -114,7 +114,7 @@ Vector<Group> BIMGroupDatabase::getGroups() const {
|
||||
|
||||
group: The group to write
|
||||
--------------------------------------------------------------------*/
|
||||
void BIMGroupDatabase::write(const Group& group) const {
|
||||
void BIMGroupDatabase::write(Group& group) const {
|
||||
m_store->write(group);
|
||||
} //BIMGroupDatabase::write
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace speckle::database {
|
||||
Write an group to storage
|
||||
@param group The group to write
|
||||
*/
|
||||
void write(const record::property::Group& group) const;
|
||||
void write(record::property::Group& group) const;
|
||||
/*!
|
||||
Erase an group
|
||||
@param groupID The ID of the group to erase
|
||||
|
||||
@@ -126,7 +126,7 @@ std::vector<std::shared_ptr<Template>> BIMPropertyDatabase::findTemplatesByClass
|
||||
|
||||
property: The property to write
|
||||
--------------------------------------------------------------------*/
|
||||
void BIMPropertyDatabase::write(const Template& property) const {
|
||||
void BIMPropertyDatabase::write(Template& property) const {
|
||||
m_store->write(property);
|
||||
} //BIMPropertyDatabase::write
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ namespace speckle::database {
|
||||
Write an property to storage
|
||||
@param property The property to write
|
||||
*/
|
||||
void write(const record::property::Template& property) const;
|
||||
void write(record::property::Template& property) const;
|
||||
/*!
|
||||
Erase an property
|
||||
@param propertyID The ID of the property to erase
|
||||
|
||||
@@ -13,9 +13,28 @@ using namespace speckle::utility;
|
||||
BIMLink::BIMLink(const API_Neig& selected, const BIMRecordID& tableID) : base{Guid{selected.guid}, tableID} {
|
||||
//More info should be extracted from API_Neig in future (as required) - extract into link settings, e.g. selection target etc
|
||||
} //Link::Link
|
||||
#endif
|
||||
|
||||
BIMLinkList::BIMLinkList(const ElementIDList& elementIDList) {
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Constructor
|
||||
|
||||
elementIDList: BIM record IDs to populate the links
|
||||
--------------------------------------------------------------------*/
|
||||
BIMLinkList::BIMLinkList(const BIMRecordIDList& elementIDList) {
|
||||
for (const auto& id : elementIDList)
|
||||
push_back(id);
|
||||
}
|
||||
#endif
|
||||
} //BIMLinkList::BIMLinkList
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Conversion operator
|
||||
|
||||
return: A list of BIM record IDs from this list
|
||||
--------------------------------------------------------------------*/
|
||||
BIMLinkList::operator BIMRecordIDList() const {
|
||||
BIMRecordIDList result;
|
||||
for (const auto& link : *this)
|
||||
result.insert(BIMRecordID{link});
|
||||
return result;
|
||||
} //BIMLinkList::operator BIMRecordIDList
|
||||
|
||||
@@ -41,18 +41,35 @@ namespace speckle::database {
|
||||
#endif
|
||||
};
|
||||
|
||||
//A list of links to BIM records
|
||||
//using BIMLinkList = std::vector<BIMLink>;
|
||||
/*!
|
||||
A list of links to BIM records
|
||||
*/
|
||||
class BIMLinkList : public std::vector<BIMLink> {
|
||||
public:
|
||||
|
||||
|
||||
// MARK: - Types
|
||||
|
||||
using base = std::vector<BIMLink>;
|
||||
|
||||
|
||||
// MARK: - Constructors
|
||||
|
||||
using base::base;
|
||||
|
||||
BIMLinkList() = default;
|
||||
|
||||
BIMLinkList(const ElementIDList& elementIDList);
|
||||
/*!
|
||||
Constructor
|
||||
@param elementIDList BIM record IDs to populate the links
|
||||
*/
|
||||
BIMLinkList(const BIMRecordIDList& elementIDList);
|
||||
|
||||
// MARK: - Operators
|
||||
|
||||
/*!
|
||||
Conversion operator
|
||||
@return A list of BIM record IDs from this list
|
||||
*/
|
||||
operator BIMRecordIDList() const;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -15,12 +15,6 @@ namespace speckle::database {
|
||||
|
||||
//A list of record IDs
|
||||
using RecordIDList = std::vector<RecordID>;
|
||||
|
||||
//BIM element record identifier
|
||||
using ElementID = speckle::utility::Guid;
|
||||
|
||||
//A list of element IDs
|
||||
using ElementIDList = std::vector<ElementID>;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace {
|
||||
|
||||
return: An equivalent status code
|
||||
--------------------------------------------------------------------*/
|
||||
ArchicadDBaseCore::Status convertArchicadError(long acErrorCode) {
|
||||
ArchicadDBaseCore::Status convertArchicadError(GSErrCode acErrorCode) {
|
||||
using enum ArchicadDBaseCore::Status;
|
||||
switch (acErrorCode) {
|
||||
case NoError:
|
||||
@@ -92,4 +92,16 @@ std::error_code ArchicadDBaseCore::makeError(ArchicadDBaseCore::Status code) {
|
||||
return std::error_code(static_cast<int>(code), instance);
|
||||
} //ArchicadDBaseCore::makeError
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Make an error code for ArchicadElementDBase processing
|
||||
|
||||
code: An Archicad API error code
|
||||
|
||||
return: An STL error code
|
||||
--------------------------------------------------------------------*/
|
||||
std::error_code ArchicadDBaseCore::makeError(GSErrCode code) {
|
||||
return makeError(convertArchicadError(code));
|
||||
} //ArchicadDBaseCore::makeError
|
||||
|
||||
#endif
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
#include "Active/Utility/NameID.h"
|
||||
#include "Speckle/Event/Subscriber/ProjectSubscriber.h"
|
||||
|
||||
#include <Definitions.hpp>
|
||||
|
||||
namespace speckle::database {
|
||||
|
||||
using ArchicadDBaseSchema = active::database::DBaseSchema<>;
|
||||
@@ -35,9 +37,16 @@ namespace speckle::database {
|
||||
|
||||
/*!
|
||||
Make an error code for ArchicadElementDBase processing
|
||||
@param code An ArchicadDBaseCore status code
|
||||
@return An STL error code
|
||||
*/
|
||||
static std::error_code makeError(ArchicadDBaseCore::Status code);
|
||||
/*!
|
||||
Make an error code for ArchicadElementDBase processing
|
||||
@param code An Archicad API error code
|
||||
@return An STL error code
|
||||
*/
|
||||
static std::error_code makeError(GSErrCode code);
|
||||
|
||||
// MARK: - Constructors
|
||||
|
||||
|
||||
+31
-4
@@ -16,8 +16,10 @@
|
||||
#include "Speckle/Utility/String.h"
|
||||
|
||||
#include <ACAPinc.h>
|
||||
#include <ACAPI_Database.h>
|
||||
#include <BM.hpp>
|
||||
#ifdef ServerMainVers_2700
|
||||
#include <ACAPI_Database.h>
|
||||
#endif
|
||||
|
||||
using namespace active::event;
|
||||
using namespace active::setting;
|
||||
@@ -51,7 +53,11 @@ namespace speckle::database {
|
||||
clear();
|
||||
API_StoryInfo storeyInfo;
|
||||
active::utility::Memory::erase(storeyInfo);
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_ProjectSetting_GetStorySettings(&storeyInfo);
|
||||
#else
|
||||
ACAPI_Environment(APIEnv_GetStorySettingsID, &storeyInfo, (void*) APIElemMask_FromFloorplan);
|
||||
#endif
|
||||
auto storeyCount = storeyInfo.lastStory - storeyInfo.firstStory + 1;
|
||||
for (auto i = 0; i < storeyCount; ++i)
|
||||
push_back((*storeyInfo.data)[i]);
|
||||
@@ -111,7 +117,11 @@ namespace {
|
||||
std::optional<API_Attribute> getAPIData(const BIMRecordID& ID, std::optional<BIMRecordID> tableID) {
|
||||
API_Attribute attribute;
|
||||
active::utility::Memory::erase(attribute);
|
||||
#ifdef ServerMainVers_2700
|
||||
attribute.header.index = ACAPI_CreateAttributeIndex(static_cast<int32_t>(Guid::toInt(ID)));
|
||||
#else
|
||||
attribute.header.index = static_cast<int32_t>(Guid::toInt(ID));
|
||||
#endif
|
||||
attribute.header.typeID = static_cast<API_AttrTypeID>(Guid::toInt(*tableID));
|
||||
if (ACAPI_Attribute_Get(&attribute) != NoError)
|
||||
return std::nullopt;
|
||||
@@ -211,9 +221,26 @@ active::container::Vector<Attribute> ArchicadAttributeDBaseEngine::getObjects(co
|
||||
tableID: Optional table ID (defaults to the floor plan)
|
||||
documentID: Optional document ID (when the object is bound to a specific document)
|
||||
--------------------------------------------------------------------*/
|
||||
void ArchicadAttributeDBaseEngine::write(const Attribute& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID,
|
||||
std::optional<BIMRecordID> tableID, std::optional<BIMRecordID> documentID) const {
|
||||
//TODO: Implement
|
||||
void ArchicadAttributeDBaseEngine::write(Attribute& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID,
|
||||
std::optional<BIMRecordID> tableID, std::optional<BIMRecordID> documentID) const {
|
||||
auto attributeData = object.getDataOut();
|
||||
//An record with no index has not been written (and needs to be created in the dbase)
|
||||
GSErrCode status = NoError;
|
||||
#ifdef ServerMainVers_2700
|
||||
if (attributeData.header.index.GenerateHashValue() == 0)
|
||||
#else
|
||||
if (attributeData.header.index == 0)
|
||||
#endif
|
||||
{
|
||||
status = ACAPI_Attribute_CreateExt(&attributeData, nullptr); //TODO: Handle attribute extended definition
|
||||
//Archicad assigns record guids - we need to capture this for the caller
|
||||
object.setBIMID(attributeData.header.guid);
|
||||
} else
|
||||
status = ACAPI_Attribute_ModifyExt(&attributeData, nullptr);
|
||||
if (status != NoError)
|
||||
throw std::system_error(makeError(status));
|
||||
//Archicad modifies record headers on write - need to capture this data for the caller
|
||||
object.getHead() = attributeData.header;
|
||||
} //ArchicadAttributeDBaseEngine::write
|
||||
|
||||
|
||||
|
||||
+4
-2
@@ -55,11 +55,13 @@ namespace speckle::database {
|
||||
/*!
|
||||
Find a filtered list of objects
|
||||
@param filter The object filter (nullptr = find all objects)
|
||||
@param subset A subset of the database content to search (specified by record ID)
|
||||
@param tableID Optional table ID (defaults to the first table)
|
||||
@param documentID Optional document ID (filter for this document only - nullopt = all objects)
|
||||
@return A list containing IDs of found elements (empty if none found)
|
||||
*/
|
||||
virtual ObjIDList findObjects(const Filter& filter = nullptr, std::optional<BIMRecordID> tableID = std::nullopt,
|
||||
virtual ObjIDList findObjects(const Filter* filter = nullptr, const ObjIDList& subset = {},
|
||||
std::optional<BIMRecordID> tableID = std::nullopt,
|
||||
std::optional<BIMRecordID> documentID = std::nullopt) const override { return {}; } //Implement when required
|
||||
/*!
|
||||
Get an object by ID
|
||||
@@ -101,7 +103,7 @@ namespace speckle::database {
|
||||
@param tableID Optional table ID (defaults to the floor plan)
|
||||
@param documentID Optional document ID (when the object is bound to a specific document)
|
||||
*/
|
||||
void write(const Attribute& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID = std::nullopt,
|
||||
void write(Attribute& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID = std::nullopt,
|
||||
std::optional<BIMRecordID> tableID = std::nullopt, std::optional<BIMRecordID> documentID = std::nullopt) const override;
|
||||
/*!
|
||||
Erase an object by index
|
||||
|
||||
+90
-14
@@ -21,13 +21,19 @@
|
||||
#include "Speckle/Record/Element/Roof.h"
|
||||
#include "Speckle/Record/Element/Shell.h"
|
||||
#include "Speckle/Record/Element/Slab.h"
|
||||
#include "Speckle/Record/Element/Stair.h"
|
||||
#include "Speckle/Record/Element/StairRiser.h"
|
||||
#include "Speckle/Record/Element/StairStructure.h"
|
||||
#include "Speckle/Record/Element/StairTread.h"
|
||||
#include "Speckle/Record/Element/Wall.h"
|
||||
#include "Speckle/Utility/Guid.h"
|
||||
#include "Speckle/Utility/String.h"
|
||||
|
||||
#include <ACAPinc.h>
|
||||
#include <ACAPI_Database.h>
|
||||
#include <BM.hpp>
|
||||
#ifdef ServerMainVers_2700
|
||||
#include <ACAPI_Database.h>
|
||||
#endif
|
||||
|
||||
using namespace active::event;
|
||||
using namespace active::setting;
|
||||
@@ -59,7 +65,11 @@ namespace {
|
||||
dbaseInfo.typeID = APIWind_3DModelID;
|
||||
else
|
||||
dbaseInfo.databaseUnId.elemSetId = tableID;
|
||||
#ifdef ServerMainVers_2700
|
||||
if (auto err = ACAPI_Window_GetDatabaseInfo(&dbaseInfo); err == NoError)
|
||||
#else
|
||||
if (auto err = ACAPI_Database(APIDb_GetDatabaseInfoID, &dbaseInfo, 0, 0); err == NoError)
|
||||
#endif
|
||||
return dbaseInfo;
|
||||
return std::nullopt;
|
||||
} //getTableInfo
|
||||
@@ -78,10 +88,29 @@ namespace {
|
||||
auto dbaseInfo = getTableInfo(tableID);
|
||||
if (!dbaseInfo)
|
||||
return false;
|
||||
#ifdef ServerMainVers_2700
|
||||
return ACAPI_Database_ChangeCurrentDatabase(&*dbaseInfo) == NoError;
|
||||
#else
|
||||
return ACAPI_Database(APIDb_ChangeCurrentDatabaseID, &dbaseInfo, 0, 0) == NoError;
|
||||
#endif
|
||||
} //setActiveTable
|
||||
|
||||
|
||||
/*!
|
||||
Find indices of all elements in an Archicad database. NB: It is assumed that the active database has already been set
|
||||
@return A list of all element IDs in the active database
|
||||
*/
|
||||
BIMRecordIDList getAllElementIDs() {
|
||||
GS::Array<API_Guid> found;
|
||||
if ((ACAPI_Element_GetElemList({}, &found) != NoError) || found.IsEmpty())
|
||||
return {};
|
||||
BIMRecordIDList result;
|
||||
for (const auto& item : found)
|
||||
result.insert(item);
|
||||
return result;
|
||||
} //getAllElementIDs
|
||||
|
||||
|
||||
/*!
|
||||
Make a new element object
|
||||
@param elementData The API element representation
|
||||
@@ -89,7 +118,11 @@ namespace {
|
||||
@return A new element object (nullptr on failure)
|
||||
*/
|
||||
Element::Unique makeElement(const API_Element& elementData, const BIMRecordID& tableID) {
|
||||
#ifdef ServerMainVers_2600
|
||||
switch (elementData.header.type.typeID) {
|
||||
#else
|
||||
switch (elementData.header.typeID) {
|
||||
#endif
|
||||
case API_ColumnID:
|
||||
return std::make_unique<Column>(elementData, tableID);
|
||||
case API_ColumnSegmentID:
|
||||
@@ -102,17 +135,29 @@ namespace {
|
||||
return std::make_unique<Mesh>(elementData, tableID);
|
||||
case API_MorphID:
|
||||
return std::make_unique<Morph>(elementData, tableID);
|
||||
case API_RiserID:
|
||||
return std::make_unique<StairRiser>(elementData, tableID);
|
||||
case API_StairStructureID:
|
||||
return std::make_unique<StairStructure>(elementData, tableID);
|
||||
case API_TreadID:
|
||||
return std::make_unique<StairTread>(elementData, tableID);
|
||||
case API_RoofID:
|
||||
return std::make_unique<Roof>(elementData, tableID);
|
||||
case API_ShellID:
|
||||
return std::make_unique<Shell>(elementData, tableID);
|
||||
case API_SlabID:
|
||||
return std::make_unique<Slab>(elementData, tableID);
|
||||
case API_StairID:
|
||||
return std::make_unique<Stair>(elementData, tableID);
|
||||
case API_WallID:
|
||||
return std::make_unique<Wall>(elementData, tableID);
|
||||
case API_ObjectID:
|
||||
// POC: change this case once we are ready to convert Grid Elements
|
||||
#ifdef ServerMainVers_2600
|
||||
if (elementData.header.type.variationID == APIVarId_GridElement)
|
||||
#else
|
||||
if (elementData.header.variationID == APIVarId_GridElement)
|
||||
#endif
|
||||
return nullptr;
|
||||
default:
|
||||
return std::make_unique<GenericModelElement>(elementData, tableID);
|
||||
@@ -128,7 +173,12 @@ namespace {
|
||||
std::optional<BIMRecordID> ArchicadElementDBaseEngine::getActiveTable() {
|
||||
API_WindowInfo dbaseInfo;
|
||||
active::utility::Memory::erase(dbaseInfo);
|
||||
if (auto err = ACAPI_Database_GetCurrentDatabase(&dbaseInfo); err == NoError) {
|
||||
#ifdef ServerMainVers_2700
|
||||
if (auto err = ACAPI_Database_GetCurrentDatabase(&dbaseInfo); err == NoError)
|
||||
#else
|
||||
if (auto err = ACAPI_Database(APIDb_GetCurrentDatabaseID, &dbaseInfo); err == NoError)
|
||||
#endif
|
||||
{
|
||||
if (dbaseInfo.typeID == APIWind_FloorPlanID)
|
||||
return primary2DViewID;
|
||||
else if (dbaseInfo.typeID == APIWind_3DModelID)
|
||||
@@ -152,7 +202,11 @@ void ArchicadElementDBaseEngine::bringViewToFront(BIMRecordID tableID) const {
|
||||
windowInfo.typeID = dbaseInfo->typeID;
|
||||
if ((windowInfo.typeID != APIWind_FloorPlanID) && (windowInfo.typeID != APIWind_3DModelID))
|
||||
windowInfo.databaseUnId = dbaseInfo->databaseUnId;
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_Window_ChangeWindow(&windowInfo);
|
||||
#else
|
||||
ACAPI_Automate(APIDo_ChangeWindowID, &windowInfo);
|
||||
#endif
|
||||
} //ArchicadElementDBaseEngine::bringViewToFront
|
||||
|
||||
|
||||
@@ -186,7 +240,11 @@ void ArchicadElementDBaseEngine::setSelection(const BIMLinkList& elementIDs) con
|
||||
API_Neig neig(elemID);
|
||||
selNeigs.Push(neig);
|
||||
}
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_Selection_Select(selNeigs, true);
|
||||
#else
|
||||
ACAPI_Element_Select(selNeigs, true);
|
||||
#endif
|
||||
} //ArchicadElementDBaseEngine::setSelection
|
||||
|
||||
|
||||
@@ -194,7 +252,11 @@ void ArchicadElementDBaseEngine::setSelection(const BIMLinkList& elementIDs) con
|
||||
Clear the element selection
|
||||
--------------------------------------------------------------------*/
|
||||
void ArchicadElementDBaseEngine::clearSelection() const {
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_Selection_DeselectAll();
|
||||
#else
|
||||
ACAPI_Element_DeselectAll();
|
||||
#endif
|
||||
} //ArchicadElementDBaseEngine::clearSelection
|
||||
|
||||
|
||||
@@ -240,28 +302,38 @@ void ArchicadElementDBaseEngine::setDefaultTable(const BIMRecordID& tableID) con
|
||||
Find a filtered list of objects
|
||||
|
||||
filter: The object filter (nullptr = find all objects)
|
||||
subset: A subset of the database content to search (specified by record ID)
|
||||
tableID: Optional table ID (defaults to the first table)
|
||||
documentID: Optional document ID (filter for this document only - nullopt = all objects)
|
||||
|
||||
return: A list containing IDs of found elements (empty if none found)
|
||||
--------------------------------------------------------------------*/
|
||||
BIMRecordIDList ArchicadElementDBaseEngine::findObjects(const Filter& filter, std::optional<BIMRecordID> tableID,
|
||||
std::optional<BIMRecordID> documentID) const {
|
||||
BIMRecordIDList ArchicadElementDBaseEngine::findObjects(const Filter* filter, const BIMRecordIDList& subset, std::optional<BIMRecordID> tableID,
|
||||
std::optional<BIMRecordID> documentID) const {
|
||||
//Switch to the target table (when specified). Otherwise the currently active table will be used
|
||||
if (tableID)
|
||||
setActiveTable(*tableID);
|
||||
//First check for no filter (in which case we return all objects)
|
||||
if (filter == nullptr) {
|
||||
GS::Array<API_Guid> found;
|
||||
if ((ACAPI_Element_GetElemList({}, &found) != NoError) || found.IsEmpty())
|
||||
return {};
|
||||
BIMRecordIDList result;
|
||||
for (const auto& item : found)
|
||||
result.insert(item);
|
||||
return result;
|
||||
if (!subset.empty())
|
||||
return subset;
|
||||
return getAllElementIDs();
|
||||
}
|
||||
//Implement other filtering as required - ideally identify characteristics supported by API, e.g. filter by type/renovation etc
|
||||
return {};
|
||||
BIMRecordIDList buffer, result;
|
||||
//Pick either all records or the specified subset
|
||||
auto source = ⊂
|
||||
if (subset.empty()) {
|
||||
buffer = getAllElementIDs();
|
||||
source = &buffer;
|
||||
}
|
||||
//Run the filter on the specified elements
|
||||
for (const auto& elemID : *source) {
|
||||
if (auto element = getObject(elemID); element) {
|
||||
if ((*filter)(*element))
|
||||
result.insert(elemID);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
} //ArchicadElementDBaseEngine::findObjects
|
||||
|
||||
|
||||
@@ -299,7 +371,11 @@ std::unique_ptr<Element> ArchicadElementDBaseEngine::getObject(const BIMRecordID
|
||||
API_Element element;
|
||||
active::utility::Memory::erase(element);
|
||||
API_Guid guid{ID.operator API_Guid()};
|
||||
#ifdef ServerMainVers_2700
|
||||
if (ACAPI_Element_GetElementFromAnywhere(&guid, &element) != NoError)
|
||||
#else
|
||||
if (ACAPI_Database(APIDb_GetElementFromAnywhereID, &guid, &element, 0) != NoError)
|
||||
#endif
|
||||
return nullptr;
|
||||
return makeElement(element, *tableID);
|
||||
} //ArchicadElementDBaseEngine::getObject
|
||||
@@ -372,7 +448,7 @@ active::container::Vector<Element> ArchicadElementDBaseEngine::getObjects(const
|
||||
tableID: Optional table ID (defaults to the floor plan)
|
||||
documentID: Optional document ID (when the object is bound to a specific document)
|
||||
--------------------------------------------------------------------*/
|
||||
void ArchicadElementDBaseEngine::write(const Element& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID,
|
||||
void ArchicadElementDBaseEngine::write(Element& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID,
|
||||
std::optional<BIMRecordID> tableID, std::optional<BIMRecordID> documentID) const {
|
||||
|
||||
} //ArchicadElementDBaseEngine::write
|
||||
|
||||
+5
-3
@@ -92,12 +92,14 @@ namespace speckle::database {
|
||||
/*!
|
||||
Find a filtered list of objects
|
||||
@param filter The object filter (nullptr = find all objects)
|
||||
@param subset A subset of the database content to search (specified by record ID)
|
||||
@param tableID Optional table ID (defaults to the first table)
|
||||
@param documentID Optional document ID (filter for this document only - nullopt = all objects)
|
||||
@return A list containing IDs of found elements (empty if none found)
|
||||
*/
|
||||
virtual BIMRecordIDList findObjects(const Filter& filter = nullptr, std::optional<BIMRecordID> tableID = std::nullopt,
|
||||
std::optional<BIMRecordID> documentID = std::nullopt) const override;
|
||||
virtual BIMRecordIDList findObjects(const Filter* filter = nullptr, const BIMRecordIDList& subset = {},
|
||||
std::optional<BIMRecordID> tableID = std::nullopt,
|
||||
std::optional<BIMRecordID> documentID = std::nullopt) const override;
|
||||
/*!
|
||||
Get an object by index
|
||||
@param objID The object ID
|
||||
@@ -138,7 +140,7 @@ namespace speckle::database {
|
||||
@param tableID Optional table ID (defaults to the floor plan)
|
||||
@param documentID Optional document ID (when the object is bound to a specific document)
|
||||
*/
|
||||
void write(const Element& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID = std::nullopt,
|
||||
void write(Element& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID = std::nullopt,
|
||||
std::optional<BIMRecordID> tableID = std::nullopt, std::optional<BIMRecordID> documentID = std::nullopt) const override;
|
||||
/*!
|
||||
Erase an object by index
|
||||
|
||||
+1
-2
@@ -12,7 +12,6 @@
|
||||
#include "Speckle/Utility/String.h"
|
||||
|
||||
#include <ACAPinc.h>
|
||||
#include <ACAPI_Database.h>
|
||||
|
||||
using namespace active::event;
|
||||
using namespace active::setting;
|
||||
@@ -155,7 +154,7 @@ active::container::Vector<Group> ArchicadGroupDBaseEngine::getObjects(const Filt
|
||||
tableID: Optional table ID (defaults to the floor plan)
|
||||
documentID: Optional document ID (when the object is bound to a specific document)
|
||||
--------------------------------------------------------------------*/
|
||||
void ArchicadGroupDBaseEngine::write(const Group& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID,
|
||||
void ArchicadGroupDBaseEngine::write(Group& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID,
|
||||
std::optional<BIMRecordID> tableID, std::optional<BIMRecordID> documentID) const {
|
||||
//TODO: Implement
|
||||
} //ArchicadGroupDBaseEngine::write
|
||||
|
||||
+4
-2
@@ -50,11 +50,13 @@ namespace speckle::database {
|
||||
/*!
|
||||
Find a filtered list of objects
|
||||
@param filter The object filter (nullptr = find all objects)
|
||||
@param subset A subset of the database content to search (specified by record ID)
|
||||
@param tableID Optional table ID (defaults to the first table)
|
||||
@param documentID Optional document ID (filter for this document only - nullopt = all objects)
|
||||
@return A list containing IDs of found elements (empty if none found)
|
||||
*/
|
||||
virtual ObjIDList findObjects(const Filter& filter = nullptr, std::optional<BIMRecordID> tableID = std::nullopt,
|
||||
virtual ObjIDList findObjects(const Filter* filter = nullptr, const ObjIDList& subset = {},
|
||||
std::optional<BIMRecordID> tableID = std::nullopt,
|
||||
std::optional<BIMRecordID> documentID = std::nullopt) const override { return {}; } //Implement when required
|
||||
/*!
|
||||
Get an object by ID
|
||||
@@ -96,7 +98,7 @@ namespace speckle::database {
|
||||
@param tableID Optional table ID (default selected based on record type)
|
||||
@param documentID Optional document ID (when the object is bound to a specific document)
|
||||
*/
|
||||
void write(const Group& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID = std::nullopt,
|
||||
void write(Group& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID = std::nullopt,
|
||||
std::optional<BIMRecordID> tableID = std::nullopt, std::optional<BIMRecordID> documentID = std::nullopt) const override;
|
||||
/*!
|
||||
Erase an object by index
|
||||
|
||||
+1
-2
@@ -12,7 +12,6 @@
|
||||
#include "Speckle/Utility/String.h"
|
||||
|
||||
#include <ACAPinc.h>
|
||||
#include <ACAPI_Database.h>
|
||||
#include <BM.hpp>
|
||||
|
||||
using namespace active::event;
|
||||
@@ -179,7 +178,7 @@ active::container::Vector<Template> ArchicadPropertyDBaseEngine::getObjects(cons
|
||||
tableID: Optional table ID (defaults to the floor plan)
|
||||
documentID: Optional document ID (when the object is bound to a specific document)
|
||||
--------------------------------------------------------------------*/
|
||||
void ArchicadPropertyDBaseEngine::write(const Template& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID,
|
||||
void ArchicadPropertyDBaseEngine::write(Template& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID,
|
||||
std::optional<BIMRecordID> tableID, std::optional<BIMRecordID> documentID) const {
|
||||
//TODO: Implement
|
||||
} //ArchicadPropertyDBaseEngine::write
|
||||
|
||||
+3
-2
@@ -51,11 +51,12 @@ namespace speckle::database {
|
||||
/*!
|
||||
Find a filtered list of objects
|
||||
@param filter The object filter (nullptr = find all objects)
|
||||
@param subset A subset of the database content to search (specified by record ID)
|
||||
@param tableID Optional table ID (defaults to the first table)
|
||||
@param documentID Optional document ID (filter for this document only - nullopt = all objects)
|
||||
@return A list containing IDs of found elements (empty if none found)
|
||||
*/
|
||||
virtual ObjIDList findObjects(const Filter& filter = nullptr, std::optional<BIMRecordID> tableID = std::nullopt,
|
||||
virtual ObjIDList findObjects(const Filter* filter = nullptr, const ObjIDList& subset = {}, std::optional<BIMRecordID> tableID = std::nullopt,
|
||||
std::optional<BIMRecordID> documentID = std::nullopt) const override { return {}; } //Implement when required
|
||||
/*!
|
||||
Find all property templates linked to specified classifications
|
||||
@@ -103,7 +104,7 @@ namespace speckle::database {
|
||||
@param tableID Optional table ID (default selected based on record type)
|
||||
@param documentID Optional document ID (when the object is bound to a specific document)
|
||||
*/
|
||||
void write(const Template& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID = std::nullopt,
|
||||
void write(Template& object, const BIMRecordID& objID, std::optional<BIMRecordID> objDocID = std::nullopt,
|
||||
std::optional<BIMRecordID> tableID = std::nullopt, std::optional<BIMRecordID> documentID = std::nullopt) const override;
|
||||
/*!
|
||||
Erase an object by index
|
||||
|
||||
@@ -63,11 +63,12 @@ namespace speckle::database {
|
||||
/*!
|
||||
Find a filtered list of objects
|
||||
@param filter The object filter (nullptr = find all objects)
|
||||
@param subset A subset of the database content to search (specified by record ID)
|
||||
@param tableID Optional table ID (defaults to the first table)
|
||||
@param documentID Optional document ID (filter for this document only - nullopt = all objects)
|
||||
@return A list containing IDs of found elements (empty if none found)
|
||||
*/
|
||||
virtual ObjIDList findObjects(const Filter& filter = nullptr, std::optional<RecordID> tableID = std::nullopt,
|
||||
virtual ObjIDList findObjects(const Filter* filter = nullptr, const ObjIDList& subset = {}, std::optional<RecordID> tableID = std::nullopt,
|
||||
std::optional<RecordID> documentID = std::nullopt) const override { return {}; } //Implement when required
|
||||
/*!
|
||||
Get an object by index
|
||||
@@ -109,7 +110,7 @@ namespace speckle::database {
|
||||
@param tableID Optional table ID (defaults to the first table)
|
||||
@param documentID Optional document ID (when the object is bound to a specific document)
|
||||
*/
|
||||
void write(const Obj& object, const ObjID& objID, std::optional<ObjID> objDocID = std::nullopt,
|
||||
void write(Obj& object, const ObjID& objID, std::optional<ObjID> objDocID = std::nullopt,
|
||||
std::optional<RecordID> tableID = std::nullopt, std::optional<RecordID> documentID = std::nullopt) const override;
|
||||
/*!
|
||||
Erase an object by index
|
||||
@@ -274,7 +275,7 @@ namespace speckle::database {
|
||||
--------------------------------------------------------------------*/
|
||||
template<typename Obj, typename ObjWrapper, typename Transport, typename ObjID>
|
||||
requires DocumentStorable<Obj, ObjWrapper, Transport>
|
||||
void DocumentStoreEngine<Obj, ObjWrapper, Transport, ObjID>::write(const Obj& object, const ObjID& objID, std::optional<ObjID> objDocID,
|
||||
void DocumentStoreEngine<Obj, ObjWrapper, Transport, ObjID>::write(Obj& object, const ObjID& objID, std::optional<ObjID> objDocID,
|
||||
std::optional<RecordID> tableID, std::optional<RecordID> documentID) const {
|
||||
getCache()->write(object); //NB: In future we might support duplicating records if objID != obj.id
|
||||
} //DocumentStoreEngine<Obj, ObjWrapper, Transport, ObjID>::write
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "Speckle/Environment/Addon.h"
|
||||
|
||||
#include "Active/Database/Transaction.h"
|
||||
#include "Speckle/Environment/Project.h"
|
||||
#include "Speckle/Event/Type/ProjectEvent.h"
|
||||
#include "Speckle/Event/Subscriber/ProjectSubscriber.h"
|
||||
@@ -10,6 +11,7 @@
|
||||
#include <ACAPinc.h>
|
||||
#endif
|
||||
|
||||
using namespace active::database;
|
||||
using namespace speckle::environment;
|
||||
using namespace speckle::event;
|
||||
using namespace speckle::utility;
|
||||
@@ -228,3 +230,46 @@ std::shared_ptr<Project> Addon::makeProject() const {
|
||||
auto project = new Project; //make_shared can't use protected constructor
|
||||
return std::shared_ptr<Project>{project};
|
||||
} //Addon::makeProject
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Determine if a transaction can be started
|
||||
|
||||
return: True if a transaction can be started
|
||||
--------------------------------------------------------------------*/
|
||||
bool Addon::canTransactionStart() const {
|
||||
return true; //TODO: There are some situations where Archicad cannot accept perform a new transaction - add when determine essential
|
||||
} //Addon::canTransactionStart
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Perform a transaction
|
||||
|
||||
transaction: The transaction to perform
|
||||
|
||||
return: True if the transaction was successfully performed
|
||||
--------------------------------------------------------------------*/
|
||||
bool Addon::performTransaction(Transaction& transaction) const {
|
||||
//If this is the opening transaction, we need to enclose it in a host undo session
|
||||
if (isPerforming(transaction)) {
|
||||
#ifdef ARCHICAD
|
||||
return ACAPI_CallUndoableCommand(String{transaction.getName()}, [&]() -> GSErrCode {
|
||||
if (App::performTransaction(transaction))
|
||||
return NoError;
|
||||
return APIERR_COMMANDFAILED;
|
||||
});
|
||||
#endif
|
||||
}
|
||||
return App::performTransaction(transaction);
|
||||
} //Addon::performTransaction
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Finalise a transaction
|
||||
|
||||
transaction: The transaction to be finalised
|
||||
wasPerformedSuccessfully: True if the transaction was successfully performed
|
||||
--------------------------------------------------------------------*/
|
||||
void Addon::finaliseTransaction(Transaction& transaction, bool wasPerformedSuccessfully) const {
|
||||
|
||||
} //Addon::finaliseTransaction
|
||||
|
||||
@@ -103,6 +103,26 @@ namespace speckle::environment {
|
||||
*/
|
||||
virtual std::shared_ptr<Project> makeProject() const;
|
||||
|
||||
// MARK: - Functions (transactions)
|
||||
|
||||
/*!
|
||||
Determine if a transaction can be started
|
||||
@return True if a transaction can be started
|
||||
*/
|
||||
bool canTransactionStart() const override;
|
||||
/*!
|
||||
Perform a transaction
|
||||
@param transaction The transaction to perform
|
||||
@return True if the transaction was successfully performed
|
||||
*/
|
||||
bool performTransaction(active::database::Transaction& transaction) const override;
|
||||
/*!
|
||||
Finalise a transaction
|
||||
@param transaction The transaction to be finalised
|
||||
@param wasPerformedSuccessfully True if the transaction was successfully performed
|
||||
*/
|
||||
void finaliseTransaction(active::database::Transaction& transaction, bool wasPerformedSuccessfully) const override;
|
||||
|
||||
private:
|
||||
///The active project
|
||||
std::shared_ptr<Project> m_activeProject;
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
#include "Speckle/Environment/Host.h"
|
||||
|
||||
#include "Active/Utility/Memory.h"
|
||||
#include "Speckle/Environment/Addon.h"
|
||||
#include "Speckle/SpeckleResource.h"
|
||||
|
||||
#ifdef ARCHICAD
|
||||
#include "DG.h"
|
||||
@@ -33,15 +36,50 @@ bool Host::makeModelViewActive(bool isSelectionOnly) const {
|
||||
#ifdef ARCHICAD
|
||||
API_WindowInfo windowInfo;
|
||||
active::utility::Memory::erase(windowInfo);
|
||||
#ifdef ServerMainVers_2700
|
||||
if ((ACAPI_Window_GetCurrentWindow(&windowInfo) == NoError) && (windowInfo.typeID == APIWind_3DModelID))
|
||||
#else
|
||||
if ((ACAPI_Database(APIDb_GetCurrentWindowID, &windowInfo) == NoError) && (windowInfo.typeID == APIWind_3DModelID))
|
||||
#endif
|
||||
return true;
|
||||
if (isSelectionOnly)
|
||||
#ifdef ServerMainVers_2700
|
||||
return (ACAPI_View_ShowSelectionIn3D() == NoError);
|
||||
return (ACAPI_View_ShowAllIn3D() == NoError);
|
||||
#else
|
||||
return (ACAPI_Automate(APIDo_ShowSelectionIn3DID) == NoError);
|
||||
#endif
|
||||
#ifdef ServerMainVers_2700
|
||||
return (ACAPI_View_ShowAllIn3D() == NoError);
|
||||
#else
|
||||
return (ACAPI_Automate(APIDo_ShowAllIn3DID) == NoError);
|
||||
#endif
|
||||
#endif //ARCHICAD
|
||||
} //Host::makeModelViewActive
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Zoom the active view to fit the content bounds
|
||||
|
||||
isSelectionOnly: True to zoom to fit just the current selection
|
||||
--------------------------------------------------------------------*/
|
||||
void Host::zoomToFit(bool isSelectionOnly) const {
|
||||
#ifdef ARCHICAD
|
||||
if (isSelectionOnly)
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_View_ZoomToSelected();
|
||||
#else
|
||||
ACAPI_Automate(APIDo_ZoomToSelectedID);
|
||||
#endif
|
||||
else
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_View_Zoom();
|
||||
#else
|
||||
ACAPI_Automate(APIDo_ZoomID);
|
||||
#endif
|
||||
#endif //ARCHICAD
|
||||
} //Host::zoomToFit
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Display an alert dialog
|
||||
|
||||
@@ -49,11 +87,32 @@ bool Host::makeModelViewActive(bool isSelectionOnly) const {
|
||||
--------------------------------------------------------------------*/
|
||||
void Host::displayAlert(const String& message) const {
|
||||
#ifdef ARCHICAD
|
||||
DGAlert(DG_INFORMATION, "Notification", message.data(), "", "OK");
|
||||
DGAlert(DG_INFORMATION, addon()->getLocalString(titleStringLib, notifyDialogTitleID), message, "",
|
||||
addon()->getLocalString(titleStringLib, okButtonTitleID));
|
||||
#endif
|
||||
} //Host::displayAlert
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Display a confirmation dialog (prompting the user to pick one of two options)
|
||||
|
||||
question: The question text, e.g. "Do you wish to continue?"
|
||||
positiveOption: The positive option text (nullopt = "Yes")
|
||||
negativeOption: The negative option text (nullopt = "No")
|
||||
|
||||
return: True if the user picked the positive option
|
||||
--------------------------------------------------------------------*/
|
||||
bool Host::displayConfirmation(const speckle::utility::String& question,
|
||||
const speckle::utility::String::Option positiveOption,
|
||||
const speckle::utility::String::Option negativeOption) const {
|
||||
#ifdef ARCHICAD
|
||||
String positivePrompt{positiveOption.value_or(addon()->getLocalString(titleStringLib, positiveResponseTitleID))},
|
||||
negativePrompt{positiveOption.value_or(addon()->getLocalString(titleStringLib, negativeResponseTitleID))};
|
||||
return (DGAlert(DG_WARNING, addon()->getLocalString(titleStringLib, confirmDialogTitleID), question, String{}, positivePrompt, negativePrompt) == 1);
|
||||
#endif
|
||||
} //Host::displayConfirmation
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Get an object representing the parent process/application
|
||||
|
||||
|
||||
@@ -26,11 +26,27 @@ namespace speckle::environment {
|
||||
@return True if the model view is active
|
||||
*/
|
||||
bool makeModelViewActive(bool isSelectionOnly = false) const;
|
||||
/*!
|
||||
Zoom the active view to fit the content bounds
|
||||
@param isSelectionOnly True to zoom to fit just the current selection
|
||||
*/
|
||||
void zoomToFit(bool isSelectionOnly = false) const;
|
||||
/*!
|
||||
Display an alert dialog
|
||||
@param message The alert message
|
||||
*/
|
||||
void displayAlert(const speckle::utility::String& message) const;
|
||||
/*!
|
||||
Display a confirmation dialog (prompting the user to pick one of two options)
|
||||
@param question The question text, e.g. "Do you wish to continue?"
|
||||
@param positiveOption The positive option text (nullopt = "Yes")
|
||||
@param negativeOption The negative option text (nullopt = "No")
|
||||
|
||||
@return True if the user picked the positive option
|
||||
*/
|
||||
bool displayConfirmation(const speckle::utility::String& question,
|
||||
const speckle::utility::String::Option positiveOption = std::nullopt,
|
||||
const speckle::utility::String::Option negativeOption = std::nullopt) const;
|
||||
|
||||
// MARK: Functions (mutating)
|
||||
|
||||
|
||||
@@ -49,7 +49,12 @@ Project::Info Project::getInfo() const {
|
||||
Info result{addon()->getLocalString(titleStringLib, untitledProjectID)};
|
||||
#ifdef ARCHICAD
|
||||
API_ProjectInfo projectInfo;
|
||||
if (ACAPI_ProjectOperation_Project(&projectInfo) == NoError) {
|
||||
#ifdef ServerMainVers_2700
|
||||
if (ACAPI_ProjectOperation_Project(&projectInfo) == NoError)
|
||||
#else
|
||||
if (ACAPI_Environment(APIEnv_ProjectID, &projectInfo) == NoError)
|
||||
#endif
|
||||
{
|
||||
if ((projectInfo.projectName != nullptr) && !projectInfo.projectName->IsEmpty())
|
||||
result.name = *projectInfo.projectName;
|
||||
result.isShared = projectInfo.teamwork;
|
||||
|
||||
@@ -65,7 +65,11 @@ bool DocStoreSubscriber::receive(const Event& event) {
|
||||
--------------------------------------------------------------------*/
|
||||
bool DocStoreSubscriber::attach() {
|
||||
#ifdef ARCHICAD
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_AddOnObject_RegisterAddOnObjectHandler();
|
||||
#else
|
||||
ACAPI_Register_AddOnObjectHandler();
|
||||
#endif
|
||||
#endif
|
||||
return true;
|
||||
} //DocStoreSubscriber::attach
|
||||
@@ -81,8 +85,12 @@ bool DocStoreSubscriber::start() {
|
||||
return true;
|
||||
m_isStarted = true;
|
||||
#ifdef ARCHICAD
|
||||
#ifdef ServerMainVers_2700
|
||||
return (ACAPI_AddOnObject_InstallAddOnObjectMergeHandler(docMergeCallback) == NoError);
|
||||
#else
|
||||
return (ACAPI_Install_AddOnObjectMergeHandler(docMergeCallback) == NoError);
|
||||
#endif //ServerMainVers_2600
|
||||
#else //ARCHICAD
|
||||
return false;
|
||||
#endif
|
||||
#endif //ARCHICAD
|
||||
} //DocStoreSubscriber::start
|
||||
|
||||
@@ -33,16 +33,16 @@ namespace {
|
||||
case APINotifyElement_New: {
|
||||
// POC: Put this back once we decide to use Object Tracking
|
||||
// ACAPI_Element_AttachObserver(elemType->elemHead.guid);
|
||||
addon()->publishExternal(ElementEvent{newElem, ElementID{elemType->elemHead.guid}});
|
||||
addon()->publishExternal(ElementEvent{newElem, BIMRecordID{elemType->elemHead.guid}});
|
||||
} break;
|
||||
case APINotifyElement_Change: {
|
||||
addon()->publishExternal(ElementEvent{changeElem, ElementID{elemType->elemHead.guid}});
|
||||
addon()->publishExternal(ElementEvent{changeElem, BIMRecordID{elemType->elemHead.guid}});
|
||||
} break;
|
||||
case APINotifyElement_Edit: {
|
||||
addon()->publishExternal(ElementEvent{editElem, ElementID{elemType->elemHead.guid}});
|
||||
addon()->publishExternal(ElementEvent{editElem, BIMRecordID{elemType->elemHead.guid}});
|
||||
} break;
|
||||
case APINotifyElement_Delete: {
|
||||
addon()->publishExternal(ElementEvent{deleteElem, ElementID{ elemType->elemHead.guid}});
|
||||
addon()->publishExternal(ElementEvent{deleteElem, BIMRecordID{ elemType->elemHead.guid}});
|
||||
} break;
|
||||
case APINotifyElement_BeginEvents:
|
||||
addon()->publishExternal(ElementEvent{begin});
|
||||
@@ -92,22 +92,19 @@ bool ElementSubscriber::receive(const Event& event) {
|
||||
--------------------------------------------------------------------*/
|
||||
bool ElementSubscriber::start() {
|
||||
#ifdef ARCHICAD
|
||||
GSErrCode err = ACAPI_Element_InstallElementObserver(elementChangedCallback);
|
||||
#ifdef ServerMainVers_2700
|
||||
auto err = ACAPI_Element_InstallElementObserver(elementChangedCallback);
|
||||
#else
|
||||
auto err = ACAPI_Notify_InstallElementObserver(elementChangedCallback);
|
||||
#endif
|
||||
if (err != NoError)
|
||||
return false;
|
||||
|
||||
#ifdef ServerMainVers_2700
|
||||
return (ACAPI_Element_CatchNewElement(nullptr, elementChangedCallback) == NoError);
|
||||
#else
|
||||
return (ACAPI_Notify_CatchNewElement(nullptr, elementChangedCallback) == NoError);
|
||||
#endif
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
} //ElementSubscriber::start
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Stop participation (release resources etc)
|
||||
--------------------------------------------------------------------*/
|
||||
void ElementSubscriber::stop() {
|
||||
#ifdef ARCHICAD
|
||||
ACAPI_Notification_CatchSelectionChange(nullptr);
|
||||
#endif
|
||||
} //ElementSubscriber::stop
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define SPECKLE_EVENT_ELEMENT_CHANGED_SUBSCRIBER
|
||||
|
||||
#include "Active/Event/Subscriber.h"
|
||||
#include "Speckle/Database/Identity/RecordID.h"
|
||||
#include "Speckle/Database/Identity/BIMRecordID.h"
|
||||
|
||||
namespace speckle::event {
|
||||
|
||||
@@ -51,10 +51,6 @@ namespace speckle::event {
|
||||
@return True if the participant is able to continue
|
||||
*/
|
||||
virtual bool start() override;
|
||||
/*!
|
||||
Stop participation (release resources etc)
|
||||
*/
|
||||
void stop() override;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -64,8 +60,6 @@ namespace speckle::event {
|
||||
@return True if the event should be closed
|
||||
*/
|
||||
virtual bool handle(const ElementEvent& event) = 0;
|
||||
|
||||
speckle::database::ElementIDList m_changedElements;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,12 @@
|
||||
#include "Speckle/Environment/Addon.h"
|
||||
#include "Speckle/Event/Type/MenuEvent.h"
|
||||
|
||||
#ifdef ARCHICAD
|
||||
#ifdef ServerMainVers_2700
|
||||
#include <ACAPI_Interface.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
using namespace active::environment;
|
||||
using namespace active::event;
|
||||
using namespace speckle::environment;
|
||||
@@ -34,6 +40,99 @@ Subscriber::Subscription MenuSubscriber::subscription() const {
|
||||
} //MenuSubscriber::subscription
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Set whether a menu item is enabled
|
||||
|
||||
item: The menu item index
|
||||
state: True if the menu item is enabled
|
||||
--------------------------------------------------------------------*/
|
||||
void MenuSubscriber::setMenuEnabled(uint16_t item, bool state) const {
|
||||
#ifdef ARCHICAD
|
||||
API_MenuItemRef menuRef{};
|
||||
menuRef.menuResID = m_resourceID;
|
||||
menuRef.itemIndex = item;
|
||||
#ifdef ServerMainVers_2700
|
||||
GSFlags flags{};
|
||||
if (ACAPI_MenuItem_GetMenuItemFlags(&menuRef, &flags) == NoError)
|
||||
#else
|
||||
Int32 flags = 0;
|
||||
if (ACAPI_Interface(APIIo_GetMenuItemFlagsID, &menuRef, &flags) == NoError)
|
||||
#endif //ServerMainVers_2600
|
||||
{
|
||||
bool isActive = ((flags & API_MenuItemDisabled) == 0);
|
||||
if (isActive != state) {
|
||||
if (state)
|
||||
flags &= ~API_MenuItemDisabled;
|
||||
else
|
||||
flags |= API_MenuItemDisabled;
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_MenuItem_SetMenuItemFlags(&menuRef, &flags);
|
||||
#else
|
||||
ACAPI_Interface(APIIo_SetMenuItemFlagsID, &menuRef, &flags);
|
||||
#endif //ServerMainVers_2600
|
||||
}
|
||||
}
|
||||
#endif //ARCHICAD
|
||||
} //MenuSubscriber::setMenuEnabled
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Set whether a menu item is checked
|
||||
|
||||
item: The menu item index
|
||||
state: True if the menu item is checked
|
||||
--------------------------------------------------------------------*/
|
||||
void MenuSubscriber::setMenuChecked(uint16_t item, bool state) const {
|
||||
#ifdef ARCHICAD
|
||||
API_MenuItemRef menuRef{};
|
||||
menuRef.menuResID = m_resourceID;
|
||||
menuRef.itemIndex = item;
|
||||
#ifdef ServerMainVers_2700
|
||||
GSFlags flags{};
|
||||
if (ACAPI_MenuItem_GetMenuItemFlags(&menuRef, &flags) == NoError)
|
||||
#else
|
||||
Int32 flags = 0;
|
||||
if (ACAPI_Interface(APIIo_GetMenuItemFlagsID, &menuRef, &flags) == NoError)
|
||||
#endif //ServerMainVers_2600
|
||||
{
|
||||
bool isChecked = ((flags & API_MenuItemChecked) != 0);
|
||||
if (isChecked != state) {
|
||||
if (state)
|
||||
flags |= API_MenuItemChecked;
|
||||
else
|
||||
flags &= ~API_MenuItemChecked;
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_MenuItem_SetMenuItemFlags(&menuRef, &flags);
|
||||
#else
|
||||
ACAPI_Interface(APIIo_SetMenuItemFlagsID, &menuRef, &flags);
|
||||
#endif //ServerMainVers_2600
|
||||
}
|
||||
}
|
||||
#endif
|
||||
} //MenuSubscriber::setMenuChecked
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Set the label of a menu item
|
||||
|
||||
item: The menu item index
|
||||
text: The menu item text
|
||||
--------------------------------------------------------------------*/
|
||||
void MenuSubscriber::setMenuLabel(uint16_t item, const speckle::utility::String& text) const {
|
||||
#ifdef ARCHICAD
|
||||
API_MenuItemRef menuRef{};
|
||||
menuRef.menuResID = m_resourceID;
|
||||
menuRef.itemIndex = item;
|
||||
GS::UniString label(text);
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_MenuItem_SetMenuItemText(&menuRef, nullptr, &label);
|
||||
#else
|
||||
ACAPI_Interface(APIIo_SetMenuItemTextID, &menuRef, nullptr, (void*) &label);
|
||||
#endif
|
||||
#endif
|
||||
} //MenuSubscriber::setMenuLabel
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------
|
||||
Receive a subscribed event
|
||||
|
||||
@@ -56,7 +155,11 @@ bool MenuSubscriber::receive(const Event& event) {
|
||||
--------------------------------------------------------------------*/
|
||||
bool MenuSubscriber::attach() {
|
||||
#ifdef ARCHICAD
|
||||
#ifdef ServerMainVers_2700
|
||||
return (ACAPI_MenuItem_RegisterMenu(m_resourceID, m_helpID, m_location, m_flags) == NoError);
|
||||
#else
|
||||
return (ACAPI_Register_Menu(m_resourceID, m_helpID, m_location, m_flags) == NoError);
|
||||
#endif
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
@@ -70,7 +173,11 @@ bool MenuSubscriber::attach() {
|
||||
--------------------------------------------------------------------*/
|
||||
bool MenuSubscriber::start() {
|
||||
#ifdef ARCHICAD
|
||||
#ifdef ServerMainVers_2700
|
||||
return (ACAPI_MenuItem_InstallMenuHandler(m_resourceID, menuCallback) == NoError);
|
||||
#else
|
||||
return (ACAPI_Install_MenuHandler(m_resourceID, menuCallback) == NoError);
|
||||
#endif
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define SPECKLE_EVENT_MENU_SUBSCRIBER
|
||||
|
||||
#include "Active/Event/Subscriber.h"
|
||||
#include "Speckle/Utility/String.h"
|
||||
|
||||
#ifdef ARCHICAD
|
||||
#include <ACAPinc.h>
|
||||
@@ -60,6 +61,24 @@ namespace speckle::event {
|
||||
@return The subscription list (an empty list will put the subscriber into a suspended state)
|
||||
*/
|
||||
virtual Subscription subscription() const override;
|
||||
/*!
|
||||
Set whether a menu item is enabled
|
||||
@param item The menu item index
|
||||
@param state True if the menu item is enabled
|
||||
*/
|
||||
void setMenuEnabled(uint16_t item, bool state) const;
|
||||
/*!
|
||||
Set whether a menu item is checked
|
||||
@param item The menu item index
|
||||
@param state True if the menu item is checked
|
||||
*/
|
||||
void setMenuChecked(uint16_t item, bool state) const;
|
||||
/*!
|
||||
Set the label of a menu item
|
||||
@param item The menu item index
|
||||
@param text The menu item text
|
||||
*/
|
||||
void setMenuLabel(uint16_t item, const speckle::utility::String& text) const;
|
||||
|
||||
// MARK: - Functions (mutating)
|
||||
|
||||
|
||||
@@ -69,8 +69,12 @@ bool ProjectSubscriber::start() {
|
||||
return true;
|
||||
m_isStarted = true;
|
||||
#ifdef ARCHICAD
|
||||
#ifdef ServerMainVers_2700
|
||||
return (ACAPI_ProjectOperation_CatchProjectEvent(API_AllNotificationMask, projectCallback) == NoError);
|
||||
#else
|
||||
return (ACAPI_Notify_CatchProjectEvent(API_AllNotificationMask, projectCallback) == NoError);
|
||||
#endif //ServerMainVers_2600
|
||||
#else //ARCHICAD
|
||||
return false;
|
||||
#endif
|
||||
} //ProjectSubscriber::start
|
||||
|
||||
@@ -67,10 +67,14 @@ bool SelectionSubscriber::receive(const Event& event) {
|
||||
--------------------------------------------------------------------*/
|
||||
bool SelectionSubscriber::start() {
|
||||
#ifdef ARCHICAD
|
||||
#ifdef ServerMainVers_2700
|
||||
return (ACAPI_Notification_CatchSelectionChange(selectionCallback) == NoError);
|
||||
#else
|
||||
return (ACAPI_Notify_CatchSelectionChange(selectionCallback) == NoError);
|
||||
#endif //ServerMainVers_2600
|
||||
#else //ARCHICAD
|
||||
return false;
|
||||
#endif
|
||||
#endif //ARCHICAD
|
||||
} //SelectionSubscriber::start
|
||||
|
||||
|
||||
@@ -79,6 +83,10 @@ bool SelectionSubscriber::start() {
|
||||
--------------------------------------------------------------------*/
|
||||
void SelectionSubscriber::stop() {
|
||||
#ifdef ARCHICAD
|
||||
#ifdef ServerMainVers_2700
|
||||
ACAPI_Notification_CatchSelectionChange(nullptr);
|
||||
#endif
|
||||
#else
|
||||
ACAPI_Notify_CatchSelectionChange(nullptr);
|
||||
#endif //ServerMainVers_2600
|
||||
#endif //ARCHICAD
|
||||
} //SelectionSubscriber::stop
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "Active/Utility/Guid.h"
|
||||
#include "Active/Utility/String.h"
|
||||
#include "Speckle/Database/Identity/BIMRecordID.h"
|
||||
|
||||
namespace speckle::event {
|
||||
|
||||
@@ -33,7 +34,7 @@ namespace speckle::event {
|
||||
@param eventType An event type identifier
|
||||
@param targetID The ID of the element targeted by the database transaction (nullopt = undefined, e.g. for a begin/end event)
|
||||
*/
|
||||
ElementEvent(Type eventType, database::ElementID::Option targetID = std::nullopt) : Event{ID}, m_elementID{targetID}, m_eventType{eventType} {}
|
||||
ElementEvent(Type eventType, database::BIMRecordID::Option targetID = std::nullopt) : Event{ID}, m_elementID{targetID}, m_eventType{eventType} {}
|
||||
/*!
|
||||
Copy constructor
|
||||
@param source The object to copy
|
||||
@@ -50,12 +51,12 @@ namespace speckle::event {
|
||||
Get the ID of the database transaction target element
|
||||
@return The target element ID (nullopt = no target, e.g. a begin/end event)
|
||||
*/
|
||||
database::ElementID::Option getElmentID() const { return m_elementID; }
|
||||
database::BIMRecordID::Option getElementID() const { return m_elementID; }
|
||||
Type getEventType() const { return m_eventType; }
|
||||
|
||||
private:
|
||||
///The ID of the target element (nullopt = undefined)
|
||||
database::ElementID::Option m_elementID;
|
||||
database::BIMRecordID::Option m_elementID;
|
||||
///The specific database operation performed
|
||||
Type m_eventType;
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user