Added preparation scripts for windows/macos VM.

This commit is contained in:
codestation
2016-11-21 11:50:00 -04:00
parent 60406f3c1d
commit 4ed4a82920
3 changed files with 260 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<AdminDeploymentCustomizations xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/wix/2011/AdminDeployment">
<BundleCustomizations TargetDir="default" NoCacheOnlyMode="default" NoWeb="default" NoRefresh="default" SuppressRefreshPrompt="default" Feed="default" />
<SelectableItemCustomizations>
<SelectableItemCustomization Id="VSUV1PreReqV1" Selected="no" FriendlyName="Visual Studio 2015 Update 1 Prerequisite" />
<SelectableItemCustomization Id="VSUV3RTMV1" Selected="no" FriendlyName="Visual Studio 2015 Update 3" />
<SelectableItemCustomization Id="MicroUpdateV3.4" Selected="no" FriendlyName="Update for Microsoft Visual Studio 2015 (KB3165756)" />
<SelectableItemCustomization Id="Win81SDK_CppBuildSKUV1" Hidden="no" Selected="yes" FriendlyName="Windows 8.1 SDK" />
<SelectableItemCustomization Id="PythonToolsForVisualStudioV6" Hidden="no" Selected="no" FriendlyName="Python Tools for Visual Studio (June 2016)" />
<SelectableItemCustomization Id="ClickOnceV1" Hidden="no" Selected="no" FriendlyName="ClickOnce Publishing Tools" />
<SelectableItemCustomization Id="PowerShellToolsV1" Hidden="no" Selected="no" FriendlyName="PowerShell Tools for Visual Studio" />
<SelectableItemCustomization Id="Windows10_ToolsAndSDKV13" Hidden="no" Selected="yes" FriendlyName="Tools (1.4.1) and Windows 10 SDK (10.0.14393)" />
<SelectableItemCustomization Id="Win10_EmulatorV1" Selected="no" FriendlyName="Emulators for Windows 10 Mobile (10.0.10240)" />
<SelectableItemCustomization Id="Win10_EmulatorV2" Selected="no" FriendlyName="Emulators for Windows 10 Mobile (10.0.10586)" />
<SelectableItemCustomization Id="Win10_EmulatorV3" Hidden="no" Selected="no" FriendlyName="Emulators for Windows 10 Mobile (10.0.14393)" />
<SelectableItemCustomization Id="XamarinVSCoreV5" Hidden="no" Selected="no" FriendlyName="C#/.NET (Xamarin v4.1.1)" />
<SelectableItemCustomization Id="XamarinPT_V1" Selected="no" FriendlyName="Xamarin Preparation Tool" />
<SelectableItemCustomization Id="MDDJSCoreV11" Hidden="no" Selected="no" FriendlyName="HTML/JavaScript (Apache Cordova) Update 10" />
<SelectableItemCustomization Id="AndroidNDK11C_V1" Hidden="no" Selected="no" FriendlyName="Android Native Development Kit (R11C, 32 bits)" />
<SelectableItemCustomization Id="AndroidNDK11C_32_V1" Hidden="no" Selected="no" FriendlyName="Android Native Development Kit (R11C, 32 bits)" />
<SelectableItemCustomization Id="AndroidNDK11C_64_V1" Hidden="no" Selected="no" FriendlyName="Android Native Development Kit (R11C, 64 bits)" />
<SelectableItemCustomization Id="AndroidNDKV1" Hidden="no" Selected="no" FriendlyName="Android Native Development Kit (R10E, 32 bits)" />
<SelectableItemCustomization Id="AndroidNDK_32_V1" Hidden="no" Selected="no" FriendlyName="Android Native Development Kit (R10E, 32 bits)" />
<SelectableItemCustomization Id="AndroidNDK_64_V1" Hidden="no" Selected="no" FriendlyName="Android Native Development Kit (R10E, 64 bits)" />
<SelectableItemCustomization Id="AndroidSDKV1" Hidden="no" Selected="no" FriendlyName="Android SDK" />
<SelectableItemCustomization Id="AndroidSDK_API1921V1" Hidden="no" Selected="no" FriendlyName="Android SDK Setup (API Level 19 and 21)" />
<SelectableItemCustomization Id="AndroidSDK_API22V1" Hidden="no" Selected="no" FriendlyName="Android SDK Setup (API Level 22)" />
<SelectableItemCustomization Id="AndroidSDK_API23V1" Hidden="no" Selected="no" FriendlyName="Android SDK Setup (API Level 23)" />
<SelectableItemCustomization Id="AntV1" Hidden="no" Selected="no" FriendlyName="Apache Ant (1.9.3)" />
<SelectableItemCustomization Id="L_MDDCPlusPlus_iOS_V7" Hidden="no" Selected="no" FriendlyName="Visual C++ iOS Development (Update 3)" />
<SelectableItemCustomization Id="L_MDDCPlusPlus_Android_V7" Hidden="no" Selected="no" FriendlyName="Visual C++ Android Development (Update 3)" />
<SelectableItemCustomization Id="L_MDDCPlusPlus_ClangC2_V6" Hidden="no" Selected="no" FriendlyName="Clang with Microsoft CodeGen (July 2016)" />
<SelectableItemCustomization Id="L_IncrediBuild_V1" Selected="no" FriendlyName="IncrediBuild" />
<SelectableItemCustomization Id="JavaJDKV1" Hidden="no" Selected="no" FriendlyName="Java SE Development Kit (7.0.550.13)" />
<SelectableItemCustomization Id="Node.jsV1" Hidden="no" Selected="no" FriendlyName="Joyent Node.js" />
<SelectableItemCustomization Id="VSEmu_AndroidV1.1.622.2" Hidden="no" Selected="no" FriendlyName="Microsoft Visual Studio Emulator for Android (July 2016)" />
<SelectableItemCustomization Id="WebSocket4NetV1" Hidden="no" Selected="no" FriendlyName="WebSocket4Net" />
<SelectableItemCustomization Id="GitForWindowsx64V6" Hidden="no" Selected="no" FriendlyName="Git for Windows" />
<SelectableItemCustomization Id="GitForWindowsx86V6" Hidden="no" Selected="no" FriendlyName="Git for Windows" />
<SelectableItemCustomization Id="GitHubVSV1" Hidden="no" Selected="no" FriendlyName="GitHub Extension for Visual Studio" />
<SelectableItemCustomization Id="VS_SDK_GroupV5" Hidden="no" Selected="no" FriendlyName="Visual Studio Extensibility Tools Update 3" />
<SelectableItemCustomization Id="VS_SDK_Breadcrumb_GroupV5" Selected="no" FriendlyName="Visual Studio Extensibility Tools Update 3" />
<SelectableItemCustomization Id="Win10_VSToolsV13" Hidden="no" Selected="no" FriendlyName="Tools for Universal Windows Apps (1.4.1) and Windows 10 SDK (10.0.14393)" />
<SelectableItemCustomization Id="Win10SDK_HiddenV1" Hidden="no" Selected="yes" FriendlyName="Windows 10 SDK (10.0.10240)" />
<SelectableItemCustomization Id="Win10SDK_HiddenV2" Selected="no" FriendlyName="Windows 10 SDK (10.0.10586)" />
<SelectableItemCustomization Id="Win10SDK_HiddenV3" Hidden="no" Selected="yes" FriendlyName="Windows 10 SDK (10.0.10586)" />
<SelectableItemCustomization Id="Win10SDK_HiddenV4" Selected="no" FriendlyName="Windows 10 SDK (10.0.14393)" />
<SelectableItemCustomization Id="Win10SDK_VisibleV1" Hidden="no" Selected="no" FriendlyName="Windows 10 SDK 10.0.10240" />
<SelectableItemCustomization Id="UWPPatch_KB3073097_HiddenV3" Selected="no" FriendlyName="KB3073097" />
<SelectableItemCustomization Id="JavaScript_HiddenV12" Selected="no" FriendlyName="JavaScript Project System for Visual Studio" />
<SelectableItemCustomization Id="AppInsightsToolsVisualStudioHiddenVSU3RTMV1" Selected="no" FriendlyName="Developer Analytics Tools v7.0.2" />
<SelectableItemCustomization Id="AppInsightsToolsVSWinExpressHiddenVSU3RTMV1" Selected="no" FriendlyName="Developer Analytics Tools v7.0.2" />
<SelectableItemCustomization Id="AppInsightsToolsVWDExpressHiddenVSU3RTMV1" Selected="no" FriendlyName="Developer Analytics Tools v7.0.2" />
<SelectableItemCustomization Id="UWPStartPageV1" Selected="no" FriendlyName="Tools for Universal Windows Apps Getting Started Experience" />
<SelectableItemCustomization Id="VisualCppBuildTools_ATLMFC_SDK" Hidden="no" Selected="yes" FriendlyName="ATL/MFC SDK" />
<SelectableItemCustomization Id="VisualCppBuildTools_NETFX_SDK" Hidden="no" Selected="no" FriendlyName=".NET Framework SDK" />
</SelectableItemCustomizations>
</AdminDeploymentCustomizations>

