← Back to team overview

widelands-dev team mailing list archive

[Merge] lp:~widelands-dev/widelands/appveyor into lp:widelands

 

Tino has proposed merging lp:~widelands-dev/widelands/appveyor into lp:widelands.

Requested reviews:
  Widelands Developers (widelands-dev)

For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/appveyor/+merge/281599

Provide a build script for appveyor, the "travis ci" for windows.
Currently a release build is done and a complete inno setup created.

Includes 2 fixes for windows:
- enable static linking glew32 with cmake option on windows
- allow git revision detection in windows (does work on my machine, but atm not an appveyor)
-- 
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/appveyor into lp:widelands.
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt	2016-01-04 20:58:32 +0000
+++ CMakeLists.txt	2016-01-05 10:27:43 +0000
@@ -1,296 +1,300 @@
-project (widelands)
-
-cmake_minimum_required (VERSION 2.8.7)
-
-include("${CMAKE_SOURCE_DIR}/cmake/WlFunctions.cmake")
-
-option(OPTION_USE_GLBINDING "Use glbinding instead of GLEW" OFF)
-option(OPTION_GLEW_STATIC "Use static GLEW Library" OFF)
-
-if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
-  message(FATAL_ERROR "Build directory and source directory must not be the same.")
-endif (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
-
-# Define the directory structure for installation - will be hardcoded in WL bin
-# (through config.h). If not specified, we are going to use the directory where
-# the executable is in. Also on Linux.
-# Packagers (or people using make install) have to set this variable to an absolute path.
-wl_set_if_unset(WL_INSTALL_DATADIR ".")
-
-if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
-  if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
-    message(FATAL_ERROR "Widelands needs GCC >= 4.7 to compile.")
-  endif()
-elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
-  if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2)
-    message(FATAL_ERROR "Clang version must be at least 3.2!")
-  endif()
-else()
-  message(WARNING "You are using an unsupported compiler! Supported are Clang and GCC.")
-endif()
-
-SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
-
-set (Boost_USE_STATIC_LIBS  OFF)
-set (Boost_USE_MULTITHREADED ON)
-set (Boost_DETAILED_FAILURE_MSG ON)
-find_package(Boost 1.48
-  COMPONENTS
-    unit_test_framework
-    regex
-  REQUIRED)
-
-find_package (PythonInterp REQUIRED)
-
-find_package(Gettext REQUIRED)
-find_package(OpenGL REQUIRED)
-find_package(PNG REQUIRED)
-find_package(SDL2 REQUIRED)
-find_package(SDL2_image REQUIRED)
-find_package(SDL2_mixer REQUIRED)
-find_package(SDL2_net REQUIRED)
-find_package(SDL2_ttf REQUIRED)
-find_package(ZLIB REQUIRED)
-find_package(ICU REQUIRED)
-if(OPTION_USE_GLBINDING)
-  find_package(glbinding REQUIRED)
-else()
-  find_package(GLEW REQUIRED)
-endif()
-
-if (APPLE OR WIN32 OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
-  if (NOT CMAKE_SYSTEM_NAME MATCHES "kFreeBSD")
-    find_package(intl REQUIRED)
-  endif()
-endif()
-
-# TODO(sirver): One day, this should be enabled. Then we have no more cycles in our dependencies....
-# set_property(GLOBAL PROPERTY GLOBAL_DEPENDS_NO_CYCLES ON)
-
-if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
-  find_path(FILE_WL_RELEASE "WL_RELEASE" ${CMAKE_CURRENT_SOURCE_DIR})
-  if(${FILE_WL_RELEASE} STREQUAL "FILE_WL_RELEASE-NOTFOUND")
-    set(CMAKE_BUILD_TYPE Debug)
-  else()
-    set(CMAKE_BUILD_TYPE Release)
-  endif()
-endif (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
-
-if(CMAKE_BUILD_TYPE STREQUAL "Debug")
-  set(WL_DEBUG_FLAGS "-g -DDEBUG")
-elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
-  set(WL_OPTIMIZE_FLAGS "-O3")
-  set(WL_DEBUG_FLAGS "-DNDEBUG -DNOPARACHUTE")
-elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
-  set(WL_OPTIMIZE_FLAGS "-O3")
-  set(WL_DEBUG_FLAGS "-g -DNDEBUG -DNOPARACHUTE")
-else()
-  message(FATAL_ERROR "Unknown CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
-endif()
-
-wl_add_flag(WL_GENERIC_CXX_FLAGS "-std=c++11")
-
-if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Weverything")
-
-  # Disabled warnings that are overly verbose right now or just do not make sense.
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-c++98-compat")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-c++98-compat-pedantic")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-conversion")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-exit-time-destructors")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-global-constructors")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-padded")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-sign-conversion")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-switch-enum")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-missing-noreturn")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-implicit-fallthrough")
-
-  # TODO(sirver): weak-vtables should be enabled, but leads to lot of errors right now.
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-weak-vtables")
-
-  # This warning warns when a default case is at a switch that handles all
-  # cases. While this is super nice, silencing this warning for clang will add
-  # a warning for GCC (which is not as clever and does not figure out that all
-  # cases are handled). Therefore we disable the warning and the unreachable as
-  # they always come in pairs in these cases.
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-covered-switch-default")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-unreachable-code")
-
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Werror=non-pod-varargs")
-
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Qunused-arguments")
-else()
-  # Assuming GCC 4.7 or higher.
-  if(WIN32)
-    # This is needed for getenv().
-    wl_add_flag(WL_GENERIC_CXX_FLAGS "-std=gnu++11")
-  endif()
-
-  if (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8))
-     # Because of: https://svn.boost.org/trac/boost/ticket/9240.
-     wl_add_flag(WL_GENERIC_CXX_FLAGS "-fext-numeric-literals")
-  endif()
-
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wall")
-  if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
-    wl_add_flag(WL_COMPILE_DIAGNOSTICS "-pedantic")
-  else()
-    wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wpedantic")
-  endif()
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wdeprecated-declarations")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wextra")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wformat")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wformat-nonliteral")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wformat-security")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wformat-y2k")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Winit-self")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Winvalid-pch")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wlogical-op")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wmissing-include-dirs")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-undef")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wold-style-cast")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Woverlength-strings")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wpacked")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wpointer-arith")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wredundant-decls")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wshadow")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wsign-promo")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wswitch-default")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wsync-nand")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wtrampolines")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wundef")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wunused")
-  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wunused-macros")
-endif()
-
-# Turn some warnings into errors.
-wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Werror=uninitialized")
-wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Werror=return-type")
-
-
-IF (WIN32)
-  add_definitions(-DMINGW_HAS_SECURE_API)
-  if (CMAKE_SIZEOF_VOID_P EQUAL 4)
-    set (CMAKE_EXE_LINKER_FLAGS "-Wl,--large-address-aware" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)
-    message (STATUS "Enabled large address awareness on mingw32")
-  else (CMAKE_SIZEOF_VOID_P EQUAL 4)
-    message (STATUS "Detected mingw32-w64")
-  endif (CMAKE_SIZEOF_VOID_P EQUAL 4)
-endif (WIN32)
-
-# on BSD this must be explicitly linked
-if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
-  # Not needed on Debian GNU/kFreeBSD..
-  if (NOT CMAKE_SYSTEM_NAME MATCHES "kFreeBSD")
-    find_library(EXECINFO_LIBRARY NAMES execinfo)
-  endif (NOT CMAKE_SYSTEM_NAME MATCHES "kFreeBSD")
-endif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
-
-if (NOT DEFINED WL_VERSION)
-  add_custom_target (
-    BzrRevision ALL
-    COMMAND ${CMAKE_COMMAND} -DWL_INSTALL_DATADIR=${WL_INSTALL_DATADIR} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/BzrRevision.cmake
-  )
-
-  # Detect version now
-  execute_process (
-    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/utils/detect_revision.py
-    OUTPUT_VARIABLE WL_VERSION
-    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-    OUTPUT_STRIP_TRAILING_WHITESPACE
-  )
-  file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/VERSION "${WL_VERSION}")
-  configure_file (${CMAKE_CURRENT_SOURCE_DIR}/src/build_info.cc.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/build_info.cc)
-  message (STATUS "Version of Widelands Build is ${WL_VERSION}(${CMAKE_BUILD_TYPE})")
-else (NOT DEFINED WL_VERSION)
-  add_custom_target (
-    InputRevision ALL
-    COMMAND ${CMAKE_COMMAND} -DWL_INSTALL_DATADIR=${WL_INSTALL_DATADIR} -DWL_VERSION=${WL_VERSION} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/InputRevision.cmake
-  )
-endif (NOT DEFINED WL_VERSION)
-
-# Enable testing.
-include(CTest)
-enable_testing()
-
-# Run a test after a normal compile. This magic is needed as 'make test' will
-# not rebuild tests:
-# http://stackoverflow.com/questions/733475/cmake-ctest-make-test-doesnt-build-tests
-add_custom_target(_run_all_tests ALL
-  COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure
-  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-  DEPENDS wl_tests
-)
-
-install (
-  FILES ${CMAKE_CURRENT_BINARY_DIR}/VERSION
-  DESTINATION ${WL_INSTALL_DATADIR}
-  CONFIGURATIONS Debug;Release
-  COMPONENT CoreVersionFile
-)
-
-# Installation.
-add_subdirectory(doc)
-add_subdirectory(po)
-add_subdirectory(src)
-
-# install files to the correct locations here
-install(
-  DIRECTORY
-    campaigns
-    i18n
-    tribes
-    txts
-    world
-    pics
-    scripting
-  DESTINATION ${WL_INSTALL_DATADIR}
-  CONFIGURATIONS Debug;Release
-  COMPONENT CoreDataFiles
-)
-
-install(
-  DIRECTORY
-    maps
-  DESTINATION ${WL_INSTALL_DATADIR}
-  CONFIGURATIONS Debug;Release
-  COMPONENT MapFiles
-)
-
-install(
-  DIRECTORY
-    music
-	sound
-  DESTINATION ${WL_INSTALL_DATADIR}
-  CONFIGURATIONS Debug;Release
-  COMPONENT MusicFiles
-)
-
-install(
-  FILES
-    COPYING
-    CREDITS
-    ChangeLog
-  DESTINATION ${WL_INSTALL_DATADIR}
-  CONFIGURATIONS Debug;Release
-  COMPONENT CoreLicenseFiles
-)
-
-install(
-  DIRECTORY
-    doc
-  DESTINATION ${WL_INSTALL_DATADIR}
-  CONFIGURATIONS Debug
-  COMPONENT DocFiles
-  PATTERN "CMakeLists.txt" EXCLUDE
-)
-
-set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES locale)
-
-install(
-  DIRECTORY
-    ${CMAKE_CURRENT_BINARY_DIR}/locale/
-  DESTINATION ${WL_INSTALL_DATADIR}/locale
-  CONFIGURATIONS Debug;Release
-  COMPONENT CoreLanguageFiles
-)
+project (widelands)
+
+cmake_minimum_required (VERSION 2.8.7)
+
+include("${CMAKE_SOURCE_DIR}/cmake/WlFunctions.cmake")
+
+option(OPTION_USE_GLBINDING "Use glbinding instead of GLEW" OFF)
+option(OPTION_GLEW_STATIC "Use static GLEW Library" OFF)
+
+if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
+  message(FATAL_ERROR "Build directory and source directory must not be the same.")
+endif (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
+
+# Define the directory structure for installation - will be hardcoded in WL bin
+# (through config.h). If not specified, we are going to use the directory where
+# the executable is in. Also on Linux.
+# Packagers (or people using make install) have to set this variable to an absolute path.
+wl_set_if_unset(WL_INSTALL_DATADIR ".")
+
+if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+  if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
+    message(FATAL_ERROR "Widelands needs GCC >= 4.7 to compile.")
+  endif()
+elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+  if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2)
+    message(FATAL_ERROR "Clang version must be at least 3.2!")
+  endif()
+else()
+  message(WARNING "You are using an unsupported compiler! Supported are Clang and GCC.")
+endif()
+
+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
+
+if (WIN32)
+  set (Boost_USE_STATIC_LIBS  ON)
+else()
+  set (Boost_USE_STATIC_LIBS  OFF)
+endif()
+set (Boost_USE_MULTITHREADED ON)
+set (Boost_DETAILED_FAILURE_MSG ON)
+find_package(Boost 1.48
+  COMPONENTS
+    unit_test_framework
+    regex
+  REQUIRED)
+
+find_package (PythonInterp REQUIRED)
+
+find_package(Gettext REQUIRED)
+find_package(OpenGL REQUIRED)
+find_package(PNG REQUIRED)
+find_package(SDL2 REQUIRED)
+find_package(SDL2_image REQUIRED)
+find_package(SDL2_mixer REQUIRED)
+find_package(SDL2_net REQUIRED)
+find_package(SDL2_ttf REQUIRED)
+find_package(ZLIB REQUIRED)
+find_package(ICU REQUIRED)
+if(OPTION_USE_GLBINDING)
+  find_package(glbinding REQUIRED)
+else()
+  find_package(GLEW REQUIRED)
+endif()
+
+if (APPLE OR WIN32 OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+  if (NOT CMAKE_SYSTEM_NAME MATCHES "kFreeBSD")
+    find_package(intl REQUIRED)
+  endif()
+endif()
+
+# TODO(sirver): One day, this should be enabled. Then we have no more cycles in our dependencies....
+# set_property(GLOBAL PROPERTY GLOBAL_DEPENDS_NO_CYCLES ON)
+
+if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
+  find_path(FILE_WL_RELEASE "WL_RELEASE" ${CMAKE_CURRENT_SOURCE_DIR})
+  if(${FILE_WL_RELEASE} STREQUAL "FILE_WL_RELEASE-NOTFOUND")
+    set(CMAKE_BUILD_TYPE Debug)
+  else()
+    set(CMAKE_BUILD_TYPE Release)
+  endif()
+endif (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
+
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+  set(WL_DEBUG_FLAGS "-g -DDEBUG")
+elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
+  set(WL_OPTIMIZE_FLAGS "-O3")
+  set(WL_DEBUG_FLAGS "-DNDEBUG -DNOPARACHUTE")
+elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
+  set(WL_OPTIMIZE_FLAGS "-O3")
+  set(WL_DEBUG_FLAGS "-g -DNDEBUG -DNOPARACHUTE")
+else()
+  message(FATAL_ERROR "Unknown CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+endif()
+
+wl_add_flag(WL_GENERIC_CXX_FLAGS "-std=c++11")
+
+if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Weverything")
+
+  # Disabled warnings that are overly verbose right now or just do not make sense.
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-c++98-compat")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-c++98-compat-pedantic")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-conversion")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-exit-time-destructors")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-global-constructors")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-padded")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-sign-conversion")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-switch-enum")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-missing-noreturn")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-implicit-fallthrough")
+
+  # TODO(sirver): weak-vtables should be enabled, but leads to lot of errors right now.
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-weak-vtables")
+
+  # This warning warns when a default case is at a switch that handles all
+  # cases. While this is super nice, silencing this warning for clang will add
+  # a warning for GCC (which is not as clever and does not figure out that all
+  # cases are handled). Therefore we disable the warning and the unreachable as
+  # they always come in pairs in these cases.
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-covered-switch-default")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-unreachable-code")
+
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Werror=non-pod-varargs")
+
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Qunused-arguments")
+else()
+  # Assuming GCC 4.7 or higher.
+  if(WIN32)
+    # This is needed for getenv().
+    wl_add_flag(WL_GENERIC_CXX_FLAGS "-std=gnu++11")
+  endif()
+
+  if (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8))
+     # Because of: https://svn.boost.org/trac/boost/ticket/9240.
+     wl_add_flag(WL_GENERIC_CXX_FLAGS "-fext-numeric-literals")
+  endif()
+
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wall")
+  if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
+    wl_add_flag(WL_COMPILE_DIAGNOSTICS "-pedantic")
+  else()
+    wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wpedantic")
+  endif()
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wdeprecated-declarations")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wextra")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wformat")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wformat-nonliteral")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wformat-security")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wformat-y2k")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Winit-self")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Winvalid-pch")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wlogical-op")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wmissing-include-dirs")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-undef")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wold-style-cast")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Woverlength-strings")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wpacked")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wpointer-arith")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wredundant-decls")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wshadow")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wsign-promo")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wswitch-default")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wsync-nand")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wtrampolines")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wundef")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wunused")
+  wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wunused-macros")
+endif()
+
+# Turn some warnings into errors.
+wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Werror=uninitialized")
+wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Werror=return-type")
+
+
+IF (WIN32)
+  add_definitions(-DMINGW_HAS_SECURE_API)
+  if (CMAKE_SIZEOF_VOID_P EQUAL 4)
+    set (CMAKE_EXE_LINKER_FLAGS "-Wl,--large-address-aware" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)
+    message (STATUS "Enabled large address awareness on mingw32")
+  else (CMAKE_SIZEOF_VOID_P EQUAL 4)
+    message (STATUS "Detected mingw32-w64")
+  endif (CMAKE_SIZEOF_VOID_P EQUAL 4)
+endif (WIN32)
+
+# on BSD this must be explicitly linked
+if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
+  # Not needed on Debian GNU/kFreeBSD..
+  if (NOT CMAKE_SYSTEM_NAME MATCHES "kFreeBSD")
+    find_library(EXECINFO_LIBRARY NAMES execinfo)
+  endif (NOT CMAKE_SYSTEM_NAME MATCHES "kFreeBSD")
+endif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
+
+if (NOT DEFINED WL_VERSION)
+  add_custom_target (
+    BzrRevision ALL
+    COMMAND ${CMAKE_COMMAND} -DWL_INSTALL_DATADIR=${WL_INSTALL_DATADIR} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/BzrRevision.cmake
+  )
+
+  # Detect version now
+  execute_process (
+    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/utils/detect_revision.py
+    OUTPUT_VARIABLE WL_VERSION
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+  )
+  file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/VERSION "${WL_VERSION}")
+  configure_file (${CMAKE_CURRENT_SOURCE_DIR}/src/build_info.cc.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/build_info.cc)
+  message (STATUS "Version of Widelands Build is ${WL_VERSION}(${CMAKE_BUILD_TYPE})")
+else (NOT DEFINED WL_VERSION)
+  add_custom_target (
+    InputRevision ALL
+    COMMAND ${CMAKE_COMMAND} -DWL_INSTALL_DATADIR=${WL_INSTALL_DATADIR} -DWL_VERSION=${WL_VERSION} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/InputRevision.cmake
+  )
+endif (NOT DEFINED WL_VERSION)
+
+# Enable testing.
+include(CTest)
+enable_testing()
+
+# Run a test after a normal compile. This magic is needed as 'make test' will
+# not rebuild tests:
+# http://stackoverflow.com/questions/733475/cmake-ctest-make-test-doesnt-build-tests
+add_custom_target(_run_all_tests ALL
+  COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure
+  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+  DEPENDS wl_tests
+)
+
+install (
+  FILES ${CMAKE_CURRENT_BINARY_DIR}/VERSION
+  DESTINATION ${WL_INSTALL_DATADIR}
+  CONFIGURATIONS Debug;Release
+  COMPONENT CoreVersionFile
+)
+
+# Installation.
+add_subdirectory(doc)
+add_subdirectory(po)
+add_subdirectory(src)
+
+# install files to the correct locations here
+install(
+  DIRECTORY
+    campaigns
+    i18n
+    tribes
+    txts
+    world
+    pics
+    scripting
+  DESTINATION ${WL_INSTALL_DATADIR}
+  CONFIGURATIONS Debug;Release
+  COMPONENT CoreDataFiles
+)
+
+install(
+  DIRECTORY
+    maps
+  DESTINATION ${WL_INSTALL_DATADIR}
+  CONFIGURATIONS Debug;Release
+  COMPONENT MapFiles
+)
+
+install(
+  DIRECTORY
+    music
+	sound
+  DESTINATION ${WL_INSTALL_DATADIR}
+  CONFIGURATIONS Debug;Release
+  COMPONENT MusicFiles
+)
+
+install(
+  FILES
+    COPYING
+    CREDITS
+    ChangeLog
+  DESTINATION ${WL_INSTALL_DATADIR}
+  CONFIGURATIONS Debug;Release
+  COMPONENT CoreLicenseFiles
+)
+
+install(
+  DIRECTORY
+    doc
+  DESTINATION ${WL_INSTALL_DATADIR}
+  CONFIGURATIONS Debug
+  COMPONENT DocFiles
+  PATTERN "CMakeLists.txt" EXCLUDE
+)
+
+set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES locale)
+
+install(
+  DIRECTORY
+    ${CMAKE_CURRENT_BINARY_DIR}/locale/
+  DESTINATION ${WL_INSTALL_DATADIR}/locale
+  CONFIGURATIONS Debug;Release
+  COMPONENT CoreLanguageFiles
+)

