diff --git a/.gitignore b/.gitignore index e87a5711..02bef3f5 100644 --- a/.gitignore +++ b/.gitignore @@ -111,3 +111,6 @@ build/iOS/deps/* build/iOS/assets.zip build/iOS/worlds.zip build/iOS/Ads + +## WindowsApp files +build/WindowsApp/multicraft-windows.zip diff --git a/build/WindowsApp/README.txt b/build/WindowsApp/README.txt new file mode 100644 index 00000000..81357e3b --- /dev/null +++ b/build/WindowsApp/README.txt @@ -0,0 +1,7 @@ +Instructions: +1) on Linux: sudo apt install unzip zip gettext cmake p7zip-full +2) on Windows: install DesktopAppConverter and the Windows SDK +3) Run build.sh to create the ZIP file +4) Transfer multicraft-windows.zip to Windows and extract it +5) Edit the settings in the .bat file +6) Run the .bat file as Administrator to generate an Appx package diff --git a/build/WindowsApp/build.sh b/build/WindowsApp/build.sh new file mode 100755 index 00000000..2494a1f7 --- /dev/null +++ b/build/WindowsApp/build.sh @@ -0,0 +1,32 @@ +#!/bin/bash -e + +bit=32 +#bit=64 + +mingw=/tmp/mingw${bit} +if [ ! -d $mingw ]; then + if [ $bit -eq 64 ]; then + wget http://minetest.kitsunemimi.pw/mingw-w64-x86_64_7.1.1_ubuntu14.04.7z -O mingw.7z + else + wget http://minetest.kitsunemimi.pw/mingw-w64-i686_7.1.1_ubuntu14.04.7z -O mingw.7z + fi + 7z x -y -o$mingw mingw.7z + rm mingw.7z +fi +export PATH="$mingw/bin:$PATH" + +EXISTING_DIR=$PWD/../.. \ +./buildwin${bit}.sh /tmp/build${bit} + +cd /tmp/build${bit}/MultiCraft/_build/_CPack_Packages/*/ZIP/ +rm *.zip; dir=$(echo *) +if [ $bit -eq 64 ]; then + base=$mingw/x86_64-w64-mingw32/bin +else + base=$mingw/i686-w64-mingw32/bin +fi +cp -pv $base/lib{gcc,stdc++,winpthread}*.dll $dir/bin/ + +rm -f $OLDPWD/multicraft-windows.zip +zip -r $OLDPWD/multicraft-windows.zip $dir +echo "Done" diff --git a/buildwin32.sh b/build/WindowsApp/buildwin32.sh similarity index 91% rename from buildwin32.sh rename to build/WindowsApp/buildwin32.sh index 26f43b23..439bcaea 100755 --- a/buildwin32.sh +++ b/build/WindowsApp/buildwin32.sh @@ -67,37 +67,25 @@ cd $libdir [ -d luajit ] || unzip -o $packagedir/luajit-$luajit_version.zip -d luajit [ -d leveldb ] || unzip -o $packagedir/libleveldb-$leveldb_version.zip -d leveldb -# Get minetest +# Get the source cd $builddir -if [ ! "x$EXISTING_MINETEST_DIR" = "x" ]; then - ln -s $EXISTING_MINETEST_DIR minetest -else - [ -d minetest ] && (cd minetest && git pull) || (git clone https://github.com/minetest/minetest) -fi -cd minetest -git_hash=$(git rev-parse --short HEAD) - -# Get minetest_game -cd games -if [ "x$NO_MINETEST_GAME" = "x" ]; then - [ -d minetest_game ] && (cd minetest_game && git pull) || (git clone https://github.com/minetest/minetest_game) -fi -cd ../.. +[ -d MultiCraft ] || ln -s "$EXISTING_DIR" MultiCraft # Build the thing -cd minetest +cd MultiCraft [ -d _build ] && rm -Rf _build/ mkdir _build cd _build +# TODO: gettext is currently disabled cmake .. \ -DCMAKE_INSTALL_PREFIX=/tmp \ - -DVERSION_EXTRA=$git_hash \ -DBUILD_CLIENT=1 -DBUILD_SERVER=0 \ -DCMAKE_TOOLCHAIN_FILE=$toolchain_file \ + -DRUN_IN_PLACE=0 \ \ -DENABLE_SOUND=1 \ -DENABLE_CURL=1 \ - -DENABLE_GETTEXT=1 \ + -DENABLE_GETTEXT=0 \ -DENABLE_FREETYPE=1 \ -DENABLE_LEVELDB=1 \ \ diff --git a/buildwin64.sh b/build/WindowsApp/buildwin64.sh similarity index 94% rename from buildwin64.sh rename to build/WindowsApp/buildwin64.sh index 8850b3a5..04eb4e58 100755 --- a/buildwin64.sh +++ b/build/WindowsApp/buildwin64.sh @@ -1,7 +1,14 @@ #!/bin/bash set -e -builddir="$( pwd )" +dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi +builddir=$1 +mkdir -p $builddir +builddir="$( cd "$builddir" && pwd )" packagedir=$builddir/packages libdir=$builddir/libs @@ -61,18 +68,20 @@ cd $libdir [ -d luajit ] || unzip -o $packagedir/luajit-$luajit_version.zip -d luajit [ -d leveldb ] || unzip -o $packagedir/libleveldb-$leveldb_version.zip -d leveldb -# Get MultiCraft +# Get the source cd $builddir +[ -d MultiCraft ] || ln -s "$EXISTING_DIR" MultiCraft # Build the thing +cd MultiCraft [ -d _build ] && rm -Rf _build/ mkdir _build cd _build cmake .. \ - -DCMAKE_TOOLCHAIN_FILE=$toolchain_file \ -DCMAKE_INSTALL_PREFIX=/tmp \ - -DVERSION_EXTRA=$git_hash \ -DBUILD_CLIENT=1 -DBUILD_SERVER=0 \ + -DCMAKE_TOOLCHAIN_FILE=$toolchain_file \ + -DRUN_IN_PLACE=0 \ \ -DENABLE_SOUND=1 \ -DENABLE_CURL=1 \ @@ -128,6 +137,6 @@ cmake .. \ -DLEVELDB_LIBRARY=$libdir/leveldb/lib/libleveldb.dll.a \ -DLEVELDB_DLL=$libdir/leveldb/bin/libleveldb.dll -make package -j8 +make package -j2 # EOF diff --git a/build/WindowsApp/package.bat b/build/WindowsApp/package.bat new file mode 100755 index 00000000..81c27b88 --- /dev/null +++ b/build/WindowsApp/package.bat @@ -0,0 +1,23 @@ +@echo off + +REM ---- change these ---- +SET folderpath=C:\Users\Doge\Desktop\MultiCraft-1.1.8-dev-win32 +SET outputpath=C:\Users\Doge\Desktop +SET version=1.1.8.0 +SET publisher=example text +REM ---------------------- + +rem Find path to DesktopAppConverter +pushd "%ProgramFiles%\WindowsApps" +set cmd="dir /b Microsoft.DesktopAppConverter_*" +for /f "tokens=*" %%i in (' %cmd% ') do set appname=%%i +popd + +echo Please wait... +powershell -NoProfile -NoLogo -ExecutionPolicy Bypass^ + -File "%ProgramFiles%\WindowsApps\%appname%\DesktopAppConverter.ps1"^ + -Installer "%folderpath%" -AppExecutable MultiCraft.exe^ + -Destination "%outputpath%" -PackageName MultiCraft^ + -Publisher "CN=%publisher%" -Version %version% + +pause diff --git a/toolchain_mingw.cmake b/build/WindowsApp/toolchain_mingw.cmake similarity index 69% rename from toolchain_mingw.cmake rename to build/WindowsApp/toolchain_mingw.cmake index 0eeefb84..05d499e9 100644 --- a/toolchain_mingw.cmake +++ b/build/WindowsApp/toolchain_mingw.cmake @@ -2,12 +2,12 @@ SET(CMAKE_SYSTEM_NAME Windows) # which compilers to use for C and C++ -SET(CMAKE_C_COMPILER i586-mingw32msvc-gcc) -SET(CMAKE_CXX_COMPILER i586-mingw32msvc-g++) -SET(CMAKE_RC_COMPILER i586-mingw32msvc-windres) +SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc) +SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++) +SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres) # here is the target environment located -SET(CMAKE_FIND_ROOT_PATH /usr/i586-mingw32msvc) +SET(CMAKE_FIND_ROOT_PATH /tmp/mingw32/i686-w64-mingw32) # adjust the default behaviour of the FIND_XXX() commands: # search headers and libraries in the target environment, search diff --git a/toolchain_mingw64.cmake b/build/WindowsApp/toolchain_mingw64.cmake similarity index 90% rename from toolchain_mingw64.cmake rename to build/WindowsApp/toolchain_mingw64.cmake index 9a7ed82d..dfa5020b 100644 --- a/toolchain_mingw64.cmake +++ b/build/WindowsApp/toolchain_mingw64.cmake @@ -7,7 +7,7 @@ SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) # here is the target environment located -SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32) +SET(CMAKE_FIND_ROOT_PATH /tmp/mingw64/x86_64-w64-mingw32) # adjust the default behaviour of the FIND_XXX() commands: # search headers and libraries in the target environment, search diff --git a/misc/MultiCraft.ico b/misc/MultiCraft.ico index f315feab..daba9bc1 100644 Binary files a/misc/MultiCraft.ico and b/misc/MultiCraft.ico differ diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 910c3b26..cca720a4 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -431,7 +431,8 @@ void set_default_settings(Settings *settings) if (!lang[0]) errorstream << "Language auto-detection failed!" << std::endl; settings->setDefault("language", lang); - +#else + settings->setDefault("screen_dpi", "72"); #endif #ifdef __IOS__