From c74794904a1cadbbd7f466a63433304e0b08f18c Mon Sep 17 00:00:00 2001 From: Andrea Vaccaro Date: Thu, 26 Mar 2026 16:39:20 +0100 Subject: [PATCH 1/2] Library inclusion check provides spurious inclusions for build specs with a change history of the Top-level Library This addresses Bug #61 When we edit a PPL build specification and we change the "Top-level library" from say "Library A.lvlib" to "Library B.lvlib", and we don't assign "Library A.lvlib" to "Always Included", traces of "Library A.lvlib" are left in the project XML file build specification filed in the "Source" array. This results in the fact that the Source[%d].sourceInclusion .neq. "Exclude" will yield TRUE while the"Library A.lvlib" is not included in the build specification. For this reason, we OR compound the .neq. check with an "Empty String/Path?" check. If we don't do this, we end up with spurious inclusions that can cause bogus circular dependencies Source code was edited in LabVIEW 2019 SP1. Failing Unit Tests were failing before the fix --- .../Private/subXMLGetSourceItemInclusion.vi | Bin 14560 -> 17336 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/SolutionBuilder/Private/subXMLGetSourceItemInclusion.vi b/src/SolutionBuilder/Private/subXMLGetSourceItemInclusion.vi index 589f33084fa24f8fc912eef54823b5f96ec65f57..1034619053eeaf2265bb0a94b7d8efe86ad2156a 100644 GIT binary patch literal 17336 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 From 946e89df27a65cff191678c787d3d502bb37fb7d Mon Sep 17 00:00:00 2001 From: Andrea Vaccaro Date: Fri, 27 Mar 2026 22:21:49 +0100 Subject: [PATCH 2/2] symbolic path handling fixed "TranslateLVSymbolicTokenToPath.vim" doesn't handle the symbolic path. This means that LabVIEW Solution Builder doesn't detect dependencies on libraries in . Handling of was added to "TranslateLVSymbolicTokenToPath.vim" This Closes jovianarts/LVSolutionBuilder#63 --- .../TranslateLVSymbolicTokenToPath.vim | Bin 14463 -> 14719 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/Utility/TranslateLVSymbolicTokenToPath.vim b/src/Utility/TranslateLVSymbolicTokenToPath.vim index 8c7faa22ddfa740975c20a5409b508d9d586fe1a..49b6c1e16b29a87cd45e75e66d56a5fb31aadf00 100644 GIT binary patch delta 5088 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 delta 4838 zcmZvgcT`hb(}zO|2qd6V14xr1JrpSl_hKm0t8@s2-V_l86eRQ_h(HAC9T7x&Hy|B^ z7@Ab6p<|>M>2LIYcis1Xud~)(d(U%zXU{$}=bzaZk1igv>l^4Rf++zcnnr5cnlK|{ z0N^Gm06^jg001}u0LgfEeny3#OJXvD3m^rM0OSZWJ0K7cZw0v*ULedi$K9v-Mq<2G z%)G#o@CZa0mkEP7yVwVsK_-4Dw>rWx*(H4S%e9z^mw-yrwLpqw{0~^bUowKwuRRx! zQBW^hx8+m^Zt#Q zv?k7$W#xLV<#4=>q)O(F2@GyAL)l~A>9j{i8yQGcVkW4nSg2aFlWHV%Y2B%S{v;WJ zAFuF^ncQaRPVt_ssL}sQ*{P>+naIP_4~snTIGAZ_NOq<|{h20lafIDH!Cqup2EOxg z2`OMh`t}g3-PT|aH{sw*aG|Bcax!w3C_7IeG|VzodjVl1)tYUU`Wlmos!~qiNsHsL z+ey{J@i9f5dvO}M9SPpq(^1~W`IFGynR@lGR$VH3sA0xCm22r|bSoZ=jx_B=L@WH& zCj%RfG6LO1&uI}d@#`DR^we#`TSTl9ZTfAw|Y`UTLs5YbJmHIOoysiXVctO2UA3N3|^|aobo$Y zPhZ+U%~_$a+J4L+e|IQ+q*Oq)K;Qe?t){g7{7?zdL4Bk|sqneScM$7XGrYS%<$LSp z!f3|O)~)+h68iErui`#;a}!s;PSdv$MUE`PqKu~O)y!$t8eT-=i7O2NZw5WpA=u$#k`5Gdi=R@RH;P6kvg9FtmZUw zudFNYYjp7sCbgGnMgB3Hy+iN!=~@xJ=Qba0_mGlxcLPSYYWt3u6X=~-@bVh@rATg~ zw45ggm@8o$oi8@vAc(`C?xHT+3*~y__1yg{CCmklO` z=a`yTja{t9YF^(r>!}sUz;p703Smr#Ny_e@w?&jTgD~a=GpP&jBWF5eeJGx~V$zPN zz0r!fhaBA>KuuH)>AH5^xA9l@NRTo_@^*n&jC2ig>=F7h?&){=F7Gf?71OG5ZGWP< z4TFaFPO6Bwj+sG64J4T&yyYgvGzXuXFiH)tjguAY@pv=v>e9{KxXGXy!)M6Fp#?LK z_9j*oa8R{X1%FBK;KJCINzlECZM$@p3hcx(sOKfrW!IN<+(TW zBrlmkuk{;)@JFZX*;!bkS$^)jyEO4|cXCG!Yx%1MaoM@45o3QQCqPk>i=`mi16 zCQ9O<6X#q>>N95@LFG^0%!||>(ZYEUOS3q&W8Mjb2o^Ecb`{8-D&+Kk)8OIxZJa>!3d2 zo~-Cc&$I*?JTpxn7ko+&S(2^j+BL~T8|Uc3FT1j~Fjv4kRgQ{G7Ldv%dV^_mnjy?4 z)Y8^U*^$8uZiU<%Fu4i7nCBRwb0x_!l$_K(@m zfnaKMBJn1jvg7-4+oFkC+cocMe<^L8=j};Dr!n!l`PN*fB;}h_&(_JQIZakUlb%kZ zxmsc@Nsz5Xkgpu@!R7t;AhUU*`oQBi51+A63L>th-+5;6umgGD=?P!jl|uvb30Q39 z`@4oH{QVm*ca$IO$RVhDrEv@;JDojZh_^d1J@8^d_>)9YmDnSj#ULo7N{h=>IcH3K zx0npIk)xU(J_=W&6LS#SZ_~tMXsuJ~ZO1`rBi+_1g!AxkR}MG*?iC_#X0fY2YQ^{k zigB&i%zpbk));xr`VLgprT49MDxSt!&O*x=$&ipvt(LaQYBtYhK}>Q#@zzH>wlmB5 zWs=Hk((Pw%jb|XOdOh)}`9bS2>?I+q(oU)KFC<4CyB{qX29my6w8res|`oVnhJ*}Qhv=la@aK? zNM94NK;cSa>vs*>uqiTotzt~#*A~T~D6m_vMfPY5&pDlA@u@-qQLErA zdlgR~-k1=LnB21m8JZZo zC~-`DQzuf|egO9A0D4te^m;R=vvaNg7sl4U!Vn|PKiH~mDAl-m%zd5zAO5;E}E;$#0v?g7qAaH;UKfQMCNTMYbgIpiX(bzQrVz? zM2PZRahnN|N7ZwdhLp33Z?8z>z)3i zWb~Dj$)uL_TTta%15*|W8-5o#*;g>5-B<>w>eII^fJm8ZTJ%uOKroB{NyO-j4%DE{ zS>#v7gR*f*4m?1-9G+IN`0Z|LOj=7l1h=v~Bhk!1`292o5zBUdtznB!E0JBVH_^mc z8IEMi_A_Zkhe@dDTZiQcCO&7AEfDdovW>Hp3&aMJt{>OD&lvNrp5@#q(FvB}%K|M< zH2|>k1G^k2cd$#cxi^pq37y)M!ac^&Z*nvWa`C$wuX8DynJ#+dTe%A9{4y!;^haZ= zg8ig`+mOutZ3wmf76i^f(r3k))xDSS4vEI~$p_p|w)NbB!1qUvULfE;MgB&^MIcwA7=n(9e$&9@;na7GZhvmZy1=(3Ee;o&)QPnWr9 zzOK#VSiGOFGM>2+Xr<{mH)5^dZXUcsR9&{nb+e)Wu1h6P$QQeJ3NAbH-20*UeBPHw z8&x0OlW9E@Qr&h(CLSa&7bM(D&~~Ymc=2WN4tvh0Weyk$d?%FmwlWN587`~FA$b&} z;3OY1uo$HPqsa|n9`S*prcEi3@|9(wygCON1B-WqLfI0d2kdm9Ij$e6bE5G$f9~p` z(a8#xDZ@142DCt2UlA+0SI4~gL_(K+WxwsUiC%YLrALa~^&hwb(g_BP{Z9H^)MiJI zt!YDv)aw}guM+{HMDBbEx73iLdcd%OgzrsCLZH)WC2j_H%bCh%+l&ijO~;n9`k+nb z&Ec9SW}@WsWKV&s?Fwc0@WxlFlUK!XbbauO{BG_-lbz@G^1Qb@m0m21ikS6IuEs7` z6lhlac;7X==PWQ(9S21GplhtlILBJuy5DecS9%OA8}Y;6xGnwNU8a=^zmmdz6#7hT zQ1E_sff(FuB~g3-@*Cd*WEFY{GDB@Jt^cTp>W6SK&m7q)BiOU@9gnn`-HS{mo`#^S zN8WGuB2E~CUvWQ|lFiyi$i>Qn92WwvQPJkjWV|76`TW$?mOKqwxBh<8R- z!^6U!_a=e#)*SgIr=wGk9IekH6>Ku6f&T zTH7v**QdTFp?M2A$S1mNSYdymUZ9f(T3%E`Mh6(F-k)W;R+Kl?eve0qNcFwnR6e%A z22XCU;PG-V%*kCbtpnOP$PgZ>HUH2gvLef~Y?@f)DvUmOg=$0IDUR=ooN%?DlIfOQ z;w)7wpxH^!+p(bw`Ib>c?%v@{#VfRjP{~_T29;+UTcrSh=}G(8nZc?F_W08~Tk?2# z8(F8wCPilS(FXw?<%NLRL!j09&dQtgLy^0o#s?9?N0pdO+QkXnA;pf@fo0IvhGu3I z!&j7J)yeQvhI|WZu;g|oKX1532SEjNp5^O_9>6gz@qmzpK?{J+?dkRh5h+{7+b5x| zp=0EM9bAF~|9m2sQUO`WQQ_Y_asjlN#9F0b`8?*R& zUPyv&fRE)6Q#}5em))DH@}3zUuTbE9tzhST?ELvFxC;!Xvzwf4p(d!?H*ZCdbzvCY zZYk5{NI<}5Te)4K9-mD&5sld(MbaP_uP8Pow;wx&VBf6u*g<6_)AEbQZD=HU*pu1Z zZzndh?Q+2gHV>}qS8N*gDo%kpV<#J_{Mgi`P88VL7{=F8PX31&h95Rg!uP#=<+?8$ zwq5VyMUP_;qW{DzZvUdDoLt)x?6-b=^`Ir?LT8*Li#%L@zoCsyMsV2@zC~LXk`;v1 z9C$sFvR@~}QsFl7et+W%w1*2^|4KFT*61QUHG(}fqNYhsq98`_x|UZ1+V1t)yWR>T zv2j&tdkc@(4rOCF%1NBcj15cejrV~eL)W#V1w+hP6RJA3Ai_JIediH-NmIII%)_Dq zN+q>LrMFs9598G(55LA|L%&hpq2tX)UOX3Suqt2_zI<>SERjBJ{C@2LK|#C4l$^!3ZmW?mbl~fguQkf=Cf)=xP7RlT6*++ZpkI z%+vkxBU^jmBm0N$o>w%D4BXuwdpWy5fIW70v$KDM;**rRMhZ|OH0HlTk?gZ=KRK`^u zg-l0XzkI2vwrg!1n=cipqXh8!<04O4&|ou2&)TxTQZeY}117FK zH0F{^abLwXltOCm9Y3nuT^+%X==)tfUxQ1d87@f3iZxUS-%ch8{_VT`Ki@MD5c;!9f9oIrw~t!9DGvVEB}vtFseB^j&vO5=Uq$_E zx%Gbt@DC$W`VI5_4Lki`M)o)Qul>j_{RNSL|AtI|EB^`n>jLK&{)bUm{I8C}?l;Ws zH_ZQEj1Zq-6ruluzZ}NjWQOrKnUVN;v-HdUIiSREvL&JU8=ddZ|Nf^1{`0aV%2@Ws Fe*i4jlIj2e