=== added file 'appveyor.yml'
--- appveyor.yml	1970-01-01 00:00:00 +0000
+++ appveyor.yml	2016-01-05 10:27:43 +0000
@@ -0,0 +1,33 @@
+install:
+  # Installing various utilities
+  - choco install -y InnoSetup
+  - set PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;"C:\Program Files (x86)\Inno Setup 5";%PATH%
+  - cmd: "bash --login -c \"update-core\""
+  - cmd: "bash --login -c \"pacman -Syu --noconfirm\""
+  - cmd: "bash --login -c \"pacman --noconfirm -S mingw-w64-x86_64-ninja mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2_net mingw-w64-x86_64-SDL2_ttf mingw-w64-x86_64-SDL2_mixer mingw-w64-x86_64-SDL2_image mingw-w64-x86_64-glew\""
+  # Hack, there are wrong dependencies atm in the msys2 packages (SDL_image, libwebp)  
+  - cmd: copy c:\msys64\mingw64\bin\libwebp-6.dll c:\msys64\mingw64\bin\libwebp-5.dll
+
+shallow_clone: true
+
+build: 
+  verbosity: detailed
+
+build_script:
+  - cmd: cd c:\projects
+  - cmd: md build
+  - cmd: cd build
+  - cmd: cmake -G "Ninja" -DOPTION_GLEW_STATIC=ON -DCMAKE_BUILD_TYPE=Release ..\widelands
+  - cmd: ninja
+  - cmd: strip -sv src\widelands.exe
+  - cmd: ISCC /q /fWidelands-git-%APPVEYOR_BUILD_VERSION% ..\widelands\utils\win32\innosetup\Widelands.iss
+  - appveyor PushArtifact c:\projects\Widelands-git-%APPVEYOR_BUILD_VERSION%.exe
+
+artifacts:
+  - path: Widelands-git-$(APPVEYOR_BUILD_VERSION).exe
+    name: Widelands Setup
+
+platform: 
+  - x64
+
+version: "{branch}-{build}"