74
buildscripts/prepare_macos.sh Executable file
View File

@@ -0,0 +1,74 @@
#!/bin/bash
set -eu
show_usage() {
echo -e "Usage: $0 <host>"
}
if [ $# -lt 1 ]
then
show_usage
exit 1
fi
SERVER_HOST=$1
QT_VERSION=5.7
QT_REVISION=${QT_VERSION}.0
QT_PKG=qt-opensource-mac-x64-clang-5.7.0.dmg
NODE_PKG=node-v7.1.0.pkg
XCODE_PKG=Xcode_8.xip
scp ${NODE_PKG} ${SERVER_HOST}:
scp ${QT_PKG} ${SERVER_HOST}:
scp ${XCODE_PKG} ${SERVER_HOST}:
scp qt-noninteractive.qs ${SERVER_HOST}:
read -n1 -r -p "Unpack Xcode, then press space to continue..." key
ssh -T "${SERVER_HOST}" << EOSSH
#!/bin/bash
set -eu
# Install xcode
if [ ! -d /Applications/Xcode.app ]; then
mv Xcode.app /Applications/
xcodebuild -license accept
fi
# Install nodejs
if [ ! -f /usr/local/bin/npm ]; then
sudo installer -pkg ${NODE_PKG} -target /usr/local
fi
# Install appdmg
if [ ! -f /usr/local/bin/appdmg ]; then
sudo npm install -g appdmg
fi
# Install Qt
if [ ! -d "~/Qt${QT_REVISION}/${QT_VERSION}" ]; then
hdiutil attach -noverify ${QT_PKG}
VOLUME_NAME="${QT_PKG%.*}"
/Volumes/${VOLUME_NAME}/${VOLUME_NAME}.app/Contents/MacOS/${VOLUME_NAME} --script qt-noninteractive.qs
hdiutil detach /Volumes/${VOLUME_NAME}
fi
# Fix macOS compilation
PATCH_FILE=~/Qt5.7.0/5.7/clang_64/mkspecs/features/mac/default_pre.prf
sed -i '' 's#isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null")))#isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")))#' \${PATCH_FILE}
# Install brew
if [ ! -f /usr/local/bin/brew ]; then
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
fi
# Install build deps
brew install libtool automake gettext libusb pkg-config libxml2 ffmpeg
brew link gettext --force
EOSSH

View File

@@ -0,0 +1,127 @@
$ErrorActionPreference = "Stop"
function Get-InstalledApps
{
if ([IntPtr]::Size -eq 4) {
$regpath = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*'
}
else {
$regpath = @(
'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*'
'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
)
}
Get-ItemProperty $regpath | .{process{if($_.DisplayName -and $_.UninstallString) { $_ } }} | Select DisplayName, Publisher, InstallDate, DisplayVersion, UninstallString |Sort DisplayName
}
# Install chocolatey
if (!(Get-Command choco -errorAction SilentlyContinue)) {
echo "Installing chocolatey"
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
}
# Install Git
$result = Get-InstalledApps | where {$_.DisplayName -like "Git *"}
if($result -eq $null) {
echo "Installing git"
choco install -y git
}
# Install NSIS
$result = Get-InstalledApps | where {$_.DisplayName -like "Nullsoft Install System"}
if($result -eq $null) {
echo "Installing nsis"
choco install -y nsis
}
# Install OpenSSL
Set-Variable -Name "OpenSslVer" -Value "1.0.2j"
if (!(Test-Path "$PSScriptRoot\openssl-$OpenSslVer-i386-win32.zip")) {
echo "Downloading openssl (32bits)"
Invoke-WebRequest -Uri "https://indy.fulgan.com/SSL/openssl-$OpenSslVer-i386-win32.zip" -OutFile "$PSScriptRoot\openssl-$OpenSslVer-i386-win32.zip"
}
if (!(Test-Path "$PSScriptRoot\openssl-$OpenSslVer-x64_86-win64.zip")) {
echo "Downloading openssl (64bits)"
Invoke-WebRequest -Uri "https://indy.fulgan.com/SSL/openssl-$OpenSslVer-x64_86-win64.zip" -OutFile "$PSScriptRoot\openssl-$OpenSslVer-x64_86-win64.zip"
}
if (!(Test-Path "c:\openssl-$OpenSslVer-i386-win32")) {
echo "Unpacking openssl (32bits)"
Expand-Archive "$PSScriptRoot\openssl-$OpenSslVer-i386-win32.zip" -dest c:\openssl-$OpenSslVer-i386-win32
}
if (!(Test-Path "c:\openssl-$OpenSslVer-x64_86-win64")) {
echo "Unpacking openssl (64bits)"
Expand-Archive "$PSScriptRoot\openssl-$OpenSslVer-x64_86-win64.zip" -dest c:\openssl-$OpenSslVer-x64_86-win64
}
# Install Qt
if (!(Test-Path "$PSScriptRoot\qt-opensource-windows-x86-msvc2015-5.7.0.exe")) {
echo "Downloading Qt (32bits)"
Invoke-WebRequest -Uri "http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-windows-x86-msvc2015-5.7.0.exe" -OutFile "$PSScriptRoot\qt-opensource-windows-x86-msvc2015-5.7.0.exe"
}
if (!(Test-Path "$PSScriptRoot\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe")) {
echo "Downloading Qt (64bits)"
Invoke-WebRequest -Uri "http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-windows-x86-msvc2015_64-5.7.0.exe" -OutFile "$PSScriptRoot\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe"
}
if (!(Test-Path "c:\Qt\Qt5.7.0_32")) {
if (!(Test-Path "c:\qt-opensource-windows-x86-msvc2015-5.7.0.exe")) {
echo "Copying Qt installer to C: (32bits)"
Copy-Item "$PSScriptRoot\qt-opensource-windows-x86-msvc2015-5.7.0.exe" "c:\qt-opensource-windows-x86-msvc2015-5.7.0.exe"
}
echo "Installing Qt (32bits)"
Start-Process -FilePath "c:\qt-opensource-windows-x86-msvc2015-5.7.0.exe" -ArgumentList ("--script", "$PSScriptRoot\qt-noninteractive32.qs") -Wait
Remove-Item "c:\qt-opensource-windows-x86-msvc2015-5.7.0.exe"
}
if (!(Test-Path "c:\Qt\Qt5.7.0_64")) {
if (!(Test-Path "c:\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe")) {
echo "Copying Qt installer to C: (64bits)"
Copy-Item "$PSScriptRoot\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe" "c:\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe"
}
echo "Installing Qt (64bits)"
Start-Process -FilePath "c:\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe" -ArgumentList ("--script", "$PSScriptRoot\qt-noninteractive64.qs") -Wait
Remove-Item "c:\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe"
}
# Install C++ Build tools
#$result = Get-InstalledApps | where {$_.DisplayName -like "Microsoft Visual C++ Build Tools"}
#if ($result -eq $null) {
# echo "Installing VC BUild tools"
# Start-Process -FilePath "$PSScriptRoot\vcbuildtools\VisualCppBuildTools_Full.exe" -ArgumentList ("/Passive", "/NoRestart", "/AdminFile", "$PSScriptRoot\AdminDeployment.xml") -Wait
#}
#$result = Get-InstalledApps | where {$_.DisplayName -like "Windows Software Development Kit - *"}
#if ($result -eq $null) {
# echo "Installing SDK + Debugger"
# Start-Process -FilePath "$PSScriptRoot\windowssdk/StandaloneSDK\sdksetup.exe" -ArgumentList ("/features", "OptionId.WindowsDesktopDebuggers", "/quiet") -Wait
#}
# Install MobaSSH
if (!(Test-Path "$PSScriptRoot\MobaSSH_Server_Home_1.60.zip")) {
echo "Downloading MobaSSH"
Invoke-WebRequest -Uri "http://mobassh.mobatek.net/MobaSSH_Server_Home_1.60.zip" -OutFile "$PSScriptRoot\MobaSSH_Server_Home_1.60.zip"
}
if (!(Test-Path "c:\MobaSSH_Server_Home_1.60.exe")) {
echo "Unpacking MobaSSH"
Expand-Archive "$PSScriptRoot\MobaSSH_Server_Home_1.60.zip" -dest c:\
}
# Install MSYS2
if (!(Test-Path "$PSScriptRoot\msys2-x86_64-20161025.exe")) {
echo "Downloading MSYS2"
Invoke-WebRequest -Uri "http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20161025.exe" -OutFile "$PSScriptRoot\http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20161025.exe"
}
if (!(Test-Path "c:\msys64")) {
echo "Installing MSYS2"
Start-Process -FilePath "$PSScriptRoot\msys2-x86_64-20161025.exe" -Wait
}