From 17345404bad71989238d492ed2e23c97f5681065 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 29 Jul 2014 10:47:38 +0200 Subject: [PATCH] Add ZLIBWAPI_DLL and LEVELDB_DLL CMake options Remove legacy MINGWM10_DLL CMake option Update 32-bit buildbot (OpenAL updated, zlib updated) Change build directory for buildbots to '_build' to prevent removal of Android build files Use -win64 suffix for 64-bit Windows builds Fixes #1476 --- CMakeLists.txt | 6 +++- README.txt | 7 +++-- src/CMakeLists.txt | 16 +++++----- util/buildbot/buildwin32.sh | 59 +++++++++++++++++++++---------------- util/buildbot/buildwin64.sh | 19 ++++++++++-- 5 files changed, 67 insertions(+), 40 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2050e57a6..5e234eedf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -202,7 +202,11 @@ if(WIN32) # install(FILES bin/minetestserver.exe DESTINATION bin) #endif() - set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win32") + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win64") + else(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-win32") + endif(CMAKE_SIZEOF_VOID_P EQUAL 8) set(CPACK_GENERATOR ZIP) diff --git a/README.txt b/README.txt index 927fdad11..6857c6e49 100644 --- a/README.txt +++ b/README.txt @@ -167,6 +167,7 @@ EGL_egl_LIBRARY - Only if building with GLES; path to libEGL.a/l FREETYPE_INCLUDE_DIR_freetype2 - Only if building with Freetype2; directory that contains an freetype directory with files such as ftimage.h in it FREETYPE_INCLUDE_DIR_ft2build - Only if building with Freetype2; directory that contains ft2build.h FREETYPE_LIBRARY - Only if building with Freetype2; path to libfreetype.a/libfreetype.so/freetype.lib +FREETYPE_DLL - Only if building with Freetype2 on Windows; path to libfreetype.dll GETTEXT_DLL - Only when building with Gettext on Windows; path to libintl3.dll GETTEXT_ICONV_DLL - Only when building with Gettext on Windows; path to libiconv2.dll GETTEXT_INCLUDE_DIR - Only when building with Gettext; directory that contains iconv.h @@ -176,7 +177,8 @@ IRRLICHT_DLL - path to Irrlicht.dll IRRLICHT_INCLUDE_DIR - directory that contains IrrCompileConfig.h IRRLICHT_LIBRARY - path to libIrrlicht.a/libIrrlicht.so/libIrrlicht.dll.a LEVELDB_INCLUDE_DIR - Only when building with LevelDB; directory that contains db.h -LEVELDB_LIBRARY - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll +LEVELDB_LIBRARY - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a +LEVELDB_DLL - Only when building with LevelDB on Windows; path to libleveldb.dll REDIS_INCLUDE_DIR - Only when building with redis support; directory that contains hiredis.h REDIS_LIBRARY - Only when building with redis support; path to libhiredis.a/libhiredis.so LUA_INCLUDE_DIR - Only if you want to use LuaJIT; directory where luajit.h is located @@ -198,7 +200,8 @@ VORBIS_DLL - Only if building with sound on Windows; path t VORBIS_INCLUDE_DIR - Only if building with sound; directory that contains a directory vorbis with vorbisenc.h inside VORBIS_LIBRARY - Only if building with sound; path to libvorbis.a/libvorbis.so/libvorbis.dll.a XXF86VM_LIBRARY - Only on Linux; path to libXXf86vm.a/libXXf86vm.so -ZLIB_DLL - Only on Windows; path to zlibwapi.dll +ZLIB_DLL - Only on Windows; path to zlib1.dll +ZLIBWAPI_DLL - Only on Windows; path to zlibwapi.dll ZLIB_INCLUDE_DIR - directory where zlib.h is located ZLIB_LIBRARY - path to libz.a/libz.so/zlibwapi.lib diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2800f361c..de1ea2c28 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -133,8 +133,6 @@ if(WIN32) set(FREETYPE_LIBRARY "${PROJECT_SOURCE_DIR}/../../freetype2/objs/win32/vc2005/freetype247.lib" CACHE FILEPATH "Path to freetype247.lib") endif(USE_FREETYPE) - set(MINGWM10_DLL "" - CACHE FILEPATH "Path to mingwm10.dll (for installation)") if(ENABLE_SOUND) set(OPENAL_DLL "" CACHE FILEPATH "Path to OpenAL32.dll for installation (optional)") set(OGG_DLL "" CACHE FILEPATH "Path to libogg.dll for installation (optional)") @@ -664,12 +662,6 @@ endif() # Installation # if(WIN32) - if(MINGWM10_DLL) - install(FILES ${MINGWM10_DLL} DESTINATION ${BINDIR}) - endif() - if(DEFINED ZLIB_DLL) - install(FILES ${ZLIB_DLL} DESTINATION ${BINDIR}) - endif() if(USE_SOUND) if(OPENAL_DLL) install(FILES ${OPENAL_DLL} DESTINATION ${BINDIR}) @@ -687,12 +679,18 @@ if(WIN32) if(CURL_DLL) install(FILES ${CURL_DLL} DESTINATION ${BINDIR}) endif() - if (ZLIB_DLL) + if(ZLIB_DLL) install(FILES ${ZLIB_DLL} DESTINATION ${BINDIR}) endif() + if(ZLIBWAPI_DLL) + install(FILES ${ZLIBWAPI_DLL} DESTINATION ${BINDIR}) + endif() if(FREETYPE_DLL) install(FILES ${FREETYPE_DLL} DESTINATION ${BINDIR}) endif() + if(LEVELDB_DLL) + install(FILES ${LEVELDB_DLL} DESTINATION ${BINDIR}) + endif() endif() if(BUILD_CLIENT) diff --git a/util/buildbot/buildwin32.sh b/util/buildbot/buildwin32.sh index 8222af68d..25964a9bb 100755 --- a/util/buildbot/buildwin32.sh +++ b/util/buildbot/buildwin32.sh @@ -18,9 +18,10 @@ ogg_version=1.2.1 vorbis_version=1.3.3 curl_version=7.18.0 gettext_version=0.14.4 -freetype_version=2.3.5-1 +freetype_version=2.3.5 luajit_version=2.0.1 leveldb_version=1.15 +zlib_version=1.2.8 mkdir -p $packagedir mkdir -p $libdir @@ -30,10 +31,8 @@ cd $builddir # Get stuff [ -e $packagedir/irrlicht-$irrlicht_version.zip ] || wget http://sfan5.pf-control.de/irrlicht-$irrlicht_version-win32.zip \ -c -O $packagedir/irrlicht-$irrlicht_version.zip -[ -e $packagedir/zlib125.zip ] || wget http://www.winimage.com/zLibDll/zlib125.zip \ - -c -O $packagedir/zlib125.zip -[ -e $packagedir/zlib125dll.zip ] || wget http://www.winimage.com/zLibDll/zlib125dll.zip \ - -c -O $packagedir/zlib125dll.zip +[ -e $packagedir/zlib-$zlib_version.zip ] || wget http://sfan5.pf-control.de/zlib-$zlib_version-win32.zip \ + -c -O $packagedir/zlib-$zlib_version.zip [ -e $packagedir/libogg-$ogg_version-dev.7z ] || wget http://sfan5.pf-control.de/libogg-$ogg_version-dev.7z \ -c -O $packagedir/libogg-$ogg_version-dev.7z [ -e $packagedir/libogg-$ogg_version-dll.7z ] || wget http://sfan5.pf-control.de/libogg-$ogg_version-dll.7z \ @@ -46,29 +45,26 @@ cd $builddir -c -O $packagedir/libcurl-$curl_version-win32-msvc.zip [ -e $packagedir/gettext-$gettext_version.zip ] || wget http://sfan5.pf-control.de/gettext-$gettext_version.zip \ -c -O $packagedir/gettext-$gettext_version.zip -[ -e $packagedir/freetype-$freetype_version.zip ] || wget http://sfan5.pf-control.de/freetype-$freetype_version.zip \ - -c -O $packagedir/freetype-$freetype_version.zip +[ -e $packagedir/libfreetype-$freetype_version.zip ] || wget http://sfan5.pf-control.de/libfreetype-$freetype_version-win32.zip \ + -c -O $packagedir/libfreetype-$freetype_version.zip [ -e $packagedir/luajit-$luajit_version-static-win32.zip ] || wget http://sfan5.pf-control.de/luajit-$luajit_version-static-win32.zip \ -c -O $packagedir/luajit-$luajit_version-static-win32.zip [ -e $packagedir/libleveldb-$leveldb_version-win32.zip ] || wget http://sfan5.pf-control.de/libleveldb-$leveldb_version-win32.zip \ -c -O $packagedir/libleveldb-$leveldb_version-win32.zip -[ -e $packagedir/openal_stripped.zip ] || wget http://minetest.ru/bin/openal_stripped.zip \ +[ -e $packagedir/openal_stripped.zip ] || wget http://sfan5.pf-control.de/openal_stripped.zip \ -c -O $packagedir/openal_stripped.zip -[ -e $packagedir/mingwm10.dll ] || wget http://minetest.ru/bin/mingwm10.dll \ - -c -O $packagedir/mingwm10.dll # Extract stuff cd $libdir [ -d irrlicht-$irrlicht_version ] || unzip -o $packagedir/irrlicht-$irrlicht_version.zip -[ -d zlib-1.2.5 ] || unzip -o $packagedir/zlib125.zip -[ -d zlib125dll ] || unzip -o $packagedir/zlib125dll.zip -d zlib125dll +[ -d zlib ] || unzip -o $packagedir/zlib-$zlib_version.zip -d zlib [ -d libogg/include ] || 7z x -y -olibogg $packagedir/libogg-$ogg_version-dev.7z [ -d libogg/bin ] || 7z x -y -olibogg $packagedir/libogg-$ogg_version-dll.7z [ -d libvorbis/include ] || 7z x -y -olibvorbis $packagedir/libvorbis-$vorbis_version-dev.7z [ -d libvorbis/bin ] || 7z x -y -olibvorbis $packagedir/libvorbis-$vorbis_version-dll.7z [ -d libcurl ] || unzip -o $packagedir/libcurl-$curl_version-win32-msvc.zip -d libcurl [ -d gettext ] || unzip -o $packagedir/gettext-$gettext_version.zip -d gettext -[ -d freetype ] || unzip -o $packagedir/freetype-$freetype_version.zip -d freetype +[ -d freetype ] || unzip -o $packagedir/libfreetype-$freetype_version.zip -d freetype [ -d openal_stripped ] || unzip -o $packagedir/openal_stripped.zip [ -d luajit ] || unzip -o $packagedir/luajit-$luajit_version-static-win32.zip -d luajit [ -d leveldb ] || unzip -o $packagedir/libleveldb-$leveldb_version-win32.zip -d leveldb @@ -86,53 +82,66 @@ cd ../.. # Build the thing cd minetest -[ -d build ] && rm -Rf build/ -mkdir build -cd build +[ -d _build ] && rm -Rf _build/ +mkdir _build +cd _build cmake .. \ -DCMAKE_INSTALL_PREFIX=/tmp \ -DVERSION_EXTRA=$git_hash \ -DBUILD_CLIENT=1 -DBUILD_SERVER=0 \ -DCMAKE_TOOLCHAIN_FILE=$toolchain_file \ + \ -DENABLE_SOUND=1 \ -DENABLE_CURL=1 \ -DENABLE_GETTEXT=1 \ -DENABLE_FREETYPE=1 \ -DENABLE_LEVELDB=1 \ + \ -DIRRLICHT_INCLUDE_DIR=$libdir/irrlicht-$irrlicht_version/include \ -DIRRLICHT_LIBRARY=$libdir/irrlicht-$irrlicht_version/lib/Win32-gcc/libIrrlicht.dll.a \ -DIRRLICHT_DLL=$libdir/irrlicht-$irrlicht_version/bin/Win32-gcc/Irrlicht.dll \ - -DZLIB_INCLUDE_DIR=$libdir/zlib-1.2.5 \ - -DZLIB_LIBRARIES=$libdir/zlib125dll/dll32/zlibwapi.lib \ - -DZLIB_DLL=$libdir/zlib125dll/dll32/zlibwapi.dll \ + \ + -DZLIB_INCLUDE_DIR=$libdir/zlib/include \ + -DZLIB_LIBRARIES=$libdir/zlib/lib/zlibwapi.dll.a \ + -DZLIB_DLL=$libdir/zlib/bin/zlib1.dll \ + -DZLIBWAPI_DLL=$libdir/zlib/bin/zlibwapi.dll \ + \ -DLUA_INCLUDE_DIR=$libdir/luajit/include \ -DLUA_LIBRARY=$libdir/luajit/libluajit.a \ + \ -DOGG_INCLUDE_DIR=$libdir/libogg/include \ -DOGG_LIBRARY=$libdir/libogg/lib/libogg.dll.a \ -DOGG_DLL=$libdir/libogg/bin/libogg-0.dll \ + \ -DVORBIS_INCLUDE_DIR=$libdir/libvorbis/include \ -DVORBIS_LIBRARY=$libdir/libvorbis/lib/libvorbis.dll.a \ -DVORBIS_DLL=$libdir/libvorbis/bin/libvorbis-0.dll \ -DVORBISFILE_LIBRARY=$libdir/libvorbis/lib/libvorbisfile.dll.a \ -DVORBISFILE_DLL=$libdir/libvorbis/bin/libvorbisfile-3.dll \ - -DOPENAL_INCLUDE_DIR=$libdir/openal_stripped/include \ - -DOPENAL_LIBRARY=$libdir/openal_stripped/lib/OpenAL32.lib \ + \ + -DOPENAL_INCLUDE_DIR=$libdir/openal_stripped/include/AL \ + -DOPENAL_LIBRARY=$libdir/openal_stripped/lib/libOpenAL32.dll.a \ -DOPENAL_DLL=$libdir/openal_stripped/bin/OpenAL32.dll \ - -DMINGWM10_DLL=$packagedir/mingwm10.dll \ + \ -DCURL_DLL=$libdir/libcurl/libcurl.dll \ -DCURL_INCLUDE_DIR=$libdir/libcurl/include \ -DCURL_LIBRARY=$libdir/libcurl/libcurl.lib \ + \ -DCUSTOM_GETTEXT_PATH=$libdir/gettext \ -DGETTEXT_MSGFMT=`which msgfmt` \ -DGETTEXT_DLL=$libdir/gettext/bin/libintl3.dll \ -DGETTEXT_ICONV_DLL=$libdir/gettext/bin/libiconv2.dll \ -DGETTEXT_INCLUDE_DIR=$libdir/gettext/include \ -DGETTEXT_LIBRARY=$libdir/gettext/lib/libintl.dll.a \ - -DFREETYPE_INCLUDE_DIR_freetype2=$libdir/freetype/include/freetype \ + \ + -DFREETYPE_INCLUDE_DIR_freetype2=$libdir/freetype/include/freetype2 \ -DFREETYPE_INCLUDE_DIR_ft2build=$libdir/freetype/include \ - -DFREETYPE_LIBRARY=$libdir/freetype/lib/freetype.lib \ + -DFREETYPE_LIBRARY=$libdir/freetype/lib/libfreetype.dll.a \ + -DFREETYPE_DLL=$libdir/freetype/bin/freetype6.dll \ + \ -DLEVELDB_INCLUDE_DIR=$libdir/leveldb/include \ - -DLEVELDB_LIBRARY=$libdir/leveldb/lib/libleveldb.dll.a + -DLEVELDB_LIBRARY=$libdir/leveldb/lib/libleveldb.dll.a \ + -DLEVELDB_DLL=$libdir/leveldb/bin/libleveldb.dll make package -j2 diff --git a/util/buildbot/buildwin64.sh b/util/buildbot/buildwin64.sh index eed33d2f9..321985e1b 100755 --- a/util/buildbot/buildwin64.sh +++ b/util/buildbot/buildwin64.sh @@ -77,46 +77,59 @@ cd ../.. # Build the thing cd minetest -[ -d build ] && rm -Rf build/ -mkdir build -cd build +[ -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 \ + \ -DENABLE_SOUND=1 \ -DENABLE_CURL=1 \ -DENABLE_GETTEXT=1 \ -DENABLE_FREETYPE=1 \ -DENABLE_LEVELDB=1 \ + \ -DIRRLICHT_INCLUDE_DIR=$libdir/irrlicht-$irrlicht_version/include \ -DIRRLICHT_LIBRARY=$libdir/irrlicht-$irrlicht_version/lib/Win64-gcc/libIrrlicht.dll.a \ -DIRRLICHT_DLL=$libdir/irrlicht-$irrlicht_version/bin/Win64-gcc/Irrlicht.dll \ + \ -DZLIB_INCLUDE_DIR=$libdir/zlib/include \ -DZLIB_LIBRARIES=$libdir/zlib/lib/libz.dll.a \ -DZLIB_DLL=$libdir/zlib/bin/zlib1.dll \ + \ -DLUA_INCLUDE_DIR=$libdir/luajit/include \ -DLUA_LIBRARY=$libdir/luajit/libluajit.a \ + \ -DOGG_INCLUDE_DIR=$libdir/libogg/include \ -DOGG_LIBRARY=$libdir/libogg/lib/libogg.dll.a \ -DOGG_DLL=$libdir/libogg/bin/libogg-0.dll \ + \ -DVORBIS_INCLUDE_DIR=$libdir/libvorbis/include \ -DVORBIS_LIBRARY=$libdir/libvorbis/lib/libvorbis.dll.a \ -DVORBIS_DLL=$libdir/libvorbis/bin/libvorbis-0.dll \ -DVORBISFILE_LIBRARY=$libdir/libvorbis/lib/libvorbisfile.dll.a \ -DVORBISFILE_DLL=$libdir/libvorbis/bin/libvorbisfile-3.dll \ + \ -DOPENAL_INCLUDE_DIR=$libdir/openal_stripped/include/AL \ -DOPENAL_LIBRARY=$libdir/openal_stripped/lib/libOpenAL32.dll.a \ -DOPENAL_DLL=$libdir/openal_stripped/bin/OpenAL32.dll \ + \ -DCURL_DLL=$libdir/libcurl/bin/libcurl-4.dll \ -DCURL_INCLUDE_DIR=$libdir/libcurl/include \ -DCURL_LIBRARY=$libdir/libcurl/lib/libcurl.dll.a \ + \ -DFREETYPE_INCLUDE_DIR_freetype2=$libdir/freetype/include/freetype2 \ -DFREETYPE_INCLUDE_DIR_ft2build=$libdir/freetype/include/freetype2 \ -DFREETYPE_LIBRARY=$libdir/freetype/lib/libfreetype.dll.a \ + -DFREETYPE_DLL=$libdir/freetype/bin/libfreetype-6.dll \ + \ -DLEVELDB_INCLUDE_DIR=$libdir/leveldb/include \ -DLEVELDB_LIBRARY=$libdir/leveldb/lib/libleveldb.dll.a \ + -DLEVELDB_DLL=$libdir/leveldb/bin/libleveldb.dll \ + \ -DCUSTOM_GETTEXT_PATH=$libdir/gettext \ -DGETTEXT_MSGFMT=`which msgfmt` \ -DGETTEXT_DLL=$libdir/gettext/bin/libintl-8.dll \