=== modified file 'cmake/Modules/FindGLEW.cmake'
--- cmake/Modules/FindGLEW.cmake	2015-10-20 19:56:34 +0000
+++ cmake/Modules/FindGLEW.cmake	2016-01-05 10:27:43 +0000
@@ -1,56 +1,60 @@
-# - Try to find GLEW
-# Once done this will define
-#  
-#  GLEW_FOUND        - system has GLEW
-#  GLEW_INCLUDE_DIR  - the GLEW include directory
-#  GLEW_LIBRARY_DIR  - where the libraries are
-#  GLEW_LIBRARY      - Link these to use GLEW
-#   
-
-IF (GLEW_INCLUDE_DIR)
-  # Already in cache, be silent
-  SET(GLEW_FIND_QUIETLY TRUE)
-ENDIF (GLEW_INCLUDE_DIR)
-
-if( WIN32 )
-   if( MSVC80 )
-       set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ 8/VC" )
-   endif( MSVC80 )
-   if( MSVC71 )
-       set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003/Vc7" )
-   endif( MSVC71 )
-   FIND_PATH( GLEW_INCLUDE_DIR gl/glew.h gl/wglew.h
-              PATHS c:/glew/include ${COMPILER_PATH}/PlatformSDK/Include )
-   SET( GLEW_NAMES glew32 glew32s)
-   FIND_LIBRARY( GLEW_LIBRARY
-                 NAMES ${GLEW_NAMES}
-                 PATHS c:/glew/lib ${COMPILER_PATH}/PlatformSDK/Lib )
-   # Static library version requires extra flag
-   GET_FILENAME_COMPONENT( GLEW_LIBRARY_NAME ${GLEW_LIBRARY} NAME_WE )
-   if ( GLEW_LIBRARY_NAME STREQUAL "glew32s" OR OPTION_GLEW_STATIC) 
-       SET(GLEW_EXTRA_DEFINITIONS "-DGLEW_STATIC")
-   else ( GLEW_LIBRARY_NAME STREQUAL "glew32s" OR OPTION_GLEW_STATIC)
-       SET(GLEW_EXTRA_DEFINITIONS )
-   endif()
-
-else( WIN32 )
-   FIND_PATH( GLEW_INCLUDE_DIR glew.h wglew.h
-              PATHS /usr/local/include /usr/include
-              PATH_SUFFIXES gl/ GL/ )
-   SET( GLEW_NAMES glew GLEW )
-   FIND_LIBRARY( GLEW_LIBRARY
-                 NAMES ${GLEW_NAMES}
-                 PATHS /usr/lib /usr/local/lib )
-endif( WIN32 )
-
-GET_FILENAME_COMPONENT( GLEW_LIBRARY_DIR ${GLEW_LIBRARY} PATH )
-
-IF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
-   SET(GLEW_FOUND TRUE)
-    SET( GLEW_LIBRARY_DIR ${GLEW_LIBRARY} )
-ELSE (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
-   SET( GLEW_FOUND FALSE )
-   SET( GLEW_LIBRARY_DIR )
-   SET( GLEW_EXTRA_DEFINITIONS )
-ENDIF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
-
+# - Try to find GLEW
+# Once done this will define
+#  
+#  GLEW_FOUND        - system has GLEW
+#  GLEW_INCLUDE_DIR  - the GLEW include directory
+#  GLEW_LIBRARY_DIR  - where the libraries are
+#  GLEW_LIBRARY      - Link these to use GLEW
+#   
+
+IF (GLEW_INCLUDE_DIR)
+  # Already in cache, be silent
+  SET(GLEW_FIND_QUIETLY TRUE)
+ENDIF (GLEW_INCLUDE_DIR)
+
+if( WIN32 )
+   if( MSVC80 )
+       set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ 8/VC" )
+   endif( MSVC80 )
+   if( MSVC71 )
+       set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003/Vc7" )
+   endif( MSVC71 )
+   FIND_PATH( GLEW_INCLUDE_DIR gl/glew.h gl/wglew.h
+              PATHS c:/glew/include ${COMPILER_PATH}/PlatformSDK/Include )
+   SET( GLEW_NAMES glew32 glew32s)
+   if ( OPTION_GLEW_STATIC )
+       #find static lib .a instead of dynamic lib .dll.a
+       set( CMAKE_FIND_LIBRARY_SUFFIXES .a )
+   endif( OPTION_GLEW_STATIC )	
+   FIND_LIBRARY( GLEW_LIBRARY
+                 NAMES ${GLEW_NAMES}
+                 PATHS c:/glew/lib ${COMPILER_PATH}/PlatformSDK/Lib )
+   # Static library version requires extra flag
+   GET_FILENAME_COMPONENT( GLEW_LIBRARY_NAME ${GLEW_LIBRARY} NAME_WE )
+   if ( GLEW_LIBRARY_NAME STREQUAL "glew32s" OR OPTION_GLEW_STATIC) 
+       SET(GLEW_EXTRA_DEFINITIONS "-DGLEW_STATIC")
+   else ( GLEW_LIBRARY_NAME STREQUAL "glew32s" OR OPTION_GLEW_STATIC)
+       SET(GLEW_EXTRA_DEFINITIONS )
+   endif()
+
+else( WIN32 )
+   FIND_PATH( GLEW_INCLUDE_DIR glew.h wglew.h
+              PATHS /usr/local/include /usr/include
+              PATH_SUFFIXES gl/ GL/ )
+   SET( GLEW_NAMES glew GLEW )
+   FIND_LIBRARY( GLEW_LIBRARY
+                 NAMES ${GLEW_NAMES}
+                 PATHS /usr/lib /usr/local/lib )
+endif( WIN32 )
+
+GET_FILENAME_COMPONENT( GLEW_LIBRARY_DIR ${GLEW_LIBRARY} PATH )
+
+IF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
+   SET(GLEW_FOUND TRUE)
+    SET( GLEW_LIBRARY_DIR ${GLEW_LIBRARY} )
+ELSE (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
+   SET( GLEW_FOUND FALSE )
+   SET( GLEW_LIBRARY_DIR )
+   SET( GLEW_EXTRA_DEFINITIONS )
+ENDIF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
+

=== modified file 'utils/detect_revision.py'
--- utils/detect_revision.py	2015-07-23 10:46:52 +0000
+++ utils/detect_revision.py	2016-01-05 10:27:43 +0000
@@ -1,94 +1,98 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-# Tries to find out the repository revision of the current working directory
-# using bzr or debian/changelog
-
-import os
-import sys
-import os.path as p
-import subprocess
-import re
-import string
-
-# Support for bzr local branches
-try:
-    from bzrlib.branch import Branch
-    from bzrlib.bzrdir import BzrDir
-    from bzrlib.errors import NotBranchError
-    __has_bzrlib = True
-except ImportError:
-    __has_bzrlib = False
-
-base_path = p.abspath(p.join(p.dirname(__file__), p.pardir))
-
-def detect_debian_version():
-    """
-    Parse bzr revision and branch information from debian/changelog
-    """
-    if sys.platform.startswith('win'):
-        return None
-    fname = p.join(base_path, "debian/changelog")
-    if not p.exists(fname):
-        return None
-    f = open(fname)
-    version = f.readline()
-    #bzr5905-210307251546
-    pattern = re.compile("bzr[0-9]+-[0-9]+")
-    m = pattern.search(version)
-    if m == None:
-        return None
-    version = version[m.start():m.end()]
-    return version
-
-def detect_git_revision():
-    if not sys.platform.startswith('linux') and \
-       not sys.platform.startswith('darwin'):
-        return None
-
-    is_git_workdir=os.system('git show >/dev/null 2>&1')==0
-    if is_git_workdir:
-        git_revnum=os.popen('git show --pretty=format:%h | head -n 1').read().rstrip()
-        return 'unofficial-git-%s' % (git_revnum,)
-
-
-def check_for_explicit_version():
-    """
-    Checks for a file WL_RELEASE in the root directory. It then defaults to
-    this version without further trying to find which revision we're on
-    """
-    fname = p.join(base_path, "WL_RELEASE")
-    if os.path.exists(fname):
-        return open(fname).read().strip()
-
-def detect_bzr_revision():
-    if __has_bzrlib:
-        b = BzrDir.open(base_path).open_branch()
-        revno, nick = b.revno(), b.nick
-    else:
-        # Windows stand alone installer do not come with bzrlib. We try to
-        # parse the output of bzr then directly
-        try:
-            run_bzr = lambda subcmd: subprocess.Popen(
-                    ["bzr",subcmd], stdout=subprocess.PIPE, cwd=base_path
-                ).stdout.read().strip().decode("utf-8")
-            revno = run_bzr("revno")
-            nick = run_bzr("nick")
-        except OSError:
-            return None
-    return "bzr%s[%s] " % (revno, nick)
-
-def detect_revision():
-    for func in (
-        check_for_explicit_version,
-        detect_git_revision,
-        detect_bzr_revision,
-        detect_debian_version):
-        rv = func()
-        if rv:
-            return rv
-
-    return 'REVDETECT-BROKEN-PLEASE-REPORT-THIS'
-
-if __name__ == "__main__":
-    print(detect_revision())
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# Tries to find out the repository revision of the current working directory
+# using bzr or debian/changelog
+
+import os
+import sys
+import os.path as p
+import subprocess
+import re
+import string
+
+# Support for bzr local branches
+try:
+    from bzrlib.branch import Branch
+    from bzrlib.bzrdir import BzrDir
+    from bzrlib.errors import NotBranchError
+    __has_bzrlib = True
+except ImportError:
+    __has_bzrlib = False
+
+base_path = p.abspath(p.join(p.dirname(__file__), p.pardir))
+
+def detect_debian_version():
+    """
+    Parse bzr revision and branch information from debian/changelog
+    """
+    if sys.platform.startswith('win'):
+        return None
+    fname = p.join(base_path, "debian/changelog")
+    if not p.exists(fname):
+        return None
+    f = open(fname)
+    version = f.readline()
+    #bzr5905-210307251546
+    pattern = re.compile("bzr[0-9]+-[0-9]+")
+    m = pattern.search(version)
+    if m == None:
+        return None
+    version = version[m.start():m.end()]
+    return version
+
+def detect_git_revision():
+    if not sys.platform.startswith('linux') and \
+       not sys.platform.startswith('darwin'):
+        git_revnum=os.popen('git show --pretty=format:%h | head -n 1').read().rstrip()
+        if git_revnum:
+            return 'unofficial-git-%s' % (git_revnum,)
+        else:
+            return None
+
+    is_git_workdir=os.system('git show >/dev/null 2>&1')==0
+    if is_git_workdir:
+        git_revnum=os.popen('git show --pretty=format:%h | head -n 1').read().rstrip()
+        return 'unofficial-git-%s' % (git_revnum,)
+
+
+def check_for_explicit_version():
+    """
+    Checks for a file WL_RELEASE in the root directory. It then defaults to
+    this version without further trying to find which revision we're on
+    """
+    fname = p.join(base_path, "WL_RELEASE")
+    if os.path.exists(fname):
+        return open(fname).read().strip()
+
+def detect_bzr_revision():
+    if __has_bzrlib:
+        b = BzrDir.open(base_path).open_branch()
+        revno, nick = b.revno(), b.nick
+    else:
+        # Windows stand alone installer do not come with bzrlib. We try to
+        # parse the output of bzr then directly
+        try:
+            run_bzr = lambda subcmd: subprocess.Popen(
+                    ["bzr",subcmd], stdout=subprocess.PIPE, cwd=base_path
+                ).stdout.read().strip().decode("utf-8")
+            revno = run_bzr("revno")
+            nick = run_bzr("nick")
+        except OSError:
+            return None
+    return "bzr%s[%s] " % (revno, nick)
+
+def detect_revision():
+    for func in (
+        check_for_explicit_version,
+        detect_git_revision,
+        detect_bzr_revision,
+        detect_debian_version):
+        rv = func()
+        if rv:
+            return rv
+
+    return 'REVDETECT-BROKEN-PLEASE-REPORT-THIS'
+
+if __name__ == "__main__":
+    print(detect_revision())

=== modified file 'utils/win32/innosetup/Widelands.iss'
--- utils/win32/innosetup/Widelands.iss	2015-03-01 09:21:20 +0000
+++ utils/win32/innosetup/Widelands.iss	2016-01-05 10:27:43 +0000
@@ -22,10 +22,10 @@
 
 ;Version String
 #define Name "Widelands"
-#define VerName "Widelands Build18"
-#define VerNumber "0.18.0.1"
+#define VerName "Widelands Build19"
+#define VerNumber "0.19.0.1"
 #define Copyright "Widelands Development Team 2001-2015"
-#define SetupFileName "Widelands-Build18-win32"
+#define SetupFileName "Widelands-Build19-win64"
 
 ;General String
 #define Publisher "Widelands Development Team"
@@ -75,8 +75,6 @@
 Name: french;    MessagesFile: compiler:Languages\French.isl
 Name: german;    MessagesFile: compiler:Languages\German.isl
 Name: polish;    MessagesFile: compiler:Languages\Polish.isl
-Name: swedish;   MessagesFile: compiler:Languages\Swedish.isl
-Name: slovak;    MessagesFile: compiler:Languages\Slovak.isl
 Name: russian;   MessagesFile: compiler:Languages\Russian.isl
 Name: hungarian; MessagesFile: compiler:Languages\Hungarian.isl
 Name: dutch;     MessagesFile: compiler:Languages\Dutch.isl
@@ -92,7 +90,7 @@
 [Files]
 Source: ..\..\..\campaigns\*;  DestDir: {app}\campaigns\; Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
 Source: ..\..\..\i18n\*;       DestDir: {app}\i18n\;      Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
-Source: ..\..\..\locale\*;     DestDir: {app}\locale\;    Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
+Source: ..\..\..\..\build\locale\*;     DestDir: {app}\locale\;    Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
 Source: ..\..\..\maps\*;       DestDir: {app}\maps\;      Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ;                  Components: " Maps"
 Source: ..\..\..\music\*;      DestDir: {app}\music\;     Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ;                  Components: " Music"
 Source: ..\..\..\pics\*;       DestDir: {app}\pics\;      Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
@@ -100,13 +98,36 @@
 Source: ..\..\..\tribes\*;     DestDir: {app}\tribes\;    Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
 Source: ..\..\..\txts\*;       DestDir: {app}\txts\;      Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
 Source: ..\..\..\world\*;     DestDir: {app}\world\;    Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
-Source: ..\..\..\global\*;     DestDir: {app}\global\;    Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
-Source: ..\..\..\*.dll;                                  DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
-Source: ..\..\..\widelands.exe;                          DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
-Source: ..\..\..\ChangeLog;                              DestDir: {app};            Flags: ignoreversion; DestName: ChangeLog.txt;                              Components: " Widelands"
-Source: ..\..\..\COPYING;                                DestDir: {app};            Flags: ignoreversion; DestName: COPYING.txt;                                Components: " Widelands"
-Source: ..\..\..\CREDITS;                                DestDir: {app};            Flags: ignoreversion; DestName: CREDITS.txt;                                Components: " Widelands"
-Source: .\WL-Editor.ico;              DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libicuuc56.dll;               DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libbz2-1.dll;                 DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libfreetype-6.dll;            DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libgcc_s_seh-1.dll;           DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libglib-2.0-0.dll;            DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libharfbuzz-0.dll;            DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libicudt56.dll;               DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libicuuc56.dll;               DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libjpeg-8.dll;                DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\liblzma-5.dll;                DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libmad-0.dll;                 DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libogg-0.dll;                 DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libpng16-16.dll;              DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libstdc++-6.dll;              DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libtiff-5.dll;                DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libvorbis-0.dll;              DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libvorbisfile-3.dll;          DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libwebp-5.dll;                DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\libwinpthread-1.dll;          DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\SDL2.dll;                     DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\SDL2_image.dll;               DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\SDL2_mixer.dll;               DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\SDL2_net.dll;                 DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\SDL2_ttf.dll;                 DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: c:\msys64\mingw64\bin\zlib1.dll;                    DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: ..\..\..\..\build\src\widelands.exe;                DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
+Source: ..\..\..\ChangeLog;                                 DestDir: {app};            Flags: ignoreversion; DestName: ChangeLog.txt;                              Components: " Widelands"
+Source: ..\..\..\COPYING;                                   DestDir: {app};            Flags: ignoreversion; DestName: COPYING.txt;                                Components: " Widelands"
+Source: ..\..\..\CREDITS;                                   DestDir: {app};            Flags: ignoreversion; DestName: CREDITS.txt;                                Components: " Widelands"
+Source: .\WL-Editor.ico;                                    DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
 
 [INI]
 Filename: {app}\{#UrlName};  Section: InternetShortcut; Key: URL; String: {#URL}


Follow ups