Keep downloaded files in a separate directory

As a side effect, this re-enables building the Windows installer on Linux hosts.
This commit is contained in:
Oliver Brakmann
2015-05-02 16:28:27 +02:00
parent 14886bc3f7
commit f251813f89
21 changed files with 154 additions and 117 deletions

18
.gitignore vendored
View File

@@ -28,23 +28,7 @@ mods/*/*.mdb
/*.pdb /*.pdb
/*.mdb /*.mdb
/*.exe /*.exe
thirdparty/StyleCop* thirdparty/download/*
thirdparty/ICSharpCode.SharpZipLib.dll*
thirdparty/MaxMind*
thirdparty/RestSharp*
thirdparty/Newtonsoft.Json*
thirdparty/SharpFont*
thirdparty/windows/freetype6.dll
thirdparty/nunit*
thirdparty/windows/SDL2.dll
thirdparty/Mono.Nat.dll
thirdparty/Moq.dll
thirdparty/nuget.exe
thirdparty/windows/lua51.dll
thirdparty/windows/soft_oal.dll
thirdparty/FuzzyLogicLibrary.dll
thirdparty/SDL2-CS.dll
thirdparty/Eluant.dll
# backup files by various editors # backup files by various editors
*~ *~

View File

@@ -15,7 +15,7 @@ env:
# Run the build script # Run the build script
# call RALint to check for YAML errors # call RALint to check for YAML errors
script: script:
- travis_retry make cli-dependencies - travis_retry make all-dependencies
- make all - make all
- make check - make check
- make test - make test

View File

@@ -40,7 +40,7 @@
CSC = dmcs CSC = dmcs
CSFLAGS = -nologo -warn:4 -debug:full -optimize- -codepage:utf8 -unsafe -warnaserror CSFLAGS = -nologo -warn:4 -debug:full -optimize- -codepage:utf8 -unsafe -warnaserror
DEFINE = DEBUG;TRACE DEFINE = DEBUG;TRACE
COMMON_LIBS = System.dll System.Core.dll System.Data.dll System.Data.DataSetExtensions.dll System.Drawing.dll System.Xml.dll thirdparty/ICSharpCode.SharpZipLib.dll thirdparty/FuzzyLogicLibrary.dll thirdparty/Mono.Nat.dll thirdparty/MaxMind.Db.dll thirdparty/MaxMind.GeoIP2.dll thirdparty/Eluant.dll COMMON_LIBS = System.dll System.Core.dll System.Data.dll System.Data.DataSetExtensions.dll System.Drawing.dll System.Xml.dll thirdparty/download/ICSharpCode.SharpZipLib.dll thirdparty/download/FuzzyLogicLibrary.dll thirdparty/download/Mono.Nat.dll thirdparty/download/MaxMind.Db.dll thirdparty/download/MaxMind.GeoIP2.dll thirdparty/download/Eluant.dll
@@ -74,6 +74,14 @@ CORE = rsdl2 rnull game utility
TOOLS = editor crashdialog TOOLS = editor crashdialog
VERSION = $(shell git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || echo git-`git rev-parse --short HEAD`) VERSION = $(shell git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || echo git-`git rev-parse --short HEAD`)
# dependencies
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
os-dependencies = linux-dependencies
else ifeq ($(UNAME_S),Darwin)
os-dependencies = osx-dependencies
endif
######################## PROGRAM TARGET RULES ########################## ######################## PROGRAM TARGET RULES ##########################
@@ -83,7 +91,7 @@ VERSION = $(shell git name-rev --name-only --tags --no-undefined HEAD 2>/dev
game_SRCS := $(shell find OpenRA.Game/ -iname '*.cs') game_SRCS := $(shell find OpenRA.Game/ -iname '*.cs')
game_TARGET = OpenRA.Game.exe game_TARGET = OpenRA.Game.exe
game_KIND = winexe game_KIND = winexe
game_LIBS = $(COMMON_LIBS) $(game_DEPS) thirdparty/SDL2-CS.dll thirdparty/SharpFont.dll game_LIBS = $(COMMON_LIBS) $(game_DEPS) thirdparty/download/SDL2-CS.dll thirdparty/download/SharpFont.dll
game_FLAGS = -win32icon:OpenRA.Game/OpenRA.ico game_FLAGS = -win32icon:OpenRA.Game/OpenRA.ico
PROGRAMS += game PROGRAMS += game
game: $(game_TARGET) game: $(game_TARGET)
@@ -93,7 +101,7 @@ rsdl2_SRCS := $(shell find OpenRA.Renderer.Sdl2/ -iname '*.cs')
rsdl2_TARGET = OpenRA.Renderer.Sdl2.dll rsdl2_TARGET = OpenRA.Renderer.Sdl2.dll
rsdl2_KIND = library rsdl2_KIND = library
rsdl2_DEPS = $(game_TARGET) rsdl2_DEPS = $(game_TARGET)
rsdl2_LIBS = $(COMMON_LIBS) thirdparty/SDL2-CS.dll $(rsdl2_DEPS) rsdl2_LIBS = $(COMMON_LIBS) thirdparty/download/SDL2-CS.dll $(rsdl2_DEPS)
rnull_SRCS := $(shell find OpenRA.Renderer.Null/ -iname '*.cs') rnull_SRCS := $(shell find OpenRA.Renderer.Null/ -iname '*.cs')
rnull_TARGET = OpenRA.Renderer.Null.dll rnull_TARGET = OpenRA.Renderer.Null.dll
@@ -108,7 +116,7 @@ mod_common_SRCS := $(shell find OpenRA.Mods.Common/ -iname '*.cs')
mod_common_TARGET = mods/common/OpenRA.Mods.Common.dll mod_common_TARGET = mods/common/OpenRA.Mods.Common.dll
mod_common_KIND = library mod_common_KIND = library
mod_common_DEPS = $(game_TARGET) mod_common_DEPS = $(game_TARGET)
mod_common_LIBS = $(COMMON_LIBS) $(STD_MOD_LIBS) thirdparty/StyleCop.dll thirdparty/StyleCop.CSharp.dll thirdparty/StyleCop.CSharp.Rules.dll mod_common_LIBS = $(COMMON_LIBS) $(STD_MOD_LIBS) thirdparty/download/StyleCop.dll thirdparty/download/StyleCop.CSharp.dll thirdparty/download/StyleCop.CSharp.Rules.dll
PROGRAMS += mod_common PROGRAMS += mod_common
mod_common: $(mod_common_TARGET) mod_common: $(mod_common_TARGET)
@@ -160,7 +168,7 @@ editor_SRCS := $(shell find OpenRA.Editor/ -iname '*.cs')
editor_TARGET = OpenRA.Editor.exe editor_TARGET = OpenRA.Editor.exe
editor_KIND = winexe editor_KIND = winexe
editor_DEPS = $(game_TARGET) $(mod_common_TARGET) editor_DEPS = $(game_TARGET) $(mod_common_TARGET)
editor_LIBS = System.Windows.Forms.dll System.Data.dll System.Drawing.dll $(editor_DEPS) thirdparty/Eluant.dll editor_LIBS = System.Windows.Forms.dll System.Data.dll System.Drawing.dll $(editor_DEPS) thirdparty/download/Eluant.dll
editor_EXTRA = -resource:OpenRA.Editor.Form1.resources -resource:OpenRA.Editor.MapSelect.resources editor_EXTRA = -resource:OpenRA.Editor.Form1.resources -resource:OpenRA.Editor.MapSelect.resources
editor_FLAGS = -win32icon:OpenRA.Editor/OpenRA.Editor.Icon.ico editor_FLAGS = -win32icon:OpenRA.Editor/OpenRA.Editor.Icon.ico
@@ -240,7 +248,7 @@ utility_SRCS := $(shell find OpenRA.Utility/ -iname '*.cs')
utility_TARGET = OpenRA.Utility.exe utility_TARGET = OpenRA.Utility.exe
utility_KIND = exe utility_KIND = exe
utility_DEPS = $(game_TARGET) utility_DEPS = $(game_TARGET)
utility_LIBS = $(COMMON_LIBS) $(utility_DEPS) thirdparty/ICSharpCode.SharpZipLib.dll utility_LIBS = $(COMMON_LIBS) $(utility_DEPS) thirdparty/download/ICSharpCode.SharpZipLib.dll
PROGRAMS += utility PROGRAMS += utility
utility: $(utility_TARGET) utility: $(utility_TARGET)
@@ -271,38 +279,47 @@ $(foreach prog,$(PROGRAMS),$(eval $(call BUILD_ASSEMBLY,$(prog))))
########################## MAKE/INSTALL RULES ########################## ########################## MAKE/INSTALL RULES ##########################
# #
default: dependencies core default: core
core: game renderers mods utility core: game renderers mods utility
tools: editor gamemonitor tools: editor gamemonitor
package: cli-dependencies core editor gamemonitor docs version package: all-dependencies core tools docs version
mods: mod_common mod_ra mod_cnc mod_d2k mod_ts mods: mod_common mod_ra mod_cnc mod_d2k mod_ts
all: cli-dependencies core tools all: dependencies core tools
clean: clean:
@-$(RM_F) *.exe *.dll ./OpenRA*/*.dll ./OpenRA*/*.mdb *.mdb mods/**/*.dll mods/**/*.mdb *.resources @-$(RM_F) *.exe *.dll *.dylib *.config ./OpenRA*/*.dll ./OpenRA*/*.mdb *.mdb mods/**/*.dll mods/**/*.mdb *.resources
@-$(RM_RF) ./*/bin ./*/obj @-$(RM_RF) ./*/bin ./*/obj
@-$(RM_F) ./thirdparty/*.dll @-$(RM_RF) ./thirdparty/download
@-$(RM_RF) ./thirdparty/windows
distclean: clean distclean: clean
dependencies: cli-dependencies native-dependencies cli-dependencies:
@./thirdparty/fetch-thirdparty-deps.sh
@ $(CP_R) thirdparty/download/*.dll .
@ $(CP_R) thirdparty/download/*.dll.config .
@ $(CP) thirdparty/SDL2-CS.dll.config .
linux-dependencies: cli-dependencies linux-native-dependencies
linux-native-dependencies:
@./thirdparty/configure-linux-native-deps.sh
windows-dependencies: windows-dependencies:
cd thirdparty && ./fetch-thirdparty-deps-windows.sh && cd .. @./thirdparty/fetch-thirdparty-deps-windows.sh
cli-dependencies: osx-dependencies: cli-dependencies
cd thirdparty && ./fetch-thirdparty-deps.sh && cd .. @./thirdparty/fetch-thirdparty-deps-osx.sh
@ $(CP_R) thirdparty/*.dll . @ $(CP_R) thirdparty/download/osx/*.dylib .
@ $(CP_R) thirdparty/*.dll.config . @ $(CP_R) thirdparty/download/osx/*.dll.config .
native-dependencies: dependencies: $(os-dependencies)
@./thirdparty/configure-native-deps.sh
all-dependencies: cli-dependencies windows-dependencies osx-dependencies
version: mods/ra/mod.yaml mods/cnc/mod.yaml mods/d2k/mod.yaml mods/modchooser/mod.yaml version: mods/ra/mod.yaml mods/cnc/mod.yaml mods/d2k/mod.yaml mods/modchooser/mod.yaml
@for i in $? ; do \ @for i in $? ; do \

View File

@@ -59,7 +59,7 @@
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="Eluant"> <Reference Include="Eluant">
<HintPath>..\thirdparty\Eluant.dll</HintPath> <HintPath>..\thirdparty\download\Eluant.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>

View File

@@ -48,33 +48,33 @@
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="SharpFont"> <Reference Include="SharpFont">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\thirdparty\SharpFont.dll</HintPath> <HintPath>..\thirdparty\download\SharpFont.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Mono.Nat"> <Reference Include="Mono.Nat">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<Private>False</Private> <Private>False</Private>
<Package>mono.nat</Package> <Package>mono.nat</Package>
<HintPath>..\thirdparty\Mono.Nat.dll</HintPath> <HintPath>..\thirdparty\download\Mono.Nat.dll</HintPath>
</Reference> </Reference>
<Reference Include="Eluant"> <Reference Include="Eluant">
<HintPath>..\thirdparty\Eluant.dll</HintPath> <HintPath>..\thirdparty\download\Eluant.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="ICSharpCode.SharpZipLib"> <Reference Include="ICSharpCode.SharpZipLib">
<HintPath>..\thirdparty\ICSharpCode.SharpZipLib.dll</HintPath> <HintPath>..\thirdparty\download\ICSharpCode.SharpZipLib.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="MaxMind.GeoIP2"> <Reference Include="MaxMind.GeoIP2">
<HintPath>..\thirdparty\MaxMind.GeoIP2.dll</HintPath> <HintPath>..\thirdparty\download\MaxMind.GeoIP2.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="MaxMind.Db"> <Reference Include="MaxMind.Db">
<HintPath>..\thirdparty\MaxMind.Db.dll</HintPath> <HintPath>..\thirdparty\download\MaxMind.Db.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="SDL2-CS"> <Reference Include="SDL2-CS">
<HintPath>..\thirdparty\SDL2-CS.dll</HintPath> <HintPath>..\thirdparty\download\SDL2-CS.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>

View File

@@ -54,7 +54,7 @@
</Reference> </Reference>
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="Eluant"> <Reference Include="Eluant">
<HintPath>..\thirdparty\Eluant.dll</HintPath> <HintPath>..\thirdparty\download\Eluant.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>

View File

@@ -32,7 +32,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="FuzzyLogicLibrary"> <Reference Include="FuzzyLogicLibrary">
<HintPath>..\thirdparty\FuzzyLogicLibrary.dll</HintPath> <HintPath>..\thirdparty\download\FuzzyLogicLibrary.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
@@ -42,22 +42,22 @@
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="Eluant"> <Reference Include="Eluant">
<HintPath>..\thirdparty\Eluant.dll</HintPath> <HintPath>..\thirdparty\download\Eluant.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="StyleCop"> <Reference Include="StyleCop">
<HintPath>..\thirdparty\StyleCop.dll</HintPath> <HintPath>..\thirdparty\download\StyleCop.dll</HintPath>
</Reference> </Reference>
<Reference Include="MaxMind.GeoIP2"> <Reference Include="MaxMind.GeoIP2">
<HintPath>..\thirdparty\MaxMind.GeoIP2.dll</HintPath> <HintPath>..\thirdparty\download\MaxMind.GeoIP2.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Mono.Nat"> <Reference Include="Mono.Nat">
<HintPath>..\thirdparty\Mono.Nat.dll</HintPath> <HintPath>..\thirdparty\download\Mono.Nat.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="ICSharpCode.SharpZipLib"> <Reference Include="ICSharpCode.SharpZipLib">
<HintPath>..\thirdparty\ICSharpCode.SharpZipLib.dll</HintPath> <HintPath>..\thirdparty\download\ICSharpCode.SharpZipLib.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>

View File

@@ -55,7 +55,7 @@
</Reference> </Reference>
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="Eluant"> <Reference Include="Eluant">
<HintPath>..\thirdparty\Eluant.dll</HintPath> <HintPath>..\thirdparty\download\Eluant.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>

View File

@@ -52,7 +52,7 @@
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="Eluant"> <Reference Include="Eluant">
<HintPath>..\thirdparty\Eluant.dll</HintPath> <HintPath>..\thirdparty\download\Eluant.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>

View File

@@ -31,7 +31,7 @@
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="Eluant"> <Reference Include="Eluant">
<HintPath>..\thirdparty\Eluant.dll</HintPath> <HintPath>..\thirdparty\download\Eluant.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>

View File

@@ -24,7 +24,7 @@
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="SDL2-CS"> <Reference Include="SDL2-CS">
<HintPath>..\thirdparty\SDL2-CS.dll</HintPath> <HintPath>..\thirdparty\download\SDL2-CS.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>

View File

@@ -24,12 +24,12 @@
<ItemGroup> <ItemGroup>
<Reference Include="Eluant, Version=1.0.5229.27703, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Eluant, Version=1.0.5229.27703, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\thirdparty\Eluant.dll</HintPath> <HintPath>..\thirdparty\download\Eluant.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="nunit.framework, Version=2.6.3.13283, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL"> <Reference Include="nunit.framework, Version=2.6.3.13283, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\thirdparty\nunit.framework.dll</HintPath> <HintPath>..\thirdparty\download\nunit.framework.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />

View File

@@ -8,8 +8,7 @@ install:
cache: cache:
- nsissetup.exe -> appveyor.yaml - nsissetup.exe -> appveyor.yaml
- NsProcess.zip -> appveyor.yaml - NsProcess.zip -> appveyor.yaml
- thirdparty -> thirdparty\fetch-thirdparty-deps.ps1 - thirdparty\download -> thirdparty\fetch-thirdparty-deps.ps1
- thirdparty\windows -> thirdparty\fetch-thirdparty-deps.ps1
before_build: before_build:
- make dependencies - make dependencies
@@ -36,7 +35,7 @@ after_test:
- if not exist NsProcess.zip appveyor DownloadFile "http://nsis.sourceforge.net/mediawiki/images/archive/1/18/20140806212030!NsProcess.zip" -FileName NsProcess.zip - if not exist NsProcess.zip appveyor DownloadFile "http://nsis.sourceforge.net/mediawiki/images/archive/1/18/20140806212030!NsProcess.zip" -FileName NsProcess.zip
- 7z x NsProcess.zip -o%NSIS_ROOT% -y - 7z x NsProcess.zip -o%NSIS_ROOT% -y
- move /Y %NSIS_ROOT%\Plugin\nsProcess.dll %NSIS_ROOT%\Plugins\nsProcess.dll - move /Y %NSIS_ROOT%\Plugin\nsProcess.dll %NSIS_ROOT%\Plugins\nsProcess.dll
- '%NSIS_ROOT%\makensis /DSRCDIR="%APPVEYOR_BUILD_FOLDER%" /DDEPSDIR="%APPVEYOR_BUILD_FOLDER%\thirdparty\windows" /V3 packaging/windows/OpenRA.nsi' - '%NSIS_ROOT%\makensis /DSRCDIR="%APPVEYOR_BUILD_FOLDER%" /DDEPSDIR="%APPVEYOR_BUILD_FOLDER%\thirdparty\download\windows" /V3 packaging/windows/OpenRA.nsi'
- move /Y %APPVEYOR_BUILD_FOLDER%\packaging\windows\OpenRA.Setup.exe %APPVEYOR_BUILD_FOLDER%\OpenRA-%APPVEYOR_REPO_TAG_NAME%.exe - move /Y %APPVEYOR_BUILD_FOLDER%\packaging\windows\OpenRA.Setup.exe %APPVEYOR_BUILD_FOLDER%\OpenRA-%APPVEYOR_REPO_TAG_NAME%.exe
artifacts: artifacts:

View File

@@ -74,10 +74,9 @@ elseif ($command -eq "clean")
rm *.dll rm *.dll
rm *.config rm *.config
rm mods/*/*.dll rm mods/*/*.dll
rm thirdparty/*.dll if (Test-Path -Path thirdparty/download/)
if(Test-Path -Path thirdparty/windows/)
{ {
rmdir thirdparty/windows/ -Recurse rmdir thirdparty/download -Recurse -Force
} }
echo "Clean complete." echo "Clean complete."
} }
@@ -116,8 +115,8 @@ elseif ($command -eq "dependencies")
{ {
cd thirdparty cd thirdparty
./fetch-thirdparty-deps.ps1 ./fetch-thirdparty-deps.ps1
cp *.dll .. cp download/*.dll ..
cp windows/*.dll .. cp download/windows/*.dll ..
cd .. cd ..
echo "Dependencies copied." echo "Dependencies copied."
} }

View File

@@ -47,28 +47,29 @@ for i in "${FILES[@]}"; do
done done
# SharpZipLib for zip file support # SharpZipLib for zip file support
cp thirdparty/ICSharpCode.SharpZipLib.dll packaging/built cp thirdparty/download/ICSharpCode.SharpZipLib.dll packaging/built
# FuzzyLogicLibrary for improved AI # FuzzyLogicLibrary for improved AI
cp thirdparty/FuzzyLogicLibrary.dll packaging/built cp thirdparty/download/FuzzyLogicLibrary.dll packaging/built
# SharpFont for FreeType support # SharpFont for FreeType support
cp thirdparty/SharpFont* packaging/built cp thirdparty/download/SharpFont* packaging/built
# SDL2-CS # SDL2-CS
cp thirdparty/download/SDL2-CS* packaging/built
cp thirdparty/SDL2-CS* packaging/built cp thirdparty/SDL2-CS* packaging/built
# Mono.NAT for UPnP support # Mono.NAT for UPnP support
cp thirdparty/Mono.Nat.dll packaging/built cp thirdparty/download/Mono.Nat.dll packaging/built
# Eluant (Lua integration) # Eluant (Lua integration)
cp thirdparty/Eluant* packaging/built cp thirdparty/download/Eluant* packaging/built
# GeoIP database access # GeoIP database access
cp thirdparty/MaxMind.Db.dll packaging/built cp thirdparty/download/MaxMind.Db.dll packaging/built
cp thirdparty/MaxMind.GeoIP2.dll packaging/built cp thirdparty/download/MaxMind.GeoIP2.dll packaging/built
cp thirdparty/Newtonsoft.Json.dll packaging/built cp thirdparty/download/Newtonsoft.Json.dll packaging/built
cp thirdparty/RestSharp.dll packaging/built cp thirdparty/download/RestSharp.dll packaging/built
# Copy game icon for windows package # Copy game icon for windows package
cp OpenRA.Game/OpenRA.ico packaging/built cp OpenRA.Game/OpenRA.ico packaging/built
@@ -79,23 +80,16 @@ cp OpenRA.exe packaging/built
cd packaging cd packaging
echo "Creating packages..." echo "Creating packages..."
if [ -x /usr/bin/makensis ]; then pushd windows
pushd windows ./buildpackage.sh "$TAG" "$BUILTDIR" "$SRCDIR" "$OUTPUTDIR"
echo "Building Windows setup.exe" if [ $? -ne 0 ]; then
makensis -V2 -DSRCDIR="$BUILTDIR" -DDEPSDIR="${SRCDIR}/thirdparty/windows" OpenRA.nsi
if [ $? -eq 0 ]; then
mv OpenRA.Setup.exe "$OUTPUTDIR"/OpenRA-$TAG.exe
else
echo "Windows package build failed." echo "Windows package build failed."
fi
popd
else
echo "Skipping Windows setup.exe build due to missing NSIS"
fi fi
popd
pushd osx pushd osx
echo "Zipping OS X package" echo "Zipping OS X package"
bash buildpackage.sh "$TAG" "$BUILTDIR" "$OUTPUTDIR" ./buildpackage.sh "$TAG" "$BUILTDIR" "$OUTPUTDIR"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "OS X package build failed." echo "OS X package build failed."
fi fi
@@ -103,7 +97,7 @@ popd
pushd linux pushd linux
echo "Building Linux packages" echo "Building Linux packages"
bash buildpackage.sh "$TAG" "$BUILTDIR" "$OUTPUTDIR" ./buildpackage.sh "$TAG" "$BUILTDIR" "$OUTPUTDIR"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Linux package build failed." echo "Linux package build failed."
fi fi

View File

@@ -0,0 +1,25 @@
#!/bin/bash
TAG="$1"
BUILTDIR="$2"
SRCDIR="$3"
OUTPUTDIR="$4"
if [ -x /usr/bin/makensis ]; then
pushd "$SRCDIR" >/dev/null
popd >/dev/null
if [[ ! -f /usr/share/nsis/Include/nsProcess.nsh && ! -f /usr/share/nsis/Plugin/nsProcess.dll ]]; then
echo "Installing NsProcess NSIS plugin in /usr/share/nsis"
sudo unzip -qq -o ${SRCDIR}/thirdparty/download/NsProcess.zip 'Include/*' -d /usr/share/nsis
sudo unzip -qq -j -o ${SRCDIR}/thirdparty/download/NsProcess.zip 'Plugin/*' -d /usr/share/nsis/Plugins
fi
echo "Building Windows setup.exe"
makensis -V2 -DSRCDIR="$BUILTDIR" -DDEPSDIR="${SRCDIR}/thirdparty/download/windows" OpenRA.nsi
if [ $? -eq 0 ]; then
mv OpenRA.Setup.exe "$OUTPUTDIR"/OpenRA-$TAG.exe
else
exit 1
fi
else
echo "Skipping Windows setup.exe build due to missing NSIS"
fi

View File

@@ -27,19 +27,4 @@ if [ "$os" == 'Linux' ]; then
sed "s/@LIBLUA51@/${liblua51}/" thirdparty/Eluant.dll.config.in > Eluant.dll.config sed "s/@LIBLUA51@/${liblua51}/" thirdparty/Eluant.dll.config.in > Eluant.dll.config
echo "Eluant.dll.config has been created successfully." echo "Eluant.dll.config has been created successfully."
fi fi
elif [ "$os" == 'Darwin' ]; then
if [ ! -f libSDL2.dylib ]; then
echo "Fetching OS X SDL2 library from GitHub."
curl -LOs https://raw.githubusercontent.com/OpenRA/OpenRALauncherOSX/master/dependencies/libSDL2.dylib
fi
if [ ! -f liblua.5.1.dylib ]; then
echo "Fetching OS X Lua 5.1 library from GitHub."
curl -LOs https://raw.githubusercontent.com/OpenRA/OpenRALauncherOSX/master/dependencies/liblua.5.1.dylib
fi
if [ ! -f Eluant.dll.config ]; then
echo "Fetching OS X Lua configuration file from GitHub."
curl -LOs https://raw.githubusercontent.com/OpenRA/OpenRALauncherOSX/master/dependencies/Eluant.dll.config
fi
fi fi

20
thirdparty/fetch-thirdparty-deps-osx.sh vendored Executable file
View File

@@ -0,0 +1,20 @@
#!/bin/bash
download_dir="${0%/*}/download/osx"
mkdir -p "$download_dir"
cd "$download_dir"
if [ ! -f libSDL2.dylib ]; then
echo "Fetching OS X SDL2 library from GitHub."
curl -LOs https://raw.githubusercontent.com/OpenRA/OpenRALauncherOSX/master/dependencies/libSDL2.dylib
fi
if [ ! -f liblua.5.1.dylib ]; then
echo "Fetching OS X Lua 5.1 library from GitHub."
curl -LOs https://raw.githubusercontent.com/OpenRA/OpenRALauncherOSX/master/dependencies/liblua.5.1.dylib
fi
if [ ! -f Eluant.dll.config ]; then
echo "Fetching OS X Lua configuration file from GitHub."
curl -LOs https://raw.githubusercontent.com/OpenRA/OpenRALauncherOSX/master/dependencies/Eluant.dll.config
fi

View File

@@ -3,34 +3,39 @@
# Die on any error for Travis CI to automatically retry: # Die on any error for Travis CI to automatically retry:
set -e set -e
if [ ! -d windows ]; then download_dir="${0%/*}/download/windows"
mkdir windows
fi
if [ ! -f windows/SDL2.dll ]; then mkdir -p "${download_dir}"
cd "${download_dir}"
if [ ! -f SDL2.dll ]; then
echo "Fetching SDL2 from nuget" echo "Fetching SDL2 from nuget"
nuget install sdl2 -Version 2.0.3 -ExcludeVersion nuget install sdl2 -Version 2.0.3 -ExcludeVersion
cp ./sdl2.redist/build/native/bin/Win32/dynamic/SDL2.dll ./windows/ cp ./sdl2.redist/build/native/bin/Win32/dynamic/SDL2.dll .
rm -rf sdl2 sdl2.redist rm -rf sdl2 sdl2.redist
fi fi
if [ ! -f windows/freetype6.dll ]; then if [ ! -f freetype6.dll ]; then
echo "Fetching FreeType2 from nuget" echo "Fetching FreeType2 from nuget"
nuget install SharpFont.Dependencies -Version 2.5.5.1 -ExcludeVersion nuget install SharpFont.Dependencies -Version 2.5.5.1 -ExcludeVersion
cp ./SharpFont.Dependencies/bin/msvc10/x86/freetype6.dll ./windows/ cp ./SharpFont.Dependencies/bin/msvc10/x86/freetype6.dll .
rm -rf SharpFont.Dependencies rm -rf SharpFont.Dependencies
fi fi
if [ ! -f windows/lua51.dll ]; then if [ ! -f lua51.dll ]; then
echo "Fetching Lua 5.1 from nuget" echo "Fetching Lua 5.1 from nuget"
nuget install lua.binaries -Version 5.1.5 -ExcludeVersion nuget install lua.binaries -Version 5.1.5 -ExcludeVersion
cp ./lua.binaries/bin/win32/dll8/lua5.1.dll ./windows/lua51.dll cp ./lua.binaries/bin/win32/dll8/lua5.1.dll ./lua51.dll
rm -rf lua.binaries rm -rf lua.binaries
fi fi
if [ ! -f windows/soft_oal.dll ]; then if [ ! -f soft_oal.dll ]; then
echo "Fetching OpenAL Soft from nuget" echo "Fetching OpenAL Soft from nuget"
nuget install OpenAL-Soft -Version 1.16.0 -ExcludeVersion nuget install OpenAL-Soft -Version 1.16.0 -ExcludeVersion
cp ./OpenAL-Soft/bin/Win32/soft_oal.dll windows/soft_oal.dll cp ./OpenAL-Soft/bin/Win32/soft_oal.dll ./soft_oal.dll
rm -rf OpenAL-Soft rm -rf OpenAL-Soft
fi fi
if [ ! -f ../NsProcess.zip ]; then
curl -s -L -o ../NsProcess.zip http://nsis.sourceforge.net/mediawiki/images/archive/1/18/20140806212030!NsProcess.zip
fi

View File

@@ -1,4 +1,6 @@
mkdir windows -Force >$null mkdir download/windows -Force >$null
cd download
if (!(Test-Path "nuget.exe")) if (!(Test-Path "nuget.exe"))
{ {
@@ -127,3 +129,5 @@ if (!(Test-Path "Eluant.dll"))
$target = Join-Path $pwd.ToString() "Eluant.dll" $target = Join-Path $pwd.ToString() "Eluant.dll"
(New-Object System.Net.WebClient).DownloadFile("https://github.com/OpenRA/Eluant/releases/download/20140425/Eluant.dll", $target) (New-Object System.Net.WebClient).DownloadFile("https://github.com/OpenRA/Eluant/releases/download/20140425/Eluant.dll", $target)
} }
cd ..

View File

@@ -3,6 +3,11 @@
# Die on any error for Travis CI to automatically retry: # Die on any error for Travis CI to automatically retry:
set -e set -e
download_dir="${0%/*}/download"
mkdir -p "${download_dir}"
cd "${download_dir}"
if [ ! -f StyleCopPlus.dll ]; then if [ ! -f StyleCopPlus.dll ]; then
echo "Fetching StyleCopPlus from nuget" echo "Fetching StyleCopPlus from nuget"
nuget install StyleCopPlus.MSBuild -Version 4.7.49.5 -ExcludeVersion nuget install StyleCopPlus.MSBuild -Version 4.7.49.5 -ExcludeVersion