From da1bb673159513ea9cbf6f26b5c8f83e7b570c82 Mon Sep 17 00:00:00 2001 From: shivaprasad-basavaraj <35128660+shivaprasad-basavaraj@users.noreply.github.com> Date: Fri, 12 Aug 2022 11:33:04 +0530 Subject: [PATCH] Changes to automate building of VIPB files (#107) * Initial Implementation * Updated implementation * Update Building.md * Address review comments. --- build-it/LV Build/BuildGRPCPackages.vi | Bin 0 -> 12705 bytes build-it/LV Build/BuildVIPBFile.vi | Bin 0 -> 14521 bytes build-it/LV Build/GRPCVIPMBuild.lvproj | 96 ++++++++++++++++++ .../GetClientServerTemplateBuildSpecPath.vi | Bin 0 -> 8300 bytes build-it/LV Build/GetInstalledVIPMPackages.vi | Bin 0 -> 9336 bytes .../LV Build/GetLVServicerBuildSpecPath.vi | Bin 0 -> 8258 bytes .../LV Build/GetLVSupportBuildSpecPath.vi | Bin 0 -> 8217 bytes build-it/LV Build/InstallVIPMPackage.vi | Bin 0 -> 13766 bytes build-it/LV Build/UnInstallGRPCPackages.vi | Bin 0 -> 13317 bytes build-it/build.py | 90 ++++++++++++++++ docs/Building.md | 69 +++++++++++-- 11 files changed, 246 insertions(+), 9 deletions(-) create mode 100644 build-it/LV Build/BuildGRPCPackages.vi create mode 100644 build-it/LV Build/BuildVIPBFile.vi create mode 100644 build-it/LV Build/GRPCVIPMBuild.lvproj create mode 100644 build-it/LV Build/GetClientServerTemplateBuildSpecPath.vi create mode 100644 build-it/LV Build/GetInstalledVIPMPackages.vi create mode 100644 build-it/LV Build/GetLVServicerBuildSpecPath.vi create mode 100644 build-it/LV Build/GetLVSupportBuildSpecPath.vi create mode 100644 build-it/LV Build/InstallVIPMPackage.vi create mode 100644 build-it/LV Build/UnInstallGRPCPackages.vi create mode 100644 build-it/build.py diff --git a/build-it/LV Build/BuildGRPCPackages.vi b/build-it/LV Build/BuildGRPCPackages.vi new file mode 100644 index 0000000000000000000000000000000000000000..2bc31478d194a6f5d980be670c6ec458d2af0d64 GIT binary patch literal 12705 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�@|JT^xkLK`0yqVgs1~Fo88l1c)4f01*Pzz!?AyPy$te z19S|01J}S81m_GEgEk-(1_Qw<1o44xK?{Y#pdgS@5H3Iggct~gfgm`+@OS`RKpmtQ zPAi-YI9b3Nqyu0A0fPtuYTyij29^L8zyUf2zJY599voO3h(Q|=1jY&^62u3(1uYbq zHpEefA;1!NwBWdj0{}7(k18>VFgjvh;6Wya3WFu02XNuhAR>TW!cJjJkTVbpDJdx> zB_$0F4FdxMGcz*>2L~@NuduMNxw*N%zP_res)B+7Av}s;WHb()!!Hn)#(U=G#;;ap z055+M;q&{#!jh<{sBhOC;^lz2NQg@^AyYyDs4An?Rm_6(oEPyAV3CC&-E{^1Hw%(3aIa_$ z1NCZEhttFiorF0gH{df^f#26}6>sRF;*6#%LJW8{2# zi`fe9BkP6}Ri&cXuEwdJ?z*l9@wlP!6FGYMvYw1w8D-{3o^GwfW-;#Jj`ZZ2%0?o_ zRyOY^Iw8*^XRLF{E)87Y_@vY^7m4Pxt{e&v4!x;Bc&9WM^zM@a;?dTXQS|Ej)8y){ ziIQP*KH@Y9MqBgw6!TJ_SST0mi=yupBrl-TYRik&6vgbyLLQVxAIe)~ibuLm9~|K# zE%c@=eqe6qb^eCi<5Crm18u_%T6fX+HrmdkXydqcVl(Y|LPE{vZwlPZMAO^$V;v0# zp}QnhYm}-z`&m=8WOmpD&?VS=J*bS{-Pcs1Q@vBX=xu?|x!Y2w*z8#Jk-1NhbNBN_ zg+u&H?f3R{Rj3v8_`JOB!Uk|wH=hmWDd`FyRh)ArH$ZOuR(2HpR3A&#xj*WmHX`Zx z{!W+3HFNX4@z)f=R$t3IBWaMj;%$%X(7o^XFS)HH?Ss2j3X4JS)sP>LsC&Z)D1o5+KiL*uUqd;zc9ArhL-$ zhIT2(y%U8Eri!y%m&xyO(u}N;N1ot#X0Yqonq-1^y4fW|(VO$}%;A&CCkCK$E}nPx zLL>+9YBV>GvRAFuw3<*&3+;Tbh<`ZziTzF91B6%iUNx;j_Ov(Ld0*R+&!tF?NvZ{B z6}5XYUrqCirstf)t)AIWeKhWahFfpUP5kh?=}-!3al9@yO_xgWNH#LQO|Ux5GVyJX z3-8sqd#K?m1#9HdrG!k6G4W)4{Z7(_HHjxr!Y))#&pudvw&MTRQ}fy8)nig$UVI)D zUs|$$8Yvi>Kc%7EawgyrvPtwhMt8$4UUSbGmQ>EIa|Lr}s9A<)R#xhb)fZJY9Sa5u zr*ey#Y`(&f$!oRcuTUbrlk732|xkvkJlX26{{%v8cVG5yhoOc>>yPKHq%On5TyiFmMNI(31*kzR2?2Oi~ z+iFJ@Li++w zTO^l~tA)8&xVXDtoH;eLa@b*>tfOA7>@reDe~-V5MxU%j49x(0#$89bdi6J1`Bgi1 z;HaLA^wEdT&EE*mow}e@UMs!6Ss1KJ@jkm(G&wc?jPfn|*`%q^YS9~`2Wv}AG0!9B|y{EqZe{kHnF6T8GD0JS!JkNId)K*=)sSrbMS}X<=^9FAr|Cm`+ z;dF5|0=ZjXpTg8v(HQgUlBOn!!Hw0yTGDCsQuF!z;7?Q6&=Gfp1-LiUGo1t{GS+0W zHMaOtHL^A2rL*rOE|4z9uC9g2?_nsNm6gA7&mHf6$?cAt-j+w%(UPE4+2pmcqNCkG z1(-3(Rzdaw-kr;HbYGu1KM;G+!3$bj8}7`kRwM(wG0lbzeNBxcVlvm{b2Z{D%Z^5l zf2Eb2i9At!)Me);AIIJhNshY(jpdG9x?P-?tz8IHm#tqxn@5$#ZkMN?cEN$Ys*+tu~AP2EkwixZESLu@JXQ$3juV-)8>zNlVjW3klY z>tnTM7d_8Pa~1|RY1FYM1VwqCT^7lhk8!n##aCa+c>IZQrztN0SXTs}+kN<6(CyZ( zgj0IqAJgi@SLP3aUbU5)j$iu}cGl9XfJ;>udvSR!1H96GvHRUQyZsw8C zokV;*Lf+RDIKuUqa3i=*aB`v%nZlM#f(w)7Og%G0GCyid_FR>sgUWSgrKaoY>(b)b#KPO+5pG|F>_uN$bhpJbnH5*cfi|l)XgIYvI zpNgEYP)w4)ps)Mho|VTo{b1YkL+dsK1g%8f*B5lJTFb@aZ|=QGz2in#gIelP`(=X@R+6)_W5+U_5@+dw0L zSzd}s4m_`ZqUcrSn5}#QNdws)^5f1T5Xc`?W z+2^PKuxQDviq%!VJ)<%y<i=(?$rD7B&$STi#(&aEcsw|$(PB2Rrtbqf_qi> z6^GKs9Ttoh*K0m?=mZ$g2Tni0KR5Y2ezs@mp)l=1WP0-#liW_{fCjs>?2A(i1lu)- zzSQGBwPaRe;tAMW!^YNbvy39-3Os3O*OLs&Ui5=W`&lG%3A-9G1!=q zaka02bA>C-D4?^vjRuqnSkjQWge7uy+K-mUYLk?~!e`D@TFrQxIsay~tszu5$g&mn$Nr_e3$Gtb zds>za7RI~?c%#C0?T_bsu<;xE8u~VSYU{dv>8G-Vx#6+j`|U`X(+|h2>da`H)t`+wET`Gptv204vx-DUj{r$tvgP zA?w(KNz`NcgBE31mDWgGm9H@{>Vsl+5@atS=pEP@HcV1x(ifO1lTXItxc>w#=(DG4 zcSDo>;ocUCGkpf1$oLK>)C}1R5ctNGhK(bb4##};ucqR@p1DVnV_`m7WvR}=Gxr(0 zC|&4VZEwk?s{t%N>m+lEUtC3mJnu%0?N}d+eG_Ip+x^bTUi?bdFreW0+MrQP1B+#%Mi%RX~icTfrRp`5TN5!s8&U~8luSw(D%~JRA-L~Q^9Psu{LL~w*CwUOy7`Nt`u)2L^sXltbDXd9V`@m{ks-4!xj9te zG_=`@_z-=O)38uIX=!i4Mt{f9^1Hc?%qjirALJEYv-cRC`?B;%I5UkacRc0Ims-ND zKO+6e$K=NB`jjh;R+xugl~xKqds|k!P$o6OP$KmPld(7Vc9!B97K_%^OqT+7?wQm) zgcg5Wd^b{Dsy?e(lP~K63BPMlNORPAOaiHiHuIK)uV89nta_aCywG5opJvgmJ=VuL z(%94QziP9gqH>$1a4V_KSap8+>F(pK0XK*GqMCts3!|TDHo5Ix^Mq1#$2N4FZQA)d zmG_%Cyml}4Cz-v9XWxJMH?1{A$Yon9H!W zr%2vIb+Xy+q<#>Wy^nyrtSw)iV>S1P!(Nu=)gl4;Cp=C|vf`pO-Ep6I{So`awCodU zsWpPnxliFN?PJ7MFJ5IH*cPqWYN@L|HyGJ15??S| z_{Fo#W<9DEj6K%BtRE5}e=Y9)+m>Ma^Oo4I(BbvZdi^)k?#DeIKKQwOe`&)$*+sm6 z>H2u-CRphMi^rCp)QUEE_Q!qj#Ch;HrCo~CTx+e|eVwuGaZQ1Ab3{?Hm=9CUeY<53 z-qzh!@5t&lZ>^S%y|C;UqfUo&EJsNs;zl#SM?k_?IPrmX)j9k2 z%f}T*e<{UlA~~e9EBh;kMUIN>%2@p*I_VZPosL`~8?R;4qlsHvhwx9G;be5J|254O6;wD{&l4PJ|e@NI5>kXzGmn^8ElKR4%(nWxOg zelm_-P6=U8=~$#sM4$Ss>Z;N6l_xV(M@d;iJ&o`Dnqqm$M!1f(fspXYv$pOxCCgpf zYh=oxjC`xcK(x|T)6r^M0rutO^UbPL!=t5?HSzqCsrC#HULPQ2s-*OAdo4?nC0)mN zXi*xcD6V*#oDE`Czwo4=do$CPe7LWF+9u=3@>_dy>UE~6P(OLyH&!22TLOc-^J^u? zbknWMuNo(&-qmhl4c)n6yzyEsZzCdM!U}WA(Q`0?WgmTmUn=*FDRwO>u|sb6k7SEc zXLX8J>^QvQ^45TnP%+Q;xb-Xft(vZ&&gyG3M=rL`sbCbDt{2me~XbtCf?T5TbZ%=^W<_&gUG()eVg z;@vJOL*WoBApxbYmMOzEn2gZl)8}`LKqbAe;-cHk-PjL{=x0Pe*$|`}k9fIHxN$4e zbKv@A_@_6x2SR{nlxXjQI{bT_)&PAB?dW==7 zzzVjewUbtml0G0Mr9cZe5iCr4-i|KZg52g_SWp2^+&E(${lIT~qBaB`BBB*VxFB4% zZwR(;z+h9N24W|zo@2;y-+#8F0QU<`L@nZp<`N_XI62?$A^?jUeD)AU0N-DF|H0bk ze~i9?{*Sre{O$kOx&57=-}(7<27WF5J%4`Z=hqqdwe=1Gq0p7a}8; z5QP#b!3`4(hIq#XKY#lRLINdHj^MmgCjDNMQuKKfE20qs1~1A&Oq7l`7xvnVka|KS zWD9E3mzWZ(srrhJ7;9`k{1Ou=JW6s_y;7|y;|CfV#Mw%Q4 zJ}gC!xM5^0dGdR|as)u$MsIyeOPpjL`Z&mN(bR8bBp+~Uuq{7d@nVu$l5zThli_T% zy|nmar-P9W>AbVSw<0 z(Vk=KWetX%eKPJ^A@@w2NNPD>j)*(UqxnVY_L6^ya~?i)lQT59zuBhy>9cU!hY>*q z-ZMcy*wb@d&%d0r^2;1oytHg2Xxt;X!Ns~fB>xh@(xlK;b8FRUbB5i~<9rQmcA25Vqq+KfmFg?Q zdUlELb``y4UU++Kkk^>)(Wvt|#g}4?Dq|c&ghGOU>)=VF4ecb(ot@BQXcV-K|EX>L zPi^NYC>Dx>Afi5{>2X)@2bd66YK8_z+jXoS8oc5|Bt(>|x)FFs3ns*QG*H^ESGYT44{XOyS4a0U@<5jMTR= zAZ_)~PA=PgA6515evq-?AL#G4IjZV^+E!Vh%}lrTJJrp$pTdWbqx$A(^=d3I8|wk7xKoxy>!vE=m8!Yx!>RHy(Ht`WyX?2hRy2{l!D9 z{m4VY*C8VPrH8Egkw;$p6W&j-koRrt{q4Ou@}X@W$zOf!$oSD8-FBY91LJ_c$ywle zPo%%`eqzg#^P?Us{GT?F{<3A|_>sqd{wKV=A9*tH94FFW{$%`r!VCWiuVR}Q^_Q(| UEzF}QejCBxMDV+L;8nc;0s9_O*#H0l literal 0 HcmV?d00001 diff --git a/build-it/LV Build/GRPCVIPMBuild.lvproj b/build-it/LV Build/GRPCVIPMBuild.lvproj new file mode 100644 index 00000000..82ae0ef6 --- /dev/null +++ b/build-it/LV Build/GRPCVIPMBuild.lvproj @@ -0,0 +1,96 @@ + + + + true + true + false + 0 + My Computer/VI Server + My Computer/VI Server + true + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + diff --git a/build-it/LV Build/GetClientServerTemplateBuildSpecPath.vi b/build-it/LV Build/GetClientServerTemplateBuildSpecPath.vi new file mode 100644 index 0000000000000000000000000000000000000000..816a70c940b91816b1f262938af023b4b2262089 GIT binary patch literal 8300 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 AZvX%Q literal 0 HcmV?d00001 diff --git a/build-it/LV Build/GetLVServicerBuildSpecPath.vi b/build-it/LV Build/GetLVServicerBuildSpecPath.vi new file mode 100644 index 0000000000000000000000000000000000000000..2412e3cbcc6e40f56d43511578ccd3b7b73c4f89 GIT binary patch literal 8258 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 cV+)~`5V{5gD@~ literal 0 HcmV?d00001 diff --git a/build-it/LV Build/GetLVSupportBuildSpecPath.vi b/build-it/LV Build/GetLVSupportBuildSpecPath.vi new file mode 100644 index 0000000000000000000000000000000000000000..bb58147a8ed7e035d1f92322a33da40d7fce76e2 GIT binary patch literal 8217 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 literal 0 HcmV?d00001 diff --git a/build-it/LV Build/InstallVIPMPackage.vi b/build-it/LV Build/InstallVIPMPackage.vi new file mode 100644 index 0000000000000000000000000000000000000000..e51f9c9aa0209274a85a01b6b95f362a09724e0a GIT binary patch literal 13766 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 literal 0 HcmV?d00001 diff --git a/build-it/LV Build/UnInstallGRPCPackages.vi b/build-it/LV Build/UnInstallGRPCPackages.vi new file mode 100644 index 0000000000000000000000000000000000000000..08a1a1fdb3e9731b003a4684cbbd2a9d024b6a0a GIT binary patch literal 13317 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 literal 0 HcmV?d00001 diff --git a/build-it/build.py b/build-it/build.py new file mode 100644 index 00000000..2798f692 --- /dev/null +++ b/build-it/build.py @@ -0,0 +1,90 @@ +import sys +import os +import distutils +import distutils.dir_util +import distutils.file_util +import subprocess + +class LVgRPCBuilder: + def __init__(self): + self.build_script_directory = os.path.abspath(os.path.dirname(__file__)) + self.root_directory = os.path.dirname(self.build_script_directory) + self.server_binary_destination = os.path.join(self.root_directory, "labview source", "gRPC lv Support") + self.generator_binary_destination = os.path.join(self.root_directory, "labview source", "Client Server Support New", "gRPC Scripting Tools", "Proto Parser API") + self.parse_configuration() + + def parse_configuration(self): + self.build_target = None + self.path_to_binaries = None + self.vipb_build_only = True + + for i in range(1, len(sys.argv)): + current_arg = sys.argv[i] + + if current_arg == "--target" or current_arg == "-t": + self.build_target = sys.argv[i+1] + elif current_arg == "--pathToBinaries" or current_arg == "-p": + self.path_to_binaries = sys.argv[i+1] + elif current_arg == "--buildcpp": + self.vipb_build_only = False + + if self.build_target != "Win32" and self.build_target != "Win64" and self.build_target != "All": + raise Exception("Build target should be one off Win32, Win64 or All. Passed build target is " + self.build_target) + + if self.build_target == "All" and self.path_to_binaries == None: + raise Exception("For build target All a path to binaries should be specified using the --pathToBinaries/-p option") + + def get_cmake_args(self): + if self.build_target == "Win32": + return ["-A", "Win32", ".."] + elif self.build_target == "Win64": + return [".."] + + def cpp_build(self): + cpp_build_directory = os.path.join(self.root_directory, "build"); + if os.path.exists(cpp_build_directory): + distutils.dir_util.remove_tree(cpp_build_directory) + os.makedirs(cpp_build_directory) + os.chdir(cpp_build_directory) + + subprocess.run(["cmake"] + self.get_cmake_args()) + subprocess.run(["cmake", "--build", ".", "--config", "Release"]) + + def copy_binaries_all_targets(self): + server_dll_source = os.path.join(self.path_to_binaries, "LabVIEW gRPC Server") + distutils.dir_util.copy_tree(server_dll_source, self.server_binary_destination) + generator_dll_source = os.path.join(self.path_to_binaries, "LabVIEW gRPC Generator") + distutils.dir_util.copy_tree(generator_dll_source, self.generator_binary_destination) + + def copy_binaries_for_target(self): + server_dll_source = os.path.join(self.root_directory, "build", "Release", "labview_grpc_server.dll") + server_dll_destination = os.path.join(self.server_binary_destination, "Libraries", self.build_target) + if not os.path.exists(server_dll_destination): + os.makedirs(server_dll_destination) + distutils.file_util.copy_file(server_dll_source, server_dll_destination) + + generator_dll_source = os.path.join(self.root_directory, "build", "Release", "labview_grpc_generator.dll") + generator_dll_destination = os.path.join(self.generator_binary_destination, "Libraries", self.build_target) + if not os.path.exists(generator_dll_destination): + os.makedirs(generator_dll_destination) + distutils.file_util.copy_file(generator_dll_source, generator_dll_destination) + + def copy_built_binaries(self): + if self.build_target == "All": + self.copy_binaries_all_targets() + else: + self.copy_binaries_for_target() + + + def build(self): + if not self.build_target == "All" and not self.vipb_build_only: + self.cpp_build() + self.copy_built_binaries() + build_vi_path = os.path.join(self.build_script_directory, "LV Build", "BuildGRPCPackages.vi") + subprocess.run(["LabVIEWCLI", "-OperationName", "RunVI", "-VIPath", build_vi_path, os.path.join(self.root_directory, "labview source")]) + +def main(): + gRPCPackageBuilder = LVgRPCBuilder() + gRPCPackageBuilder.build() + +main() \ No newline at end of file diff --git a/docs/Building.md b/docs/Building.md index 5d5dbac3..20397ebb 100644 --- a/docs/Building.md +++ b/docs/Building.md @@ -1,16 +1,18 @@ -# Building the Scripting and Server binaries +# Build Instructions -This document covers building the binaries for various operation systems. +## Building the Scripting and Server binaries + +This section covers building the binaries for various operation systems. You only need to build the binaries if you wish to contribute to the C++ source or if you need binaries for a OS that is not supported by default. -## Build Status +### Build Status ![Linux Build](https://github.com/ni/grpc-labview/workflows/Linux%20Build/badge.svg) ![Windows x64 build](https://github.com/ni/grpc-labview/workflows/Windows%20x64%20build/badge.svg) ![Windows x86 build](https://github.com/ni/grpc-labview/workflows/Windows%20x86%20build/badge.svg) -## Building on Windows +### Building on Windows -### Prerequisites +#### Prerequisites To prepare for cmake + Microsoft Visual C++ compiler build - Install LabVIEW 2019 - Install Visual Studio 2015, 2017, or 2019 (Visual C++ compiler will be used). @@ -18,7 +20,7 @@ To prepare for cmake + Microsoft Visual C++ compiler build - Install [CMake](https://cmake.org/download/). -### Building 64-bit +#### Building 64-bit **Launch "x64 Native Tools Command Prompt for Visual Studio"** @@ -45,7 +47,7 @@ Build Release > cmake .. > cmake --build . --config Release ``` -### Building 32-bit +#### Building 32-bit **Launch "x86 Native Tools Command Prompt for Visual Studio"** @@ -73,7 +75,7 @@ Build Release > cmake --build . --config Release ``` -## Building on Linux +### Building on Linux Download the repo and update submodules, this will pull the gRPC components and all dependencies @@ -101,7 +103,7 @@ Build Release > make ``` -## Building on Linux RT +### Building on Linux RT Install required packages not installed by default @@ -140,3 +142,52 @@ Build Release > make ``` +## Building the VIP files for LV Support, LV Servicer and Client and Server templates + +This section covers building the VIP files from the labview source so that you can install them for a supported version of LabVIEW (2019 or Higher). + +You would need to build the VIP files if you make changes to the LabVIEW pieces of the grpc-labview repository. + +** Building of VIP files using the instructions below is only supported on Windows ** + +### Prerequisites + +- Install LabVIEW 2019 32 bit +- Install LabVIEW CLI +- Install JKI VI Package Manager. You would need Community or Pro edition to build VIP files. +- Install VI Package Manager API for LabVIEW. (Download [location](https://www.ni.com/en-in/support/downloads/tools-network/download.vi-package-manager-api.html#374501)) +- Install Python 3.7 or Higher + +** Apart from these you would need the Prerequisites for building the binaries as well if you use the --buildcpp option described below. ** + +### Building VIP files + +Download the repo. Run the command below to build the VIP files. + +``` +> python build-it\build.py --target [--pathToBinaries ] [--buildcpp] +``` + +The accepted vaues for BUILD_TARGET are: +- Win32 +- Win64 +- All + +If you choose to build for Win32 or Win64 target you can specify the *--buildcpp* option to indicate that you want to build the C++ binaries first and then use them to build VIP files. If you don't specify this option it is assumed that the required binaries are already built accoriding to the steps described above. + +If you choose to build "All" target then you need to specify a folder where we can find the pre built binaries for all the supported targets using the *--pathToBinaries** option. The --buildcpp option would be ignored in this mode even if specified. We expect the folder specified to have the following structure. + +``` +- + - LabVIEW gRPC Server + - Libraries + - Win32 + - Win64 + - Linux + - LinuxRT + - LabVIEW gRPC Generator + - Libraries + - Win32 + - Win64 + - Linux +```