diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 075f63863..a294c5ef3 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -28,6 +28,8 @@ option(MESSAGING "Include the messaging library." ON) option(COM "Include the COM library." ON) +option(INTERFACES + "Include the interfaces library." ON) option(PROCESS "Include the COM hosting process executable." ON) option(PLUGINS @@ -84,6 +86,10 @@ if(COM) add_subdirectory(com) endif() +if(INTERFACES) + add_subdirectory(interfaces) +endif() + if(PLUGINS) add_subdirectory(plugins) endif() diff --git a/Source/Thunder.sln b/Source/Thunder.sln index 007e0d4f2..6f8032e8e 100644 --- a/Source/Thunder.sln +++ b/Source/Thunder.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29418.71 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.35013.160 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "core\core.vcxproj", "{0936A7B8-E995-452D-8062-CA9311854018}" EndProject @@ -36,11 +36,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugins", "plugins\plugins. {A7B258FF-15DD-4769-966C-703530E26530} = {A7B258FF-15DD-4769-966C-703530E26530} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "proxystubs", "proxystubs\proxystubs.vcxproj", "{A39F195B-4FD2-424D-A8C7-3D323C281438}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "proxystubs", "interfaces\proxystubs.vcxproj", "{0CA4C35A-2DE4-4BB3-804C-331D09CC3402}" ProjectSection(ProjectDependencies) = postProject {0936A7B8-E995-452D-8062-CA9311854018} = {0936A7B8-E995-452D-8062-CA9311854018} {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} = {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} - {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ocdm", "ocdm\ocdm.vcxproj", "{34090477-688B-45F5-9998-11A71A6B043F}" @@ -54,7 +53,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "virtualinput", "virtualinpu {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} = {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "interfaces", "interfaces\interfaces.vcxproj", "{3DA3B4B6-916E-4F21-88C6-512DF0C0A38C}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "interfaces", "interfaces\interfaces.vcxproj", "{4D595795-BD40-45A2-BE53-D5A626691D4C}" ProjectSection(ProjectDependencies) = postProject {0936A7B8-E995-452D-8062-CA9311854018} = {0936A7B8-E995-452D-8062-CA9311854018} {6838AFCB-D65D-443A-A435-2F1940790836} = {6838AFCB-D65D-443A-A435-2F1940790836} @@ -91,13 +90,11 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JSONRPCPlugin", "..\..\ThunderNanoServices\examples\JSONRPCPlugin\JSONRPCPlugin.vcxproj", "{5CCE3BBB-3CBC-4E4A-92CA-832D119C8F70}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JSONRPCClient", "..\..\ThunderNanoServices\examples\JSONRPCClient\JSONRPCClient.vcxproj", "{DFA83275-7232-4F2B-912A-BD362AA228B3}" ProjectSection(ProjectDependencies) = postProject - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0936A7B8-E995-452D-8062-CA9311854018} = {0936A7B8-E995-452D-8062-CA9311854018} {6838AFCB-D65D-443A-A435-2F1940790836} = {6838AFCB-D65D-443A-A435-2F1940790836} {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} = {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} @@ -123,116 +120,98 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Commander", "..\..\ThunderNanoServices\Commander\Commander.vcxproj", "{6C8E75A7-796C-4598-9CFF-4F462F998355}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DeviceInfo", "..\..\ThunderNanoServices\DeviceInfo\DeviceInfo.vcxproj", "{6C8E75AE-796C-4598-9CFF-4F462F968955}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DHCPServer", "..\..\ThunderNanoServices\DHCPServer\DHCPServer.vcxproj", "{614AEA75-493F-4DB4-897C-6A31238C5781}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DIALServer", "..\..\ThunderNanoServices\DIALServer\DIALServer.vcxproj", "{43EAC8C4-B127-4F65-B621-BC14F9C65243}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Dictionary", "..\..\ThunderNanoServices\Dictionary\Dictionary.vcxproj", "{51CD3B12-3CCC-4345-92F3-832D23F98F70}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LocationSync", "..\..\ThunderNanoServices\LocationSync\LocationSync.vcxproj", "{43EAC8C4-C127-4F65-B621-AC64F9C65223}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Messenger", "..\..\ThunderNanoServices\Messenger\Messenger.vcxproj", "{51CD3B12-3C87-424A-92C3-832D11F98F70}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Monitor", "..\..\ThunderNanoServices\Monitor\Monitor.vcxproj", "{614AEA75-493F-4DB4-897C-6A3EAF8C5781}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpenCDMi", "..\..\ThunderNanoServices\OpenCDMi\OpenCDMi.vcxproj", "{7E7E9E39-AAA8-4A95-A53F-D1C6E88E97E8}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RemoteControl", "..\..\ThunderNanoServices\RemoteControl\RemoteControl.vcxproj", "{2CD4DE2B-7064-41E9-892E-6F249C7E6BF5}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SecurityAgent", "..\..\ThunderNanoServices\SecurityAgent\SecurityAgent.vcxproj", "{5CCE3B12-3CCC-4E4A-92CA-832D11F98F70}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TimeSync", "..\..\ThunderNanoServices\TimeSync\TimeSync.vcxproj", "{3B2AABD2-060F-4C2C-8633-4005645564F2}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TraceControl", "..\..\ThunderNanoServices\TraceControl\TraceControl.vcxproj", "{ACA665CC-3DFA-4C22-A6F4-2DF827A9378A}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebProxy", "..\..\ThunderNanoServices\WebProxy\WebProxy.vcxproj", "{51CD3B12-3CCC-4E4A-92C3-832D11F98F70}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebProxy", "..\..\ThunderNanoServices\WebProxy\WebProxy.vcxproj", "{628D7997-796C-4668-8CFD-4F362FDB8759}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebServer", "..\..\ThunderNanoServices\WebServer\WebServer.vcxproj", "{6B9091EB-E0CA-4FE5-9FF1-69DE4D749F00}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Interfaces", "Interfaces", "{58B7B6E2-3FC1-4BB6-92E0-7E3E651A304C}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Applications", "Applications", "{AFFB8D67-1F60-40FE-8055-BDD120015C09}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "COMRPCClient", "..\..\ThunderNanoServices\examples\COMRPCClient\COMRPCClient.vcxproj", "{DFA83275-7232-423B-912A-BD362AA228B3}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0936A7B8-E995-452D-8062-CA9311854018} = {0936A7B8-E995-452D-8062-CA9311854018} {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} = {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} @@ -240,13 +219,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "COMRPCClient", "..\..\Thund EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InputSwitch", "..\..\ThunderNanoServices\InputSwitch\InputSwitch.vcxproj", "{BA2829C1-66EF-4C21-852D-ECA482898DCF}" ProjectSection(ProjectDependencies) = postProject - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OutOfProcessPlugin", "..\..\ThunderNanoServices\examples\OutOfProcessPlugin\OutOfProcessPlugin.vcxproj", "{D93FD85B-F6AC-4387-9C61-5625899CECFD}" ProjectSection(ProjectDependencies) = postProject - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} EndProjectSection EndProject @@ -271,7 +248,6 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "displayinfo", "displayinfo\displayinfo.vcxproj", "{A8D818F5-FAAD-4620-B1AF-1234AB538502}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {0936A7B8-E995-452D-8062-CA9311854018} = {0936A7B8-E995-452D-8062-CA9311854018} {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} = {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} EndProjectSection @@ -279,7 +255,6 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DisplayInfo", "displayinfo\display_info\display_info.vcxproj", "{B79DE14D-3E0D-440E-A71A-CE7ADD5DF3BA}" ProjectSection(ProjectDependencies) = postProject {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {577A83B6-66B6-4A98-A3D6-4EBA066A1772} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} = {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} {A8D818F5-FAAD-4620-B1AF-1234AB538502} = {A8D818F5-FAAD-4620-B1AF-1234AB538502} EndProjectSection @@ -340,14 +315,14 @@ Global {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402}.Release|x64.Build.0 = Release|x64 {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402}.Release|x86.ActiveCfg = Release|Win32 {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402}.Release|x86.Build.0 = Release|Win32 - {A39F195B-4FD2-424D-A8C7-3D323C281438}.Debug|x64.ActiveCfg = Debug|x64 - {A39F195B-4FD2-424D-A8C7-3D323C281438}.Debug|x64.Build.0 = Debug|x64 - {A39F195B-4FD2-424D-A8C7-3D323C281438}.Debug|x86.ActiveCfg = Debug|Win32 - {A39F195B-4FD2-424D-A8C7-3D323C281438}.Debug|x86.Build.0 = Debug|Win32 - {A39F195B-4FD2-424D-A8C7-3D323C281438}.Release|x64.ActiveCfg = Release|x64 - {A39F195B-4FD2-424D-A8C7-3D323C281438}.Release|x64.Build.0 = Release|x64 - {A39F195B-4FD2-424D-A8C7-3D323C281438}.Release|x86.ActiveCfg = Release|Win32 - {A39F195B-4FD2-424D-A8C7-3D323C281438}.Release|x86.Build.0 = Release|Win32 + {0CA4C35A-2DE4-4BB3-804C-331D09CC3402}.Debug|x64.ActiveCfg = Debug|x64 + {0CA4C35A-2DE4-4BB3-804C-331D09CC3402}.Debug|x64.Build.0 = Debug|x64 + {0CA4C35A-2DE4-4BB3-804C-331D09CC3402}.Debug|x86.ActiveCfg = Debug|Win32 + {0CA4C35A-2DE4-4BB3-804C-331D09CC3402}.Debug|x86.Build.0 = Debug|Win32 + {0CA4C35A-2DE4-4BB3-804C-331D09CC3402}.Release|x64.ActiveCfg = Release|x64 + {0CA4C35A-2DE4-4BB3-804C-331D09CC3402}.Release|x64.Build.0 = Release|x64 + {0CA4C35A-2DE4-4BB3-804C-331D09CC3402}.Release|x86.ActiveCfg = Release|Win32 + {0CA4C35A-2DE4-4BB3-804C-331D09CC3402}.Release|x86.Build.0 = Release|Win32 {34090477-688B-45F5-9998-11A71A6B043F}.Debug|x64.ActiveCfg = Debug|x64 {34090477-688B-45F5-9998-11A71A6B043F}.Debug|x64.Build.0 = Debug|x64 {34090477-688B-45F5-9998-11A71A6B043F}.Debug|x86.ActiveCfg = Debug|Win32 @@ -364,14 +339,14 @@ Global {DEBD9452-DA29-4C28-8800-32E1484EA16F}.Release|x64.Build.0 = Release|x64 {DEBD9452-DA29-4C28-8800-32E1484EA16F}.Release|x86.ActiveCfg = Release|Win32 {DEBD9452-DA29-4C28-8800-32E1484EA16F}.Release|x86.Build.0 = Release|Win32 - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C}.Debug|x64.ActiveCfg = Debug|x64 - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C}.Debug|x64.Build.0 = Debug|x64 - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C}.Debug|x86.ActiveCfg = Debug|Win32 - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C}.Debug|x86.Build.0 = Debug|Win32 - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C}.Release|x64.ActiveCfg = Release|x64 - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C}.Release|x64.Build.0 = Release|x64 - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C}.Release|x86.ActiveCfg = Release|Win32 - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C}.Release|x86.Build.0 = Release|Win32 + {4D595795-BD40-45A2-BE53-D5A626691D4C}.Debug|x64.ActiveCfg = Debug|x64 + {4D595795-BD40-45A2-BE53-D5A626691D4C}.Debug|x64.Build.0 = Debug|x64 + {4D595795-BD40-45A2-BE53-D5A626691D4C}.Debug|x86.ActiveCfg = Debug|Win32 + {4D595795-BD40-45A2-BE53-D5A626691D4C}.Debug|x86.Build.0 = Debug|Win32 + {4D595795-BD40-45A2-BE53-D5A626691D4C}.Release|x64.ActiveCfg = Release|x64 + {4D595795-BD40-45A2-BE53-D5A626691D4C}.Release|x64.Build.0 = Release|x64 + {4D595795-BD40-45A2-BE53-D5A626691D4C}.Release|x86.ActiveCfg = Release|Win32 + {4D595795-BD40-45A2-BE53-D5A626691D4C}.Release|x86.Build.0 = Release|Win32 {B88DE14D-3E0D-440E-A753-CE7ADD5DF3CA}.Debug|x64.ActiveCfg = Debug|x64 {B88DE14D-3E0D-440E-A753-CE7ADD5DF3CA}.Debug|x64.Build.0 = Debug|x64 {B88DE14D-3E0D-440E-A753-CE7ADD5DF3CA}.Debug|x86.ActiveCfg = Debug|Win32 @@ -524,14 +499,14 @@ Global {ACA665CC-3DFA-4C22-A6F4-2DF827A9378A}.Release|x64.Build.0 = Release|x64 {ACA665CC-3DFA-4C22-A6F4-2DF827A9378A}.Release|x86.ActiveCfg = Release|Win32 {ACA665CC-3DFA-4C22-A6F4-2DF827A9378A}.Release|x86.Build.0 = Release|Win32 - {51CD3B12-3CCC-4E4A-92C3-832D11F98F70}.Debug|x64.ActiveCfg = Debug|x64 - {51CD3B12-3CCC-4E4A-92C3-832D11F98F70}.Debug|x64.Build.0 = Debug|x64 - {51CD3B12-3CCC-4E4A-92C3-832D11F98F70}.Debug|x86.ActiveCfg = Debug|Win32 - {51CD3B12-3CCC-4E4A-92C3-832D11F98F70}.Debug|x86.Build.0 = Debug|Win32 - {51CD3B12-3CCC-4E4A-92C3-832D11F98F70}.Release|x64.ActiveCfg = Release|x64 - {51CD3B12-3CCC-4E4A-92C3-832D11F98F70}.Release|x64.Build.0 = Release|x64 - {51CD3B12-3CCC-4E4A-92C3-832D11F98F70}.Release|x86.ActiveCfg = Release|Win32 - {51CD3B12-3CCC-4E4A-92C3-832D11F98F70}.Release|x86.Build.0 = Release|Win32 + {628D7997-796C-4668-8CFD-4F362FDB8759}.Debug|x64.ActiveCfg = Debug|x64 + {628D7997-796C-4668-8CFD-4F362FDB8759}.Debug|x64.Build.0 = Debug|x64 + {628D7997-796C-4668-8CFD-4F362FDB8759}.Debug|x86.ActiveCfg = Debug|Win32 + {628D7997-796C-4668-8CFD-4F362FDB8759}.Debug|x86.Build.0 = Debug|Win32 + {628D7997-796C-4668-8CFD-4F362FDB8759}.Release|x64.ActiveCfg = Release|x64 + {628D7997-796C-4668-8CFD-4F362FDB8759}.Release|x64.Build.0 = Release|x64 + {628D7997-796C-4668-8CFD-4F362FDB8759}.Release|x86.ActiveCfg = Release|Win32 + {628D7997-796C-4668-8CFD-4F362FDB8759}.Release|x86.Build.0 = Release|Win32 {6B9091EB-E0CA-4FE5-9FF1-69DE4D749F00}.Debug|x64.ActiveCfg = Debug|x64 {6B9091EB-E0CA-4FE5-9FF1-69DE4D749F00}.Debug|x64.Build.0 = Debug|x64 {6B9091EB-E0CA-4FE5-9FF1-69DE4D749F00}.Debug|x86.ActiveCfg = Debug|Win32 @@ -615,13 +590,11 @@ Global {B63FDAE4-53A4-4B19-BFEC-6E6A2EF841F5} = {D7AD4AF2-B32F-44C6-9F19-90484D586346} {6A3B427D-D8AF-4D2A-B400-924D2596DCF7} = {D7AD4AF2-B32F-44C6-9F19-90484D586346} {0CA4C3EA-2DD4-4BB3-804C-331D09CC3402} = {D7AD4AF2-B32F-44C6-9F19-90484D586346} - {A39F195B-4FD2-424D-A8C7-3D323C281438} = {D7AD4AF2-B32F-44C6-9F19-90484D586346} + {0CA4C35A-2DE4-4BB3-804C-331D09CC3402} = {D7AD4AF2-B32F-44C6-9F19-90484D586346} {34090477-688B-45F5-9998-11A71A6B043F} = {D7AD4AF2-B32F-44C6-9F19-90484D586346} {DEBD9452-DA29-4C28-8800-32E1484EA16F} = {D7AD4AF2-B32F-44C6-9F19-90484D586346} - {3DA3B4B6-916E-4F21-88C6-512DF0C0A38C} = {58B7B6E2-3FC1-4BB6-92E0-7E3E651A304C} {B88DE14D-3E0D-440E-A753-CE7ADD5DF3CA} = {AFFB8D67-1F60-40FE-8055-BDD120015C09} {F3DF5408-637E-49DB-BF6B-0B7D17509AC0} = {AFFB8D67-1F60-40FE-8055-BDD120015C09} - {577A83B6-66B6-4A98-A3D6-4EBA066A1772} = {58B7B6E2-3FC1-4BB6-92E0-7E3E651A304C} {5CCE3BBB-3CBC-4E4A-92CA-832D119C8F70} = {ADCA6209-AD2C-4990-9825-DE8CCA79BA2B} {DFA83275-7232-4F2B-912A-BD362AA228B3} = {3757757F-7978-4C27-8691-73FFF12BDE9B} {A8D818F5-7324-4620-B1AF-B388AB538502} = {D7AD4AF2-B32F-44C6-9F19-90484D586346} @@ -638,7 +611,7 @@ Global {5CCE3B12-3CCC-4E4A-92CA-832D11F98F70} = {ADCA6209-AD2C-4990-9825-DE8CCA79BA2B} {3B2AABD2-060F-4C2C-8633-4005645564F2} = {ADCA6209-AD2C-4990-9825-DE8CCA79BA2B} {ACA665CC-3DFA-4C22-A6F4-2DF827A9378A} = {ADCA6209-AD2C-4990-9825-DE8CCA79BA2B} - {51CD3B12-3CCC-4E4A-92C3-832D11F98F70} = {ADCA6209-AD2C-4990-9825-DE8CCA79BA2B} + {628D7997-796C-4668-8CFD-4F362FDB8759} = {ADCA6209-AD2C-4990-9825-DE8CCA79BA2B} {6B9091EB-E0CA-4FE5-9FF1-69DE4D749F00} = {ADCA6209-AD2C-4990-9825-DE8CCA79BA2B} {DFA83275-7232-423B-912A-BD362AA228B3} = {3757757F-7978-4C27-8691-73FFF12BDE9B} {BA2829C1-66EF-4C21-852D-ECA482898DCF} = {ADCA6209-AD2C-4990-9825-DE8CCA79BA2B} diff --git a/Source/Thunder/CMakeLists.txt b/Source/Thunder/CMakeLists.txt index b2632e942..5d3c82738 100644 --- a/Source/Thunder/CMakeLists.txt +++ b/Source/Thunder/CMakeLists.txt @@ -57,7 +57,7 @@ endif() target_include_directories(${TARGET} PUBLIC - $ + $ PRIVATE $ ) diff --git a/Source/Thunder/Controller.cpp b/Source/Thunder/Controller.cpp index 2c66b09ce..0521dcfd9 100644 --- a/Source/Thunder/Controller.cpp +++ b/Source/Thunder/Controller.cpp @@ -20,7 +20,7 @@ #include "Controller.h" #include "SystemInfo.h" -#include +#include namespace Thunder { diff --git a/Source/Thunder/Controller.h b/Source/Thunder/Controller.h index 44833d3a6..16ad39dd8 100644 --- a/Source/Thunder/Controller.h +++ b/Source/Thunder/Controller.h @@ -26,7 +26,7 @@ #include "IController.h" #include "PostMortem.h" -#include +#include namespace Thunder { namespace Plugin { diff --git a/Source/Thunder/bridge.vcxproj b/Source/Thunder/bridge.vcxproj index 10f4936a9..3740297a0 100755 --- a/Source/Thunder/bridge.vcxproj +++ b/Source/Thunder/bridge.vcxproj @@ -122,7 +122,7 @@ APPLICATION_NAME=Thunder;__CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;_WINDOWS;THREADPOOL_COUNT=4;HOSTING_COMPROCESS=comprocess.exe;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true pch.h - $(FrameworkPath)plugins;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + $(FrameworkPath)plugins;$(FrameworkPath)interfaces;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true @@ -131,6 +131,7 @@ true true $(OutDir) + interfaces.lib;%(AdditionalDependencies) $(IntDir)$(TargetName).pdb @@ -146,13 +147,14 @@ APPLICATION_NAME=Thunder;__CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;_WINDOWS;THREADPOOL_COUNT=4;HOSTING_COMPROCESS=comprocess.exe;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true pch.h - $(FrameworkPath)plugins;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + $(FrameworkPath)plugins;$(FrameworkPath)interfaces;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true Console true $(OutDir) + interfaces.lib;%(AdditionalDependencies) $(IntDir)$(TargetName).pdb @@ -168,13 +170,14 @@ APPLICATION_NAME=Thunder;__CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;_WINDOWS;THREADPOOL_COUNT=4;HOSTING_COMPROCESS=comprocess.exe;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true pch.h - $(FrameworkPath)plugins;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + $(FrameworkPath)plugins;$(FrameworkPath)interfaces;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true Console true $(OutDir) + interfaces.lib;%(AdditionalDependencies) $(IntDir)$(TargetName).pdb @@ -192,7 +195,7 @@ APPLICATION_NAME=Thunder;__CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;_WINDOWS;THREADPOOL_COUNT=4;HOSTING_COMPROCESS=comprocess.exe;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true pch.h - $(FrameworkPath)plugins;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + $(FrameworkPath)plugins;$(FrameworkPath)interfaces;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true @@ -201,6 +204,7 @@ true true $(OutDir) + interfaces.lib;%(AdditionalDependencies) $(IntDir)$(TargetName).pdb diff --git a/Source/interfaces/CMakeLists.txt b/Source/interfaces/CMakeLists.txt new file mode 100644 index 000000000..3eb706a92 --- /dev/null +++ b/Source/interfaces/CMakeLists.txt @@ -0,0 +1,147 @@ +# If not stated otherwise in this file or this component's license file the +# following copyright and licenses apply: +# +# Copyright 2025 Metrological +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set(TARGET ${NAMESPACE}Interfaces) +set(TARGET_PROXYSTUBS ${NAMESPACE}ProxyStubs) +string(TOLOWER ${NAMESPACE} NAMESPACE_LIB) + +ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IPlugin.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") +ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IShell.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") +ProxyStubGenerator(NAMESPACE "Thunder::Exchange" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IController.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") +ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IStateControl.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") +ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IStateController.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") +ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/ISubSystem.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") +ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IDispatcher.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") + +JsonGenerator(CODE NAMESPACE Thunder::Exchange::Controller INPUT ${CMAKE_CURRENT_SOURCE_DIR}/IController.h OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/json" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/.." NO_INCLUDES) +JsonGenerator(CODE NAMESPACE Thunder::PluginHost INPUT ${CMAKE_CURRENT_SOURCE_DIR}/IStateController.h OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/json" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") + +file(GLOB JSON_DATA_HEADERS "${CMAKE_CURRENT_BINARY_DIR}/json/JsonData_*.h" "${CMAKE_CURRENT_BINARY_DIR}/json/json_*.h") +file(GLOB JSON_ENUM_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/json/JsonEnum_*.cpp") +file(GLOB PROXY_STUB_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/generated/ProxyStubs*.cpp") +list(APPEND JSON_CODE_HEADERS "${CMAKE_CURRENT_BINARY_DIR}/json/JStateController.h") + +add_library(${TARGET_PROXYSTUBS} SHARED + ${PROXY_STUB_SOURCES} + Module.cpp + ) + +add_library(${TARGET} SHARED + ${JSON_ENUM_SOURCES} + Module.cpp + ) + +set(PUBLIC_HEADERS + IController.h + IDispatcher.h + IPlugin.h + IShell.h + IStateControl.h + IStateController.h + ISubSystem.h + IVirtualInput.h + interfaces.h + Module.h + ) + +# when compiling proxy/stubs we should ignore deprecated warnings (which are treated as errors nowadays) +# as usage of those deprecated methods is valid here +target_compile_options(${TARGET_PROXYSTUBS} PRIVATE -Wno-deprecated-declarations) + +target_link_libraries(${TARGET_PROXYSTUBS} + PRIVATE + CompileSettingsDebug::CompileSettingsDebug + ${NAMESPACE}Core::${NAMESPACE}Core + ${NAMESPACE}COM::${NAMESPACE}COM + ${NAMESPACE}Messaging::${NAMESPACE}Messaging + ) + +target_link_libraries(${TARGET} + PUBLIC + ${NAMESPACE}Core::${NAMESPACE}Core + ${NAMESPACE}COM::${NAMESPACE}COM + PRIVATE + CompileSettingsDebug::CompileSettingsDebug + ) + +target_include_directories( ${TARGET_PROXYSTUBS} + PRIVATE + $ + $ + ) + +target_include_directories( ${TARGET} + PUBLIC + $ + $ + $ + ) + +set_target_properties(${TARGET_PROXYSTUBS} PROPERTIES + CXX_STANDARD ${CXX_STD} + CXX_STANDARD_REQUIRED YES + FRAMEWORK FALSE + SOVERSION ${VERSION_MAJOR} + ) + +set_target_properties(${TARGET} PROPERTIES + CXX_STANDARD ${CXX_STD} + CXX_STANDARD_REQUIRED YES + FRAMEWORK FALSE + PUBLIC_HEADER "${PUBLIC_HEADERS}" # specify the public headers + SOVERSION ${VERSION_MAJOR} + ) + +if(HUMAN_VERSIONED_BINARIES) +set_target_properties(${TARGET} PROPERTIES + VERSION ${VERSION} + ) +endif() +# =========================================================================================== +# Install ARTIFACTS: +# =========================================================================================== +install( + TARGETS ${TARGET} EXPORT ${TARGET}Targets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${NAMESPACE}_Development + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${NAMESPACE}_Runtime NAMELINK_COMPONENT ${NAMESPACE}_Development + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime + FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/interfaces COMPONENT ${NAMESPACE}_Development + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE} +) + +install( + FILES ${JSON_DATA_HEADERS} ${JSON_CODE_HEADERS} + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/interfaces/json + COMPONENT ${NAMESPACE}_Development +) + +install( + TARGETS ${TARGET_PROXYSTUBS} EXPORT ${TARGET_PROXYSTUBS}Targets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/${NAMESPACE_LIB}/proxystubs COMPONENT ${NAMESPACE}_Development + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${NAMESPACE_LIB}/proxystubs COMPONENT ${NAMESPACE}_Runtime NAMELINK_COMPONENT ${NAMESPACE}_Development + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime + FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}/${NAMESPACE_LIB}/proxystubs COMPONENT ${NAMESPACE}_Runtime + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/proxystubs COMPONENT ${NAMESPACE}_Development + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/proxystubs +) +# =========================================================================================== +# Install METADATA: +# =========================================================================================== + +InstallCMakeConfig(TARGETS ${TARGET}) +InstallCMakeConfig(TARGETS ${TARGET_PROXYSTUBS}) \ No newline at end of file diff --git a/Source/plugins/IController.h b/Source/interfaces/IController.h similarity index 99% rename from Source/plugins/IController.h rename to Source/interfaces/IController.h index eb53b8557..33315cdfc 100644 --- a/Source/plugins/IController.h +++ b/Source/interfaces/IController.h @@ -22,8 +22,8 @@ #include "IShell.h" // @insert -// @insert -// @insert +// @insert +// @insert namespace Thunder { diff --git a/Source/plugins/IDispatcher.h b/Source/interfaces/IDispatcher.h similarity index 100% rename from Source/plugins/IDispatcher.h rename to Source/interfaces/IDispatcher.h diff --git a/Source/plugins/IPlugin.h b/Source/interfaces/IPlugin.h similarity index 100% rename from Source/plugins/IPlugin.h rename to Source/interfaces/IPlugin.h diff --git a/Source/plugins/IShell.h b/Source/interfaces/IShell.h similarity index 100% rename from Source/plugins/IShell.h rename to Source/interfaces/IShell.h diff --git a/Source/plugins/IStateControl.h b/Source/interfaces/IStateControl.h similarity index 100% rename from Source/plugins/IStateControl.h rename to Source/interfaces/IStateControl.h diff --git a/Source/plugins/IStateController.h b/Source/interfaces/IStateController.h similarity index 100% rename from Source/plugins/IStateController.h rename to Source/interfaces/IStateController.h diff --git a/Source/plugins/ISubSystem.h b/Source/interfaces/ISubSystem.h similarity index 100% rename from Source/plugins/ISubSystem.h rename to Source/interfaces/ISubSystem.h diff --git a/Source/plugins/IVirtualInput.h b/Source/interfaces/IVirtualInput.h similarity index 100% rename from Source/plugins/IVirtualInput.h rename to Source/interfaces/IVirtualInput.h diff --git a/Source/interfaces/Module.cpp b/Source/interfaces/Module.cpp new file mode 100644 index 000000000..1b2329413 --- /dev/null +++ b/Source/interfaces/Module.cpp @@ -0,0 +1,27 @@ +/* + * If not stated otherwise in this file or this component's LICENSE file the + * following copyright and licenses apply: + * + * Copyright 2020 Metrological + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "Module.h" +#include "IController.h" + +#ifdef BUILD_SHARED_LIBS +MODULE_NAME_DECLARATION(BUILD_REFERENCE) +#else +MODULE_NAME_ARCHIVE_DECLARATION +#endif \ No newline at end of file diff --git a/Source/interfaces/Module.h b/Source/interfaces/Module.h new file mode 100644 index 000000000..46effe47c --- /dev/null +++ b/Source/interfaces/Module.h @@ -0,0 +1,41 @@ +/* + * If not stated otherwise in this file or this component's LICENSE file the + * following copyright and licenses apply: + * + * Copyright 2020 Metrological + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#ifndef MODULE_NAME +#define MODULE_NAME Interfaces +#endif + +#include +#include +#include +#include +#include + +#ifdef __CORE_WARNING_REPORTING__ + #include +#endif + +#if defined(__WINDOWS__) && defined(INTERFACES_EXPORTS) +#undef EXTERNAL +#define EXTERNAL EXTERNAL_EXPORT +#endif + +// @insert \ No newline at end of file diff --git a/Source/interfaces/definitions.h b/Source/interfaces/definitions.h new file mode 100644 index 000000000..8aa9205eb --- /dev/null +++ b/Source/interfaces/definitions.h @@ -0,0 +1,26 @@ +/* + * If not stated otherwise in this file or this component's LICENSE file the + * following copyright and licenses apply: + * + * Copyright 2023 Metrological + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +// Generated JSON enum sources include this header. + +#include +#include +#include diff --git a/Source/interfaces/interfaces.h b/Source/interfaces/interfaces.h new file mode 100644 index 000000000..4c1ad71be --- /dev/null +++ b/Source/interfaces/interfaces.h @@ -0,0 +1,44 @@ +/* + * If not stated otherwise in this file or this component's LICENSE file the + * following copyright and licenses apply: + * + * Copyright 2020 Metrological + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#ifndef MODULE_NAME +#error "Please define a MODULE_NAME that describes the binary/library you are building." +#endif + +// Since this header is included, the code using it is external to Thunder core. +// So therefore it should use the correct Tracing functionality and not TRACE_L# (which are just fancy printfs). +#define CORE_TRACE_NOT_ALLOWED + +#include "Module.h" +#include "IController.h" +#include "IPlugin.h" +#include "IShell.h" +#include "IStateControl.h" +#include "ISubSystem.h" +#include "IVirtualInput.h" +#include "IStateController.h" + +#ifdef __WINDOWS__ +#pragma comment(lib, "interfaces.lib") +#endif + +WPEFRAMEWORK_NESTEDNAMESPACE_COMPATIBILIY(Plugin) +WPEFRAMEWORK_NESTEDNAMESPACE_COMPATIBILIY(PluginHost) \ No newline at end of file diff --git a/Source/interfaces/interfaces.vcxproj b/Source/interfaces/interfaces.vcxproj new file mode 100755 index 000000000..78a621ed1 --- /dev/null +++ b/Source/interfaces/interfaces.vcxproj @@ -0,0 +1,318 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + false + true + false + true + false + true + false + true + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force + + + $(ProjectDir)json/JDispatcher.h + $(ProjectDir)json/JDispatcher.h + $(ProjectDir)json/JDispatcher.h + $(ProjectDir)json/JDispatcher.h + + + + + + false + true + false + true + false + true + false + true + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(ProjectDir)\" -I "$(FrameworkPath)\" --case-convention legacy --keep-empty -c --namespace Thunder::PluginHost -o "$(ProjectDir)/json" "%(FullPath)" --force + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(ProjectDir)\" -I "$(FrameworkPath)\" --case-convention legacy --keep-empty -c --namespace Thunder::PluginHost -o "$(ProjectDir)/json" "%(FullPath)" --force + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(ProjectDir)\" -I "$(FrameworkPath)\" --case-convention legacy --keep-empty -c --namespace Thunder::PluginHost -o "$(ProjectDir)/json" "%(FullPath)" --force + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(ProjectDir)\" -I "$(FrameworkPath)\" --case-convention legacy --keep-empty -c --namespace Thunder::PluginHost -o "$(ProjectDir)/json" "%(FullPath)" --force + + + + + + + + + + + 15.0 + {4D595795-BD40-45A2-BE53-D5A626691D4C} + Win32Proj + interfaces + 10.0 + + + + DynamicLibrary + true + v143 + MultiByte + + + DynamicLibrary + false + v143 + true + MultiByte + + + DynamicLibrary + true + v143 + MultiByte + + + DynamicLibrary + false + v143 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + false + $(SolutionDir)..\artifacts\$(Configuration)\ + $(OutDir)WebBridge\$(TargetName)\ + + + true + $(SolutionDir)..\artifacts\$(Configuration)\ + $(OutDir)WebBridge\$(TargetName)\ + + + true + $(SolutionDir)..\artifacts\$(Configuration)\ + $(OutDir)WebBridge\$(TargetName)\ + + + false + $(SolutionDir)..\artifacts\$(Configuration)\ + $(OutDir)WebBridge\$(TargetName)\ + + + + NotUsing + Level3 + MaxSpeed + true + true + true + __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;NDEBUG;INTERFACES_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + true + + + Windows + true + true + true + $(OutDir) + $(IntDir)$(TargetName).pdb + + + + + + + + + + + + + + + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force + + + JSON Generated Code + $(ProjectDir)json/json_%(FileName).h + ClInclude + true + + + + + NotUsing + Level3 + Disabled + true + __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;INTERFACES_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + true + + + Windows + true + $(OutDir) + $(IntDir)$(TargetName).pdb + + + + + + + + + + + + + + + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force + + + JSON Generated Code + $(ProjectDir)json/json_%(FileName).h + ClInclude + true + + + + + NotUsing + Level3 + Disabled + true + __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;_DEBUG;INTERFACES_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + true + + + Windows + true + $(OutDir) + $(IntDir)$(TargetName).pdb + + + + + + + + + + + + + + + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force + + + JSON Generated Code + $(ProjectDir)json/json_%(FileName).h + ClInclude + true + + + + + NotUsing + Level3 + MaxSpeed + true + true + true + __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;INTERFACES_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + true + + + Windows + true + true + true + $(OutDir) + $(IntDir)$(TargetName).pdb + + + + + + + + + + + + + + + python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force + + + JSON Generated Code + $(ProjectDir)json/json_%(FileName).h + ClInclude + true + + + + + + + + + \ No newline at end of file diff --git a/Source/interfaces/interfaces.vcxproj.filters b/Source/interfaces/interfaces.vcxproj.filters new file mode 100755 index 000000000..c1043fb46 --- /dev/null +++ b/Source/interfaces/interfaces.vcxproj.filters @@ -0,0 +1,77 @@ + + + + + Source Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + + + Header Files + + + Interface Files + + + Interface Files + + + Interface Files + + + Interface Files + + + Interface Files + + + Header Files + + + Interface Files + + + + + {732d1d78-3748-41b5-bf71-af9724b3d5b7} + + + {7a08230c-cdee-40ba-83c1-3ae9e2a00374} + + + {4ca8a196-74dd-4e20-98ef-051e5a446b67} + + + {2ef8c592-a7e4-4c2e-9d00-d54599022486} + + + + + + + + Interface Files + + + Interface Files + + + \ No newline at end of file diff --git a/Source/plugins/proxystubs.vcxproj b/Source/interfaces/proxystubs.vcxproj similarity index 91% rename from Source/plugins/proxystubs.vcxproj rename to Source/interfaces/proxystubs.vcxproj index 73347c856..66de96304 100644 --- a/Source/plugins/proxystubs.vcxproj +++ b/Source/interfaces/proxystubs.vcxproj @@ -28,6 +28,7 @@ + @@ -114,7 +115,7 @@ true true true - __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;NDEBUG;PLUGINS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;NDEBUG;INTERFACES_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true @@ -129,7 +130,7 @@ $(IntDir)$(TargetName).pdb - python "$(ToolPath)\ProxyStubGenerator\StubGenerator.py" --namespace Thunder --outdir "$(SolutionDir)..\artifacts\generated\$(ProjectName)" "$(ProjectDir)IPlugin.h" "$(ProjectDir)IShell.h" "$(ProjectDir)IController.h" "$(ProjectDir)IStateControl.h" "$(ProjectDir)ISubSystem.h" "$(ProjectDir)IDispatcher.h" -I "$(ProjectDir)\.." + python "$(ToolPath)\ProxyStubGenerator\StubGenerator.py" --namespace Thunder --outdir "$(SolutionDir)..\artifacts\generated\$(ProjectName)" "$(ProjectDir)IPlugin.h" "$(ProjectDir)IShell.h" "$(ProjectDir)IController.h" "$(ProjectDir)IStateControl.h" "$(ProjectDir)IStateController.h" "$(ProjectDir)ISubSystem.h" "$(ProjectDir)IDispatcher.h" -I "$(ProjectDir)\.." -I "$(FrameworkPath)" @@ -140,7 +141,7 @@ Level3 Disabled true - __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;PLUGINS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;INTERFACES_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true @@ -153,7 +154,7 @@ $(IntDir)$(TargetName).pdb - python "$(ToolPath)\ProxyStubGenerator\StubGenerator.py" --namespace Thunder --outdir "$(SolutionDir)..\artifacts\generated\$(ProjectName)" "$(ProjectDir)IPlugin.h" "$(ProjectDir)IShell.h" "$(ProjectDir)IController.h" "$(ProjectDir)IStateControl.h" "$(ProjectDir)ISubSystem.h" "$(ProjectDir)IDispatcher.h" -I "$(ProjectDir)\.." + python "$(ToolPath)\ProxyStubGenerator\StubGenerator.py" --namespace Thunder --outdir "$(SolutionDir)..\artifacts\generated\$(ProjectName)" "$(ProjectDir)IPlugin.h" "$(ProjectDir)IShell.h" "$(ProjectDir)IController.h" "$(ProjectDir)IStateControl.h" "$(ProjectDir)IStateController.h" "$(ProjectDir)ISubSystem.h" "$(ProjectDir)IDispatcher.h" -I "$(ProjectDir)\.." -I "$(FrameworkPath)" @@ -164,7 +165,7 @@ Level3 Disabled true - __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;_DEBUG;PLUGINS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;_DEBUG;INTERFACES_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true @@ -177,7 +178,7 @@ $(IntDir)$(TargetName).pdb - python "$(ToolPath)\ProxyStubGenerator\StubGenerator.py" --namespace Thunder --outdir "$(SolutionDir)..\artifacts\generated\$(ProjectName)" "$(ProjectDir)IPlugin.h" "$(ProjectDir)IShell.h" "$(ProjectDir)IController.h" "$(ProjectDir)IStateControl.h" "$(ProjectDir)ISubSystem.h" "$(ProjectDir)IDispatcher.h" -I "$(ProjectDir)\.." + python "$(ToolPath)\ProxyStubGenerator\StubGenerator.py" --namespace Thunder --outdir "$(SolutionDir)..\artifacts\generated\$(ProjectName)" "$(ProjectDir)IPlugin.h" "$(ProjectDir)IShell.h" "$(ProjectDir)IController.h" "$(ProjectDir)IStateControl.h" "$(ProjectDir)IStateController.h" "$(ProjectDir)ISubSystem.h" "$(ProjectDir)IDispatcher.h" -I "$(ProjectDir)\.." -I "$(FrameworkPath)" @@ -190,7 +191,7 @@ true true true - __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;PLUGINS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;INTERFACES_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true @@ -205,7 +206,7 @@ $(IntDir)$(TargetName).pdb - python "$(ToolPath)\ProxyStubGenerator\StubGenerator.py" --namespace Thunder --outdir "$(SolutionDir)..\artifacts\generated\$(ProjectName)" "$(ProjectDir)IPlugin.h" "$(ProjectDir)IShell.h" "$(ProjectDir)IController.h" "$(ProjectDir)IStateControl.h" "$(ProjectDir)ISubSystem.h" "$(ProjectDir)IDispatcher.h" -I "$(ProjectDir)\.." + python "$(ToolPath)\ProxyStubGenerator\StubGenerator.py" --namespace Thunder --outdir "$(SolutionDir)..\artifacts\generated\$(ProjectName)" "$(ProjectDir)IPlugin.h" "$(ProjectDir)IShell.h" "$(ProjectDir)IController.h" "$(ProjectDir)IStateControl.h" "$(ProjectDir)IStateController.h" "$(ProjectDir)ISubSystem.h" "$(ProjectDir)IDispatcher.h" -I "$(ProjectDir)\.." -I "$(FrameworkPath)" diff --git a/Source/plugins/proxystubs.vcxproj.filters b/Source/interfaces/proxystubs.vcxproj.filters similarity index 89% rename from Source/plugins/proxystubs.vcxproj.filters rename to Source/interfaces/proxystubs.vcxproj.filters index ffb8f2e91..03bf5bb80 100644 --- a/Source/plugins/proxystubs.vcxproj.filters +++ b/Source/interfaces/proxystubs.vcxproj.filters @@ -24,6 +24,9 @@ Generated Files + + Generated Files + Generated Files diff --git a/Source/plugins/CMakeLists.txt b/Source/plugins/CMakeLists.txt index 4ec351399..6b4e1ccbb 100644 --- a/Source/plugins/CMakeLists.txt +++ b/Source/plugins/CMakeLists.txt @@ -16,26 +16,10 @@ # limitations under the License. set(TARGET ${NAMESPACE}Plugins) -set(TARGET_PROXYSTUBS ${NAMESPACE}ProxyStubs) string(TOLOWER ${NAMESPACE} NAMESPACE_LIB) option(VIRTUALINPUT_TOOLS "Build VirtualInput tools" OFF) -ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IPlugin.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") -ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IShell.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") -ProxyStubGenerator(NAMESPACE "Thunder::Exchange" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IController.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") -ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IStateControl.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") -ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IStateController.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") -ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/ISubSystem.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") -ProxyStubGenerator(NAMESPACE "Thunder::PluginHost" INPUT "${CMAKE_CURRENT_SOURCE_DIR}/IDispatcher.h" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/..") - -JsonGenerator(CODE NAMESPACE Thunder::Exchange::Controller INPUT ${CMAKE_CURRENT_SOURCE_DIR}/IController.h OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/json" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/.." NO_INCLUDES) -JsonGenerator(CODE NAMESPACE Thunder::PluginHost INPUT ${CMAKE_CURRENT_SOURCE_DIR}/IStateController.h OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/json" INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/.." NO_INCLUDES) - -file(GLOB JSON_ENUM_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/json/JsonEnum_*.cpp") -file(GLOB JSON_DATA_HEADERS "${CMAKE_CURRENT_BINARY_DIR}/json/JsonData_*.h" "${CMAKE_CURRENT_BINARY_DIR}/json/json_*.h") -list(APPEND JSON_CODE_HEADERS "${CMAKE_CURRENT_BINARY_DIR}/json/JStateController.h") - add_library(${TARGET} Channel.cpp JSONRPC.cpp @@ -47,31 +31,13 @@ add_library(${TARGET} SubSystem.cpp VirtualInput.cpp System.cpp - ${JSON_ENUM_SOURCES} - ) - -file(GLOB PROXY_STUB_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/generated/ProxyStubs*.cpp") -add_library(${TARGET_PROXYSTUBS} SHARED - ${PROXY_STUB_SOURCES} - Module.cpp ) -# ProxyStubs should always be a shared object, so define BUILD_SHARED_LIBS -# to get the proper Module.cpp version -target_compile_definitions(${TARGET_PROXYSTUBS} PRIVATE BUILD_SHARED_LIBS) - set(PUBLIC_HEADERS Channel.h Config.h Configuration.h - IPlugin.h - IShell.h - IController.h - IStateControl.h - IStateController.h StateControl.h - ISubSystem.h - IDispatcher.h SubSystem.h JSONRPC.h Metadata.h @@ -81,7 +47,6 @@ set(PUBLIC_HEADERS System.h Types.h VirtualInput.h - IVirtualInput.h Module.h ) @@ -92,6 +57,7 @@ target_link_libraries(${TARGET} ${NAMESPACE}Messaging::${NAMESPACE}Messaging ${NAMESPACE}COM::${NAMESPACE}COM ${NAMESPACE}WebSocket::${NAMESPACE}WebSocket + ${NAMESPACE}Interfaces::${NAMESPACE}Interfaces PRIVATE CompileSettingsDebug::CompileSettingsDebug ) @@ -103,29 +69,13 @@ if (WARNING_REPORTING) ) endif() -# when compiling proxy/stubs we should ignore deprecated warnings (which are treated as erros nowadays) -# as usage of those deprecated methods is valid here -target_compile_options(${TARGET_PROXYSTUBS} PRIVATE -Wno-deprecated-declarations) - -target_link_libraries(${TARGET_PROXYSTUBS} - PRIVATE - CompileSettingsDebug::CompileSettingsDebug - ${NAMESPACE}Core::${NAMESPACE}Core - ${NAMESPACE}COM::${NAMESPACE}COM - ${NAMESPACE}Messaging::${NAMESPACE}Messaging - ) - target_include_directories( ${TARGET} PUBLIC $ - $ + $ + $ $ - ) - -target_include_directories( ${TARGET_PROXYSTUBS} - PRIVATE - $ - $ + $ ) set_target_properties(${TARGET} PROPERTIES @@ -142,19 +92,6 @@ set_target_properties(${TARGET} PROPERTIES ) endif() -set_target_properties(${TARGET_PROXYSTUBS} PROPERTIES - CXX_STANDARD ${CXX_STD} - CXX_STANDARD_REQUIRED YES - FRAMEWORK FALSE - SOVERSION ${VERSION_MAJOR} - ) - -if(HUMAN_VERSIONED_BINARIES) -set_target_properties(${TARGET} PROPERTIES - VERSION ${VERSION} - ) -endif() - # =========================================================================================== # Install ARTIFACTS: # =========================================================================================== @@ -168,21 +105,6 @@ install( INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE} ) -install( - FILES ${JSON_DATA_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/plugins/json COMPONENT ${NAMESPACE}_Development - FILES ${JSON_CODE_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/plugins/json COMPONENT ${NAMESPACE}_Development -) - -install( - TARGETS ${TARGET_PROXYSTUBS} EXPORT ${TARGET_PROXYSTUBS}Targets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/${NAMESPACE_LIB}/proxystubs COMPONENT ${NAMESPACE}_Development - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${NAMESPACE_LIB}/proxystubs COMPONENT ${NAMESPACE}_Runtime NAMELINK_COMPONENT ${NAMESPACE}_Development - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime - FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}/${NAMESPACE_LIB}/proxystubs COMPONENT ${NAMESPACE}_Runtime - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/proxystubs COMPONENT ${NAMESPACE}_Development - INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/proxystubs -) - # =========================================================================================== # Install METADATA: # =========================================================================================== @@ -192,6 +114,4 @@ InstallPackageConfig( InstallCMakeConfig( EXTRA_DEPENDENCIES "ConfigGenerator" - TARGETS ${TARGET}) - -InstallCMakeConfig(TARGETS ${TARGET_PROXYSTUBS}) + TARGETS ${TARGET}) \ No newline at end of file diff --git a/Source/plugins/Configuration.h b/Source/plugins/Configuration.h index 16ffb999e..7c9628e6b 100644 --- a/Source/plugins/Configuration.h +++ b/Source/plugins/Configuration.h @@ -21,10 +21,10 @@ #include "Module.h" #include "Config.h" -#include "IPlugin.h" -#include "IShell.h" -#include "ISubSystem.h" -#include "IController.h" +#include "interfaces/IPlugin.h" +#include "interfaces/IShell.h" +#include "interfaces/ISubSystem.h" +#include "interfaces/IController.h" namespace Thunder { namespace Plugin { diff --git a/Source/plugins/JSONRPC.h b/Source/plugins/JSONRPC.h index d676a19ff..e8ac524be 100644 --- a/Source/plugins/JSONRPC.h +++ b/Source/plugins/JSONRPC.h @@ -21,9 +21,9 @@ #include "Module.h" #include "System.h" -#include "IShell.h" -#include "IPlugin.h" -#include "IDispatcher.h" +#include "interfaces/IShell.h" +#include "interfaces/IPlugin.h" +#include "interfaces/IDispatcher.h" namespace Thunder { diff --git a/Source/plugins/Metadata.cpp b/Source/plugins/Metadata.cpp index eeae04ba2..9941e3449 100644 --- a/Source/plugins/Metadata.cpp +++ b/Source/plugins/Metadata.cpp @@ -19,8 +19,8 @@ #include "Module.h" #include "Metadata.h" -#include "IStateControl.h" -#include "ISubSystem.h" +#include "interfaces/IStateControl.h" +#include "interfaces/ISubSystem.h" namespace Thunder { diff --git a/Source/plugins/Metadata.h b/Source/plugins/Metadata.h index a064f2965..24de5acfa 100644 --- a/Source/plugins/Metadata.h +++ b/Source/plugins/Metadata.h @@ -22,9 +22,9 @@ #include "Module.h" #include "Configuration.h" -#include "IController.h" -#include -#include +#include "interfaces/IController.h" +#include +#include namespace Thunder { namespace PluginHost { diff --git a/Source/plugins/Module.cpp b/Source/plugins/Module.cpp index 1b2329413..99010b21c 100644 --- a/Source/plugins/Module.cpp +++ b/Source/plugins/Module.cpp @@ -18,7 +18,7 @@ */ #include "Module.h" -#include "IController.h" +#include "interfaces/IController.h" #ifdef BUILD_SHARED_LIBS MODULE_NAME_DECLARATION(BUILD_REFERENCE) diff --git a/Source/plugins/Service.h b/Source/plugins/Service.h index df2cda324..1d0d43da9 100644 --- a/Source/plugins/Service.h +++ b/Source/plugins/Service.h @@ -24,8 +24,8 @@ #include "Configuration.h" #include "Metadata.h" #include "System.h" -#include "IPlugin.h" -#include "IShell.h" +#include "interfaces/IPlugin.h" +#include "interfaces/IShell.h" namespace Thunder { namespace PluginHost { diff --git a/Source/plugins/Shell.cpp b/Source/plugins/Shell.cpp index 611a2386e..d58ef9694 100644 --- a/Source/plugins/Shell.cpp +++ b/Source/plugins/Shell.cpp @@ -18,7 +18,7 @@ */ #include "Module.h" -#include "IShell.h" +#include "interfaces/IShell.h" #include "Configuration.h" namespace Thunder { diff --git a/Source/plugins/StateControl.cpp b/Source/plugins/StateControl.cpp index 3e67115c2..81bae5ce8 100644 --- a/Source/plugins/StateControl.cpp +++ b/Source/plugins/StateControl.cpp @@ -18,7 +18,7 @@ */ #include "Module.h" -#include "IStateControl.h" +#include "interfaces/IStateControl.h" namespace Thunder { diff --git a/Source/plugins/StateControl.h b/Source/plugins/StateControl.h index 99854a1bf..4a91249fb 100644 --- a/Source/plugins/StateControl.h +++ b/Source/plugins/StateControl.h @@ -20,7 +20,7 @@ #pragma once #include "Module.h" -#include "IStateControl.h" +#include "interfaces/IStateControl.h" namespace Thunder { diff --git a/Source/plugins/SubSystem.cpp b/Source/plugins/SubSystem.cpp index 312a6809c..caa87b7d5 100644 --- a/Source/plugins/SubSystem.cpp +++ b/Source/plugins/SubSystem.cpp @@ -18,7 +18,7 @@ */ #include "Module.h" -#include "ISubSystem.h" +#include "interfaces/ISubSystem.h" namespace Thunder { diff --git a/Source/plugins/SubSystem.h b/Source/plugins/SubSystem.h index abacbecfb..9710c3770 100644 --- a/Source/plugins/SubSystem.h +++ b/Source/plugins/SubSystem.h @@ -20,7 +20,7 @@ #pragma once #include "Module.h" -#include "ISubSystem.h" +#include "interfaces/ISubSystem.h" namespace Thunder { diff --git a/Source/plugins/Types.h b/Source/plugins/Types.h index 07e1b13bb..6ba5522a3 100644 --- a/Source/plugins/Types.h +++ b/Source/plugins/Types.h @@ -20,8 +20,8 @@ #include "Module.h" -#include "IPlugin.h" -#include "IShell.h" +#include "interfaces/IPlugin.h" +#include "interfaces/IShell.h" namespace Thunder { namespace PluginHost { diff --git a/Source/plugins/VirtualInput.h b/Source/plugins/VirtualInput.h index eed8bd3bc..14bf71248 100644 --- a/Source/plugins/VirtualInput.h +++ b/Source/plugins/VirtualInput.h @@ -23,7 +23,7 @@ #define __VIRTUAL_INPUT__ #include "Module.h" -#include "IVirtualInput.h" +#include "interfaces/IVirtualInput.h" namespace Thunder { namespace PluginHost { diff --git a/Source/plugins/definitions.h b/Source/plugins/definitions.h index 9ce2219b2..772d430d6 100644 --- a/Source/plugins/definitions.h +++ b/Source/plugins/definitions.h @@ -23,4 +23,4 @@ #include #include -#include +#include \ No newline at end of file diff --git a/Source/plugins/plugins.h b/Source/plugins/plugins.h index 70f6ac353..2a1910bed 100644 --- a/Source/plugins/plugins.h +++ b/Source/plugins/plugins.h @@ -31,14 +31,7 @@ #include "Config.h" #include "Channel.h" #include "Configuration.h" -#include "IController.h" -#include "IPlugin.h" -#include "IShell.h" -#include "IStateControl.h" -#include "ISubSystem.h" -#include "IVirtualInput.h" #include "JSONRPC.h" -#include "IStateController.h" #include "Metadata.h" #include "Request.h" #include "Service.h" @@ -53,4 +46,4 @@ #endif WPEFRAMEWORK_NESTEDNAMESPACE_COMPATIBILIY(Plugin) -WPEFRAMEWORK_NESTEDNAMESPACE_COMPATIBILIY(PluginHost) +WPEFRAMEWORK_NESTEDNAMESPACE_COMPATIBILIY(PluginHost) \ No newline at end of file diff --git a/Source/plugins/plugins.vcxproj b/Source/plugins/plugins.vcxproj index 28aeb7634..67169158c 100755 --- a/Source/plugins/plugins.vcxproj +++ b/Source/plugins/plugins.vcxproj @@ -20,13 +20,6 @@ - - - - - - - @@ -41,44 +34,6 @@ - - false - true - false - true - false - true - false - true - python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force - python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force - python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force - python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::Exchange::Controller -o "$(ProjectDir)/json" "%(FullPath)" --force - - - $(ProjectDir)json/JDispatcher.h - $(ProjectDir)json/JDispatcher.h - $(ProjectDir)json/JDispatcher.h - $(ProjectDir)json/JDispatcher.h - - - - - - false - true - false - true - false - true - false - true - python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::PluginHost -o "$(ProjectDir)/json" "%(FullPath)" --force - python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::PluginHost -o "$(ProjectDir)/json" "%(FullPath)" --force - python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::PluginHost -o "$(ProjectDir)/json" "%(FullPath)" --force - python "$(ToolPath)\JsonGenerator\JsonGenerator.py" -I "$(FrameworkPath)\" --case-convention legacy --no-includes --keep-empty -c --namespace Thunder::PluginHost -o "$(ProjectDir)/json" "%(FullPath)" --force - - @@ -175,7 +130,7 @@ true __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;NDEBUG;PLUGINS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true - .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + .;$(ProjectDir)..\interfaces;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true @@ -184,6 +139,7 @@ true true $(OutDir) + interfaces.lib;%(AdditionalDependencies) $(IntDir)$(TargetName).pdb @@ -216,13 +172,14 @@ true __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;PLUGINS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true - .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + .;$(ProjectDir)..\interfaces;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true Windows true $(OutDir) + interfaces.lib;%(AdditionalDependencies) $(IntDir)$(TargetName).pdb @@ -255,13 +212,14 @@ true __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;_DEBUG;PLUGINS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true - .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + .;$(ProjectDir)..\interfaces;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true Windows true $(OutDir) + interfaces.lib;%(AdditionalDependencies) $(IntDir)$(TargetName).pdb @@ -296,7 +254,7 @@ true __CORE_MESSAGING__;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;PLUGINS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true - .;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions + .;$(ProjectDir)..\interfaces;$(FrameworkPath);$(WindowsPath);$(WindowsPath)zlib;$(FrameworkPath)extensions true @@ -305,6 +263,7 @@ true true $(OutDir) + interfaces.lib;%(AdditionalDependencies) $(IntDir)$(TargetName).pdb @@ -332,7 +291,4 @@ - - - \ No newline at end of file diff --git a/Source/plugins/plugins.vcxproj.filters b/Source/plugins/plugins.vcxproj.filters index 3bace3c99..2c5d7856f 100755 --- a/Source/plugins/plugins.vcxproj.filters +++ b/Source/plugins/plugins.vcxproj.filters @@ -31,27 +31,6 @@ Source Files - - Generated Files - - - Generated Files - - - Generated Files - - - Generated Files - - - Generated Files - - - Generated Files - - - Generated Files - @@ -78,21 +57,9 @@ Header Files - - Interface Files - - - Interface Files - - - Interface Files - Header Files - - Interface Files - Header Files @@ -100,14 +67,11 @@ Header Files - Interface Files + Header Files Header Files - - Interface Files - @@ -126,12 +90,4 @@ - - - Interface Files - - - Interface Files - - \ No newline at end of file