3 ' vbslib ver3.00 Sep.22, 2009
\r
4 ' Copyright (c) 2008-2009, T's-Neko at Sage Plaisir 21 (Japan)
\r
5 ' All rights reserved. Based on 3-clause BSD license.
\r
8 Dim g_VisualStudio_Path
\r
9 g_VisualStudio_Path = g_SrcPath
\r
11 Const E_PathNotFound2 = &h80070002
\r
15 '********************************************************************************
\r
16 ' <<< [devenv_rebuild] Visual Studio 2005 command line build >>>
\r
17 '********************************************************************************
\r
18 Sub devenv_rebuild( sln_path, config )
\r
19 Dim m : Set m = get_DevEnvObj()
\r
20 m.Rebuild sln_path, config
\r
24 '********************************************************************************
\r
25 ' <<< [devenv_build] Visual Studio 2005 command line build >>>
\r
26 '********************************************************************************
\r
27 Sub devenv_build( sln_path, config )
\r
28 Dim m : Set m = get_DevEnvObj()
\r
29 m.Build sln_path, config
\r
33 '********************************************************************************
\r
34 ' <<< [devenv_clean] Visual Studio 2005 clean >>>
\r
35 '********************************************************************************
\r
36 Sub devenv_clean( ByVal sln )
\r
37 Dim m : Set m = get_DevEnvObj()
\r
42 '********************************************************************************
\r
43 ' <<< [get_DevEnvObj] >>>
\r
44 '********************************************************************************
\r
47 Function get_DevEnvObj() '// has_interface_of ClassI
\r
48 If IsEmpty( g_DevEnvObj ) Then _
\r
49 Set g_DevEnvObj = new DevEnvObj : ErrCheck
\r
50 Set get_DevEnvObj = g_DevEnvObj
\r
54 '-------------------------------------------------------------------------
\r
55 ' ### <<<< [DevEnvObj] Class >>>>
\r
56 '-------------------------------------------------------------------------
\r
59 Public m_InstallDir2008
\r
60 Public m_InstallDir2005
\r
61 '// vbslib var: devenv_ver_name
\r
63 Private Sub Class_Initialize()
\r
65 m_InstallDir2008 = RegRead( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\"+_
\r
67 v = RegRead( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\StartPage\NewsChannel" )
\r
68 If not IsEmpty( v ) Then
\r
69 If IsEmpty( GetVar( "devenv_ver_name" ) ) Then
\r
70 SetVar "devenv_ver_name", "vs2008"
\r
74 m_InstallDir2005 = RegRead( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\"+_
\r
76 v = RegRead( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\StartPage\NewsChannel" )
\r
77 If not IsEmpty( v ) Then
\r
78 If IsEmpty( GetVar( "devenv_ver_name" ) ) Then
\r
79 SetVar "devenv_ver_name", "vs2005"
\r
86 '********************************************************************************
\r
88 '********************************************************************************
\r
89 Public Sub devenv( SlnPath, param, config )
\r
93 '//=== Get install_dir
\r
94 Select Case GetSlnFileVer( SlnPath )
\r
96 If IsEmpty( m_InstallDir2008 ) Then Raise 1,"Visual Studio 2008
\82ª
\83C
\83\93\83X
\83g
\81[
\83\8b\82³
\82ê
\82Ä
\82¢
\82Ü
\82¹
\82ñ"
\r
97 install_dir = m_InstallDir2008
\r
99 If IsEmpty( m_InstallDir2005 ) Then Raise 1,"Visual Studio 2005
\82ª
\83C
\83\93\83X
\83g
\81[
\83\8b\82³
\82ê
\82Ä
\82¢
\82Ü
\82¹
\82ñ"
\r
100 install_dir = m_InstallDir2005
\r
105 cmdline = """" + install_dir + "devenv.exe"" " + param + " """ + config + """"
\r
106 r = g_sh.Run( cmdline,, True )
\r
108 If r <> 0 Then Err.raise E_BuildFail,,"devenv failed " + param + " in " + g_sh.CurrentDirectory
\r
113 '********************************************************************************
\r
114 ' <<< [Rebuild] >>>
\r
115 '********************************************************************************
\r
116 Public Sub Rebuild( sln_path, config )
\r
117 Dim sln_path2 : sln_path2 = env( sln_path )
\r
118 echo_c ">devenv.exe """+sln_path2+""" /rebuild "+config
\r
119 echo_c " (if cl.exe was already run background by stop build, it may be fail.)"
\r
120 Me.devenv sln_path2, """" + sln_path2 + """ /rebuild", config
\r
126 '********************************************************************************
\r
128 '********************************************************************************
\r
129 Public Sub Build( sln_path, config )
\r
130 Dim sln_path2 : sln_path2 = env( sln_path )
\r
131 echo_c ">devenv.exe """+sln_path2+""" /build "+config
\r
132 echo_c " (if cl.exe was already run background by stop build, it may be fail.)"
\r
133 Me.devenv sln_path2, """" + sln_path2 + """ /build", config
\r
138 '********************************************************************************
\r
140 '********************************************************************************
\r
141 Public Sub Clean( sln_path )
\r
142 Dim sln_path2 : sln_path2 = env( sln_path )
\r
143 If not g_fs.FileExists( sln_path2 ) Then Err.Raise E_FileNotExist,,"Not found : " + sln_path2
\r
144 echo_c ">devenv.exe """+sln_path2+""" /clean *"
\r
145 Dim ec : Set ec = new EchoOff
\r
147 Me.devenv sln_path2, """"+sln_path2+""" /clean", "Release"
\r
149 Me.devenv sln_path2, """"+sln_path2+""" /clean", "Debug"
\r
159 '********************************************************************************
\r
160 ' <<< [GetSlnFileVer] >>>
\r
161 ' - ret : 2008, 2005
\r
162 '********************************************************************************
\r
163 Function GetSlnFileVer( SlnPath )
\r
164 Dim f, line, args, i
\r
165 Dim ec : Set ec = new EchoOff
\r
167 Set f = OpenForRead( SlnPath )
\r
169 Do Until f.AtEndOfStream
\r
170 line = f.ReadLine()
\r
172 If InStr( line, "# Visual Studio" ) > 0 Then
\r
173 GetSlnFileVer = CInt( Mid( line, 17 ) )
\r
177 If i=10 Then Exit Do
\r
180 Raise 1,"<ERROR msg='.sln
\83t
\83@
\83C
\83\8b\82É
\83o
\81[
\83W
\83\87\83\93\8fî
\95ñ
\82ª
\8c©
\82Â
\82©
\82è
\82Ü
\82¹
\82ñ'"+_
\r
181 " path='" + SlnPath + "'/>"
\r