From 9a1f9389298e2926785565482c2e7ca081ee439c Mon Sep 17 00:00:00 2001 From: the_fiddler Date: Sat, 30 Jun 2007 08:06:41 +0000 Subject: [PATCH] New build system now copies examples, exes and libs to the output folders. --- Build/Build.exe | Bin 8192 -> 20480 bytes Source/Build/Build.cs | 96 +++++++++++++++++++++-- Source/OpenGL/OpenGL/Bindings/GL.cs | 2 +- Source/OpenGL/OpenGL/Bindings/GLEnums.cs | 2 +- 4 files changed, 90 insertions(+), 10 deletions(-) diff --git a/Build/Build.exe b/Build/Build.exe index 3ed42dcfaa0cb02f2af70d45f1d4eae81e0d0ce5..dcc93df10cfa64228a64e8ee6090410d8d1eab9a 100644 GIT binary patch literal 20480 zcmeHNeQX@pai87W`{0p0>39|?SzjmXBNx&;Bdin?Fc{|r4xlHD)H6IZ)ULn@>v1|pC9xKY!H$z zz01{7=FedF6l0x4&*+l19GoR;0OwA~ZCGA&Ybs8J9+aOD=%ZzdDCwB<4rpUD0P0Hp z0akwEL}!!27E|Cz-#USCUs5PlPba)j3NvRxkbR}IC@j~BQuTBabytxd>P5hdfENKT z0$v2X2zU|jBH%^9i+~paF9QFMBJehUSL5MtQ=R-oZTQxW5ow@N0$le|o>w__W z)PL}+U|)+Z-VO&2y@MERj@l8_ZWm8$RBTSHlK2(iEiV3b;A>s{`@q+^_*LMyyZDcQ zuXk~@TioE{Zvx-w;=cjD$;CeazPZjN8gvk0m)OBXy-VE5M1xBlVxrL{I+=*L#2^!^ zT;elKtd_*J*b;Zs?QPWG6iDFyAbjvE=yo*F7sU(XAPeG;0U&BZfezhKRa$|U%5LCX z4xx0Td>W-~q-6=ZM%#F^dJnZMVU&!v{$}+)a=Uu(U#H&5wd%cNy?SrjsNT&R)H@;s zIuS^~!7yiT)Mz;!GonV_6WMDe z$VTJl!hgM77`b{2;n$Z7Baw|o?r1C+4fcVePocms`bU)KQ9g(AUnmEVbKgPf_%VQZ zkIg_2vjXXAh)q5<4U7b$A5OsG0EvDu#R!0+JDz3D8Kys!=AV=`6Syx6P{+Nj|8kA~ z2cUTZR=3=dVoA*DWi8!MGQg6>8p&^gUSac11VOw}BN_LvlvL|PKWY+4P56Ci37yRF+;STT=9QnU-P3Y8X~4OLI+COX4<}c&*|`m3GlpL;SXEt*ue$fs#{ga(=8& z`Dh&8!tW@FJ5cLW8EmhCxv=gF@IuL>Yc+$>(ALzXCt85jQ_yXaz*!4UV_o~ZZ>?(5 zuQg-v)?4eqqBnUCYM8$|ZKExHgoO%qX!G-E5MohM?MPTJVS|K?GW!#l)!`kBJR4k; zbKONblU)?X3^4}hLkVOu#6!~Cn7{3OlV7?UGiZ@@qecP?cvwv}T%v|CPghoKa2QMg`^Y|g;GbV`Kl@ho=5A!bGHlVg}3iuLn&Io^VEYQ{*^+yBG z){_ymw#Z0C1K1&uEKxsi5xgF^zZviu?u1*mf5^%g=&fi2Qu_{QtA&N$;z`W&i%&Vz zGZe)lps`=Q;9x39zkDr;tx#!bZft7`)!}Gi1Y8g5T243Cg=Fi9X8Sv60Q0)Gfs*~y zE@hw3ReuTl2sP&KHkb}4wgXx_0B)B@pZZ{XJC=-(fg$+FVI_dM3|(MCW10Clt6+IR zPPA<()m01n+*)Nvu6Gtzt&*J<>&|MTy+SlwNk#0$Ye&FJ;brXtNZ=H}>U;Rr>PzWz z{5X2z_u-H^9O%V+9`wsFy|p`MO|mc^tVi0Zje4jK z2z{XKA*}G+Iu=N@rjAtbo3MuwJd{46Ssr&@yQM6va^Zj~&jU1!6MO)>3PaL<3HZGB zv=*aRArPQnX|HJkYS0;eO5cYK>3*FhpOE<1B>rs)-;(f?K9)S~`z0pkchGEre&J*J zfA_KOdV}FHgE?v7VS3nj8uE`y&K1BgU6q`>{Ve$)AbYEPRncBex8e6RKX@AXP=Umx zI`paMePf7R{37?nnd(;T6t0;lM zek?oVOGmUuzb(Fgfss&V#zUfk1wDs`(KQL8^9$TBzQix4a zQeRyAjDL&F3ym6z-$Fz;DF4AZ1ee7D{PnXcwSK2LV&mMFaW+ zG(Z`>09e#*a6YRq(B1T;z6j1AW32C?AM1}&mfiz@fPSrCq6ejJgS68?3%);vcNcx% zkTNeq=5gO5>|FMJAMlTSKfuUyTes0w-|NVMzxBNf_`2_XdYt~n$39&5{U=&nWoX)$ zAiqFgqPVdha64cZ9X7UU3|qC^(AF;PYjo1M1b)Hj(_WI6@1Z|5PHTTb-!|?C=cmS` z_7nQKF|DyDIpFUB{|Ws@!aBbVe1n7s0AHeG{`cu6`iy^G`#C-Azl2^q=3fBkl0StE zWY0sGnFjznBs@%qf%i)MsDy)(GXkGNG)Db^r|B5r1dRZmrIUaex|foe<&S7dm59wDF&<w~0Gl0JOg z%FO1>Bh)>c&1I72yh$U%dcd4=Xt-z=#*QUrg{p?Esj#uMm^K~C+f$avWhZHL!FJ3% z4NpqVzQSytPFR*Rl6Gcj)S4AjrbNdqD<_c=VNP;`lIYGBP+`%b1(#-re+-zF_|)Lo08lB&82g*=9x2S_gs25=g9V)>)|3sx&~*%MA?-!*><(1-i?0dS-<%3r>Zn_C*>@+s;5CW6lqs zqtV$(Tke)LdIJSH>S%v5TQI3FUvw6zuP~PtRv{0=)%Z9@mV@EuA&gZCmMYQXf^FqY zIwi7>ImkxGtU>F7Dd_Ns$j+r5bAS_!jmu#4noc^KvyVKqr{lox?(V&*_O9Js``h>K z@7mMe-P_yW-nXZ__h3iIp03>o_gr)XY6_W5FqWxAt2ZkXEiD$#?xt*{9N+!a9R4A&uQd zgw=;f$4z0gu@PkKIZNbmgyM=4$*UC4$Wg2V$S(ASYb%rus@xSOy2LbMS3q!?I%SFT zXtCt~f@G>_3|Xfz`>hL-b;4BrhT%dcEi%KiPI1x z#gins^Cd2z&9S2D zx&^fYgdMy~95y)z+NK%lLQyutoH_7zQwsm~!GeVb;|Ql}vVi&wLTAHPHP41tp^8KG z6_?3}fmv1Kwol-^TJnX0$~#(B;wbN^WjW0qw-9jh=ivoKYkjA6wVaBE%^Ho>eIq|p zRA1=_Tde6vY-Mlh<0sMA^C%Ww0OaVXG)sfZ$h3F}(YuIVpFotW2CKdov>HeX_Q?dH z*dXFLDbrE_ixQt&+EII`oG0zbg(P~T?fWPmBxwkCk2=9x#H78pZ_Bf#riXW}Y!e@#Ztj1CRzI=Q&Nz)$&6rzw z+*a#xbv~~2w>0NUG2*v_NC=FMDd!cLbcKn0N0^Qf+ z=4+umGBrA>-<%Qt7Go9}x#{@mM2KB$?jV?R>1xcu4MAXq>AliVk8rK2Z#)zMEEfV3c*)T2xB9S#sjamerX?h@J@CS{dG2pKs15#u#)9^Fk zTM`3TLFA8XT6B#87=lOyNGRfu>yZ#FXc{*Wi9~|Zd~_FVM}mPhO`k-)`wGT&T%N?V zP+Zqzv^u6qr#3)YSN`b@!B8ZkZ;XT@Avi9548>_pvTVnsms%86(b-^PsT&8I}VIAj&d2fVQvVO_AL zZ0YZ`Ir7s@jKtAmxYWc5Q91AWG($_(GA;y`X{TW34G~{x`-w8!*jO@`g4h1;4P#op3v_0(dc_U=$QootHc^i9W zKhzgR20rixR@yf!$GBjAhkYA(Svjvomwel_Pf;UOjKyN$hYw|o6| z?bxLa4n?$8O9XvTmGV#iXhoqFlp+P8qN)WdRg|i#C_)uM5wsNwsQsg~Lah|{H{agg zozH=k{!vvbpS`m)^UcgRGv9o(yEk;}0~8>lAg+Z4qGxdD(JkSJgLzEH);$}er|Vx{ z|BN#D^7^qU)6t5;o)mgP%j%Y8yV``IiD^qSEv;`PqZRC&k!os+ZYY@^?I#*k0`z^l z?|{GB1&S#RN|>k>9CnO{R=T=zXYVxJ)XKCkM)MvYP{u{HT>e+?C6Wa&S~a2(M!Jc9 z1$#@zaiYd0%qugNYebPMu^i}|s_2w!%(|fOZ2`cXjJ0Ncu#cyNBeIy5zI6lPK(EGC zHM-$_N*H+?g3{OHm}FaPaaE0OqMj;Jq6-_BYv7khx8|X@mhMaq1Lt@yKaTa)sUj;3>!j#f?0RiRgR?Wb-^~6tE6(3+yF2cTy9CAsSEO9-U_; zso5-PaRmA{RHHUDtEQ7M5#@a@o@vj2^20rGH*}!A=;#n}m$tEN;&0>+3qm7aJeWx!iES%y*B*O7HXWEcY15T6?b{Wbx`^xwWAsa^9)y!vvq7aQZB( z4Ki7Y^2%zSl}CLm9{D7b$Zj+l1K6_?mTM+jl4u6ebO*2b^YWSqFev`++e$-(1cgf; z$-NhvPqrjc8_`YN8&-8T&@k?3Epc%x1Ol>HoHzucY9O4%_J+gu3XqM`=n6HN0MStA zxdHMjkbD2Qu&{8R3keMP9DNZFMgvYAR2%W?ok;c_zv$W{729}bo zA&|r~2z?+PI%6j4niJtPCnFw;haXM^(J|~+Ovl45N4bdOb^G3g3*kUedR(gWr`apG zONmH4Vz)tFZqRvfXp8iZF&^2{#lkp4N}{ua_;6!;;|`u{(P(lNppB5CS9f2JnXtVE zxZuuWQO}g z`vQ1`qLHr!ylpTk_nvExdnwOjY56+9IIHr-Zxl?kMwH@!YpES@m&AJ|{-DGkm+;pT zDhf-sD(jTZv={1O`T{sn`nGZw?`u!X+22aeMaem>vdzZ=thFrI!H&@La(ORz%jqrk zRW$@J6$-%KJDBT-|8H+)*9Rz2&GK5-T`;FAE+ybi^WdiV+QUIJ%6i618&q#O@GIuMd=oY$P z*&)|fu+|I8{bbU4p8Ts0q zHz#Oh;tnJ0QfAI^jRK{zt}SR(cc)66)W8V!+JyIXt=%8 zLKv1?;SK7JJ7DFE*^v{JnVxWD8==f)B>M|RcaHk48B^F+0Y=7kVd@ikV@wy5hFd+u z`j-)8j~qL1&=Fy}#vr>oW)IpY4M79WfaMy(GIG>EYdWq&eMa7J4PWJEV{X7YVbdW) z&jF`F$Q|q-8sWD4w#EQP} zbCTIB4Ba(`?IWg@vrkIaAtNWt0fw!dE^;H&ZgJX`Q->WRGiBuS_~6P;BlB`?t|db+ zaN4m;C6}r-d1lP+w{qU5(h=Qs5Aau;=~B(8=v&Zlrd{?hODuhQ{Fr> zDJxr2kTpEPQdJ$YZC950m~H1JGAfJ-HY|xA(^|wlTF4Xs4nRmFyu~?@2St8Cg5#H! zpC{g9ffbGw`6M}pF0xaV1C#M+FJpXw3c8z}f=Vexeho-vt}vR>^V7z$V<^+Sp`)Do z;OZpc34J>6(s*WjXXh>&hF?RrWm9HK7sWnf2A|hOu0XdJT9%yixgIAoKI|cfrY+Yj z7&z!y)0{B#raQOa#hIOuJ0^QWsw9+RDO8Ne7-GgmvC78M)I-zgr+LcJ?L=*(c*8Vk zqRdNyn#Dzl9!Oc}l>&EE+y_X{;^~mb>sG}oZS5r++yWq~9r`F`KpmU|a%Hxb#42g} z1mT6J{ojze?J#t7*fD4?Y4}y82+Ts~y&0XivbOKNR>d2_`Z-8f^TuRcYz@DY?5Mwt zG_S&1oS8}5DzlUat-}vwXa1YjO4a6A(F@&%nkARmTIR6H8SovNk}eeGBFvcqZ##A3 zZx<}sSWv?Yt+%9w`5aQ`z};$|11+nHLk$&|DUc&t#+zH^c0dr-``%HV=N&EcIi7da zvY2KIHotU+3h)B2(lx$QTP>%e;jl(ib!-%3iW(|$u*I4<5=*0{YY!vVJ8{`~6|rP? zyfV{4Q1phg&QbUkQyEc(E9ymDp;as)zE&UVOb8TDfAQ z5{qcGGJdU+prA$x3NapoCd;ge#loZlVgUsb<>m1WxndXO<9h&B+z1~ONCqIt{wOMQ z_d^Juy$S=B0lcLke;NmQCKzJC-(Z1oyb;%O{?x*vShb<9F17{%A&BMD_gGV1Ksps@GqD6JGXZ1D=~P#s?17mAD{xO{21`xRt8Y+Cs6b}HV|u#VU`bv zgM;WbWvbQ$h~#UZg_Tdn3x>LB&UT z9EVI`EmIymA`NmIq@4GrRV*FUVcfad@z8L2GK+21%6RJyLTeJ*d18x29CmIVlW6&P zKa#et$FD33vgoDbIq~c!+tH?LplAo2>y=o_{qEXnWo(GyC%K_zyCm QdA}2?T-YCv|GNzQ3p`ZEY5)KL diff --git a/Source/Build/Build.cs b/Source/Build/Build.cs index b7ce49c9..e881e19c 100644 --- a/Source/Build/Build.cs +++ b/Source/Build/Build.cs @@ -9,12 +9,15 @@ namespace OpenTK.Build class Project { static string RootPath; + static string SourcePath; static string ToolPath = "Build\\"; static string PrebuildPath = Path.Combine(ToolPath, "Prebuild.exe"); static string BinPath = "Binaries\\"; - //string ObjPath - - static string PrebuildXml = RootPath + "Prebuild.xml"; + static string ExePath = Path.Combine(BinPath, "Exe"); + static string LibPath = Path.Combine(BinPath, "Libraries"); + static string ExamplePath = Path.Combine(BinPath, "Examples"); + + static string PrebuildXml = "Prebuild.xml"; enum BuildMode { @@ -46,6 +49,7 @@ namespace OpenTK.Build 0, Directory.GetCurrentDirectory().LastIndexOf("Build")); Directory.SetCurrentDirectory(RootPath); + SourcePath = Path.Combine(RootPath, "Source"); // Workaroung for nant on x64 windows (safe for other platforms too, as this affects // only the current process). @@ -118,18 +122,30 @@ namespace OpenTK.Build } } + ExePath = Path.Combine( + BinPath, + Path.Combine(mode == BuildMode.Debug ? "Debug" : "Release", "Exe")); + LibPath = Path.Combine( + BinPath, + Path.Combine(mode == BuildMode.Debug ? "Debug" : "Release", "Libraries")); + ExamplePath = Path.Combine( + BinPath, + Path.Combine(mode == BuildMode.Debug ? "Debug" : "Release", "Examples")); + switch (target) { case BuildTarget.Mono: Console.WriteLine("Building OpenTK using Mono."); ExecuteProcess(PrebuildPath, "/target nant /file " + PrebuildXml); ExecuteProcess("nant", "-t:mono-2.0"); + break; case BuildTarget.Net: Console.WriteLine("Building OpenTK using .Net"); ExecuteProcess(PrebuildPath, "/target nant /file " + PrebuildXml); ExecuteProcess("nant", "-t:net-2.0"); + CopyBinaries(); break; case BuildTarget.MonoDevelop: @@ -172,8 +188,8 @@ namespace OpenTK.Build break; } - Console.WriteLine("Press any key to continue..."); - Console.ReadKey(true); + //Console.WriteLine("Press any key to continue..."); + //Console.ReadKey(true); } } @@ -181,14 +197,62 @@ namespace OpenTK.Build { Console.WriteLine("Deleting {0} directories", search); List matches = new List(); - DirectorySearch(root_path, search, matches); + FindDirectories(root_path, search, matches); foreach (string m in matches) { Directory.Delete(m, true); } } - static void DirectorySearch(string directory, string search, List matches) + static void CopyBinaries() + { + List example_matches = new List(); + List exe_matches = new List(); + List dll_matches = new List(); + List dll_config_matches = new List(); + + Directory.CreateDirectory(BinPath); + Directory.CreateDirectory(ExePath); + Directory.CreateDirectory(LibPath); + Directory.CreateDirectory(ExamplePath); + + // Move the libraries and the config files. + FindFiles(SourcePath, "*.dll", dll_matches); + foreach (string m in dll_matches) + { + File.Delete(Path.Combine(LibPath, Path.GetFileName(m))); + File.Copy(m, Path.Combine(LibPath, Path.GetFileName(m))); + File.Delete(Path.Combine(ExamplePath, Path.GetFileName(m))); + File.Copy(m, Path.Combine(ExamplePath, Path.GetFileName(m))); + } + + FindFiles(SourcePath, "*.config", dll_config_matches); + foreach (string m in dll_config_matches) + { + File.Delete(Path.Combine(LibPath, Path.GetFileName(m))); + File.Copy(m, Path.Combine(LibPath, Path.GetFileName(m))); + File.Delete(Path.Combine(ExamplePath, Path.GetFileName(m))); + File.Copy(m, Path.Combine(ExamplePath, Path.GetFileName(m))); + } + + // Then the examples. + FindFiles(Path.Combine(SourcePath, "Examples"), "*.exe", example_matches); + foreach (string m in example_matches) + { + File.Delete(Path.Combine(ExamplePath, Path.GetFileName(m))); + File.Move(m, Path.Combine(ExamplePath, Path.GetFileName(m))); + } + + // Then the rest of the exes. + FindFiles(SourcePath, "*.exe", exe_matches); + foreach (string m in exe_matches) + { + File.Delete(Path.Combine(ExePath, Path.GetFileName(m))); + File.Move(m, Path.Combine(ExePath, Path.GetFileName(m))); + } + } + + static void FindDirectories(string directory, string search, List matches) { try { @@ -198,7 +262,7 @@ namespace OpenTK.Build { matches.Add(f); } - DirectorySearch(d, search, matches); + FindDirectories(d, search, matches); } } catch (System.Exception e) @@ -207,6 +271,22 @@ namespace OpenTK.Build } } + static void FindFiles(string directory, string search, List matches) + { + try + { + foreach (string f in Directory.GetFiles(directory, search, SearchOption.AllDirectories)) + { + matches.Add(f); + } + //FindFiles(d, search, matches); + } + catch (System.Exception e) + { + Console.WriteLine(e.Message); + } + } + static void ExecuteProcess(string path, string args) { Process p = new Process(); diff --git a/Source/OpenGL/OpenGL/Bindings/GL.cs b/Source/OpenGL/OpenGL/Bindings/GL.cs index 1ca9537e..a30b179c 100644 --- a/Source/OpenGL/OpenGL/Bindings/GL.cs +++ b/Source/OpenGL/OpenGL/Bindings/GL.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.42 +// Runtime Version:2.0.50727.312 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. diff --git a/Source/OpenGL/OpenGL/Bindings/GLEnums.cs b/Source/OpenGL/OpenGL/Bindings/GLEnums.cs index 2d9d9ae4..759af225 100644 --- a/Source/OpenGL/OpenGL/Bindings/GLEnums.cs +++ b/Source/OpenGL/OpenGL/Bindings/GLEnums.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.42 +// Runtime Version:2.0.50727.312 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated.