Changeset 85802 in vbox
- Timestamp:
- Aug 17, 2020 9:15:12 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 139959
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/configure.vbs
r85787 r85802 160 160 end function 161 161 162 '' 163 ' Checks if the given character is a decimal digit 164 function CharIsDigit(ch) 165 CharIsDigit = (InStr(1, "0123456789", ch) > 0) 166 end function 167 168 '' 169 ' Worker for StrVersionCompare 170 ' The offset is updated to point to the first non-digit character. 171 function CountDigitsIgnoreLeadingZeros(ByRef str, ByRef off) 172 dim cntDigits, blnLeadingZeros, ch, offInt 173 cntDigits = 0 174 if CharIsDigit(Mid(str, off, 1)) then 175 ' Rewind to start of digest sequence. 176 do while off > 1 177 if not CharIsDigit(Mid(str, off - 1, 1)) then exit do 178 off = off - 1 179 loop 180 ' Count digits, ignoring leading zeros. 181 blnLeadingZeros = True 182 for off = off to Len(str) 183 ch = Mid(str, off, 1) 184 if CharIsDigit(ch) then 185 if ch <> "0" or blnLeadingZeros = False then 186 cntDigits = cntDigits + 1 187 blnLeadingZeros = False 188 end if 189 else 190 exit for 191 end if 192 next 193 ' If all zeros, count one of them. 194 if cntDigits = 0 then cntDigits = 1 195 end if 196 CountDigitsIgnoreLeadingZeros = cntDigits 197 end function 198 199 '' 200 ' Very simple version string compare function. 201 ' @returns < 0 if str1 is smaller than str2 202 ' @returns 0 if str1 and str2 are equal 203 ' @returns > 1 if str2 is larger than str1 204 function StrVersionCompare(str1, str2) 205 ' Compare the strings. We can rely on StrComp if equal or one is empty. 206 'LogPrint "StrVersionCompare("&str1&","&str2&"):" 207 StrVersionCompare = StrComp(str2, str1) 208 if StrVersionCompare <> 0 then 209 dim cch1, cch2, off1, off2, ch1, ch2, chPrev1, chPrev2, intDiff, cchDigits 210 cch1 = Len(str1) 211 cch2 = Len(str2) 212 if cch1 > 0 and cch2 > 0 then 213 ' Compare the common portion 214 off1 = 1 215 off2 = 1 216 chPrev1 = "x" 217 chPrev2 = "x" 218 do while off1 <= cch1 and off2 <= cch2 219 ch1 = Mid(str1, off1, 1) 220 ch2 = Mid(str2, off2, 1) 221 if ch1 = ch2 then 222 off1 = off1 + 1 223 off2 = off2 + 1 224 chPrev1 = ch1 225 chPrev2 = ch2 226 else 227 ' Is there a digest sequence in play. This includes the scenario where one of the 228 ' string ran out of digests. 229 dim blnDigest1 : blnDigest1 = CharIsDigit(ch1) 230 dim blnDigest2 : blnDigest2 = CharIsDigit(ch2) 231 if (blnDigest1 = True or blnDigest2 = True) _ 232 and (blnDigest1 = True or CharIsDigit(chPrev1) = True) _ 233 and (blnDigest2 = True or CharIsDigit(chPrev2) = True) _ 234 then 235 'LogPrint "StrVersionCompare: off1="&off1&" off2="&off2&" ch1="&ch1&" chPrev1="&chPrev1&" ch2="&ch2&" chPrev2="&chPrev2 236 if blnDigest1 = False then off1 = off1 - 1 237 if blnDigest2 = False then off2 = off2 - 1 238 ' The one with the fewer digits comes first. 239 ' Note! off1 and off2 are adjusted to next non-digit character in the strings. 240 cchDigits = CountDigitsIgnoreLeadingZeros(str1, off1) 241 intDiff = cchDigits - CountDigitsIgnoreLeadingZeros(str2, off2) 242 'LogPrint "StrVersionCompare: off1="&off1&" off2="&off2&" cchDigits="&cchDigits 243 if intDiff <> 0 then 244 StrVersionCompare = intDiff 245 'LogPrint "StrVersionCompare: --> "&intDiff&" #1" 246 exit function 247 end if 248 249 ' If the same number of digits, the smaller digit wins. However, because of 250 ' potential leading zeros, we must redo the compare. Assume ASCII-like stuff 251 ' and we can use StrComp for this. 252 intDiff = StrComp(Mid(str1, off1 - cchDigits, cchDigits), Mid(str2, off2 - cchDigits, cchDigits)) 253 if intDiff <> 0 then 254 StrVersionCompare = intDiff 255 'LogPrint "StrVersionCompare: --> "&intDiff&" #2" 256 exit function 257 end if 258 chPrev1 = "x" 259 chPrev2 = "x" 260 else 261 if blnDigest1 then 262 StrVersionCompare = -1 ' Digits before characters 263 'LogPrint "StrVersionCompare: --> -1 (#3)" 264 elseif blnDigest2 then 265 StrVersionCompare = 1 ' Digits before characters 266 'LogPrint "StrVersionCompare: --> 1 (#4)" 267 else 268 StrVersionCompare = StrComp(ch1, ch2) 269 'LogPrint "StrVersionCompare: --> "&StrVersionCompare&" (#5)" 270 end if 271 exit function 272 end if 273 end if 274 loop 275 276 ' The common part matches up, so the shorter string 'wins'. 277 StrVersionCompare = (cch1 - off1) - (cch2 - off2) 278 end if 279 end if 280 'LogPrint "StrVersionCompare: --> "&StrVersionCompare&" (#6)" 281 end function 282 283 '' 284 ' Returns a reverse array (copy). 285 function ArrayReverse(arr) 286 dim cnt, i, j, iHalf, objTmp 287 cnt = UBound(arr) - LBound(arr) + 1 288 if cnt > 0 then 289 j = UBound(arr) 290 iHalf = Fix(LBound(arr) + cnt / 2) 291 for i = LBound(arr) to iHalf - 1 292 objTmp = arr(i) 293 arr(i) = arr(j) 294 arr(j) = objTmp 295 j = j - 1 296 next 297 end if 298 ArrayReverse = arr 299 end function 300 162 301 163 302 '' 164 303 ' Returns a reverse sorted array (strings). 165 function ArraySortStrings(arrStrings) 304 function ArraySortStringsEx(arrStrings, ByRef fnCompare) 305 dim str1, str2, i, j 166 306 for i = LBound(arrStrings) to UBound(arrStrings) 167 307 str1 = arrStrings(i) 168 308 for j = i + 1 to UBound(arrStrings) 169 309 str2 = arrStrings(j) 170 if StrComp(str2, str1) < 0 then310 if fnCompare(str2, str1) < 0 then 171 311 arrStrings(j) = str1 172 312 str1 = str2 … … 175 315 arrStrings(i) = str1 176 316 next 177 ArraySortStrings = arrStrings 317 ArraySortStringsEx = arrStrings 318 end function 319 320 321 '' 322 ' Returns a reverse sorted array (strings). 323 function ArraySortStrings(arrStrings) 324 ArraySortStrings = ArraySortStringsEx(arrStrings, GetRef("StrComp")) 325 end function 326 327 328 '' 329 ' Returns a reverse sorted array (strings). 330 function ArrayVerSortStrings(arrStrings) 331 ArrayVerSortStrings = ArraySortStringsEx(arrStrings, GetRef("StrVersionCompare")) 332 end function 333 334 335 '' 336 ' Returns a reverse sorted array (strings). 337 function ArrayRSortStrings(arrStrings) 338 ArrayRSortStrings = ArrayReverse(ArraySortStringsEx(arrStrings, GetRef("StrComp"))) 339 end function 340 341 342 '' 343 ' Returns a reverse version sorted array (strings). 344 function ArrayRVerSortStrings(arrStrings) 345 ArrayRVerSortStrings = ArrayReverse(ArraySortStringsEx(arrStrings, GetRef("StrVersionCompare"))) 178 346 end function 179 347 … … 189 357 190 358 '' 191 ' Returns a reverse sorted array (strings).192 function ArrayRSortStrings(arrStrings)193 ' Sort it.194 arrStrings = ArraySortStrings(arrStrings)195 196 ' Reverse the array.197 cnt = UBound(arrStrings) - LBound(arrStrings) + 1198 if cnt > 0 then199 j = UBound(arrStrings)200 iHalf = Fix(LBound(arrStrings) + cnt / 2)201 for i = LBound(arrStrings) to iHalf - 1202 strTmp = arrStrings(i)203 arrStrings(i) = arrStrings(j)204 arrStrings(j) = strTmp205 j = j - 1206 next207 end if208 ArrayRSortStrings = arrStrings209 end function210 211 212 ''213 359 ' Returns the input array with the string appended. 214 360 ' Note! There must be some better way of doing this... 361 ' @todo Lots of copying here... 215 362 function ArrayAppend(arr, str) 216 363 dim i, cnt … … 222 369 arrRet(UBound(arr) + 1) = str 223 370 ArrayAppend = arrRet 371 end function 372 373 374 '' 375 ' Checks if the array contains the given string (case sensitive). 376 function ArrayContainsString(ByRef arr, str) 377 dim strCur 378 ArrayContainsString = False 379 for each strCur in arr 380 if StrComp(strCur, str) = 0 then 381 ArrayContainsString = True 382 exit function 383 end if 384 next 385 end function 386 387 388 '' 389 ' Checks if the array contains the given string, using case insensitive compare. 390 function ArrayContainsStringI(ByRef arr, str) 391 dim strCur 392 ArrayContainsStringI = False 393 for each strCur in arr 394 if StrComp(strCur, str, vbTextCompare) = 0 then 395 ArrayContainsStringI = True 396 exit function 397 end if 398 next 399 end function 400 401 '' 402 ' Returns the number of entries in an array. 403 function ArraySize(ByRef arr) 404 if (UBound(arr) >= 0) then 405 ArraySize = UBound(arr) - LBound(arr) + 1 406 else 407 ArraySize = 0 408 end if 224 409 end function 225 410 … … 315 500 if RegInit() then 316 501 dim strRoot, strKey, strValue 317 dim iRoot318 502 319 503 ' split up into root, key and value parts. … … 348 532 if RegInit() then 349 533 dim strRoot, strKey, strValue 350 dim iRoot351 534 352 535 ' split up into root, key and value parts. … … 419 602 '' 420 603 ' Returns an rsorted array of subkey strings. 421 function RegEnumSubKeysR Sort(strRoot, strKeyPath)422 RegEnumSubKeysR Sort = ArrayRSortStrings(RegEnumSubKeys(strRoot, strKeyPath))604 function RegEnumSubKeysRVerSorted(strRoot, strKeyPath) 605 RegEnumSubKeysRVerSorted = ArrayRVerSortStrings(RegEnumSubKeys(strRoot, strKeyPath)) 423 606 end function 424 607 … … 426 609 '' 427 610 ' Returns an rsorted array of subkey strings. 428 function RegEnumSubKeysFullR Sort(strRoot, strKeyPath)429 RegEnumSubKeysFullR Sort = ArrayRSortStrings(RegEnumSubKeysFull(strRoot, strKeyPath))611 function RegEnumSubKeysFullRVerSorted(strRoot, strKeyPath) 612 RegEnumSubKeysFullRVerSorted = ArrayRVerSortStrings(RegEnumSubKeysFull(strRoot, strKeyPath)) 430 613 end function 431 614 … … 470 653 next 471 654 RegEnumValueNamesFull = arrTmp 655 end function 656 657 658 '' 659 ' Extract relevant paths from program links using a callback function. 660 ' 661 ' Enumerates start menu program links from "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\UFH\SHC" 662 ' and similar, using the given callback to examine each and return a path if relevant. The relevant 663 ' paths are returned in reverse sorted order. 664 ' 665 ' The callback prototype is as follows fnCallback(ByRef arrStrings, cStrings, ByRef objUser). 666 ' Any non-empty return strings are collected, reverse sorted uniquely and returned. 667 ' 668 function CollectFromProgramItemLinks(ByRef fnCallback, ByRef objUser) 669 dim arrValues, strValue, arrStrings, str, arrCandidates, iCandidates, cStrings 670 CollectFromProgramItemLinks = Array() 671 672 arrValues = RegEnumValueNamesFull("HKCU", "SOFTWARE\Microsoft\Windows\CurrentVersion\UFH\SHC") 673 redim arrCandidates(UBound(arrValues) - LBound(arrValues) + 1) 674 iCandidates = 0 675 for each strValue in arrValues 676 arrStrings = RegGetMultiString("HKCU\" & strValue) 677 if UBound(arrStrings) >= 0 then 678 cStrings = UBound(arrStrings) + 1 - LBound(arrStrings) 679 str = fnCallback(arrStrings, cStrings, objUser) 680 if str <> "" then 681 if not ArrayContainsStringI(arrCandidates, str) then 682 arrCandidates(iCandidates) = str 683 iCandidates = iCandidates + 1 684 end if 685 end if 686 end if 687 next 688 if iCandidates > 0 then 689 redim preserve arrCandidates(iCandidates - 1) 690 arrCandidates = ArrayRVerSortStrings(arrCandidates) 691 for iCandidates = LBound(arrCandidates) to UBound(arrCandidates) 692 LogPrint "CollectFromProgramItemLinks: #" & iCandidates & ": " & arrCandidates(iCandidates) 693 next 694 CollectFromProgramItemLinks = arrCandidates 695 end if 472 696 end function 473 697 … … 680 904 '' 681 905 ' Returns a sorted array of subfolder names that starts with the given string. 682 function GetSubdirsStartingWith Sorted(strFolder, strStartingWith)683 GetSubdirsStartingWith Sorted = ArraySortStrings(GetSubdirsStartingWith(strFolder, strStartingWith))684 end function 685 686 687 '' 688 ' Returns a reverse sorted array of subfolder names that starts with the given string.689 function GetSubdirsStartingWithR Sorted(strFolder, strStartingWith)690 GetSubdirsStartingWithRSorted = ArrayRSortStrings(GetSubdirsStartingWith(strFolder, strStartingWith))906 function GetSubdirsStartingWithVerSorted(strFolder, strStartingWith) 907 GetSubdirsStartingWithVerSorted = ArrayVerSortStrings(GetSubdirsStartingWith(strFolder, strStartingWith)) 908 end function 909 910 911 '' 912 ' Returns a reverse version sorted array of subfolder names that starts with the given string. 913 function GetSubdirsStartingWithRVerSorted(strFolder, strStartingWith) 914 GetSubdirsStartingWithRSortedVersion = ArrayRVerSortStrings(GetSubdirsStartingWith(strFolder, strStartingWith)) 691 915 end function 692 916 … … 885 1109 886 1110 '' 1111 ' Checks if the file exists and logs failures. 1112 function LogFileExists1(strPath) 1113 LogFileExists1 = FileExists(strPath) 1114 if LogFileExists1 = False then 1115 LogPrint "Testing '" & strPath & "': file not found" 1116 end if 1117 end function 1118 1119 1120 '' 887 1121 ' Checks if the directory exists and logs failures. 888 1122 function LogDirExists(strPath) … … 962 1196 end sub 963 1197 1198 '' 1199 ' Prints a string to the config file. 1200 sub CfgPrintAssign(strVar, strValue) 1201 if strValue = "" then 1202 FileAppendLine g_strCfgFile, RightPad(strVar, 17) & " :=" 1203 else 1204 FileAppendLine g_strCfgFile, RightPad(strVar, 17) & " := " & strValue 1205 end if 1206 end sub 1207 964 1208 965 1209 '' … … 1035 1279 g_blnDisableCOM = True 1036 1280 g_strDisableCOM = strReason 1037 CfgPrint "VBOX_WITH_MAIN="1038 CfgPrint "VBOX_WITH_QTGUI="1039 CfgPrint "VBOX_WITH_VBOXSDL="1040 CfgPrint "VBOX_WITH_DEBUGGER_GUI="1281 CfgPrintAssign "VBOX_WITH_MAIN", "" 1282 CfgPrintAssign "VBOX_WITH_QTGUI", "" 1283 CfgPrintAssign "VBOX_WITH_VBOXSDL", "" 1284 CfgPrintAssign "VBOX_WITH_DEBUGGER_GUI", "" 1041 1285 end if 1042 1286 end sub … … 1050 1294 g_blnDisableUDPTunnel = True 1051 1295 g_strDisableUDPTunnel = strReason 1052 CfgPrint "VBOX_WITH_UDPTUNNEL="1296 CfgPrintAssign "VBOX_WITH_UDPTUNNEL", "" 1053 1297 end if 1054 1298 end sub … … 1062 1306 g_blnDisableSDL = True 1063 1307 g_strDisableSDL = strReason 1064 CfgPrint "VBOX_WITH_VBOXSDL="1308 CfgPrintAssign "VBOX_WITH_VBOXSDL", "" 1065 1309 end if 1066 1310 end sub … … 1310 1554 PrintResult "kBuild binaries", g_strPathkBuildBin 1311 1555 end sub 1556 1312 1557 1313 1558 '' … … 1393 1638 and LogFileExists(strPathVC, "lib/x64/libcpmt.lib") _ 1394 1639 and LogFileExists(strPathVC, "lib/x86/libcpmt.lib") _ 1640 and LogFileExists(strPathVC, "bin/Host" & g_strHostArchWin & "/" & g_strTargetArchWin & "/cl.exe") _ 1641 and LogFileExists(strPathVC, "bin/Host" & g_strHostArchWin & "/" & g_strHostArchWin & "/cl.exe") _ 1395 1642 then 1396 1643 LogPrint " => seems okay. new layout." 1397 m_blnFound = checkClExe(strPathVC & "/bin/Host" & g_strHostArchWin & "/ bin/" & g_strHostArchWin & "/cl.exe")1644 m_blnFound = checkClExe(strPathVC & "/bin/Host" & g_strHostArchWin & "/" & g_strTargetArchWin & "/cl.exe") 1398 1645 if m_blnFound then 1399 1646 m_strPathVC = strPathVC … … 1418 1665 LogPrint " => seems okay. new layout." 1419 1666 dim arrFolders, i 1420 arrFolders = GetSubdirsStartingWith Sorted(m_strPathVC & "/Tools/MSVC", "14.2")1421 if UBound(arrFolders) < 0 then arrFolders = GetSubdirsStartingWith Sorted(m_strPathVC & "/Tools/MSVC", "14.1")1422 if UBound(arrFolders) < 0 then arrFolders = GetSubdirsStartingWith Sorted(m_strPathVC & "/Tools/MSVC", "1")1667 arrFolders = GetSubdirsStartingWithVerSorted(m_strPathVC & "/Tools/MSVC", "14.2") 1668 if UBound(arrFolders) < 0 then arrFolders = GetSubdirsStartingWithVerSorted(m_strPathVC & "/Tools/MSVC", "14.1") 1669 if UBound(arrFolders) < 0 then arrFolders = GetSubdirsStartingWithVerSorted(m_strPathVC & "/Tools/MSVC", "1") 1423 1670 for i = UBound(arrFolders) to LBound(arrFolders) step -1 1424 1671 if checkInner(m_strPathVC & "/Tools/MSVC/" & arrFolders(i)) then exit for ' modifies m_strPathVC on success … … 1513 1760 1514 1761 '' 1515 ' Checks for Visual C++ version 1 0 (2010).1762 ' Checks for Visual C++ version 16 (2019), 15 (2017), 14 (2015), 12 (2013), 11 (2012) or 10 (2010). 1516 1763 sub CheckForVisualCPP(strOptVC, strOptVCCommon) 1517 1764 PrintHdr "Visual C++" … … 1524 1771 objState.check strOptVC, strOptVCCommon 1525 1772 if g_blnInternalFirst = True then objState.checkInternal 1526 objState.checkProg "cl.exe"1527 1773 objState.checkProgFiles "Microsoft Visual Studio\2019\BuildTools\VC" 1528 1774 objState.checkProgFiles "Microsoft Visual Studio\2019\Professional\VC" … … 1537 1783 objState.checkRegistry "Microsoft\VisualStudio\SxS\VS7\12.0", "VC", "Common7" '? 1538 1784 objState.checkRegistry "Microsoft\VisualStudio\SxS\VS7\11.0", "VC", "Common7" '? 1785 objState.checkProg "cl.exe" 1539 1786 objState.checkRegistry "Microsoft\VisualStudio\10.0\Setup\VS\ProductDir", "VC", "Common7" 1540 1787 if g_blnInternalFirst = False then objState.checkInternal … … 1550 1797 ' Ok, emit build config variables. 1551 1798 ' 1552 CfgPrint "VBOX_VCC_TOOL_STEM := " &objState.m_strVersion1553 CfgPrint "PATH_TOOL_" & objState.m_strVersion & " := " &g_strPathVCC1554 CfgPrint "PATH_TOOL_" & objState.m_strVersion & "X86 :=$(PATH_TOOL_" & objState.m_strVersion & ")"1555 CfgPrint "PATH_TOOL_" & objState.m_strVersion & "AMD64 :=$(PATH_TOOL_" & objState.m_strVersion & ")"1799 CfgPrintAssign "VBOX_VCC_TOOL_STEM", objState.m_strVersion 1800 CfgPrintAssign "PATH_TOOL_" & objState.m_strVersion, g_strPathVCC 1801 CfgPrintAssign "PATH_TOOL_" & objState.m_strVersion & "X86", "$(PATH_TOOL_" & objState.m_strVersion & ")" 1802 CfgPrintAssign "PATH_TOOL_" & objState.m_strVersion & "AMD64", "$(PATH_TOOL_" & objState.m_strVersion & ")" 1556 1803 1557 1804 if objState.m_strVersion = "VCC100" _ … … 1560 1807 or objState.m_strVersion = "VCC140" _ 1561 1808 then 1562 CfgPrint "VBOX_WITH_NEW_VCC :=" '?? for VCC110+1809 CfgPrintAssign "VBOX_WITH_NEW_VCC", "" '?? for VCC110+ 1563 1810 else 1564 CfgPrint "VBOX_WITH_NEW_VCC :=1"1811 CfgPrintAssign "VBOX_WITH_NEW_VCC", "1" 1565 1812 end if 1566 1813 PrintResult "Visual C++ " & objState.m_strVersion, g_strPathVCC … … 1615 1862 1616 1863 ' Check the registry next (ASSUMES sorting). 1617 arrSubKeys = RegEnumSubKeysR Sort("HKLM", "SOFTWARE\Microsoft\Microsoft SDKs\Windows")1864 arrSubKeys = RegEnumSubKeysRVerSorted("HKLM", "SOFTWARE\Microsoft\Microsoft SDKs\Windows") 1618 1865 for each strSubKey in arrSubKeys 1619 1866 str = RegGetString("HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\" & strSubKey & "\InstallationFolder") … … 1622 1869 end if 1623 1870 Next 1624 arrSubKeys = RegEnumSubKeysR Sort("HKCU", "SOFTWARE\Microsoft\Microsoft SDKs\Windows")1871 arrSubKeys = RegEnumSubKeysRVerSorted("HKCU", "SOFTWARE\Microsoft\Microsoft SDKs\Windows") 1625 1872 for each strSubKey in arrSubKeys 1626 1873 str = RegGetString("HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows\" & strSubKey & "\InstallationFolder") … … 1651 1898 ' 1652 1899 strPathPSDK = UnixSlashes(PathAbs(strPathPSDK)) 1653 CfgPrint "PATH_SDK_WINPSDK" & g_strVerPSDK & " := " & strPathPSDK 1654 CfgPrint "VBOX_WINPSDK := WINPSDK" & g_strVerPSDK 1655 1656 PrintResult "Windows Platform SDK (v" & g_strVerPSDK & ")", strPathPSDK 1900 CfgPrintAssign "PATH_SDK_WINPSDK" & g_strVerPSDK, strPathPSDK 1901 CfgPrintAssign "VBOX_WINPSDK", "WINPSDK" & g_strVerPSDK 1902 1903 PrintResult "Windows Platform SDK", strPathPSDK 1904 PrintResultMsg "Windows Platform SDK version", g_strVerPSDK 1657 1905 g_strPathPSDK = strPathPSDK 1658 1906 end sub … … 1681 1929 1682 1930 '' 1683 ' Checks for a platform SDK that works with the compiler1931 ' Checks for a windows 10 SDK (later also WDK). 1684 1932 sub CheckForSDK10(strOptSDK10, strOptSDK10Version) 1685 1933 dim strPathSDK10, strSDK10Version, str … … 1714 1962 ' 1715 1963 strPathSDK10 = UnixSlashes(PathAbs(strPathSDK10)) 1716 CfgPrint "PATH_SDK_WINSDK10 := " & strPathSDK10 1717 CfgPrint "SDK_WINSDK10_VERSION := " & strSDK10Version 1718 1719 PrintResult "Windows 10 SDK (" & strSDK10Version & ")", strPathSDK10 1964 CfgPrintAssign "PATH_SDK_WINSDK10", strPathSDK10 1965 CfgPrintAssign "SDK_WINSDK10_VERSION", strSDK10Version 1966 1967 PrintResult "Windows 10 SDK", strPathSDK10 1968 PrintResultMsg "Windows 10 SDK version", strSDK10Version 1720 1969 g_strPathSDK10 = strPathSDK10 1721 1970 end sub … … 1729 1978 g_strPathDev & "/win.x86/sdk", g_strPathDev & "/win.amd64/sdk") 1730 1979 for each strToolsDir in arrToolsDirs 1731 arrDirs = GetSubdirsStartingWithRSorted (strToolsDir, "v10.")1980 arrDirs = GetSubdirsStartingWithRSortedVersion(strToolsDir, "v10.") 1732 1981 for each strDir in arrDirs 1733 1982 CheckForSDK10ToolsSub = CheckForSDK10Sub(strToolsDir & "/" & strDir, strSDK10Version) … … 1754 2003 ' Only testing the highest one, for now. '' @todo incorporate strOptSDK10Version 1755 2004 dim arrVersions 1756 arrVersions = GetSubdirsStartingWith Sorted(strPathSDK10 & "/Include", "10.0.")2005 arrVersions = GetSubdirsStartingWithVerSorted(strPathSDK10 & "/Include", "10.0.") 1757 2006 if UBound(arrVersions) >= 0 then 1758 2007 dim strVersion … … 1769 2018 and LogFileExists(strPathSDK10, "bin/" & strVersion & "/" & g_strHostArchWin & "/midl.exe") _ 1770 2019 then 1771 '' @todo check minimum version (for WinHv). 1772 strSDK10Version = strVersion 1773 CheckForSDK10Sub = strPathSDK10 2020 if StrComp(strVersion, "10.0.17134.0") >= 0 then 2021 strSDK10Version = strVersion 2022 CheckForSDK10Sub = strPathSDK10 2023 else 2024 LogPrint "Version " & strVersion & " is too low, minimum: 10.0.17134.0" 2025 end if 1774 2026 end if 1775 2027 else … … 1831 2083 next 1832 2084 next 1833 arrLocations = ArrayR SortStrings(arrLocations)2085 arrLocations = ArrayRVerSortStrings(arrLocations) 1834 2086 1835 2087 ' Check the locations we've gathered. … … 1856 2108 ' 1857 2109 strPathDDK = UnixSlashes(PathAbs(strPathDDK)) 1858 CfgPrint "PATH_SDK_WINDDK71 := " &strPathDDK2110 CfgPrintAssign "PATH_SDK_WINDDK71", strPathDDK 1859 2111 1860 2112 PrintResult "Windows DDK v7.1", strPathDDK … … 1887 2139 '' 1888 2140 ' Finds midl.exe 1889 sub CheckForMidl( )2141 sub CheckForMidl(strOptMidl) 1890 2142 dim strMidl 1891 2143 PrintHdr "Midl.exe" … … 1893 2145 ' Skip if no COM/ATL. 1894 2146 if g_blnDisableCOM then 1895 PrintResultMsg "Midl ", "Skipped (" & g_strDisableCOM & ")"2147 PrintResultMsg "Midl.exe", "Skipped (" & g_strDisableCOM & ")" 1896 2148 exit sub 1897 2149 end if 1898 2150 1899 if LogFileExists(g_strPathPSDK, "bin/Midl.exe") then 1900 strMidl = g_strPathPSDK & "/bin/Midl.exe" 1901 elseif LogFileExists(g_strPathVCC, "Common7/Tools/Bin/Midl.exe") then 1902 strMidl = g_strPathVCC & "/Common7/Tools/Bin/Midl.exe" 1903 elseif LogFileExists(g_strPathDDK, "bin/x86/Midl.exe") then 1904 strMidl = g_strPathDDK & "/bin/x86/Midl.exe" 1905 elseif LogFileExists(g_strPathDDK, "bin/Midl.exe") then 1906 strMidl = g_strPathDDK & "/bin/Midl.exe" 1907 elseif LogFileExists(g_strPathDev, "win.x86/bin/Midl.exe") then 1908 strMidl = g_strPathDev & "/win.x86/bin/Midl.exe" 1909 else 1910 MsgWarning "Midl.exe not found!" 2151 strMidl = CheckForMidlSub(strOptMidl) 2152 if strMidl = "" then strMidl = CheckForMidlSub(g_strPathSDK10 & "/bin/" & g_strHostArchWin & "/Midl.exe") 2153 if strMidl = "" then strMidl = CheckForMidlSub(g_strPathSDK10 & "/bin/x86/Midl.exe") 2154 if strMidl = "" then strMidl = CheckForMidlSub(g_strPathPSDK & "/bin/Midl.exe") 2155 if strMidl = "" then strMidl = CheckForMidlSub(g_strPathVCC & "/Common7/Tools/Bin/Midl.exe") 2156 if strMidl = "" then strMidl = CheckForMidlSub(g_strPathDDK & "/bin/" & g_strHostArchWin & "/Midl.exe") 2157 if strMidl = "" then strMidl = CheckForMidlSub(g_strPathDDK & "/bin/x86/Midl.exe") 2158 if strMidl = "" then strMidl = CheckForMidlSub(g_strPathDDK & "/bin/Midl.exe") 2159 if strMidl = "" then strMidl = CheckForMidlSub(g_strPathDev & "/win.x86/bin/Midl.exe") 2160 if strMidl = "" then 2161 PrintResultMsg "Midl.exe", "not found" 1911 2162 exit sub 1912 2163 end if 1913 2164 1914 CfgPrint "VBOX_MAIN_IDL := " &strMidl2165 CfgPrintAssign "VBOX_MAIN_IDL", strMidl 1915 2166 PrintResult "Midl.exe", strMidl 1916 2167 end sub 2168 2169 function CheckForMidlSub(strMidl) 2170 CheckForMidlSub = "" 2171 if strMidl <> "" then 2172 if LogFileExists1(strMidl) then 2173 CheckForMidlSub = UnixSlashes(PathAbs(strMidl)) 2174 end if 2175 end if 2176 end function 2177 2178 2179 '' 2180 ' Finds OpenWatcom 2181 sub CheckForOpenWatcom(strOptOpenWatcom) 2182 dim strPathOpenWatcom 2183 PrintHdr "OpenWatcom" 2184 2185 strPathOpenWatcom = CheckForOpenWatcomSub(strOptOpenWatcom) 2186 if strPathOpenWatcom = "" and g_blnInternalFirst = True then strPathOpenWatcom = CheckForOpenWatcomToolsSub() 2187 if strPathOpenWatcom = "" then strPathOpenWatcom = CheckForOpenWatcomSub(EnvGet("WATCOM")) 2188 if strPathOpenWatcom = "" then strPathOpenWatcom = CheckForOpenWatcomSub(PathParent(PathStripFilename(Which("wcc386.exe")))) 2189 if strPathOpenWatcom = "" then 2190 dim arrCandiates, strCandidate 2191 arrCandidates = CollectFromProgramItemLinks(GetRef("OpenWatcomProgramItemCallback"), strPathOpenWatcom) 2192 for each strCandidate in arrCandidates 2193 if strPathOpenWatcom = "" then strPathOpenWatcom = CheckForOpenWatcomSub(strCandidate) 2194 next 2195 end if 2196 if strPathOpenWatcom = "" and g_blnInternalFirst = False then strPathOpenWatcom = CheckForOpenWatcomToolsSub() 2197 2198 if strPathOpenWatcom = "" then 2199 PrintResultMsg "OpenWatcom", "not found" 2200 CfgPrintAssign "VBOX_WITH_OPEN_WATCOM", "" 2201 exit sub 2202 end if 2203 2204 CfgPrintAssign "VBOX_WITH_OPEN_WATCOM", "1" 2205 CfgPrintAssign "PATH_TOOL_OPENWATCOM", strPathOpenWatcom 2206 PrintResult "OpenWatcom", strPathOpenWatcom 2207 end sub 2208 2209 function CheckForOpenWatcomToolsSub() 2210 dim arrToolsDirs, strToolsDir, arrDirs, strDir 2211 arrToolsDirs = Array(g_strPathDev & "/common/openwatcom", _ 2212 g_strPathDev & "/win." & g_strTargetArch & "/openwatcom", _ 2213 g_strPathDev & "/win.x86/openwatcom", g_strPathDev & "/win.amd64/openwatcom") 2214 for each strToolsDir in arrToolsDirs 2215 arrDirs = GetSubdirsStartingWithRSortedVersion(strToolsDir, "v") 2216 for each strDir in arrDirs 2217 CheckForOpenWatcomToolsSub = CheckForOpenWatcomSub(strToolsDir & "/" & strDir) 2218 if CheckForOpenWatcomToolsSub <> "" then 2219 exit function 2220 end if 2221 next 2222 next 2223 CheckForOpenWatcomToolsSub = "" 2224 end function 2225 2226 function OpenWatcomProgramItemCallback(ByRef arrStrings, cStrings, ByRef strUnused) 2227 dim str, off 2228 OpenWatcomProgramItemCallback = "" 2229 if cStrings > 1 then 2230 str = arrStrings(1) 2231 off = InStr(1, str, "\binnt\", vbTextCompare) 2232 if off > 0 then 2233 OpenWatcomProgramItemCallback = Left(str, off - 1) 2234 end if 2235 end if 2236 end function 2237 2238 function CheckForOpenWatcomSub(strPathOpenWatcom) 2239 CheckForOpenWatcomSub = "" 2240 if strPathOpenWatcom <> "" then 2241 LogPrint "Trying: " & strPathOpenWatcom 2242 if LogDirExists(strPathOpenWatcom) then 2243 if LogDirExists(strPathOpenWatcom & "/binnt") _ 2244 and LogDirExists(strPathOpenWatcom & "/h") _ 2245 and LogDirExists(strPathOpenWatcom & "/eddat") _ 2246 and LogFileExists(strPathOpenWatcom, "binnt/wcc386.exe") _ 2247 and LogFileExists(strPathOpenWatcom, "binnt/wcc.exe") _ 2248 and LogFileExists(strPathOpenWatcom, "binnt/wlink.exe") _ 2249 and LogFileExists(strPathOpenWatcom, "binnt/wcl386.exe") _ 2250 and LogFileExists(strPathOpenWatcom, "binnt/wcl.exe") _ 2251 and LogFileExists(strPathOpenWatcom, "binnt/wlib.exe") _ 2252 and LogFileExists(strPathOpenWatcom, "binnt/wasm.exe") _ 2253 and LogFileExists(strPathOpenWatcom, "h/stdarg.h") _ 2254 then 2255 '' @todo check the version! 2256 CheckForOpenWatcomSub = UnixSlashes(PathAbs(strPathOpenWatcom)) 2257 end if 2258 end if 2259 end if 2260 end function 1917 2261 1918 2262 … … 1982 2326 1983 2327 strPathLibSDL = UnixSlashes(PathAbs(strPathLibSDL)) 1984 CfgPrint "PATH_SDK_LIBSDL := " &strPathlibSDL2328 CfgPrintAssign "PATH_SDK_LIBSDL", strPathlibSDL 1985 2329 1986 2330 PrintResult "libSDL", strPathlibSDL … … 2052 2396 2053 2397 strPathXml2 = UnixSlashes(PathAbs(strPathXml2)) 2054 CfgPrint "SDK_VBOX_LIBXML2_DEFS :=_REENTRANT"2055 CfgPrint "SDK_VBOX_LIBXML2_INCS := " &strPathXml2 & "/include"2056 CfgPrint "SDK_VBOX_LIBXML2_LIBS := " &strPathXml2 & "/lib/libxml2.lib"2398 CfgPrintAssign "SDK_VBOX_LIBXML2_DEFS", "_REENTRANT" 2399 CfgPrintAssign "SDK_VBOX_LIBXML2_INCS", strPathXml2 & "/include" 2400 CfgPrintAssign "SDK_VBOX_LIBXML2_LIBS", strPathXml2 & "/lib/libxml2.lib" 2057 2401 2058 2402 PrintResult "libxml2", strPathXml2 … … 2129 2473 strPathSsl = UnixSlashes(PathAbs(strPathSsl)) 2130 2474 if bln32Bit = True then 2131 CfgPrint "SDK_VBOX_OPENSSL-x86_INCS := " &strPathSsl & "/include"2132 CfgPrint "SDK_VBOX_OPENSSL-x86_LIBS := " &strPathSsl & "/lib/libcrypto.lib" & " " & strPathSsl & "/lib/libssl.lib"2133 CfgPrint "SDK_VBOX_BLD_OPENSSL-x86_LIBS := " &strPathSsl & "/lib/libcrypto.lib" & " " & strPathSsl & "/lib/libssl.lib"2475 CfgPrintAssign "SDK_VBOX_OPENSSL-x86_INCS", strPathSsl & "/include" 2476 CfgPrintAssign "SDK_VBOX_OPENSSL-x86_LIBS", strPathSsl & "/lib/libcrypto.lib" & " " & strPathSsl & "/lib/libssl.lib" 2477 CfgPrintAssign "SDK_VBOX_BLD_OPENSSL-x86_LIBS", strPathSsl & "/lib/libcrypto.lib" & " " & strPathSsl & "/lib/libssl.lib" 2134 2478 else 2135 CfgPrint "SDK_VBOX_OPENSSL_INCS := " &strPathSsl & "/include"2136 CfgPrint "SDK_VBOX_OPENSSL_LIBS := " &strPathSsl & "/lib/libcrypto.lib" & " " & strPathSsl & "/lib/libssl.lib"2137 CfgPrint "SDK_VBOX_BLD_OPENSSL_LIBS := " &strPathSsl & "/lib/libcrypto.lib" & " " & strPathSsl & "/lib/libssl.lib"2479 CfgPrintAssign "SDK_VBOX_OPENSSL_INCS", strPathSsl & "/include" 2480 CfgPrintAssign "SDK_VBOX_OPENSSL_LIBS", strPathSsl & "/lib/libcrypto.lib" & " " & strPathSsl & "/lib/libssl.lib" 2481 CfgPrintAssign "SDK_VBOX_BLD_OPENSSL_LIBS", strPathSsl & "/lib/libcrypto.lib" & " " & strPathSsl & "/lib/libssl.lib" 2138 2482 end if 2139 2483 … … 2205 2549 strPathCurl = UnixSlashes(PathAbs(strPathCurl)) 2206 2550 if bln32Bit = True then 2207 CfgPrint "SDK_VBOX_LIBCURL-x86_INCS := " &strPathCurl & "/include"2208 CfgPrint "SDK_VBOX_LIBCURL-x86_LIBS.x86 := " &strPathCurl & "/libcurl.lib"2551 CfgPrintAssign "SDK_VBOX_LIBCURL-x86_INCS", strPathCurl & "/include" 2552 CfgPrintAssign "SDK_VBOX_LIBCURL-x86_LIBS.x86", strPathCurl & "/libcurl.lib" 2209 2553 else 2210 CfgPrint "SDK_VBOX_LIBCURL_INCS := " &strPathCurl & "/include"2211 CfgPrint "SDK_VBOX_LIBCURL_LIBS := " &strPathCurl & "/libcurl.lib"2554 CfgPrintAssign "SDK_VBOX_LIBCURL_INCS", strPathCurl & "/include" 2555 CfgPrintAssign "SDK_VBOX_LIBCURL_LIBS", strPathCurl & "/libcurl.lib" 2212 2556 end if 2213 2557 … … 2254 2598 ' /A /Q /K E:\qt\installed\5.x.y\msvc20zz_64\bin\qtenv2.bat 2255 2599 ' 2256 dim arrValues, strValue, arrStrings, str, arrCandidates, iCandidates, strCandidate, off 2257 arrValues = RegEnumValueNamesFull("HKCU", "SOFTWARE\Microsoft\Windows\CurrentVersion\UFH\SHC") 2258 redim arrCandidates(UBound(arrValues) - LBound(arrValues) + 1) 2259 iCandidates = 0 2260 for each strValue in arrValues 2261 arrStrings = RegGetMultiString("HKCU\" & strValue) 2262 if UBound(arrStrings) >= 0 and UBound(arrStrings) - LBound(arrStrings) >= 2 then 2263 str = Trim(arrStrings(UBound(arrStrings))) 2264 if LCase(Right(str, Len("\bin\qtenv2.bat"))) = "\bin\qtenv2.bat" _ 2265 and InStr(1, LCase(str), "\msvc20") > 0 _ 2266 and InStr(1, str, ":") > 0 _ 2267 then 2268 off = InStr(1, str, ":") - 1 2269 arrCandidates(iCandidates) = Mid(str, off, Len(str) - off - Len("\bin\qtenv2.bat") + 1) 2270 LogPrint "qt5 candidate #" & iCandidates & "=" & arrCandidates(iCandidates) & " (" & str & ")" 2271 iCandidates = iCandidates + 1 2272 end if 2273 end if 2274 next 2275 redim preserve arrCandidates(iCandidates) 2276 if iCandidates > 0 then arrCandidates = ArrayRSortStrings(arrCandidates) ' Kind of needs version sorting here... 2277 LogPrint "Testing qtenv2.bat links (" & iCandidates & ") ..." 2600 dim arrCandidates, strCandidate 2601 arrCandidates = CollectFromProgramItemLinks(GetRef("Qt5ProgramItemCallback"), strPathQt5) 2602 LogPrint "Testing qtenv2.bat links (" & ArraySize(arrCandidates) & ") ..." 2278 2603 2279 2604 ' VC infixes/subdir names to consider (ASSUMES 64bit) … … 2308 2633 if strPathQt5 = "" then 2309 2634 LogPrint "Testing tools dir (" & g_strPathDev & "/win." & g_strTargetArch & "/qt/v5*) ..." 2310 arrFolders = GetSubdirsStartingWith Sorted(g_strPathDev & "/win." & g_strTargetArch & "/qt", "v5")2635 arrFolders = GetSubdirsStartingWithVerSorted(g_strPathDev & "/win." & g_strTargetArch & "/qt", "v5") 2311 2636 arrVccInfixes = Array(LCase(g_strVCCVersion), Left(LCase(g_strVCCVersion), Len(g_strVCCVersion) - 1), "") 2312 2637 for each strVccInfix in arrVccInfixes … … 2327 2652 PrintResult "Qt5", strPathQt5 2328 2653 PrintResultMsg "Qt5 infix", strInfixQt5 2329 CfgPrint "PATH_SDK_QT5 := " &strPathQt52330 CfgPrint "PATH_TOOL_QT5 :=$(PATH_SDK_QT5)"2331 CfgPrint "VBOX_PATH_QT :=$(PATH_SDK_QT5)"2332 CfgPrint "VBOX_QT_INFIX := " &strInfixQt52333 CfgPrint "VBOX_WITH_QT_PAYLOAD :=1"2654 CfgPrintAssign "PATH_SDK_QT5", strPathQt5 2655 CfgPrintAssign "PATH_TOOL_QT5", "$(PATH_SDK_QT5)" 2656 CfgPrintAssign "VBOX_PATH_QT", "$(PATH_SDK_QT5)" 2657 CfgPrintAssign "VBOX_QT_INFIX", strInfixQt5 2658 CfgPrintAssign "VBOX_WITH_QT_PAYLOAD", "1" 2334 2659 else 2335 CfgPrint "VBOX_WITH_QTGUI :="2336 2660 PrintResultMsg "Qt5", "not found" 2337 end if 2338 end sub 2661 CfgPrintAssign "VBOX_WITH_QTGUI", "" 2662 end if 2663 end sub 2664 2665 function Qt5ProgramItemCallback(ByRef arrStrings, cStrings, ByRef strUnused) 2666 dim str, off 2667 Qt5ProgramItemCallback = "" 2668 if cStrings >= 3 then 2669 str = Trim(arrStrings(UBound(arrStrings))) 2670 if LCase(Right(str, Len("\bin\qtenv2.bat"))) = "\bin\qtenv2.bat" _ 2671 and InStr(1, LCase(str), "\msvc20") > 0 _ 2672 and InStr(1, str, ":") > 0 _ 2673 then 2674 off = InStr(1, str, ":") - 1 2675 Qt5ProgramItemCallback = Mid(str, off, Len(str) - off - Len("\bin\qtenv2.bat") + 1) 2676 end if 2677 end if 2678 end function 2339 2679 2340 2680 '' … … 2394 2734 CheckForPython = strPathPython <> "" 2395 2735 if CheckForPython then 2396 CfgPrint "VBOX_BLD_PYTHON := " &strPathPython2736 CfgPrintAssign "VBOX_BLD_PYTHON", strPathPython 2397 2737 PrintResult "Python", strPathPython 2398 2738 else … … 2414 2754 end function 2415 2755 2756 2757 '' 2758 ' Simple self test. 2759 sub SelfTest 2760 dim i, str 2761 str = "0123456789" 2762 for i = 1 to Len(str) 2763 if CharIsDigit(Mid(str, i, 1)) <> True then MsgFatal "SelfTest failed: CharIsDigit("&Mid(str, i, 1)&")" 2764 next 2765 str = "abcdefghijklmnopqrstuvwxyz~`!@#$%^&*()_+-=ABCDEFGHIJKLMNOPQRSTUVWXYZ/\[]{}" 2766 for i = 1 to Len(str) 2767 if CharIsDigit(Mid(str, i, 1)) <> False then MsgFatal "SelfTest failed: CharIsDigit("&Mid(str, i, 1)&")" 2768 next 2769 if StrVersionCompare("1234", "1234") <> 0 then MsgFatal "SelfTest failed: StrVersionCompare #1" 2770 if StrVersionCompare("1", "1") <> 0 then MsgFatal "SelfTest failed: StrVersionCompare #2" 2771 if StrVersionCompare("2", "1") <= 0 then MsgFatal "SelfTest failed: StrVersionCompare #3" 2772 if StrVersionCompare("1", "2") >= 0 then MsgFatal "SelfTest failed: StrVersionCompare #4" 2773 if StrVersionCompare("01", "1") <> 0 then MsgFatal "SelfTest failed: StrVersionCompare #5" 2774 if StrVersionCompare("01", "001") <> 0 then MsgFatal "SelfTest failed: StrVersionCompare #6" 2775 if StrVersionCompare("12", "123") >= 0 then MsgFatal "SelfTest failed: StrVersionCompare #7" 2776 if StrVersionCompare("v123", "123") <= 0 then MsgFatal "SelfTest failed: StrVersionCompare #8" 2777 if StrVersionCompare("v1.2.3", "v1.3.4") >= 0 then MsgFatal "SelfTest failed: StrVersionCompare #9" 2778 if StrVersionCompare("v1.02.3", "v1.3.4") >= 0 then MsgFatal "SelfTest failed: StrVersionCompare #10" 2779 if StrVersionCompare("v1.2.3", "v1.03.4") >= 0 then MsgFatal "SelfTest failed: StrVersionCompare #11" 2780 if StrVersionCompare("v1.2.4", "v1.23.4") >= 0 then MsgFatal "SelfTest failed: StrVersionCompare #12" 2781 if StrVersionCompare("v10.0.17163", "v10.00.18363") >= 0 then MsgFatal "SelfTest failed: StrVersionCompare #13" 2782 end sub 2416 2783 2417 2784 '' … … 2443 2810 Print " --with-VC-Common=PATH Maybe needed for 2015 and older to" 2444 2811 Print " locate the Common7 directory." 2812 Print " --with-midl=PATH Where midl.exe is to be found." 2813 Print " --with-openwatcom=PATH Where OpenWatcom 1.9 is to be found." 2445 2814 Print " --with-python=PATH The python to use." 2446 2815 Print " --with-libxml2=PATH To use a libxml2 other than the VBox one." … … 2465 2834 exit function 2466 2835 end if 2836 SelfTest 2467 2837 2468 2838 ' … … 2480 2850 strOptVC = "" 2481 2851 strOptVCCommon = "" 2852 strOptMidl = "" 2853 strOptOpenWatcom = "" 2482 2854 strOptXml2 = "" 2483 2855 strOptSsl = "" … … 2536 2908 case "--with-w32api" 2537 2909 ' ignore 2910 case "--with-midl" 2911 strOptMidl = strPath 2912 case "--with-openwatcom" 2913 strOptOpenWatcom = strPath 2538 2914 case "--with-libxml2" 2539 2915 strOptXml2 = strPath … … 2619 2995 CheckForPlatformSDK strOptSDK 2620 2996 CheckForSDK10 strOptSDK10, strOptSDK10Version 2621 CheckForMidl 2622 C fgPrint "VBOX_WITH_OPEN_WATCOM := " '' @todo look for openwatcom 1.9+2623 CfgPrint "VBOX_WITH_LIBVPX :=" '' @todo look for libvpx 1.1.0+2624 CfgPrint "VBOX_WITH_LIBOPUS :=" '' @todo look for libopus 1.2.1+2997 CheckForMidl strOptMidl 2998 CheckForOpenWatcom strOptOpenWatcom 2999 CfgPrintAssign "VBOX_WITH_LIBVPX", "" '' @todo look for libvpx 1.1.0+ 3000 CfgPrintAssign "VBOX_WITH_LIBOPUS", "" '' @todo look for libopus 1.2.1+ 2625 3001 2626 3002 EnvPrintAppend "PATH", DosSlashes(g_strPath & "\tools\win." & g_strHostArch & "\bin"), ";" '' @todo look for yasm
Note:
See TracChangeset
for help on using the changeset viewer.