← Back to team overview

widelands-dev team mailing list archive

Re: [Merge] lp:~widelands-dev/widelands/cmake-reworked into lp:widelands

 

The Built target for run_codecheck_for_* is no actually running the codecheck. It is the target that depends on the codecheck run - but the codecheck run is not actually run (please verify that this analysis is correct by adding message() calls into cmake/codecheck/CodeCheck.cmake - the actual codecheck run). I am using ninja (instead of make, see http://martine.github.io/ninja/) and I hardly notice these calls. It seems slower for make though...

One comment in general: Inline comments are not as useful as I thought. First, they are hard to see in a long diff (and there is no way to jump to them directly), second the diff only shows the first 5000 lines changed which is less than this change actually has. Inline comments in the source are easier to work with IMHO, though the discussion is not as public :(.

Diff comments:

> === modified file 'CMakeLists.txt'
> --- CMakeLists.txt	2014-05-27 19:10:20 +0000
> +++ CMakeLists.txt	2014-06-16 13:55:52 +0000
> @@ -1,280 +1,155 @@
>  project (widelands)
>  
> -cmake_minimum_required (VERSION 2.6)
> -
> -# Used as versioning, if WL_VERSION_STANDARD is definded.
> -# TODO(sirver): This is redundant and should not be used anywhere. We have a
> -# script that determines the version.
> -if (WL_VERSION_STANDARD)
> -	# Set the values below for standard versioning.
> -	# As long as WL_VERSION_MAJOR is 0, the naming will be in form of
> -	# "Build${WL_VERSION_MINOR}" + ".${WL_VERSION_PATCH}" if WL_VERSION_PATCH is
> -	# defined.
> -	set (WL_VERSION_MAJOR 0)
> -	set (WL_VERSION_MINOR 19)
> -
> -	# Just define in case that we release patches for official builds
> -	#set (WL_VERSION_PATCH 90)
> -
> -	# An addition to the version name (e.g. RC1, DEV, ...)
> -	set (WL_VERSION_ADDITION DEV)
> -endif (WL_VERSION_STANDARD)
> -
> -# Define the directory structure for installation - will be hardcoded in WL bin
> -# If nothing is given on command line, set the standard values depending on platform.
> -
> -if (WIN32 OR APPLE OR WL_PORTABLE)
> -  if (NOT WL_INSTALL_PREFIX OR WL_INSTALL_PREFIX STREQUAL "")
> -    set (WL_INSTALL_PREFIX ".")
> -  endif (NOT WL_INSTALL_PREFIX OR WL_INSTALL_PREFIX STREQUAL "")
> -
> -  if (NOT WL_INSTALL_DATADIR OR WL_INSTALL_DATADIR STREQUAL "")
> -    set (WL_INSTALL_DATADIR ".")
> -  endif (NOT WL_INSTALL_DATADIR OR WL_INSTALL_DATADIR STREQUAL "")
> -
> -  if (NOT WL_INSTALL_LOCALEDIR OR WL_INSTALL_LOCALEDIR STREQUAL "")
> -    set (WL_INSTALL_LOCALEDIR "locale")
> -  endif (NOT WL_INSTALL_LOCALEDIR OR WL_INSTALL_LOCALEDIR STREQUAL "")
> -
> -  if (NOT WL_INSTALL_BINDIR OR WL_INSTALL_BINDIR STREQUAL "")
> -    set (WL_INSTALL_BINDIR ".")
> -  endif (NOT WL_INSTALL_BINDIR OR WL_INSTALL_BINDIR STREQUAL "")
> -elseif (WIN32 OR APPLE OR WL_PORTABLE)
> -  if (NOT WL_INSTALL_PREFIX OR WL_INSTALL_PREFIX STREQUAL "")
> -    set (WL_INSTALL_PREFIX "/usr/local")
> -  endif (NOT WL_INSTALL_PREFIX OR WL_INSTALL_PREFIX STREQUAL "")
> -
> -  if (NOT WL_INSTALL_DATADIR OR WL_INSTALL_DATADIR STREQUAL "")
> -    set (WL_INSTALL_DATADIR "share/games/widelands")
> -  endif (NOT WL_INSTALL_DATADIR OR WL_INSTALL_DATADIR STREQUAL "")
> -
> -  if (NOT WL_INSTALL_LOCALEDIR OR WL_INSTALL_LOCALEDIR STREQUAL "")
> -    set (WL_INSTALL_LOCALEDIR "${WL_INSTALL_PREFIX}/${WL_INSTALL_DATADIR}/locale")
> -  endif (NOT WL_INSTALL_LOCALEDIR OR WL_INSTALL_LOCALEDIR STREQUAL "")
> -
> -  if (NOT WL_INSTALL_BINDIR OR WL_INSTALL_BINDIR STREQUAL "")
> -    set (WL_INSTALL_BINDIR "games")
> -  endif (NOT WL_INSTALL_BINDIR OR WL_INSTALL_BINDIR STREQUAL "")
> -endif (WIN32 OR APPLE OR WL_PORTABLE)
> -
> -# General install prefix for config.h
> -if (NOT WL_INSTALL_PREFIX OR WL_INSTALL_PREFIX STREQUAL "")
> -	set (WL_INSTALL_PREFIX /usr/local)
> -endif (NOT WL_INSTALL_PREFIX OR WL_INSTALL_PREFIX STREQUAL "")
> -
> -# Widelands binary directory
> -if (NOT WL_INSTALL_BINDIR OR WL_INSTALL_BINDIR STREQUAL "")
> -	set (WL_INSTALL_BINDIR games)
> -endif (NOT WL_INSTALL_BINDIR OR WL_INSTALL_BINDIR STREQUAL "")
> -
> -# Widelands data directory
> -if (NOT WL_INSTALL_DATADIR OR WL_INSTALL_DATADIR STREQUAL "")
> -	set (WL_INSTALL_DATADIR share/games/widelands)
> -endif (NOT WL_INSTALL_DATADIR OR WL_INSTALL_DATADIR STREQUAL "")
> -
> -# Widelands locale directory
> -if (NOT WL_INSTALL_LOCALEDIR OR WL_INSTALL_LOCALEDIR STREQUAL "")
> -	set (WL_INSTALL_LOCALEDIR ${WL_INSTALL_PREFIX}/${WL_INSTALL_DATADIR}/locale)
> -endif (NOT WL_INSTALL_LOCALEDIR OR WL_INSTALL_LOCALEDIR STREQUAL "")
> +cmake_minimum_required (VERSION 2.8)

I think we use at leas one. I changed the version number when removing this TODO.

> -  #TODO: look into replacing this with CMAKE_CXX_COMPILER_VERSION when we move to a more recent CMake version than 2.6

But when 12.04 contains 2.8.7 we are golden anyways, right? 2.8.0 has been released in 2009 - distributions should have picked that up by now.

>  
>  if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
> -  message(FATAL_ERROR "Build-directory and source-directory are the same!")
> +  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).
> +macro(_set_if_unset VAR VALUE)
> +  if (NOT ${VAR} OR ${VAR} STREQUAL "")
> +    set (${VAR} ".")
> +  endif()
> +endmacro(_set_if_unset)
> +
> +if(WIN32 OR APPLE OR WL_PORTABLE)
> +  _set_if_unset(WL_INSTALL_PREFIX ".")
> +  _set_if_unset(WL_INSTALL_DATADIR ".")
> +  _set_if_unset(WL_INSTALL_LOCALEDIR "locale")
> +  _set_if_unset(WL_INSTALL_BINDIR ".")
> +else()
> +  _set_if_unset(WL_INSTALL_PREFIX "/usr/local")
> +  _set_if_unset(WL_INSTALL_DATADIR "share/games/widelands")
> +  _set_if_unset(WL_INSTALL_LOCALEDIR "${WL_INSTALL_PREFIX}/${WL_INSTALL_DATADIR}/locale")
> +  _set_if_unset(WL_INSTALL_BINDIR "games")
> +endif()
> +
>  if (CMAKE_INSTALL_PREFIX STREQUAL CMAKE_BINARY_DIR)
> -  message(FATAL_ERROR "Build-directory and install-directory are the same!")
> +  message(FATAL_ERROR "Build directory and install directory must not be the same.")
>  endif (CMAKE_INSTALL_PREFIX STREQUAL CMAKE_BINARY_DIR)
>  
> +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 (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 (${FILE_WL_RELEASE} STREQUAL "FILE_WL_RELEASE-NOTFOUND")
> -    set (CMAKE_BUILD_TYPE Release)
> -  endif (${FILE_WL_RELEASE} STREQUAL "FILE_WL_RELEASE-NOTFOUND")
> +  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 "")
>  
> -set (CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE})
> -
> -# Unit tests are built per default in Debug and not build in Release
> -if (CMAKE_BUILD_TYPE STREQUAL "Debug")
> -  option (WL_UNIT_TESTS "build and run unit tests (requires boost_unit_test_framework)" ON)
> -else (CMAKE_BUILD_TYPE STREQUAL "Debug")
> -  option (WL_UNIT_TESTS "build and run unit tests (requires boost_unit_test_framework)" OFF)
> -endif (CMAKE_BUILD_TYPE STREQUAL "Debug")
> -
> -# we only include Boost Headers to the main executable, no libraries
> -# unit_test_framework is for testing only
> -if (WL_UNIT_TESTS)
> -  message(STATUS "Enabled unit tests")
> -  if (DEFINED MSVC)

Yes we are. But with the c++11 changes and this big refactoring it is very, very unlikely that VSC++ still works the way it did 2 years ago. I am perfectly willing to bring the work arounds back as soon as somebody shows up who wants to work on VC++. I removed everything in one commit, so it should be easy to bring back.

> -    set (BUILD_SHARED_LIBS OFF)
> -	set (Boost_USE_STATIC_RUNTIME ON)
> -	set (Boost_USE_STATIC_LIBS ON)
> -  else (DEFINED MSVC)
> -    set (Boost_USE_STATIC_LIBS  OFF)
> -  endif (DEFINED MSVC)
> -  set (Boost_FIND_COMPONENTS unit_test_framework)
> -  set (Boost_USE_MULTITHREADED ON)
> -  set (Boost_DETAILED_FAILURE_MSG ON)
> -  find_package(Boost 1.48
> -    COMPONENTS
> -      unit_test_framework
> -      regex
> -    REQUIRED)
> -
> -  if (NOT DEFINED MSVC)
> -  # If boost unit test library is linked dynamically, BOOST_TEST_DYN_LINK must be defined
> -    string( REGEX MATCH ".a$" BOOST_STATIC_UNIT_TEST_LIB ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
> -    if (NOT BOOST_STATIC_UNIT_TEST_LIB)
> -      add_definitions(-DBOOST_TEST_DYN_LINK)
> -    endif (NOT BOOST_STATIC_UNIT_TEST_LIB)
> -  endif(NOT DEFINED MSVC)
> -
> -  include(CTest)
> -  enable_testing()
> -
> -  #automatic unit testing hook, must be updated to reflect all tests
> -  #if this is too intricate, we can also have this as an automatic detection
> -  #but the current way allows to disable certain checks if they are taking
> -  #too much time when ran every compile time
> -  add_custom_target(autotest ALL
> -    COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure
> -    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
> -    DEPENDS widelands;test_widelands_scripting;test_economy;test_io_filesystem
> -  )
> -else (WL_UNIT_TESTS)
> -  message(STATUS "Disabled Unit Tests")
> -  find_package(Boost 1.48
> -    COMPONENTS
> -      regex
> -    REQUIRED)
> -endif (WL_UNIT_TESTS)
> -
> -option (WL_STRICT "If strict compilation mode is requested (almost every warning is an error)" OFF)
> -
> -set (PARAMETER_COMPILERFLAG_BOOST_INCLUDE_DIR "-isystem ${Boost_INCLUDE_DIR}")
> -set (PARAMETER_COMPILERFLAG_GENERICWARNINGS "-Wall -Wextra")
> -set (PARAMETER_COMPILERFLAG_EXTRAWARNINGS "-Wformat -Wformat-nonliteral -Wformat-security -Wformat-y2k -Winit-self -Winvalid-pch -Wmissing-include-dirs -Wold-style-cast -Woverlength-strings -Wpacked -Wpointer-arith -Wredundant-decls -Wshadow -Wsign-promo -Wswitch-default -Wundef -Wunused -Wunused-macros")
> -set (PARAMETER_COMPILERFLAG_GCCWARNINGS "-Wlogical-op -Wsync-nand -Wtrampolines")
> -set (PARAMETER_COMPILERFLAG_STRICT "-Werror -Wno-error=old-style-cast -Wno-error=deprecated-declarations -fdiagnostics-show-option")
> -include(CheckCXXCompilerFlag) #this include should be safe
> -
> -# Enable c++11 features.
> -if (NOT WIN32)
> -  set (PARAMETER_COMPILERFLAG_CXXSTD "-std=c++11")
> +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)
> +
> +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
> +)
> +
> +include(CheckCXXCompilerFlag)
> +function(_add_flag_if_supported VAR_NAME FLAG TEST_NAME)
> +  CHECK_CXX_COMPILER_FLAG(${FLAG} ${TEST_NAME})
> +  if(${TEST_NAME})
> +    if (${VAR_NAME})
> +      set(${VAR_NAME} "${${VAR_NAME}} ${FLAG}" PARENT_SCOPE)
> +    else()
> +      set(${VAR_NAME} "${FLAG}" PARENT_SCOPE)
> +    endif()
> +  endif()
> +endfunction()
> +
> +_add_flag_if_supported(WL_GENERIC_CXX_FLAGS "-std=c++11" CXX_SUPPORTS_STD_CPP11)
> +_add_flag_if_supported(WL_GENERIC_CXX_FLAGS "-std=gnu++11" CXX_SUPPORTS_STD_CPP11_GNU)
> +
> +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()
> -  set (PARAMETER_COMPILERFLAG_CXXSTD "-std=gnu++11")
> -endif()
> -
> -if(CMAKE_COMPILER_IS_GNUCXX)
> -  #TODO: look into replacing this with CMAKE_CXX_COMPILER_VERSION when we move to a more recent CMake version than 2.6
> -  EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
> -  if (GCC_VERSION VERSION_LESS 4.7)
> -    message(FATAL_ERROR "You seem to be running an older version of GCC. Widelands use various C++11 features, which require GCC 4.7 or a later version.")
> -  endif()
> -endif()
> -
> -CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_CXXSTD} Compiler_std_supported)
> -IF (Compiler_std_supported)
> -  set (WL_COMPILERFLAG_CXXSTD " ${PARAMETER_COMPILERFLAG_CXXSTD}") #the space is on purpose!
> -ENDIF (Compiler_std_supported)
> -
> -CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_BOOST_INCLUDE_DIR} Compiler_boost_include_dir_supported)
> -IF (Compiler_boost_include_dir_supported)
> -  IF (CMAKE_BUILD_TYPE STREQUAL "Debug")
> -    set (WL_COMPILERFLAG_BOOST_INCLUDE_DIR " ${PARAMETER_COMPILERFLAG_BOOST_INCLUDE_DIR}") #the space is on purpose!
> -  ELSE (CMAKE_BUILD_TYPE STREQUAL "Debug")
> -    include_directories(SYSTEM ${Boost_INCLUDE_DIR})
> -  ENDIF (CMAKE_BUILD_TYPE STREQUAL "Debug")
> -ENDIF()
> -
> -CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_GENERICWARNINGS} Compiler_generic_warnings_supported)
> -IF (Compiler_generic_warnings_supported)
> -  set (WL_COMPILERFLAG_GENERICWARNINGS " ${PARAMETER_COMPILERFLAG_GENERICWARNINGS}") #the space is on purpose!
> -ENDIF (Compiler_generic_warnings_supported)
> -
> -CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_EXTRAWARNINGS} Compiler_extra_warnings_supported)
> -IF (Compiler_extra_warnings_supported)
> -  set (WL_COMPILERFLAG_EXTRAWARNINGS " ${PARAMETER_COMPILERFLAG_EXTRAWARNINGS}") #the space is on purpose!
> -ELSE (Compiler_extra_warnings_supported)
> -  message("Warning: couldn't set the following compiler options: ${PARAMETER_COMPILERFLAG_EXTRAWARNINGS}. Most likely these options are available in a newer release of your compiler.")
> -ENDIF (Compiler_extra_warnings_supported)
> -
> -CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_GCCWARNINGS} Compiler_gcc_warnings_supported)
> -IF (Compiler_gcc_warnings_supported)
> -  set (WL_COMPILERFLAG_GCCWARNINGS " ${PARAMETER_COMPILERFLAG_GCCWARNINGS}") #the space is on purpose!
> -ELSE (Compiler_gcc_warnings_supported)
> -  message("Warning: could not add additional GCC-specific warning options: ${PARAMETER_COMPILERFLAG_GCCWARNINGS}. Most likely you are using a different compiler, like Clang/LLVM or Visual Studio.")
> -ENDIF (Compiler_gcc_warnings_supported)
> -
> -IF (WL_STRICT)
> -  CHECK_CXX_COMPILER_FLAG(${PARAMETER_COMPILERFLAG_STRICT} Compiler_strict_mode_supported)
> -  IF (Compiler_strict_mode_supported)
> -    set (WL_COMPILERFLAG_STRICT " ${PARAMETER_COMPILERFLAG_STRICT}") #the space is on purpose!
> -    message(STATUS "Strict mode enabled, expect compilation errors instead of compilation warnings!")
> -  ENDIF (Compiler_strict_mode_supported)
> -ENDIF (WL_STRICT)
> -
> -# CMAKE only defines "-g", but we need -DDEBUG also, and we need -DNOPARACHUTE (for SDL) in Debug
> -set (CMAKE_CXX_FLAGS_DEBUG "${WL_COMPILERFLAG_CXXSTD} -g -DDEBUG -DNOPARACHUTE${WL_COMPILERFLAG_BOOST_INCLUDE_DIR}${WL_COMPILERFLAG_GENERICWARNINGS}${WL_COMPILERFLAG_EXTRAWARNINGS}${WL_COMPILERFLAG_GCCWARNINGS}${WL_COMPILERFLAG_STRICT}" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)
> -
> -set (WL_COMPILERFLAG_OPTIMIZATIONS "-O3")
> -
> -set (CMAKE_CXX_FLAGS_RELEASE "${WL_COMPILERFLAG_CXXSTD} ${WL_COMPILERFLAG_OPTIMIZATIONS} -DNDEBUG${WL_COMPILERFLAG_GENERICWARNINGS}${WL_COMPILERFLAG_EXTRAWARNINGS}${WL_COMPILERFLAG_GCCWARNINGS}${WL_COMPILERFLAG_STRICT}" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)
> -
> -#If building with MSVC, then check for 3rdparty libs
> -if (DEFINED MSVC)
> -  set (WL_3RDPARTY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty" CACHE STRING "Widelands 3rdparty dir")
> -  set (CMAKE_INCLUDE_PATH "${WL_3RDPARTY_DIR}/include;${WL_3RDPARTY_DIR}/include/sdl")
> -  set (CMAKE_LIBRARY_PATH "${WL_3RDPARTY_DIR}/lib")
> -
> -  add_definitions( -Dand=&& -Dor=|| -Dnot=! -Dxor=^ )
> -  add_definitions( -Dstrcasecmp=_stricmp )
> -  add_definitions( -Dstrncasecmp=_strnicmp )
> -  add_definitions( -Dsnprintf=_snprintf )
> -  add_definitions( -Drint=floor )
> -  add_definitions( -Dstrtoll=_strtoi64 )
> -  add_definitions( -Dstrtoull=_strtoui64 )
> -  add_definitions( -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS )
> -  add_definitions( -Dssize_t=size_t )
> -  add_definitions( -Dmkdir=_mkdir )
> -  add_definitions( -DREDIRECT_OUTPUT )
> -
> -  # Automatic linking for boost requires setting lib dir and clearing Boost_LIBRARIES
> -  LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
> -  set(Boost_LIBRARIES "")
> -  include_directories(${Boost_INCLUDE_DIR})
> -
> -
> -  find_library(INTL_LIBRARY NAMES intl libintl)
> -
> -  set (MSVC_DISABLE_WARNINGS "/wd4146 /wd4290 /wd4355 /wd4373 /wd4800")
> -  # CMAKE only defines "-g", but we need -DDEBUG also, and we need -DNOPARACHUTE (for SDL) in Debug
> -  set (CMAKE_CXX_FLAGS_DEBUG " -DDEBUG -DNOPARACHUTE /MTd /Zi /D_DEBUG ${MSVC_DISABLE_WARNINGS}" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)
> -
> -  set (CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG /MT /GL ${MSVC_DISABLE_WARNINGS}" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)
> -
> -  set (CMAKE_EXE_LINKER_FLAGS_DEBUG "/debug /LTCG /NODEFAULTLIB:libcmt.lib" CACHE STRING "Set by widelands CMakeLists.txt" FORCE)
> -endif (DEFINED MSVC)
> -
> -IF (MINGW)
> +  message(FATAL_ERROR "Unknown CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
> +endif()
> +
> +# Enable warnings.
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wall" CXX_SUPPORTS_WALL)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Weverything" CXX_SUPPORTS_WEVERYTHING)

-Weverything is super verbose on my system, and lots of unneeded information too. But I also saw a bunch of stuff that I really liked (superfluous ;, anon structs are a GNU extension and more). So in total I think it will benefit us, but needs more tweaking until it is really useful. I also like the idea that we get the benefit of new clang warnings in new versions now automatically.

> All in all, nice to split up the different options. :)

Thanks :). I hoped you could help figure out which are enabled by default and can go away from the file. I also thought about having the warnings sorted by per-compiler, but that got messy since there are some that are supported by all compilers and some that are only supported by one. I now choose: warnings enabling first, warnings that should be errors next, disabled warnings last.

> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wpedantic" CXX_SUPPORTS_PEDANTIC)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wdeprecated-declarations" CXX_SUPPORTS_WDEPRECATED_DECLARATIONS)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wextra" CXX_SUPPORTS_WEXTRA)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wformat" CXX_SUPPORTS_WFORMAT)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wformat-nonliteral" CXX_SUPPORTS_WFORMAT_NONLITERAL)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wformat-security" CXX_SUPPORTS_WFORMAT_SECURITY)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wformat-y2k" CXX_SUPPORTS_WFORMAT_Y2K)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Winit-self" CXX_SUPPORTS_WINIT_SELF)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Winvalid-pch" CXX_SUPPORTS_WINVALID_PCH)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wlogical-op" CXX_SUPPORTS_WLOGICAL_OP)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wmissing-include-dirs" CXX_SUPPORTS_WMISSING_INCLUDE_DIRS)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wno-undef" CXX_SUPPORTS_WNO_UNDEF)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wold-style-cast" CXX_SUPPORTS_WOLD_STYLE_CAST)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Woverlength-strings" CXX_SUPPORTS_WOVERLENGTH_STRINGS)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wpacked" CXX_SUPPORTS_WPACKED)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wpointer-arith" CXX_SUPPORTS_WPOINTER_ARITH)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wredundant-decls" CXX_SUPPORTS_WREDUNDANT_DECLS)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wshadow" CXX_SUPPORTS_WSHADOW)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wsign-promo" CXX_SUPPORTS_WSIGN_PROMO)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wswitch-default" CXX_SUPPORTS_WSWITCH_DEFAULT)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wsync-nand" CXX_SUPPORTS_WSYNC_NAND)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wtrampolines" CXX_SUPPORTS_WTRAMPOLINES)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wundef" CXX_SUPPORTS_WUNDEF)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wunused" CXX_SUPPORTS_WUNUSED)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wunused-macros" CXX_SUPPORTS_WUNUSED_MACROS)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-fdiagnostics-show-option" CXX_SUPPORTS_FDIAGNOSTICS_SHOW_OPTION)

I wasn't sure which one you thought was always enabled and I did not check the docs. Feel free to remove if it is enabled by default.

> +
> +# Turn some warnings into errors.
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Werror=uninitialized" CXX_SUPPORTS_WERROR_UNINITIALIZED)
> +
> +# Disabled warnings that are overly verbose right now or just do not make sense.
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wno-padded" CXX_SUPPORTS_WNO_PADDED)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wno-c++98-compat" CXX_SUPPORTS_WNO_CPP98_COMPAT)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wno-c++98-compat-pedantic" CXX_SUPPORTS_WNO_CPP98_COMPAT_PEDANTIC)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wno-sign-conversion" CXX_SUPPORTS_WNO_SIGN_CONVERSION)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wno-conversion" CXX_SUPPORTS_WNO_CONVERSION)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wno-exit-time-destructors" CXX_SUPPORTS_WNO_EXIT_TIME_DESTRUCTOR)
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wno-global-destructors" CXX_SUPPORTS_WGLOBAL_DESTRUCTOR)
> +
> +# TODO(sirver): weak-vtables should be enabled, but leads to lot of errors right now.
> +_add_flag_if_supported(WL_COMPILE_WARNING_FLAGS "-Wno-weak-vtables" CXX_SUPPORTS_WNO_WEAK_VTABLES)
> +
> +IF (WIN32)
>    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")
> -endif (MINGW)
> -
> -IF (CMAKE_BUILD_TYPE STREQUAL "Debug")
> -  message (STATUS "Using compiler flags: ${CMAKE_CXX_FLAGS_DEBUG}")
> -ELSE (CMAKE_BUILD_TYPE STREQUAL "Debug")
> -  message (STATUS "Using compiler flags: ${CMAKE_CXX_FLAGS_RELEASE}")
> -ENDIF (CMAKE_BUILD_TYPE STREQUAL "Debug")
> -
> -if (DEFINED WL_3RDPARTY_DIR)
> -  set (CMAKE_INCLUDE_PATH "${WL_3RDPARTY_DIR}/include;${WL_3RDPARTY_DIR}/include/sdl")
> -  set (CMAKE_LIBRARY_PATH "${WL_3RDPARTY_DIR}/lib")
> -endif (DEFINED WL_3RDPARTY_DIR)
> +endif (WIN32)
>  
>  # on BSD this must be explicitly linked
>  if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
> @@ -284,6 +159,7 @@
>    endif (NOT CMAKE_SYSTEM_NAME MATCHES "kFreeBSD")
>  endif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
>  
> +find_package (PythonInterp REQUIRED)
>  
>  # Check for opengl
>  # TODO Check for SDL_opengl.h and add to include path
> @@ -292,59 +168,10 @@
>  find_package(GLEW REQUIRED)
>  add_definitions(${GLEW_EXTRA_DEFINITIONS})
>  
> -# ...but using MAJOR, MINOR and PATCH
> -if (DEFINED WL_VERSION_MAJOR)
> -	set (CPACK_PACKAGE_VERSION_MAJOR ${WL_VERSION_MAJOR})
> -
> -	# Until 1.x.x set standard VERSION => "BuildXX"
> -	if (WL_VERSION_MAJOR STREQUAL "0")
> -		if (DEFINED WL_VERSION_MINOR)
> -			set (WL_VERSION Build${WL_VERSION_MINOR})
> -			set (CPACK_PACKAGE_VERSION_MINOR ${WL_VERSION_MINOR})
> -			if (DEFINED WL_VERSION_PATCH)
> -				set (WL_VERSION ${WL_VERSION}.${WL_VERSION_PATCH})
> -				set (CPACK_PACKAGE_VERSION_PATCH ${WL_VERSION_PATCH})
> -			else (DEFINED WL_VERSION_PATCH)
> -				set (CPACK_PACKAGE_VERSION_PATCH 0)
> -			endif (DEFINED WL_VERSION_PATCH)
> -			if (DEFINED WL_VERSION_ADDITION)
> -				set (WL_VERSION ${WL_VERSION}${WL_VERSION_ADDITION})
> -			endif (DEFINED WL_VERSION_ADDITION)
> -		else (DEFINED WL_VERSION_MINOR)
> -			set (WL_VERSION "NO BUILD ID")
> -		endif (DEFINED WL_VERSION_MINOR)
> -
> -	# from 1.x.x on:
> -	else (WL_VERSION_MAJOR STREQUAL "0")
> -		set (WL_VERSION ${WL_VERSION_MAJOR})
> -		if (DEFINED WL_VERSION_MINOR)
> -			set (WL_VERSION ${WL_VERSION}.${WL_VERSION_MINOR})
> -			set (CPACK_PACKAGE_VERSION_MINOR ${WL_VERSION_MINOR})
> -			if (DEFINED WL_VERSION_PATCH)
> -				set (WL_VERSION ${WL_VERSION}.${WL_VERSION_PATCH})
> -				set (CPACK_PACKAGE_VERSION_PATCH ${WL_VERSION_PATCH})
> -			else (DEFINED WL_VERSION_PATCH)
> -				set (CPACK_PACKAGE_VERSION_PATCH 0)
> -			endif (DEFINED WL_VERSION_PATCH)
> -			if (DEFINED WL_VERSION_ADDITION)
> -				set (WL_VERSION ${WL_VERSION}${WL_VERSION_ADDITION})
> -			endif (DEFINED WL_VERSION_ADDITION)
> -		else (DEFINED WL_VERSION_MINOR)
> -			set (CPACK_PACKAGE_VERSION_MINOR 0)
> -		endif (DEFINED WL_VERSION_MINOR)
> -	endif (WL_VERSION_MAJOR STREQUAL "0")
> -	# Needed - else detect_revision.py will still use bzr or even crash, if
> -	# Widelands is compiled in a bzr export
> -	file (WRITE WL_RELEASE "${WL_VERSION}")
> -endif (DEFINED WL_VERSION_MAJOR)
> -
> -# we need python to determine the current version
> -find_package (PythonInterp REQUIRED)
> -
>  if (NOT DEFINED WL_VERSION)
>    add_custom_target (
>      BzrRevision ALL
> -    COMMAND ${CMAKE_COMMAND} -DWL_INSTALL_PREFIX=${WL_INSTALL_PREFIX} -DWL_INSTALL_BINDIR=${WL_INSTALL_BINDIR} -DWL_INSTALL_DATADIR=${WL_INSTALL_DATADIR} -DWL_INSTALL_LOCALEDIR=${WL_INSTALL_LOCALEDIR} -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}/BzrRevision.cmake
> +    COMMAND ${CMAKE_COMMAND} -DWL_INSTALL_PREFIX=${WL_INSTALL_PREFIX} -DWL_INSTALL_BINDIR=${WL_INSTALL_BINDIR} -DWL_INSTALL_DATADIR=${WL_INSTALL_DATADIR} -DWL_INSTALL_LOCALEDIR=${WL_INSTALL_LOCALEDIR} -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
> @@ -357,11 +184,10 @@
>    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_PREFIX=${WL_INSTALL_PREFIX} -DWL_INSTALL_BINDIR=${WL_INSTALL_BINDIR} -DWL_INSTALL_DATADIR=${WL_INSTALL_DATADIR} -DWL_INSTALL_LOCALEDIR=${WL_INSTALL_LOCALEDIR} -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}/InputRevision.cmake
> +    COMMAND ${CMAKE_COMMAND} -DWL_INSTALL_PREFIX=${WL_INSTALL_PREFIX} -DWL_INSTALL_BINDIR=${WL_INSTALL_BINDIR} -DWL_INSTALL_DATADIR=${WL_INSTALL_DATADIR} -DWL_INSTALL_LOCALEDIR=${WL_INSTALL_LOCALEDIR} -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)
>  
> @@ -371,28 +197,21 @@
>    CONFIGURATIONS Debug;Release
>    COMPONENT CoreVersionFile
>  )
> -set(CPACK_COMPONENT_COREVERSIONFILE_HIDDEN TRUE)
> -set(CPACK_COMPONENT_COREVERSIONFILE_REQUIRED TRUE)
> -
> -include_directories(src ${CMAKE_CURRENT_BINARY_DIR}/src)
>  
>  include(CheckIncludeFile)
>  
>  find_package(PNG REQUIRED)
> +# TODO(sirver): Do not globally include for all targets.
>  include_directories(${PNG_INCLUDE_DIR})
>  
>  find_package(ZLIB REQUIRED)
> +# TODO(sirver): Do not globally include for all targets.
>  include_directories(${ZLIB_INCLUDE_DIR})
>  
> -# Check if we have a working minizip library
> -find_package(Minizip)
> -if (MINIZIP_FOUND)
> -  include_directories(${MINIZIP_INCLUDE_DIR})
> -endif (MINIZIP_FOUND)
> -
>  if (APPLE OR WIN32 OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
>    if (NOT CMAKE_SYSTEM_NAME MATCHES "kFreeBSD")
>      find_package(intl REQUIRED)
> +    # TODO(sirver): Do not globally include for all targets.
>      include_directories(${INTL_INCLUDE_DIR})
>      endif (NOT CMAKE_SYSTEM_NAME MATCHES "kFreeBSD")
>  endif (APPLE OR WIN32 OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
> @@ -401,45 +220,30 @@
>  # GETTEXT_LIBRARY as "usual" libraries do
>  find_package(Gettext REQUIRED)
>  
> +find_package(ZLIB REQUIRED)
> +
>  find_package(SDL REQUIRED)
> +# TODO(sirver): Do not globally include for all targets.
>  include_directories(${SDL_INCLUDE_DIR})
>  
>  find_package(SDL_image REQUIRED)
> +# TODO(sirver): Do not globally include for all targets.
>  include_directories(${SDLIMAGE_INCLUDE_DIR})
> -if (NOT SDLIMAGE_FOUND)
> -  message(FATAL_ERROR "Required package SDL_image not found, please install and re-run cmake")
> -endif (NOT SDLIMAGE_FOUND)
>  
>  find_package(SDL_mixer REQUIRED)
> +# TODO(sirver): Do not globally include for all targets.
>  include_directories(${SDLMIXER_INCLUDE_DIR})
> -if (NOT SDLMIXER_FOUND)
> -  message(FATAL_ERROR "Required package SDL_mixer not found, please install and re-run cmake")
> -endif (NOT SDLMIXER_FOUND)
>  
>  find_package(SDL_net REQUIRED)
> +# TODO(sirver): Do not globally include for all targets.
>  include_directories(${SDLNET_INCLUDE_DIR})
> -if (NOT SDLNET_FOUND)
> -  message(FATAL_ERROR "Required package SDL_net not found, please install and re-run cmake")
> -endif (NOT SDLNET_FOUND)
>  
>  find_package(SDL_ttf REQUIRED)
> +# TODO(sirver): Do not globally include for all targets.
>  include_directories(${SDLTTF_INCLUDE_DIR})
> -if (NOT SDLTTF_FOUND)
> -  message(FATAL_ERROR "Required package SDL_ttf not found, please install and re-run cmake")
> -endif (NOT SDLTTF_FOUND)
>  
>  find_package(SDL_gfx REQUIRED)
>  include_directories(${SDLGFX_INCLUDE_DIR})
> -if (NOT SDLGFX_FOUND)
> -  message(FATAL_ERROR "Required package SDL_gfx not found, please install and re-run cmake")
> -endif (NOT SDLGFX_FOUND)
> -
> -IF (WIN32)
> -  SET(GUI_TYPE WIN32)
> -ENDIF (WIN32)
> -
> -#configure_file (src/config.h.cmake src/config.h)
> -#configure_file (src/build_info.cc.cmake src/build_info.cc)
>  
>  add_subdirectory(doc)
>  add_subdirectory(po)
> @@ -460,9 +264,6 @@
>    CONFIGURATIONS Debug;Release
>    COMPONENT CoreDataFiles
>  )
> -set(CPACK_COMPONENT_COREDATAFILES_DISPLAY_NAME "Widelands Core")
> -set(CPACK_COMPONENT_COREDATAFILES_HIDDEN FALSE)
> -set(CPACK_COMPONENT_COREDATAFILES_REQUIRED TRUE)
>  
>  install(
>    DIRECTORY
> @@ -471,7 +272,6 @@
>    CONFIGURATIONS Debug;Release
>    COMPONENT MapFiles
>  )
> -set(CPACK_COMPONENT_MAPFILES_DISPLAY_NAME "Maps Files")
>  
>  install(
>    DIRECTORY
> @@ -481,7 +281,6 @@
>    CONFIGURATIONS Debug;Release
>    COMPONENT MusicFiles
>  )
> -set(CPACK_COMPONENT_MUSICFILES_DISPLAY_NAME "Music and Sound Files")
>  
>  install(
>    FILES
> @@ -492,8 +291,6 @@
>    CONFIGURATIONS Debug;Release
>    COMPONENT CoreLicenseFiles
>  )
> -set(CPACK_COMPONENT_CORELICENSEFILES_HIDDEN TRUE)
> -set(CPACK_COMPONENT_CORELICENSEFILES_REQUIRED TRUE)
>  
>  install(
>    DIRECTORY
> @@ -503,9 +300,6 @@
>    COMPONENT DocFiles
>    PATTERN "CMakeLists.txt" EXCLUDE
>  )
> -set(CPACK_COMPONENT_DOCFILES_DISPLAY_NAME "Documentation")
> -set(CPACK_COMPONENT_DOCFILES_HIDDEN TRUE)
> -set(CPACK_COMPONENT_DOCFILES_REQUIRED FALSE)
>  
>  set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES locale)
>  
> @@ -516,124 +310,3 @@
>    CONFIGURATIONS Debug;Release
>    COMPONENT CoreLanguageFiles
>  )
> -set(CPACK_COMPONENT_CORELANGUAGEFILES_DISPLAY_NAME "Language Files")
> -
> -set(CPACK_COMPONENT_EXECUTABLEFILES_HIDDEN TRUE)
> -set(CPACK_COMPONENT_EXECUTABLEFILES_REQUIRED TRUE)
> -
> -# Components to install
> -set(CPACK_COMPONENTS_ALL ExecutableFiles CoreDataFiles MapFiles CoreLanguageFiles CoreVersionFile CoreLicenseFiles)
> -if (NOT WL_NOMUSIC)
> -  set(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} MusicFiles)
> -endif (NOT WL_NOMUSIC)
> -
> -if (WIN32)
> -  # Install files only needed for Windows
> -  FILE(GLOB dlls "${CMAKE_CURRENT_BINARY_DIR}/*.dll")
> -  install(
> -    FILES
> -      ${dlls}
> -      utils/win32/WL-Editor.ico
> -    DESTINATION ${WL_INSTALL_DATADIR}
> -    CONFIGURATIONS Debug;Release
> -    COMPONENT Win32Specific
> -  )
> -  set(CPACK_COMPONENT_WIN32SPECIFIC_HIDDEN TRUE)
> -  set(CPACK_COMPONENT_WIN32SPECIFIC_REQUIRED TRUE)
> -  set(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} Win32Specific)
> -
> -  # Only NSIS supports install types
> -  set(CPACK_ALL_INSTALL_TYPES Full Minimal)
> -  set(CPACK_COMPONENT_EXECUTABLEFILES_INSTALL_TYPES Full Minimal)
> -  set(CPACK_COMPONENT_COREDATAFILES_INSTALL_TYPES Full Minimal)
> -  set(CPACK_COMPONENT_COREVERSIONFILE_INSTALL_TYPES Full Minimal)
> -  set(CPACK_COMPONENT_CORELICENSEFILES_INSTALL_TYPES Full Minimal)
> -  set(CPACK_COMPONENT_MAPFILES_INSTALL_TYPES Full)
> -  set(CPACK_COMPONENT_MUSICFILES_INSTALL_TYPES Full)
> -  set(CPACK_COMPONENT_CORELANGUAGEFILES_INSTALL_TYPES Full)
> -  set(CPACK_COMPONENT_WIN32SPECIFIC_INSTALL_TYPES Full Minimal)
> -
> -  # Set generator
> -  set(CPACK_GENERATOR NSIS)
> -
> -  # Graphics for the installer (all slashes are necessary!)
> -  set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_LIST_DIR}\\\\utils\\\\win32\\\\wl-ico-128.ico")
> -  set(CPACK_NSIS_MUI_UNIICON "${CMAKE_CURRENT_LIST_DIR}\\\\utils\\\\win32\\\\wl-ico-128.ico")
> -  set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_LIST_DIR}\\\\utils\\\\win32\\\\nsis\\\\install_header.bmp")
> -  set(CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "${CMAKE_CURRENT_LIST_DIR}\\\\utils\\\\win32\\\\nsis\\\\WL.bmp")
> -
> -  # Name for installer and Windows Add/Remove
> -  set(CPACK_NSIS_PACKAGE_NAME "Widelands")
> -  set(CPACK_NSIS_DISPLAY_NAME "Widelands ${WL_VERSION}")
> -  set(CPACK_NSIS_DISPLAY_NAME_SET "TRUE")
> -
> -  # Optional dialogs
> -  if (NOT DEFINED CPACK_NSIS_LANGUAGE_DIALOG)
> -    set(CPACK_NSIS_LANGUAGE_DIALOG "ON")
> -  endif (NOT DEFINED CPACK_NSIS_LANGUAGE_DIALOG)
> -  if (NOT DEFINED CPACK_NSIS_CHANGELOG)
> -    set(CPACK_NSIS_CHANGELOG "ON")
> -  endif (NOT DEFINED CPACK_NSIS_CHANGELOG)
> -
> -  # Setup (and remove) shortcuts to Widelands (all slashes are necessary!)
> -  set(CPACK_PACKAGE_EXECUTABLES "..\\\\widelands;Widelands")
> -  set(CPACK_NSIS_MENU_LINKS "http://wl.widelands.org/;Widelands Homepage")
> -  set(CPACK_NSIS_CREATE_ICONS_EXTRA "
> -    CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Widelands - Mapeditor.lnk\\\" \\\"$INSTDIR\\\\widelands.exe\\\" \\\"--editor\\\" \\\"$INSTDIR\\\\WL-Editor.ico\\\"
> -  ")
> -  set(CPACK_NSIS_DELETE_ICONS_EXTRA "
> -    Delete \\\"$DESKTOP\\\\Widelands.lnk\\\"
> -    Delete \\\"$DESKTOP\\\\Widelands - Mapeditor.lnk\\\"
> -    Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\Widelands - Mapeditor.lnk\\\"
> -  ")
> -
> -  # Additional information (all slashes are necessary!)
> -  set(CPACK_NSIS_URL_INFO_ABOUT "http://wl.widelands.org/";)
> -  set(CPACK_NSIS_HELP_LINK "http://wl.widelands.org/";)
> -  set(CPACK_NSIS_INSTALLED_ICON_NAME "widelands.exe")
> -  set(CPACK_NSIS_MUI_FINISHPAGE_RUN "..\\\\widelands.exe")
> -  set(CPACK_NSIS_MUI_FINISHPAGE_README "$INSTDIR\\\\ChangeLog")
> -  set(CPACK_PACKAGE_VENDOR "Widelands Development Team")
> -  # replace [ and ], they will cause problems in filename!
> -  string(REPLACE "[" "-" PACKAGE_VERSION ${WL_VERSION})
> -  string(REPLACE "]" "" PACKAGE_VERSION ${PACKAGE_VERSION})
> -  set(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}(${CMAKE_BUILD_TYPE})")
> -  set(CPACK_PACKAGE_VERSION_MAJOR ${WL_VERSION_MAJOR})
> -  set(CPACK_PACKAGE_VERSION_MINOR ${WL_VERSION_MINOR})
> -  set(CPACK_PACKAGE_VERSION_PATCH ${WL_VERSION_PATCH})
> -  set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_LIST_DIR}\\\\COPYING")
> -  set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_LIST_DIR}\\\\ChangeLog")
> -
> -  # Setup (and remove) Registry entries for Widelands (all slashes are necessary!)
> -  set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
> -    WriteRegStr HKCR \\\".wgf\\\" \\\"\\\" \\\"WidelandsSavegame\\\"
> -    WriteRegStr HKCR \\\"WidelandsSavegame\\\" \\\"\\\" \\\"Widelands Savegame\\\"
> -    WriteRegStr HKCR \\\"WidelandsSavegame\\\\DefaultIcon\\\" \\\"\\\" \\\"$INSTDIR\\\\widelands.exe,0\\\"
> -    WriteRegStr HKCR \\\"WidelandsSavegame\\\\shell\\\\open\\\\command\\\" \\\"\\\" \\\"$INSTDIR\\\\widelands.exe --loadgame=%1\\\"
> -
> -    WriteRegStr HKCR \\\".wmf\\\" \\\"\\\" \\\"WidelandsMapFile\\\"
> -    WriteRegStr HKCR \\\"WidelandsMapFile\\\" \\\"\\\" \\\"Widelands Mapfile\\\"
> -    WriteRegStr HKCR \\\"WidelandsMapFile\\\\DefaultIcon\\\" \\\"\\\" \\\"$INSTDIR\\\\WL-Editor.ico\\\"
> -    WriteRegStr HKCR \\\"WidelandsMapFile\\\\shell\\\\open\\\\command\\\" \\\"\\\" \\\"$INSTDIR\\\\widelands.exe --editor=%1\\\"
> -  ")
> -  set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
> -    DeleteRegValue HKCR \\\".wgf\\\" \\\"WidelandsSavegame\\\"
> -    DeleteRegKey /ifempty HKCR \\\".wgf\\\"
> -    DeleteRegKey HKCR \\\"WidelandsSavegame\\\"
> -
> -    DeleteRegValue HKCR \\\".wmf\\\" \\\"WidelandsMapFile\\\"
> -    DeleteRegKey /ifempty HKCR \\\".wmf\\\"
> -    DeleteRegKey HKCR \\\"WidelandsMapFile\\\"
> -
> -    Delete \\\"$INSTDIR\\\\stdout.txt\\\"
> -    Delete \\\"$INSTDIR\\\\stderr.txt\\\"
> -    Delete \\\"$INSTDIR\\\"
> -  ")
> -
> -elseif (WIN32)
> -  set (CPACK_PACKAGE_FILE_NAME widelands-${WL_VERSION})
> -  set (CPACK_GENERATOR "TGZ")
> -  set (CPACK_SOURCE_GENERATOR "TGZ")
> -endif (WIN32)
> -
> -include(CPack)
> 
> === renamed file 'BzrRevision.cmake' => 'cmake/BzrRevision.cmake'
> === renamed file 'InputRevision.cmake' => 'cmake/InputRevision.cmake'
> === removed file 'cmake/Modules/FindMinizip.cmake'
> --- cmake/Modules/FindMinizip.cmake	2012-04-07 15:12:06 +0000
> +++ cmake/Modules/FindMinizip.cmake	1970-01-01 00:00:00 +0000
> @@ -1,37 +0,0 @@
> -# - Try to find Minizip
> -# Once done this will define
> -#  
> -#  MINIZIP_FOUND        - system has MINIZIP
> -#  MINIZIP_INCLUDE_DIR  - the MINIZIP include directory
> -#  MINIZIP_LIBRARY_DIR  - where the libraries are
> -#  MINIZIP_LIBRARY      - Link these to use MINIZIP
> -#   
> -
> -IF (MINIZIP_INCLUDE_DIR)
> -  # Already in cache, be silent
> -  SET(MINIZIP_FIND_QUIETLY TRUE)
> -ENDIF (MINIZIP_INCLUDE_DIR)
> -
> -FIND_PATH( MINIZIP_INCLUDE_DIR 
> -	  NAMES zip.h unzip.h ioapi.h
> -	  PATHS /usr/local/include /usr/include
> -	  PATH_SUFFIXES minizip/ )
> -SET( MINIZIP_NAMES minizip MINIZIP )
> -FIND_LIBRARY( MINIZIP_LIBRARY
> -	      NAMES ${MINIZIP_NAMES}
> -	      PATHS /usr/lib /usr/local/lib )
> -
> -GET_FILENAME_COMPONENT( MINIZIP_LIBRARY_DIR ${MINIZIP_LIBRARY} PATH )
> -
> -IF (MINIZIP_INCLUDE_DIR AND MINIZIP_LIBRARY)
> -   SET(MINIZIP_FOUND TRUE)
> -   SET(MINIZIP_LIBRARY_DIR ${MINIZIP_LIBRARY} )
> -   IF (NOT MINIZIP_FIND_QUIETLY)
> -     MESSAGE (STATUS "Found Minizip: ${MINIZIP_LIBRARY} ${MINIZIP_INCLUDE_DIR}")
> -   ENDIF (NOT MINIZIP_FIND_QUIETLY)
> -ELSE (MINIZIP_INCLUDE_DIR AND MINIZIP_LIBRARY)
> -   SET( MINIZIP_FOUND FALSE )
> -   SET( MINIZIP_LIBRARY_DIR )
> -   SET( MINIZIP_EXTRA_DEFINITIONS )
> -ENDIF (MINIZIP_INCLUDE_DIR AND MINIZIP_LIBRARY)
> -
> 
> === removed file 'cmake/Modules/NSIS.template.in'
> --- cmake/Modules/NSIS.template.in	2012-02-10 19:16:04 +0000
> +++ cmake/Modules/NSIS.template.in	1970-01-01 00:00:00 +0000
> @@ -1,994 +0,0 @@
> -; CPack install script designed for a nmake build
> -; Modified to fit Widelands' needs!
> -
> -;--------------------------------
> -; You must define these values
> -
> -  !define VERSION "@CPACK_PACKAGE_VERSION@"
> -  !define PATCH  "@CPACK_PACKAGE_VERSION_PATCH@"
> -  !define INST_DIR "@CPACK_TEMPORARY_DIRECTORY@"
> -
> -;--------------------------------
> -;Variables
> -
> -  Var MUI_TEMP
> -  Var STARTMENU_FOLDER
> -  Var SV_ALLUSERS
> -  Var START_MENU
> -  Var DO_NOT_ADD_TO_PATH
> -  Var ADD_TO_PATH_ALL_USERS
> -  Var ADD_TO_PATH_CURRENT_USER
> -  Var INSTALL_DESKTOP
> -  Var IS_DEFAULT_INSTALLDIR
> -;--------------------------------
> -;Include Modern UI
> -
> -  !include "MUI.nsh"
> -
> -  ;Default installation folder
> -  InstallDir "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
> -
> -;--------------------------------
> -;General
> -
> -  ;Name and file
> -  Name "@CPACK_NSIS_PACKAGE_NAME@"
> -  OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@"
> -
> -  ;Set compression
> -  SetCompressor @CPACK_NSIS_COMPRESSOR@
> -
> -@CPACK_NSIS_DEFINES@
> -
> -  !include Sections.nsh
> -
> -;--- Component support macros: ---
> -; The code for the add/remove functionality is from:
> -;   http://nsis.sourceforge.net/Add/Remove_Functionality
> -; It has been modified slightly and extended to provide
> -; inter-component dependencies.
> -Var AR_SecFlags
> -Var AR_RegFlags
> -@CPACK_NSIS_SECTION_SELECTED_VARS@
> -
> -; Loads the "selected" flag for the section named SecName into the
> -; variable VarName.
> -!macro LoadSectionSelectedIntoVar SecName VarName
> - SectionGetFlags ${${SecName}} $${VarName}
> - IntOp $${VarName} $${VarName} & ${SF_SELECTED}  ;Turn off all other bits
> -!macroend
> -
> -; Loads the value of a variable... can we get around this?
> -!macro LoadVar VarName
> -  IntOp $R0 0 + $${VarName}
> -!macroend
> -
> -; Sets the value of a variable
> -!macro StoreVar VarName IntValue
> -  IntOp $${VarName} 0 + ${IntValue}
> -!macroend
> -
> -!macro InitSection SecName
> -  ;  This macro reads component installed flag from the registry and
> -  ;changes checked state of the section on the components page.
> -  ;Input: section index constant name specified in Section command.
> -   
> -  ClearErrors
> -  ;Reading component status from registry
> -  ReadRegDWORD $AR_RegFlags HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" "Installed"
> -  IfErrors "default_${SecName}"
> -    ;Status will stay default if registry value not found
> -    ;(component was never installed)
> -  IntOp $AR_RegFlags $AR_RegFlags & ${SF_SELECTED} ;Turn off all other bits
> -  SectionGetFlags ${${SecName}} $AR_SecFlags  ;Reading default section flags
> -  IntOp $AR_SecFlags $AR_SecFlags & 0xFFFE  ;Turn lowest (enabled) bit off
> -  IntOp $AR_SecFlags $AR_RegFlags | $AR_SecFlags      ;Change lowest bit
> -
> -  ; Note whether this component was installed before
> -  !insertmacro StoreVar ${SecName}_was_installed $AR_RegFlags
> -  IntOp $R0 $AR_RegFlags & $AR_RegFlags
> -  
> -  ;Writing modified flags
> -  SectionSetFlags ${${SecName}} $AR_SecFlags
> -  
> - "default_${SecName}:"
> - !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected
> -!macroend
> - 
> -!macro FinishSection SecName
> -  ;  This macro reads section flag set by user and removes the section
> -  ;if it is not selected.
> -  ;Then it writes component installed flag to registry
> -  ;Input: section index constant name specified in Section command.
> - 
> -  SectionGetFlags ${${SecName}} $AR_SecFlags  ;Reading section flags
> -  ;Checking lowest bit:
> -  IntOp $AR_SecFlags $AR_SecFlags & ${SF_SELECTED}
> -  IntCmp $AR_SecFlags 1 "leave_${SecName}"
> -    ;Section is not selected:
> -    ;Calling Section uninstall macro and writing zero installed flag
> -    !insertmacro "Remove_${${SecName}}"
> -    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \
> -  "Installed" 0
> -    Goto "exit_${SecName}"
> - 
> - "leave_${SecName}:"
> -    ;Section is selected:
> -    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \
> -  "Installed" 1
> - 
> - "exit_${SecName}:"
> -!macroend
> - 
> -!macro RemoveSection SecName
> -  ;  This macro is used to call section's Remove_... macro
> -  ;from the uninstaller.
> -  ;Input: section index constant name specified in Section command.
> - 
> -  !insertmacro "Remove_${${SecName}}"
> -!macroend
> -
> -; Determine whether the selection of SecName changed
> -!macro MaybeSelectionChanged SecName
> -  !insertmacro LoadVar ${SecName}_selected
> -  SectionGetFlags ${${SecName}} $R1
> -  IntOp $R1 $R1 & ${SF_SELECTED} ;Turn off all other bits
> -  
> -  ; See if the status has changed:
> -  IntCmp $R0 $R1 "${SecName}_unchanged"
> -  !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected
> -  
> -  IntCmp $R1 ${SF_SELECTED} "${SecName}_was_selected"
> -  !insertmacro "Deselect_required_by_${SecName}"
> -  goto "${SecName}_unchanged"
> -  
> -  "${SecName}_was_selected:"
> -  !insertmacro "Select_${SecName}_depends"
> -  
> -  "${SecName}_unchanged:"
> -!macroend
> -;--- End of Add/Remove macros ---
> -
> -;--------------------------------
> -;Interface Settings
> -
> -  !define MUI_HEADERIMAGE
> -  !define MUI_ABORTWARNING
> -    
> -;--------------------------------
> -; path functions
> -
> -!verbose 3
> -!include "WinMessages.NSH"
> -!verbose 4
> -
> -;----------------------------------------
> -; based upon a script of "Written by KiCHiK 2003-01-18 05:57:02"
> -;----------------------------------------
> -!verbose 3
> -!include "WinMessages.NSH"
> -!verbose 4
> -;====================================================
> -; get_NT_environment 
> -;     Returns: the selected environment
> -;     Output : head of the stack
> -;====================================================
> -!macro select_NT_profile UN
> -Function ${UN}select_NT_profile
> -   StrCmp $ADD_TO_PATH_ALL_USERS "1" 0 environment_single
> -      DetailPrint "Selected environment for all users"
> -      Push "all"
> -      Return
> -   environment_single:
> -      DetailPrint "Selected environment for current user only."
> -      Push "current"
> -      Return
> -FunctionEnd
> -!macroend
> -!insertmacro select_NT_profile ""
> -!insertmacro select_NT_profile "un."
> -;----------------------------------------------------
> -!define NT_current_env 'HKCU "Environment"'
> -!define NT_all_env     'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
> -
> -!ifndef WriteEnvStr_RegKey
> -  !ifdef ALL_USERS
> -    !define WriteEnvStr_RegKey \
> -       'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
> -  !else
> -    !define WriteEnvStr_RegKey 'HKCU "Environment"'
> -  !endif
> -!endif
> - 
> -; AddToPath - Adds the given dir to the search path.
> -;        Input - head of the stack
> -;        Note - Win9x systems requires reboot
> - 
> -Function AddToPath
> -  Exch $0
> -  Push $1
> -  Push $2
> -  Push $3
> - 
> -  # don't add if the path doesn't exist
> -  IfFileExists "$0\*.*" "" AddToPath_done
> - 
> -  ReadEnvStr $1 PATH
> -  ; if the path is too long for a NSIS variable NSIS will return a 0 
> -  ; length string.  If we find that, then warn and skip any path
> -  ; modification as it will trash the existing path.
> -  StrLen $2 $1
> -  IntCmp $2 0 CheckPathLength_ShowPathWarning CheckPathLength_Done CheckPathLength_Done
> -    CheckPathLength_ShowPathWarning:
> -    Messagebox MB_OK|MB_ICONEXCLAMATION "Warning! PATH too long installer unable to modify PATH!"
> -    Goto AddToPath_done
> -  CheckPathLength_Done:
> -  Push "$1;"
> -  Push "$0;"
> -  Call StrStr
> -  Pop $2
> -  StrCmp $2 "" "" AddToPath_done
> -  Push "$1;"
> -  Push "$0\;"
> -  Call StrStr
> -  Pop $2
> -  StrCmp $2 "" "" AddToPath_done
> -  GetFullPathName /SHORT $3 $0
> -  Push "$1;"
> -  Push "$3;"
> -  Call StrStr
> -  Pop $2
> -  StrCmp $2 "" "" AddToPath_done
> -  Push "$1;"
> -  Push "$3\;"
> -  Call StrStr
> -  Pop $2
> -  StrCmp $2 "" "" AddToPath_done
> - 
> -  Call IsNT
> -  Pop $1
> -  StrCmp $1 1 AddToPath_NT
> -    ; Not on NT
> -    StrCpy $1 $WINDIR 2
> -    FileOpen $1 "$1\autoexec.bat" a
> -    FileSeek $1 -1 END
> -    FileReadByte $1 $2
> -    IntCmp $2 26 0 +2 +2 # DOS EOF
> -      FileSeek $1 -1 END # write over EOF
> -    FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n"
> -    FileClose $1
> -    SetRebootFlag true
> -    Goto AddToPath_done
> - 
> -  AddToPath_NT:
> -    StrCmp $ADD_TO_PATH_ALL_USERS "1" ReadAllKey
> -      ReadRegStr $1 ${NT_current_env} "PATH"
> -      Goto DoTrim
> -    ReadAllKey:
> -      ReadRegStr $1 ${NT_all_env} "PATH"
> -    DoTrim:
> -    StrCmp $1 "" AddToPath_NTdoIt
> -      Push $1
> -      Call Trim
> -      Pop $1
> -      StrCpy $0 "$1;$0"
> -    AddToPath_NTdoIt:
> -      StrCmp $ADD_TO_PATH_ALL_USERS "1" WriteAllKey
> -        WriteRegExpandStr ${NT_current_env} "PATH" $0
> -        Goto DoSend
> -      WriteAllKey:
> -        WriteRegExpandStr ${NT_all_env} "PATH" $0
> -      DoSend:
> -      SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
> - 
> -  AddToPath_done:
> -    Pop $3
> -    Pop $2
> -    Pop $1
> -    Pop $0
> -FunctionEnd
> -
> - 
> -; RemoveFromPath - Remove a given dir from the path
> -;     Input: head of the stack
> - 
> -Function un.RemoveFromPath
> -  Exch $0
> -  Push $1
> -  Push $2
> -  Push $3
> -  Push $4
> -  Push $5
> -  Push $6
> - 
> -  IntFmt $6 "%c" 26 # DOS EOF
> - 
> -  Call un.IsNT
> -  Pop $1
> -  StrCmp $1 1 unRemoveFromPath_NT
> -    ; Not on NT
> -    StrCpy $1 $WINDIR 2
> -    FileOpen $1 "$1\autoexec.bat" r
> -    GetTempFileName $4
> -    FileOpen $2 $4 w
> -    GetFullPathName /SHORT $0 $0
> -    StrCpy $0 "SET PATH=%PATH%;$0"
> -    Goto unRemoveFromPath_dosLoop
> - 
> -    unRemoveFromPath_dosLoop:
> -      FileRead $1 $3
> -      StrCpy $5 $3 1 -1 # read last char
> -      StrCmp $5 $6 0 +2 # if DOS EOF
> -        StrCpy $3 $3 -1 # remove DOS EOF so we can compare
> -      StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine
> -      StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine
> -      StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine
> -      StrCmp $3 "" unRemoveFromPath_dosLoopEnd
> -      FileWrite $2 $3
> -      Goto unRemoveFromPath_dosLoop
> -      unRemoveFromPath_dosLoopRemoveLine:
> -        SetRebootFlag true
> -        Goto unRemoveFromPath_dosLoop
> - 
> -    unRemoveFromPath_dosLoopEnd:
> -      FileClose $2
> -      FileClose $1
> -      StrCpy $1 $WINDIR 2
> -      Delete "$1\autoexec.bat"
> -      CopyFiles /SILENT $4 "$1\autoexec.bat"
> -      Delete $4
> -      Goto unRemoveFromPath_done
> - 
> -  unRemoveFromPath_NT:
> -    StrCmp $ADD_TO_PATH_ALL_USERS "1" unReadAllKey
> -      ReadRegStr $1 ${NT_current_env} "PATH"
> -      Goto unDoTrim
> -    unReadAllKey:
> -      ReadRegStr $1 ${NT_all_env} "PATH"
> -    unDoTrim:
> -    StrCpy $5 $1 1 -1 # copy last char
> -    StrCmp $5 ";" +2 # if last char != ;
> -      StrCpy $1 "$1;" # append ;
> -    Push $1
> -    Push "$0;"
> -    Call un.StrStr ; Find `$0;` in $1
> -    Pop $2 ; pos of our dir
> -    StrCmp $2 "" unRemoveFromPath_done
> -      ; else, it is in path
> -      # $0 - path to add
> -      # $1 - path var
> -      StrLen $3 "$0;"
> -      StrLen $4 $2
> -      StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
> -      StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
> -      StrCpy $3 $5$6
> - 
> -      StrCpy $5 $3 1 -1 # copy last char
> -      StrCmp $5 ";" 0 +2 # if last char == ;
> -        StrCpy $3 $3 -1 # remove last char
> - 
> -      StrCmp $ADD_TO_PATH_ALL_USERS "1" unWriteAllKey
> -        WriteRegExpandStr ${NT_current_env} "PATH" $3
> -        Goto unDoSend
> -      unWriteAllKey:
> -        WriteRegExpandStr ${NT_all_env} "PATH" $3
> -      unDoSend:
> -      SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
> - 
> -  unRemoveFromPath_done:
> -    Pop $6
> -    Pop $5
> -    Pop $4
> -    Pop $3
> -    Pop $2
> -    Pop $1
> -    Pop $0
> -FunctionEnd
> - 
> -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> -; Uninstall sutff
> -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> -
> -###########################################
> -#            Utility Functions            #
> -###########################################
> - 
> -;====================================================
> -; IsNT - Returns 1 if the current system is NT, 0
> -;        otherwise.
> -;     Output: head of the stack
> -;====================================================
> -; IsNT
> -; no input
> -; output, top of the stack = 1 if NT or 0 if not
> -;
> -; Usage:
> -;   Call IsNT
> -;   Pop $R0
> -;  ($R0 at this point is 1 or 0)
> - 
> -!macro IsNT un
> -Function ${un}IsNT
> -  Push $0
> -  ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
> -  StrCmp $0 "" 0 IsNT_yes
> -  ; we are not NT.
> -  Pop $0
> -  Push 0
> -  Return
> - 
> -  IsNT_yes:
> -    ; NT!!!
> -    Pop $0
> -    Push 1
> -FunctionEnd
> -!macroend
> -!insertmacro IsNT ""
> -!insertmacro IsNT "un."
> - 
> -; StrStr
> -; input, top of stack = string to search for
> -;        top of stack-1 = string to search in
> -; output, top of stack (replaces with the portion of the string remaining)
> -; modifies no other variables.
> -;
> -; Usage:
> -;   Push "this is a long ass string"
> -;   Push "ass"
> -;   Call StrStr
> -;   Pop $R0
> -;  ($R0 at this point is "ass string")
> - 
> -!macro StrStr un
> -Function ${un}StrStr
> -Exch $R1 ; st=haystack,old$R1, $R1=needle
> -  Exch    ; st=old$R1,haystack
> -  Exch $R2 ; st=old$R1,old$R2, $R2=haystack
> -  Push $R3
> -  Push $R4
> -  Push $R5
> -  StrLen $R3 $R1
> -  StrCpy $R4 0
> -  ; $R1=needle
> -  ; $R2=haystack
> -  ; $R3=len(needle)
> -  ; $R4=cnt
> -  ; $R5=tmp
> -  loop:
> -    StrCpy $R5 $R2 $R3 $R4
> -    StrCmp $R5 $R1 done
> -    StrCmp $R5 "" done
> -    IntOp $R4 $R4 + 1
> -    Goto loop
> -done:
> -  StrCpy $R1 $R2 "" $R4
> -  Pop $R5
> -  Pop $R4
> -  Pop $R3
> -  Pop $R2
> -  Exch $R1
> -FunctionEnd
> -!macroend
> -!insertmacro StrStr ""
> -!insertmacro StrStr "un."
> -
> -Function Trim ; Added by Pelaca
> -	Exch $R1
> -	Push $R2
> -Loop:
> -	StrCpy $R2 "$R1" 1 -1
> -	StrCmp "$R2" " " RTrim
> -	StrCmp "$R2" "$\n" RTrim
> -	StrCmp "$R2" "$\r" RTrim
> -	StrCmp "$R2" ";" RTrim
> -	GoTo Done
> -RTrim:	
> -	StrCpy $R1 "$R1" -1
> -	Goto Loop
> -Done:
> -	Pop $R2
> -	Exch $R1
> -FunctionEnd
> -
> -Function ConditionalAddToRegisty
> -  Pop $0
> -  Pop $1
> -  StrCmp "$0" "" ConditionalAddToRegisty_EmptyString
> -    WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" \
> -    "$1" "$0"
> -    ;MessageBox MB_OK "Set Registry: '$1' to '$0'"
> -    DetailPrint "Set install registry entry: '$1' to '$0'"
> -  ConditionalAddToRegisty_EmptyString:
> -FunctionEnd
> -
> -;--------------------------------
> -
> -!ifdef CPACK_USES_DOWNLOAD
> -Function DownloadFile
> -    IfFileExists $INSTDIR\* +2
> -    CreateDirectory $INSTDIR
> -    Pop $0
> -
> -    ; Skip if already downloaded
> -    IfFileExists $INSTDIR\$0 0 +2
> -    Return
> -
> -    StrCpy $1 "@CPACK_DOWNLOAD_SITE@"
> -
> -  try_again:
> -    NSISdl::download "$1/$0" "$INSTDIR\$0"
> -    
> -    Pop $1
> -    StrCmp $1 "success" success
> -    StrCmp $1 "Cancelled" cancel
> -    MessageBox MB_OK "Download failed: $1"
> -  cancel:
> -    Return
> -  success:
> -FunctionEnd
> -!endif
> -
> -;--------------------------------
> -; Installation types
> -@CPACK_NSIS_INSTALLATION_TYPES@
> -
> -;--------------------------------
> -; Component sections
> -@CPACK_NSIS_COMPONENT_SECTIONS@
> -
> -;--------------------------------
> -; Define some macro setting for the gui
> -@CPACK_NSIS_INSTALLER_MUI_ICON_CODE@
> -@CPACK_NSIS_INSTALLER_ICON_CODE@
> -@CPACK_NSIS_INSTALLER_MUI_COMPONENTS_DESC@
> -@CPACK_NSIS_INSTALLER_MUI_FINISHPAGE_RUN_CODE@
> -
> -Function createShortcuts
> -    CreateShortCut "$DESKTOP\Widelands.lnk" "$INSTDIR\widelands.exe"
> -    CreateShortCut "$DESKTOP\Widelands - Mapeditor.lnk" "$INSTDIR\widelands.exe" "--editor" "$INSTDIR\WL-Editor.ico"
> -FunctionEnd
> -
> -!define MUI_FINISHPAGE_SHOWREADME ""
> -!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
> -!define MUI_FINISHPAGE_SHOWREADME_TEXT "Create Desktop Shortcut"
> -!define MUI_FINISHPAGE_SHOWREADME_FUNCTION createShortcuts
> -
> -!define MUI_WELCOMEFINISHPAGE_BITMAP "@CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP@"
> -!define MUI_UNWELCOMEFINISHPAGE_BITMAP "@CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP@"
> -
> -;--------------------------------
> -;Pages
> -  !insertmacro MUI_PAGE_WELCOME
> -
> -  !insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@"
> -  Page custom InstallOptionsPage
> -  !insertmacro MUI_PAGE_DIRECTORY
> -  
> -  ;Start Menu Folder Page Configuration
> -  !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" 
> -  !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" 
> -  !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
> -  !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
> -
> -  @CPACK_NSIS_PAGE_COMPONENTS@
> -
> -  !insertmacro MUI_PAGE_INSTFILES
> -  
> -  ;Changelog
> -  !define CPACK_NSIS_CHANGELOG_@CPACK_NSIS_CHANGELOG@
> -  !ifdef CPACK_NSIS_CHANGELOG_ON
> -    !define MUI_PAGE_HEADER_TEXT "Changelog"
> -    !define MUI_PAGE_HEADER_SUBTEXT ""
> -    !define MUI_LICENSEPAGE_TEXT_TOP ""
> -    !define MUI_LICENSEPAGE_TEXT_BOTTOM " "
> -    !define MUI_LICENSEPAGE_BUTTON "$(^NextBtn)"
> -    !insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_README@"
> -  !endif
> -   
> -  !insertmacro MUI_PAGE_FINISH
> -
> -  !insertmacro MUI_UNPAGE_CONFIRM
> -  !insertmacro MUI_UNPAGE_INSTFILES
> -
> -;--------------------------------
> -;Languages
> -
> -  !insertmacro MUI_LANGUAGE "English" ;first language is the default language
> -  !insertmacro MUI_LANGUAGE "Albanian"
> -  !insertmacro MUI_LANGUAGE "Arabic"
> -  !insertmacro MUI_LANGUAGE "Basque"
> -  !insertmacro MUI_LANGUAGE "Belarusian"
> -  !insertmacro MUI_LANGUAGE "Bosnian"
> -  !insertmacro MUI_LANGUAGE "Breton"
> -  !insertmacro MUI_LANGUAGE "Bulgarian"
> -  !insertmacro MUI_LANGUAGE "Croatian"
> -  !insertmacro MUI_LANGUAGE "Czech"
> -  !insertmacro MUI_LANGUAGE "Danish"
> -  !insertmacro MUI_LANGUAGE "Dutch"
> -  !insertmacro MUI_LANGUAGE "Estonian"
> -  !insertmacro MUI_LANGUAGE "Farsi"
> -  !insertmacro MUI_LANGUAGE "Finnish"
> -  !insertmacro MUI_LANGUAGE "French"
> -  !insertmacro MUI_LANGUAGE "German"
> -  !insertmacro MUI_LANGUAGE "Greek"
> -  !insertmacro MUI_LANGUAGE "Hebrew"
> -  !insertmacro MUI_LANGUAGE "Hungarian"
> -  !insertmacro MUI_LANGUAGE "Icelandic"
> -  !insertmacro MUI_LANGUAGE "Indonesian"
> -  !insertmacro MUI_LANGUAGE "Irish"
> -  !insertmacro MUI_LANGUAGE "Italian"
> -  !insertmacro MUI_LANGUAGE "Japanese"
> -  !insertmacro MUI_LANGUAGE "Korean"
> -  !insertmacro MUI_LANGUAGE "Kurdish"
> -  !insertmacro MUI_LANGUAGE "Latvian"
> -  !insertmacro MUI_LANGUAGE "Lithuanian"
> -  !insertmacro MUI_LANGUAGE "Luxembourgish"
> -  !insertmacro MUI_LANGUAGE "Macedonian"
> -  !insertmacro MUI_LANGUAGE "Malay"
> -  !insertmacro MUI_LANGUAGE "Mongolian"
> -  !insertmacro MUI_LANGUAGE "Norwegian"
> -  !insertmacro MUI_LANGUAGE "Polish"
> -  !insertmacro MUI_LANGUAGE "Portuguese"
> -  !insertmacro MUI_LANGUAGE "PortugueseBR"
> -  !insertmacro MUI_LANGUAGE "Romanian"
> -  !insertmacro MUI_LANGUAGE "Russian"
> -  !insertmacro MUI_LANGUAGE "Serbian"
> -  !insertmacro MUI_LANGUAGE "SerbianLatin"
> -  !insertmacro MUI_LANGUAGE "SimpChinese"
> -  !insertmacro MUI_LANGUAGE "Slovak"
> -  !insertmacro MUI_LANGUAGE "Slovenian"
> -  !insertmacro MUI_LANGUAGE "Spanish"
> -  !insertmacro MUI_LANGUAGE "Swedish"
> -  !insertmacro MUI_LANGUAGE "Thai"
> -  !insertmacro MUI_LANGUAGE "TradChinese"
> -  !insertmacro MUI_LANGUAGE "Turkish"
> -  !insertmacro MUI_LANGUAGE "Ukrainian"
> -  !insertmacro MUI_LANGUAGE "Welsh"
> -
> -
> -;--------------------------------
> -;Reserve Files
> -
> -  ;These files should be inserted before other files in the data block
> -  ;Keep these lines before any File command
> -  ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)
> -
> -  ReserveFile "NSIS.InstallOptions.ini"
> -  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
> -
> -;--------------------------------
> -;Installer Sections
> -
> -Section "-Core installation"
> -  ;Use the entire tree produced by the INSTALL target.  Keep the
> -  ;list of directories here in sync with the RMDir commands below.
> -  SetOutPath "$INSTDIR"
> -  @CPACK_NSIS_FULL_INSTALL@
> -  
> -  ;Store installation folder
> -  WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR
> -  
> -  ;Create uninstaller
> -  WriteUninstaller "$INSTDIR\Uninstall.exe"
> -  Push "DisplayName"
> -  Push "@CPACK_NSIS_DISPLAY_NAME@"
> -  Call ConditionalAddToRegisty
> -  Push "DisplayVersion"
> -  Push "@CPACK_PACKAGE_VERSION@"
> -  Call ConditionalAddToRegisty
> -  Push "Publisher"
> -  Push "@CPACK_PACKAGE_VENDOR@"
> -  Call ConditionalAddToRegisty
> -  Push "UninstallString"
> -  Push "$INSTDIR\Uninstall.exe"
> -  Call ConditionalAddToRegisty
> -  Push "NoRepair"
> -  Push "1"
> -  Call ConditionalAddToRegisty
> -  
> -  !ifdef CPACK_NSIS_ADD_REMOVE
> -  ;Create add/remove functionality
> -  Push "ModifyPath"
> -  Push "$INSTDIR\AddRemove.exe"
> -  Call ConditionalAddToRegisty
> -  !else
> -  Push "NoModify"
> -  Push "1"
> -  Call ConditionalAddToRegisty
> -  !endif
> -  
> -  ; Optional registration
> -  Push "DisplayIcon"
> -  Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@"
> -  Call ConditionalAddToRegisty
> -  Push "HelpLink"
> -  Push "@CPACK_NSIS_HELP_LINK@"
> -  Call ConditionalAddToRegisty
> -  Push "URLInfoAbout"
> -  Push "@CPACK_NSIS_URL_INFO_ABOUT@"
> -  Call ConditionalAddToRegisty
> -  Push "Contact"
> -  Push "@CPACK_NSIS_CONTACT@"
> -  Call ConditionalAddToRegisty
> -  !insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_DESKTOP "NSIS.InstallOptions.ini" "Field 5" "State"
> -  !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
> -  
> -  ;Create shortcuts
> -  CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
> -@CPACK_NSIS_CREATE_ICONS@
> -@CPACK_NSIS_CREATE_ICONS_EXTRA@
> -  CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
> -
> -  ;Read a value from an InstallOptions INI file
> -  !insertmacro MUI_INSTALLOPTIONS_READ $DO_NOT_ADD_TO_PATH "NSIS.InstallOptions.ini" "Field 2" "State"
> -  !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_ALL_USERS "NSIS.InstallOptions.ini" "Field 3" "State"
> -  !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_CURRENT_USER "NSIS.InstallOptions.ini" "Field 4" "State"
> -
> -  ; Write special uninstall registry entries
> -  Push "StartMenu"
> -  Push "$STARTMENU_FOLDER"
> -  Call ConditionalAddToRegisty
> -  Push "DoNotAddToPath"
> -  Push "$DO_NOT_ADD_TO_PATH"
> -  Call ConditionalAddToRegisty
> -  Push "AddToPathAllUsers"
> -  Push "$ADD_TO_PATH_ALL_USERS"
> -  Call ConditionalAddToRegisty
> -  Push "AddToPathCurrentUser"
> -  Push "$ADD_TO_PATH_CURRENT_USER"
> -  Call ConditionalAddToRegisty
> -  Push "InstallToDesktop"
> -  Push "$INSTALL_DESKTOP"
> -  Call ConditionalAddToRegisty
> -
> -  !insertmacro MUI_STARTMENU_WRITE_END
> -
> -@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@
> -
> -SectionEnd
> -
> -Section "-Add to path"
> -  Push $INSTDIR\bin
> -  StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 doNotAddToPath
> -  StrCmp $DO_NOT_ADD_TO_PATH "1" doNotAddToPath 0  
> -    Call AddToPath
> -  doNotAddToPath:
> -SectionEnd
> -
> -;--------------------------------
> -; Create custom pages
> -Function InstallOptionsPage
> -  !insertmacro MUI_HEADER_TEXT "Install Options" "Choose options for installing @CPACK_NSIS_PACKAGE_NAME@"
> -  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "NSIS.InstallOptions.ini"
> -
> -FunctionEnd
> -
> -;--------------------------------
> -; determine admin versus local install
> -Function un.onInit
> -
> -  ;Load selected language from registry
> -  !ifndef CPACK_NSIS_LANGUAGE_DIALOG_@CPACK_NSIS_LANGUAGE_DIALOG@
> -    !define CPACK_NSIS_LANGUAGE_DIALOG_@CPACK_NSIS_LANGUAGE_DIALOG@
> -  !endif
> -  !ifdef CPACK_NSIS_LANGUAGE_DIALOG_ON
> -    !insertmacro MUI_UNGETLANGUAGE
> -  !endif
> -
> -  ClearErrors
> -  UserInfo::GetName
> -  IfErrors noLM
> -  Pop $0
> -  UserInfo::GetAccountType
> -  Pop $1
> -  StrCmp $1 "Admin" 0 +3
> -    SetShellVarContext all
> -    ;MessageBox MB_OK 'User "$0" is in the Admin group'
> -    Goto done
> -  StrCmp $1 "Power" 0 +3
> -    SetShellVarContext all
> -    ;MessageBox MB_OK 'User "$0" is in the Power Users group'
> -    Goto done
> -    
> -  noLM:
> -    ;Get installation folder from registry if available
> -
> -  done:
> -    
> -FunctionEnd
> -
> -;--- Add/Remove callback functions: ---
> -!macro SectionList MacroName
> -  ;This macro used to perform operation on multiple sections.
> -  ;List all of your components in following manner here.
> -@CPACK_NSIS_COMPONENT_SECTION_LIST@
> -!macroend
> - 
> -Section -FinishComponents
> -  ;Removes unselected components and writes component status to registry
> -  !insertmacro SectionList "FinishSection"
> -  
> -!ifdef CPACK_NSIS_ADD_REMOVE  
> -  ; Get the name of the installer executable
> -  System::Call 'kernel32::GetModuleFileNameA(i 0, t .R0, i 1024) i r1'
> -  StrCpy $R3 $R0
> -  
> -  ; Strip off the last 13 characters, to see if we have AddRemove.exe
> -  StrLen $R1 $R0
> -  IntOp $R1 $R0 - 13
> -  StrCpy $R2 $R0 13 $R1
> -  StrCmp $R2 "AddRemove.exe" addremove_installed
> -  
> -  ; We're not running AddRemove.exe, so install it
> -  CopyFiles $R3 $INSTDIR\AddRemove.exe
> -  
> -  addremove_installed:
> -!endif
> -SectionEnd
> -;--- End of Add/Remove callback functions ---
> -
> -;--------------------------------
> -; Component dependencies
> -Function .onSelChange
> -  !insertmacro SectionList MaybeSelectionChanged
> -FunctionEnd
> -
> -;--------------------------------
> -;Uninstaller Section
> -
> -Section "Uninstall"
> -  ReadRegStr $START_MENU SHCTX \
> -   "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "StartMenu"
> -  ;MessageBox MB_OK "Start menu is in: $START_MENU"
> -  ReadRegStr $DO_NOT_ADD_TO_PATH SHCTX \
> -    "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "DoNotAddToPath"
> -  ReadRegStr $ADD_TO_PATH_ALL_USERS SHCTX \
> -    "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathAllUsers"
> -  ReadRegStr $ADD_TO_PATH_CURRENT_USER SHCTX \
> -    "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathCurrentUser"
> -  ;MessageBox MB_OK "Add to path: $DO_NOT_ADD_TO_PATH all users: $ADD_TO_PATH_ALL_USERS"
> -  ReadRegStr $INSTALL_DESKTOP SHCTX \
> -    "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "InstallToDesktop"
> -  ;MessageBox MB_OK "Install to desktop: $INSTALL_DESKTOP "
> -
> -@CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@
> -
> -  ;Remove files we installed.
> -  ;Keep the list of directories here in sync with the File commands above.
> -@CPACK_NSIS_DELETE_FILES@
> -@CPACK_NSIS_DELETE_DIRECTORIES@
> -
> -!ifdef CPACK_NSIS_ADD_REMOVE  
> -  ;Remove the add/remove program
> -  Delete "$INSTDIR\AddRemove.exe"
> -!endif
> -
> -  ;Remove the uninstaller itself.
> -  Delete "$INSTDIR\Uninstall.exe"
> -  DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
> -
> -  ;Remove the installation directory if it is empty.
> -  RMDir "$INSTDIR"
> -
> -  ; Remove the registry entries.
> -  DeleteRegKey SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
> -
> -  ; Removes all optional components
> -  !insertmacro SectionList "RemoveSection"
> -  
> -  !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
> -    
> -  Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
> -@CPACK_NSIS_DELETE_ICONS@
> -@CPACK_NSIS_DELETE_ICONS_EXTRA@
> -  
> -  ;Delete empty start menu parent diretories
> -  StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
> - 
> -  startMenuDeleteLoop:
> -    ClearErrors
> -    RMDir $MUI_TEMP
> -    GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
> -    
> -    IfErrors startMenuDeleteLoopDone
> -  
> -    StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop
> -  startMenuDeleteLoopDone:
> -
> -  ; If the user changed the shortcut, then untinstall may not work. This should
> -  ; try to fix it.
> -  StrCpy $MUI_TEMP "$START_MENU"
> -  Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
> -@CPACK_NSIS_DELETE_ICONS_EXTRA@
> -  
> -  ;Delete empty start menu parent diretories
> -  StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
> - 
> -  secondStartMenuDeleteLoop:
> -    ClearErrors
> -    RMDir $MUI_TEMP
> -    GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
> -    
> -    IfErrors secondStartMenuDeleteLoopDone
> -  
> -    StrCmp "$MUI_TEMP" "$SMPROGRAMS" secondStartMenuDeleteLoopDone secondStartMenuDeleteLoop
> -  secondStartMenuDeleteLoopDone:
> -
> -  DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
> -
> -  Push $INSTDIR\bin
> -  StrCmp $DO_NOT_ADD_TO_PATH_ "1" doNotRemoveFromPath 0
> -    Call un.RemoveFromPath
> -  doNotRemoveFromPath:
> -SectionEnd
> -
> -;--------------------------------
> -; determine admin versus local install
> -; Is install for "AllUsers" or "JustMe"?
> -; Default to "JustMe" - set to "AllUsers" if admin or on Win9x
> -; This function is used for the very first "custom page" of the installer.
> -; This custom page does not show up visibly, but it executes prior to the
> -; first visible page and sets up $INSTDIR properly...
> -; Choose different default installation folder based on SV_ALLUSERS...
> -; "Program Files" for AllUsers, "My Documents" for JustMe...
> -
> -Function .onInit
> -  ;Language Selection Dialog
> -  !ifndef CPACK_NSIS_LANGUAGE_DIALOG_@CPACK_NSIS_LANGUAGE_DIALOG@
> -    !define CPACK_NSIS_LANGUAGE_DIALOG_@CPACK_NSIS_LANGUAGE_DIALOG@
> -  !endif
> -  !ifdef CPACK_NSIS_LANGUAGE_DIALOG_ON
> -    !define MUI_LANGDLL_REGISTRY_ROOT SHCTX
> -    !define MUI_LANGDLL_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
> -    !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
> -    !insertmacro MUI_LANGDLL_DISPLAY
> -  !endif
> -  
> -  ; Reads components status for registry
> -  !insertmacro SectionList "InitSection"
> -
> -  ; check to see if /D has been used to change 
> -  ; the install directory by comparing it to the 
> -  ; install directory that is expected to be the
> -  ; default
> -  StrCpy $IS_DEFAULT_INSTALLDIR 0
> -  StrCmp "$INSTDIR" "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@" 0 +2
> -    StrCpy $IS_DEFAULT_INSTALLDIR 1
> -  
> -  StrCpy $SV_ALLUSERS "JustMe"
> -  ; if default install dir then change the default
> -  ; if it is installed for JustMe
> -  StrCmp "$IS_DEFAULT_INSTALLDIR" "1" 0 +2
> -    StrCpy $INSTDIR "$DOCUMENTS\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
> -
> -  ClearErrors
> -  UserInfo::GetName
> -  IfErrors noLM
> -  Pop $0
> -  UserInfo::GetAccountType
> -  Pop $1
> -  StrCmp $1 "Admin" 0 +3
> -    SetShellVarContext all
> -    ;MessageBox MB_OK 'User "$0" is in the Admin group'
> -    StrCpy $SV_ALLUSERS "AllUsers"
> -    Goto done
> -  StrCmp $1 "Power" 0 +3
> -    SetShellVarContext all
> -    ;MessageBox MB_OK 'User "$0" is in the Power Users group'
> -    StrCpy $SV_ALLUSERS "AllUsers"
> -    Goto done
> -    
> -  noLM:
> -    StrCpy $SV_ALLUSERS "AllUsers"
> -    ;Get installation folder from registry if available
> -
> -  done:
> -  StrCmp $SV_ALLUSERS "AllUsers" 0 +3
> -    StrCmp "$IS_DEFAULT_INSTALLDIR" "1" 0 +2
> -      StrCpy $INSTDIR "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
> -
> -  StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 noOptionsPage
> -    !insertmacro MUI_INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini"
> -
> -  noOptionsPage:
> -FunctionEnd
> 
> === renamed file 'src/CodeCheck.cmake' => 'cmake/codecheck/CodeCheck.cmake'
> --- src/CodeCheck.cmake	2011-09-23 08:49:44 +0000
> +++ cmake/codecheck/CodeCheck.cmake	2014-06-16 13:55:52 +0000
> @@ -1,23 +1,17 @@
> -if (WIN32)
> -  execute_process(
> -    COMMAND "${PYTHON_EXECUTABLE}" "${WL_SOURCE_CHECKER}" -c "${sourcefile}"
> -    OUTPUT_VARIABLE checkresult
> -#   OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/codecheck-stamps/${stamp}
> -    OUTPUT_STRIP_TRAILING_WHITESPACE
> -  )
> -else (WIN32)
> -  execute_process(
> -    COMMAND "${WL_SOURCE_CHECKER}" -c "${sourcefile}"
> -    OUTPUT_VARIABLE checkresult
> -#   OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/codecheck-stamps/${stamp}
> -    OUTPUT_STRIP_TRAILING_WHITESPACE
> -  )
> -endif (WIN32)
> +execute_process(
> +  COMMAND "${PYTHON_EXECUTABLE}" "${WL_SOURCE_CHECKER}" -c "${SRC}"
> +  OUTPUT_VARIABLE checkresult
> +  RESULT_VARIABLE exitcode
> +  OUTPUT_STRIP_TRAILING_WHITESPACE
> +)
>  
> -if (checkresult STREQUAL "")
> +if (checkresult STREQUAL "" AND NOT exitcode)
>    execute_process(
> -    COMMAND cmake -E touch ${CMAKE_CURRENT_BINARY_DIR}/${stamp}
> +    COMMAND cmake -E touch ${OUTPUT_FILE}
>    )
> -else (checkresult STREQUAL "")
> +else (checkresult STREQUAL "" AND NOT exitcode)
>    message ("${checkresult}")
> -endif (checkresult STREQUAL "")
> +  execute_process(
> +    COMMAND cmake -E remove ${OUTPUT_FILE}
> +  )
> +endif (checkresult STREQUAL "" AND NOT exitcode)
> 
> === modified file 'cmake/codecheck/rules/const_qualifier_for_parameter_passed_by_value'
> --- cmake/codecheck/rules/const_qualifier_for_parameter_passed_by_value	2010-02-05 01:13:20 +0000
> +++ cmake/codecheck/rules/const_qualifier_for_parameter_passed_by_value	2014-06-16 13:55:52 +0000
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python 
> +#!/usr/bin/python
>  
>  """
>  This catches const qualifiers for parameters passed by value to functions, in
> @@ -9,7 +9,7 @@
>  * qualifiers
>  """
>  
> -error_msg = "'const' for a literal parameter makes no sense. Remove the const."
> +error_msg = "'const' for a literal parameter is an implementation detail. Remove the const from the interface definition."
>  
>  regexp = r"""^\s*(?:(static|virtual) +)?(?:const +)?(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*(?: +const)?(?: *(?:\*(?: *const)?|&))* +[_a-zA-Z][_a-zA-Z0-9]* *\((?:(const +)?(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*(?: +const)?(?: *(?:\*(?: *const)?|&))*(?: +[_a-zA-Z][_a-zA-Z0-9]*)?, *)*(?:const +(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*|(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]* +const)(?: +[_a-zA-Z][_a-zA-Z0-9]*)?(?:, *(?:const +)?(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*(?: +const)?(?: *(?:\*(?: *const)?|&))*)*(?: +[_a-zA-Z][_a-zA-Z0-9]*)?(?:\)(?: *const)?(?: throw *\(.*\))?;|,$)"""
>  
> @@ -135,5 +135,5 @@
>      "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo) const;",
>      " virtual void func(Some_Type,",
>      " virtual void * func(Some_Type,",
> -    "  virtual std::string & func(Some_Type,", 
> +    "  virtual std::string & func(Some_Type,",
>  ]
> 
> === modified file 'src/CMakeLists.txt'
> --- src/CMakeLists.txt	2014-04-16 06:51:52 +0000
> +++ src/CMakeLists.txt	2014-06-16 13:55:52 +0000
> @@ -1,150 +1,952 @@
> -configure_file (${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
> -configure_file (${CMAKE_CURRENT_SOURCE_DIR}/build_info.cc.cmake ${CMAKE_CURRENT_BINARY_DIR}/build_info.cc)
> -
> -IF (WIN32)
> -  configure_file (${CMAKE_CURRENT_SOURCE_DIR}/../utils/win32/msvc/widelands.rc.cmake ${CMAKE_CURRENT_BINARY_DIR}/widelands.rc)
> -  if (NOT WL_VERSION_MAJOR OR WL_VERSION_MAJOR STREQUAL "")
> -    set (WL_VERSION_MAJOR 0)
> -  endif (NOT WL_VERSION_MAJOR OR WL_VERSION_MAJOR STREQUAL "")
> -  if (NOT WL_VERSION_MINOR OR WL_VERSION_MINOR STREQUAL "")
> -    set (WL_VERSION_MINOR 15)
> -  endif (NOT WL_VERSION_MINOR OR WL_VERSION_MINOR STREQUAL "")
> -  if (NOT WL_VERSION_PATCH OR WL_VERSION_PATCH STREQUAL "")
> -    set (WL_VERSION_PATCH 1)
> -  endif (NOT WL_VERSION_PATCH OR WL_VERSION_PATCH STREQUAL "")
> -  configure_file (${CMAKE_CURRENT_SOURCE_DIR}/../utils/win32/msvc/Widelands-msvc.iss.cmake ${CMAKE_CURRENT_BINARY_DIR}/Widelands-msvc.iss)
> -  IF (MINGW)
> -	set(WIN32_ICON_O ${CMAKE_CURRENT_BINARY_DIR}/wl_icon.o)
> -	ADD_CUSTOM_COMMAND( OUTPUT ${WIN32_ICON_O}
> -		COMMAND ${MINGW_PREFIX}windres
> -			-o${WIN32_ICON_O}
> -			-i${CMAKE_CURRENT_BINARY_DIR}/widelands.rc
> -		)
> -	ENDIF (MINGW)
> -endif (WIN32)
> -
> -file(GLOB_RECURSE WL_SRCS_CC *.cc)
> -file(GLOB_RECURSE WL_SRCS_H *.h)
> -file(GLOB_RECURSE WL_SRCS_CPP *.cpp)
> -
> -#convention: any directory called "test" contains test sources, including subdirectories
> -set(WL_TEST_SRCS "")
> -set(WL_CODECHECK_SRCS "")
> -foreach (sourcefile ${WL_SRCS_CC} ${WL_SRCS_H})
> -  if (${sourcefile} MATCHES ".*/test/.*")
> -    list (APPEND WL_TEST_SRCS ${sourcefile})
> -    list (REMOVE_ITEM WL_SRCS_CC ${sourcefile})
> -    list (REMOVE_ITEM WL_SRCS_H ${sourcefile})
> -  endif (${sourcefile} MATCHES ".*/test/.*")
> -  # exclude test sources from Codecheck, as well as the scripting/eris sources from lua and minizip
> -  if (NOT ${sourcefile} MATCHES ".*/scripting/eris/.*" AND NOT ${sourcefile} MATCHES ".*/test/.*" AND NOT ${sourcefile} MATCHES ".*/minizip/.*")
> -    list (APPEND WL_CODECHECK_SRCS ${sourcefile})
> -  endif (NOT ${sourcefile} MATCHES ".*/scripting/eris/.*" AND NOT ${sourcefile} MATCHES ".*/test/.*" AND NOT ${sourcefile} MATCHES ".*/minizip/.*")
> -endforeach (sourcefile ${WL_SRCS_CC} ${WL_SRCS_H})
> -foreach (sourcefile ${WL_SRCS_CPP})
> -  list (APPEND WL_CODECHECK_SRCS ${sourcefile})
> -endforeach (sourcefile ${WL_SRCS_CPP})
> -#convention: main.cc should be removed from all lists
> -list (REMOVE_ITEM WL_SRCS_CC "${CMAKE_CURRENT_SOURCE_DIR}/main.cc")
> -
> -IF (DEFINED MSVC)
> -  add_executable (widelands ${GUI_TYPE} main.cc build_info.cc widelands.rc)
> -else (DEFINED MSVC)
> -  if (DEFINED MINGW)
> -    add_executable (widelands ${GUI_TYPE} main.cc build_info.cc ${WIN32_ICON_O})
> -  else (DEFINED MINGW)
> -    add_executable (widelands ${GUI_TYPE} main.cc build_info.cc)
> -  endif (DEFINED MINGW)
> -endif (DEFINED MSVC)
> -
> -add_library (widelands_all STATIC ${WL_SRCS_CC} ${WL_SRCS_H})
> -
> -set (WL_SOURCES_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
> -set (WL_SOURCES_BINARY_ROOT ${CMAKE_CURRENT_BINARY_DIR})
> -
> -if (CMAKE_BUILD_TYPE STREQUAL Debug)
> -  find_package (PythonInterp REQUIRED)
> -  set (commands "")
> -  foreach(sourcefile ${WL_CODECHECK_SRCS})
> -    string(REPLACE "${CMAKE_SOURCE_DIR}/src/" "" sourcewithoutpath ${sourcefile})
> -    string(REGEX REPLACE "\\.|\\/" "_" sourcenoslash ${sourcewithoutpath})
> -    if (WIN32)
> -      string(REGEX REPLACE "^.*:" "" sourcenoslash ${sourcenoslash})
> -    endif (WIN32)
> -    get_filename_component(sourcename ${sourcefile} NAME)
> -    set(stamp ${sourcename}_)
> -    add_custom_command(
> -      OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/codecheck_${sourcenoslash}"
> -      COMMAND ${CMAKE_COMMAND} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DWL_SOURCE_CHECKER=${CMAKE_SOURCE_DIR}/cmake/codecheck/CodeCheck.py -Dsourcefile=${sourcefile} -DCMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -Dstamp=codecheck_${sourcenoslash} -P ${CMAKE_SOURCE_DIR}/src/CodeCheck.cmake
> -      DEPENDS ${sourcefile}
> -      COMMENT "Checking ${sourcewithoutpath} with CodeCheck"
> -    )
> -    list(APPEND commands ${CMAKE_CURRENT_BINARY_DIR}/codecheck_${sourcenoslash})
> -  endforeach(sourcefile ${WL_CODECHECK_SRCS})
> -  add_custom_target(codecheck DEPENDS ${commands})
> -  add_dependencies(widelands codecheck)
> -endif (CMAKE_BUILD_TYPE STREQUAL Debug)
> -
> -#the subdirectories are only used for test definition
> -#temporarily disabled the 'old' tests due to incompatibility
> -if (WL_UNIT_TESTS)
> -  # Tests need to link with SDL library without main
> -  set(TEST_EXTRA_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/build_info.cc)
> -  set(TEST_EXTRA_LIBS ${SDL_LIBRARY} )
> -  list(REMOVE_ITEM TEST_EXTRA_LIBS  ${SDLMAIN_LIBRARY})
> -
> -  add_subdirectory(economy)
> -  add_subdirectory(io)
> -endif (WL_UNIT_TESTS)
> -
> -add_subdirectory(scripting)
> -
> -if (NOT MINIZIP_FOUND)
> -  add_subdirectory(minizip)
> -  target_link_libraries(widelands_all wl_minizip)
> -endif (NOT MINIZIP_FOUND)
> -
> -target_link_libraries(widelands_all eris)
> -target_link_libraries(widelands_all ${SDLIMAGE_LIBRARY})
> -target_link_libraries(widelands_all ${SDLMIXER_LIBRARY})
> -target_link_libraries(widelands_all ${SDLNET_LIBRARY})
> -target_link_libraries(widelands_all ${SDLTTF_LIBRARY})
> -target_link_libraries(widelands_all ${SDLGFX_LIBRARY})
> -target_link_libraries(widelands_all ${PNG_LIBRARY})
> -target_link_libraries(widelands_all ${ZLIB_LIBRARY})
> -target_link_libraries(widelands_all ${OPENGL_gl_LIBRARY})
> -target_link_libraries(widelands_all ${GLEW_LIBRARY})
> -target_link_libraries(widelands_all ${Boost_LIBRARIES})
> -
> -if (MINIZIP_FOUND)
> -  target_link_libraries(widelands_all ${MINIZIP_LIBRARY})
> -endif (MINIZIP_FOUND)
> -if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
> -  target_link_libraries(widelands_all ${EXECINFO_LIBRARY})
> -endif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
> -
> -if (DEFINED WL_EXTRA_LINK_LIBRARIES)
> -  target_link_libraries(widelands_all ${WL_EXTRA_LINK_LIBRARIES})
> -endif (DEFINED WL_EXTRA_LINK_LIBRARIES)
> -
> -target_link_libraries(widelands widelands_all)
> -target_link_libraries(widelands ${SDL_LIBRARY})
> -
> -if (APPLE OR WIN32 OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
> -  target_link_libraries(widelands_all ${INTL_LIBRARY})
> -endif (APPLE OR WIN32 OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
> -
> -if (WIN32)
> -  if (DEFINED MSVC)
> -    target_link_libraries(widelands_all ws2_32)
> -
> -    #gettext on MSVC using 3rdparty bundle needs iconv library
> -    find_library(ICONV_LIBRARY iconv libiconv REQUIRED)
> -    target_link_libraries(widelands_all ${ICONV_LIBRARY})
> -
> -  else (DEFINED MSVC)
> -    target_link_libraries(widelands_all wsock32)
> -  endif (DEFINED MSVC)
> -endif (WIN32)
> -
> -install(TARGETS widelands DESTINATION ${WL_INSTALL_BINDIR} COMPONENT ExecutableFiles)
> +configure_file (${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
> +configure_file (${CMAKE_CURRENT_SOURCE_DIR}/build_info.cc.cmake ${CMAKE_CURRENT_BINARY_DIR}/build_info.cc)
> +
> +# Catchall target to codecheck all files.
> +add_custom_target(codecheck)
> +
> +# A target that depends on all unit tests as 'make test' will not rebuild
> +# tests:
> +# http://stackoverflow.com/questions/733475/cmake-ctest-make-test-doesnt-build-tests
> +add_custom_target(wl_tests)
> +
> +macro(_parse_common_args ARGS)
> +  # TODO(sirver): add OPTIONS for the other external libraries we use
> +  set(OPTIONS THIRD_PARTY C_LIBRARY USES_BOOST_REGEX USES_ZLIB WIN32)
> +  set(ONE_VALUE_ARG )
> +  set(MULTI_VALUE_ARGS SRCS DEPENDS)
> +  cmake_parse_arguments(ARG "${OPTIONS}" "${ONE_VALUE_ARG}" "${MULTI_VALUE_ARGS}"
> +    ${ARGS}
> +  )
> +endmacro(_parse_common_args)
> +
> +macro(_common_compile_tasks)
> +  if (NOT ARG_C_LIBRARY)
> +    set(TARGET_COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} ${WL_GENERIC_CXX_FLAGS}")
> +  endif()
> +
> +  set(TARGET_COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} ${WL_OPTIMIZE_FLAGS} ${WL_DEBUG_FLAGS}")
> +
> +  if(ARG_THIRD_PARTY)
> +    # Disable all warings for third_party.
> +    set(TARGET_COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} -w")
> +  else()
> +    foreach(SRC ${ARG_SRCS})
> +      run_codecheck(${NAME} ${SRC})
> +    endforeach(SRC)
> +
> +    set(TARGET_COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} ${WL_COMPILE_WARNING_FLAGS}")
> +  endif()
> +
> +  set_target_properties(${NAME} PROPERTIES COMPILE_FLAGS ${TARGET_COMPILE_FLAGS})
> +
> +  if(NOT ARG_THIRD_PARTY)
> +    # src/ is the base for all of our includes. The binary one is for generated files.
> +    target_include_directories(${NAME} PRIVATE ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR}/src)
> +
> +    # Boost is practically the standard library, so we always add a search path
> +    # to include it easily. Except for third party.
> +    target_include_directories(${NAME} SYSTEM INTERFACE ${Boost_INCLUDE_DIR})
> +  endif()
> +
> +  if(ARG_USES_ZLIB)
> +    target_include_directories(${NAME} SYSTEM INTERFACE ${ZLIB_INCLUDE_DIRS})
> +    target_link_libraries(${NAME} ${ZLIB_LIBRARY})
> +  endif()
> +
> +  if (ARG_USES_BOOST_REGEX)
> +    target_link_libraries(${NAME} ${Boost_LIBRARIES})
> +  endif()
> +
> +  foreach(DEPENDENCY ${ARG_DEPENDS})
> +    target_link_libraries(${NAME} ${DEPENDENCY})
> +  endforeach(DEPENDENCY)
> +endmacro(_common_compile_tasks)
> +
> +# See
> +# http://www.cmake.org/cmake/help/v3.0/module/CMakeParseArguments.html
> +function(wl_library NAME)
> +  _parse_common_args("${ARGN}")
> +
> +  # TODO(sirver): I do not get any unresolved dependency errors
> +  # when building a STATIC library, only for SHARED. We should
> +  # always gets those errors to track down cyclic dependencies.
> +  add_library(${NAME}
> +    STATIC
> +    EXCLUDE_FROM_ALL
> +    ${ARG_SRCS}
> +  )
> +
> +  _common_compile_tasks()
> +endfunction()
> +
> +function(wl_binary NAME)
> +  _parse_common_args("${ARGN}")
> +
> +  if (ARG_WIN32)
> +    add_executable(${NAME}
> +      WIN32
> +      ${ARG_SRCS}
> +    )
> +  else()
> +    add_executable(${NAME}
> +      ${ARG_SRCS}
> +    )
> +  endif()
> +
> +  _common_compile_tasks()
> +endfunction()
> +
> +function(wl_test NAME)
> +  _parse_common_args("${ARGN}")
> +
> +  add_executable(${NAME} ${ARG_SRCS})
> +
> +  # If boost unit test library is linked dynamically, BOOST_TEST_DYN_LINK must be defined
> +  string(REGEX MATCH ".a$" BOOST_STATIC_UNIT_TEST_LIB ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
> +  if (NOT BOOST_STATIC_UNIT_TEST_LIB)
> +    set(TARGET_COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} -DBOOST_TEST_DYN_LINK")
> +  endif()
> +  target_link_libraries(${NAME} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
> +
> +  # Tests need to link with SDL library without main.
> +  set(SDL_LIBRARY_TEMP ${SDL_LIBRARY})
> +  list(REMOVE_ITEM SDL_LIBRARY_TEMP ${SDLMAIN_LIBRARY})
> +  target_link_libraries(${NAME} ${SDL_LIBRARY_TEMP})
> +
> +  _common_compile_tasks()
> +
> +  add_test(${NAME} ${NAME})
> +  add_dependencies(wl_tests ${NAME})
> +endfunction()
> +
> +# Checks a single 'SRC' file using Codecheck and writes a file named
> +# codecheck_<shasum of input> if the codecheck did not yield anything. The
> +# target for the codecheck will be added as a dependency to 'NAME' for debug
> +# builds, but always for the target 'codecheck', so that make codecheck checks
> +# all source code.
> +function(run_codecheck NAME SRC)
> +  get_filename_component(ABSOLUTE_SRC ${SRC} ABSOLUTE)
> +
> +  # If the file does not exist, it is probably auto-generated. In that case, it
> +  # makes no sense to codecheck it.
> +  if(EXISTS ${ABSOLUTE_SRC})
> +    file(SHA1 ${ABSOLUTE_SRC} CHECKSUM)
> +
> +    set(OUTPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/codecheck_${CHECKSUM}")
> +    add_custom_command(
> +      OUTPUT
> +        ${OUTPUT_FILE}
> +      COMMAND
> +        ${CMAKE_COMMAND}
> +        -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
> +        -DWL_SOURCE_CHECKER=${CMAKE_SOURCE_DIR}/cmake/codecheck/CodeCheck.py
> +        -DSRC=${ABSOLUTE_SRC}
> +        -DOUTPUT_FILE=${OUTPUT_FILE}
> +        -DCMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}
> +        -P ${CMAKE_SOURCE_DIR}/cmake/codecheck/CodeCheck.cmake
> +      DEPENDS ${ABSOLUTE_SRC}
> +      COMMENT "Checking ${SRC} with CodeCheck"
> +    )
> +    add_custom_target(run_codecheck_for_${CHECKSUM} DEPENDS ${OUTPUT_FILE})
> +    add_dependencies(codecheck run_codecheck_for_${CHECKSUM})
> +
> +    if(CMAKE_BUILD_TYPE STREQUAL Debug)
> +      add_dependencies(${NAME} run_codecheck_for_${CHECKSUM})
> +    endif(CMAKE_BUILD_TYPE STREQUAL Debug)
> +  endif(EXISTS ${ABSOLUTE_SRC})
> +endfunction(run_codecheck)
> +
> +wl_library(build_info
> +  SRCS
> +    build_info.cc
> +    build_info.h
> +)
> +
> +set(WL_SRCS
> +	ai/ai_help_structs.cc
> +	ai/ai_hints.cc
> +	ai/defaultai.cc
> +	campvis.cc
> +	chat.cc
> +	computer_player.cc
> +	economy/cmd_call_economy_balance.cc
> +	economy/economy.cc
> +	economy/economy_data_packet.cc
> +	economy/flag.cc
> +	economy/fleet.cc
> +	economy/idleworkersupply.cc
> +	economy/portdock.cc
> +	economy/request.cc
> +	economy/road.cc
> +	economy/route.cc
> +	economy/routeastar.cc
> +	economy/router.cc
> +	economy/shippingitem.cc
> +	economy/supply_list.cc
> +	economy/transfer.cc
> +	economy/ware_instance.cc
> +	economy/wares_queue.cc
> +	editor/editorinteractive.cc
> +	editor/tools/editor_decrease_height_tool.cc
> +	editor/tools/editor_decrease_resources_tool.cc
> +	editor/tools/editor_delete_bob_tool.cc
> +	editor/tools/editor_delete_immovable_tool.cc
> +	editor/tools/editor_draw_tool.cc
> +	editor/tools/editor_history.cc
> +	editor/tools/editor_increase_height_tool.cc
> +	editor/tools/editor_increase_resources_tool.cc
> +	editor/tools/editor_info_tool.cc
> +	editor/tools/editor_make_infrastructure_tool.cc
> +	editor/tools/editor_noise_height_tool.cc
> +	editor/tools/editor_place_bob_tool.cc
> +	editor/tools/editor_place_immovable_tool.cc
> +	editor/tools/editor_set_height_tool.cc
> +	editor/tools/editor_set_origin_tool.cc
> +	editor/tools/editor_set_port_space_tool.cc
> +	editor/tools/editor_set_resources_tool.cc
> +	editor/tools/editor_set_starting_pos_tool.cc
> +	editor/tools/editor_set_terrain_tool.cc
> +	editor/ui_menus/editor_main_menu.cc
> +	editor/ui_menus/editor_main_menu_load_map.cc
> +	editor/ui_menus/editor_main_menu_map_options.cc
> +	editor/ui_menus/editor_main_menu_new_map.cc
> +	editor/ui_menus/editor_main_menu_random_map.cc
> +	editor/ui_menus/editor_main_menu_save_map.cc
> +	editor/ui_menus/editor_main_menu_save_map_make_directory.cc
> +	editor/ui_menus/editor_player_menu.cc
> +	editor/ui_menus/editor_player_menu_allowed_buildings_menu.cc
> +	editor/ui_menus/editor_tool_change_height_options_menu.cc
> +	editor/ui_menus/editor_tool_change_resources_options_menu.cc
> +	editor/ui_menus/editor_tool_menu.cc
> +	editor/ui_menus/editor_tool_noise_height_options_menu.cc
> +	editor/ui_menus/editor_tool_options_menu.cc
> +	editor/ui_menus/editor_tool_place_bob_options_menu.cc
> +	editor/ui_menus/editor_tool_place_immovable_options_menu.cc
> +	editor/ui_menus/editor_tool_set_terrain_options_menu.cc
> +	editor/ui_menus/editor_toolsize_menu.cc
> +	game_io/game_cmd_queue_data_packet.cc
> +	game_io/game_game_class_data_packet.cc
> +	game_io/game_interactive_player_data_packet.cc
> +	game_io/game_loader.cc
> +	game_io/game_map_data_packet.cc
> +	game_io/game_player_economies_data_packet.cc
> +	game_io/game_player_info_data_packet.cc
> +	game_io/game_preload_data_packet.cc
> +	game_io/game_saver.cc
> +	graphic/align.cc
> +	graphic/animation.cc
> +	graphic/colormap.cc
> +	graphic/font.cc
> +	graphic/font_handler.cc
> +	graphic/font_handler1.cc
> +	graphic/graphic.cc
> +	graphic/image_cache.cc
> +	graphic/image_loader_impl.cc
> +	graphic/image_transformations.cc
> +	graphic/in_memory_image.cc
> +	graphic/render/gamerenderer.cc
> +	graphic/render/gamerenderer_gl.cc
> +	graphic/render/gamerenderer_sdl.cc
> +	graphic/render/gl_surface.cc
> +	graphic/render/gl_surface_screen.cc
> +	graphic/render/gl_surface_texture.cc
> +	graphic/render/gl_utils.cc
> +	graphic/render/minimaprenderer.cc
> +	graphic/render/sdl_helper.cc
> +	graphic/render/sdl_surface.cc
> +	graphic/render/terrain_sdl.cc
> +	graphic/rendertarget.cc
> +	graphic/richtext.cc
> +	graphic/surface.cc
> +	graphic/surface_cache.cc
> +	graphic/text/rt_parse.cc
> +	graphic/text/rt_render.cc
> +	graphic/text/sdl_ttf_font_impl.cc
> +	graphic/text/sdl_ttf_font_loader_from_file.cc
> +	graphic/text/sdl_ttf_font_loader_from_filesystem.cc
> +	graphic/text/textstream.cc
> +	graphic/text_parser.cc
> +	graphic/texture.cc
> +	graphic/wordwrap.cc
> +	helper.cc
> +	logic/backtrace.cc
> +	logic/battle.cc
> +	logic/bob.cc
> +	logic/buildcost.cc
> +	logic/building.cc
> +	logic/carrier.cc
> +	logic/checkstep.cc
> +	logic/cmd_calculate_statistics.cc
> +	logic/cmd_expire_message.cc
> +	logic/cmd_incorporate.cc
> +	logic/cmd_luacoroutine.cc
> +	logic/cmd_luascript.cc
> +	logic/cmd_queue.cc
> +	logic/constructionsite.cc
> +	logic/critter_bob.cc
> +	logic/dismantlesite.cc
> +	logic/editor_game_base.cc
> +	logic/expedition_bootstrap.cc
> +	logic/field.cc
> +	logic/findbob.cc
> +	logic/findimmovable.cc
> +	logic/findnode.cc
> +	logic/game.cc
> +	logic/game_data_error.cc
> +	logic/immovable.cc
> +	logic/instances.cc
> +	logic/map.cc
> +	logic/map_revision.cc
> +	logic/mapastar.cc
> +	logic/mapdifferenceregion.cc
> +	logic/mapfringeregion.cc
> +	logic/maphollowregion.cc
> +	logic/maptriangleregion.cc
> +	logic/military_data.cc
> +	logic/militarysite.cc
> +	logic/partially_finished_building.cc
> +	logic/path.cc
> +	logic/pathfield.cc
> +	logic/player.cc
> +	logic/playercommand.cc
> +	logic/playersmanager.cc
> +	logic/production_program.cc
> +	logic/productionsite.cc
> +	logic/queue_cmd_factory.cc
> +	logic/replay.cc
> +	logic/requirements.cc
> +	logic/ship.cc
> +	logic/soldier.cc
> +	logic/trainingsite.cc
> +	logic/tribe.cc
> +	logic/walkingdir.cc
> +	logic/ware_descr.cc
> +	logic/warehouse.cc
> +	logic/warelist.cc
> +	logic/widelands_geometry_io.cc
> +	logic/worker.cc
> +	logic/worker_descr.cc
> +	logic/worker_program.cc
> +	logic/world.cc
> +	map_generator.cc
> +	map_io/widelands_map_allowed_building_types_data_packet.cc
> +	map_io/widelands_map_allowed_worker_types_data_packet.cc
> +	map_io/widelands_map_building_data_packet.cc
> +	map_io/widelands_map_buildingdata_data_packet.cc
> +	map_io/widelands_map_elemental_data_packet.cc
> +	map_io/widelands_map_exploration_data_packet.cc
> +	map_io/widelands_map_extradata_data_packet.cc
> +	map_io/widelands_map_flag_data_packet.cc
> +	map_io/widelands_map_flagdata_data_packet.cc
> +	map_io/widelands_map_heights_data_packet.cc
> +	map_io/widelands_map_loader.cc
> +	map_io/widelands_map_map_object_loader.cc
> +	map_io/widelands_map_map_object_saver.cc
> +	map_io/widelands_map_node_ownership_data_packet.cc
> +	map_io/widelands_map_object_packet.cc
> +	map_io/widelands_map_objective_data_packet.cc
> +	map_io/widelands_map_player_names_and_tribes_data_packet.cc
> +	map_io/widelands_map_player_position_data_packet.cc
> +	map_io/widelands_map_players_messages_data_packet.cc
> +	map_io/widelands_map_players_view_data_packet.cc
> +	map_io/widelands_map_port_spaces_data_packet.cc
> +	map_io/widelands_map_resources_data_packet.cc
> +	map_io/widelands_map_road_data_packet.cc
> +	map_io/widelands_map_roaddata_data_packet.cc
> +	map_io/widelands_map_saver.cc
> +	map_io/widelands_map_scripting_data_packet.cc
> +	map_io/widelands_map_terrain_data_packet.cc
> +	map_io/widelands_map_version_data_packet.cc
> +	md5.cc
> +	network/internet_gaming.cc
> +	network/internet_gaming_messages.cc
> +	network/netclient.cc
> +	network/nethost.cc
> +	network/network.cc
> +	network/network_gaming_messages.cc
> +	network/network_lan_promotion.cc
> +	network/network_player_settings_backend.cc
> +	random.cc
> +	replay_game_controller.cc
> +	s2map.cc
> +	save_handler.cc
> +	scoped_timer.cc
> +	scripting/c_utils.cc
> +	scripting/factory.cc
> +	scripting/lua_bases.cc
> +	scripting/lua_coroutine.cc
> +	scripting/lua_editor.cc
> +	scripting/lua_game.cc
> +	scripting/lua_globals.cc
> +	scripting/lua_map.cc
> +	scripting/lua_root.cc
> +	scripting/lua_table.cc
> +	scripting/lua_ui.cc
> +	scripting/luna_impl.cc
> +	scripting/persistence.cc
> +	scripting/scripting.cc
> +	single_player_game_controller.cc
> +	single_player_game_settings_provider.cc
> +	text_layout.cc
> +	timestring.cc
> +	ui_basic/box.cc
> +	ui_basic/button.cc
> +	ui_basic/checkbox.cc
> +	ui_basic/editbox.cc
> +	ui_basic/helpwindow.cc
> +	ui_basic/icon.cc
> +	ui_basic/icongrid.cc
> +	ui_basic/listselect.cc
> +	ui_basic/messagebox.cc
> +	ui_basic/multilineeditbox.cc
> +	ui_basic/multilinetextarea.cc
> +	ui_basic/panel.cc
> +	ui_basic/progressbar.cc
> +	ui_basic/progresswindow.cc
> +	ui_basic/radiobutton.cc
> +	ui_basic/scrollbar.cc
> +	ui_basic/slider.cc
> +	ui_basic/spinbox.cc
> +	ui_basic/table.cc
> +	ui_basic/tabpanel.cc
> +	ui_basic/textarea.cc
> +	ui_basic/unique_window.cc
> +	ui_basic/window.cc
> +	ui_fsmenu/base.cc
> +	ui_fsmenu/campaign_select.cc
> +	ui_fsmenu/editor.cc
> +	ui_fsmenu/editor_mapselect.cc
> +	ui_fsmenu/fileview.cc
> +	ui_fsmenu/internet_lobby.cc
> +	ui_fsmenu/intro.cc
> +	ui_fsmenu/launchMPG.cc
> +	ui_fsmenu/launchSPG.cc
> +	ui_fsmenu/loadgame.cc
> +	ui_fsmenu/loadreplay.cc
> +	ui_fsmenu/main.cc
> +	ui_fsmenu/mapselect.cc
> +	ui_fsmenu/multiplayer.cc
> +	ui_fsmenu/netsetup_lan.cc
> +	ui_fsmenu/options.cc
> +	ui_fsmenu/singleplayer.cc
> +	wlapplication.cc
> +	wui/actionconfirm.cc
> +	wui/attack_box.cc
> +	wui/building_statistics_menu.cc
> +	wui/building_ui.cc
> +	wui/buildingwindow.cc
> +	wui/chatoverlay.cc
> +	wui/constructionsitewindow.cc
> +	wui/debugconsole.cc
> +	wui/dismantlesitewindow.cc
> +	wui/encyclopedia_window.cc
> +	wui/fieldaction.cc
> +	wui/game_chat_menu.cc
> +	wui/game_debug_ui.cc
> +	wui/game_main_menu.cc
> +	wui/game_main_menu_save_game.cc
> +	wui/game_message_menu.cc
> +	wui/game_objectives_menu.cc
> +	wui/game_options_menu.cc
> +	wui/game_options_sound_menu.cc
> +	wui/game_summary.cc
> +	wui/game_tips.cc
> +	wui/gamechatpanel.cc
> +	wui/general_statistics_menu.cc
> +	wui/interactive_base.cc
> +	wui/interactive_gamebase.cc
> +	wui/interactive_player.cc
> +	wui/interactive_spectator.cc
> +	wui/itemwaresdisplay.cc
> +	wui/login_box.cc
> +	wui/mapview.cc
> +	wui/mapviewpixelfunctions.cc
> +	wui/military_box.cc
> +	wui/militarysitewindow.cc
> +	wui/minimap.cc
> +	wui/multiplayersetupgroup.cc
> +	wui/overlay_manager.cc
> +	wui/playerdescrgroup.cc
> +	wui/plot_area.cc
> +	wui/portdockwaresdisplay.cc
> +	wui/productionsitewindow.cc
> +	wui/quicknavigation.cc
> +	wui/shipwindow.cc
> +	wui/soldiercapacitycontrol.cc
> +	wui/soldierlist.cc
> +	wui/stock_menu.cc
> +	wui/story_message_box.cc
> +	wui/trainingsitewindow.cc
> +	wui/transport_draw.cc
> +	wui/transport_ui.cc
> +	wui/unique_window_handler.cc
> +	wui/ware_statistics_menu.cc
> +	wui/warehousewindow.cc
> +	wui/waresdisplay.cc
> +	wui/waresqueuedisplay.cc
> +	wui/watchwindow.cc
> +  TribeBasicInfo.h
> +  ai/ai_help_structs.h
> +  ai/ai_hints.h
> +  ai/defaultai.h
> +  campvis.h
> +  chat.h
> +  compile_diagnostics.h
> +  computer_player.h
> +  constants.h
> +  container_iterate.h
> +  cookie_priority_queue.h
> +  economy/cmd_call_economy_balance.h
> +  economy/economy.h
> +  economy/economy_data_packet.h
> +  economy/flag.h
> +  economy/fleet.h
> +  economy/idleworkersupply.h
> +  economy/iroute.h
> +  economy/itransport_cost_calculator.h
> +  economy/portdock.h
> +  economy/request.h
> +  economy/road.h
> +  economy/route.h
> +  economy/routeastar.h
> +  economy/router.h
> +  economy/routing_node.h
> +  economy/shippingitem.h
> +  economy/supply.h
> +  economy/supply_list.h
> +  economy/transfer.h
> +  economy/ware_instance.h
> +  economy/warehousesupply.h
> +  economy/wares_queue.h
> +  editor/editorinteractive.h
> +  editor/tools/editor_action_args.h
> +  editor/tools/editor_decrease_height_tool.h
> +  editor/tools/editor_decrease_resources_tool.h
> +  editor/tools/editor_delete_bob_tool.h
> +  editor/tools/editor_delete_immovable_tool.h
> +  editor/tools/editor_draw_tool.h
> +  editor/tools/editor_history.h
> +  editor/tools/editor_increase_height_tool.h
> +  editor/tools/editor_increase_resources_tool.h
> +  editor/tools/editor_info_tool.h
> +  editor/tools/editor_make_infrastructure_tool.h
> +  editor/tools/editor_noise_height_tool.h
> +  editor/tools/editor_place_bob_tool.h
> +  editor/tools/editor_place_immovable_tool.h
> +  editor/tools/editor_set_height_tool.h
> +  editor/tools/editor_set_origin_tool.h
> +  editor/tools/editor_set_port_space_tool.h
> +  editor/tools/editor_set_resources_tool.h
> +  editor/tools/editor_set_starting_pos_tool.h
> +  editor/tools/editor_set_terrain_tool.h
> +  editor/tools/editor_tool.h
> +  editor/tools/editor_tool_action.h
> +  editor/tools/multi_select.h
> +  editor/ui_menus/editor_main_menu.h
> +  editor/ui_menus/editor_main_menu_load_map.h
> +  editor/ui_menus/editor_main_menu_map_options.h
> +  editor/ui_menus/editor_main_menu_new_map.h
> +  editor/ui_menus/editor_main_menu_random_map.h
> +  editor/ui_menus/editor_main_menu_save_map.h
> +  editor/ui_menus/editor_main_menu_save_map_make_directory.h
> +  editor/ui_menus/editor_player_menu.h
> +  editor/ui_menus/editor_player_menu_allowed_buildings_menu.h
> +  editor/ui_menus/editor_tool_change_height_options_menu.h
> +  editor/ui_menus/editor_tool_change_resources_options_menu.h
> +  editor/ui_menus/editor_tool_menu.h
> +  editor/ui_menus/editor_tool_noise_height_options_menu.h
> +  editor/ui_menus/editor_tool_options_menu.h
> +  editor/ui_menus/editor_tool_place_bob_options_menu.h
> +  editor/ui_menus/editor_tool_place_immovable_options_menu.h
> +  editor/ui_menus/editor_tool_set_terrain_options_menu.h
> +  editor/ui_menus/editor_toolsize_menu.h
> +  game_io/game_cmd_queue_data_packet.h
> +  game_io/game_data_packet.h
> +  game_io/game_game_class_data_packet.h
> +  game_io/game_interactive_player_data_packet.h
> +  game_io/game_loader.h
> +  game_io/game_map_data_packet.h
> +  game_io/game_player_economies_data_packet.h
> +  game_io/game_player_info_data_packet.h
> +  game_io/game_preload_data_packet.h
> +  game_io/game_saver.h
> +  gamecontroller.h
> +  gamesettings.h
> +  graphic/align.h
> +  graphic/animation.h
> +  graphic/colormap.h
> +  graphic/compositemode.h
> +  graphic/diranimations.h
> +  graphic/font.h
> +  graphic/font_handler.h
> +  graphic/font_handler1.h
> +  graphic/graphic.h
> +  graphic/image.h
> +  graphic/image_cache.h
> +  graphic/image_loader.h
> +  graphic/image_loader_impl.h
> +  graphic/image_transformations.h
> +  graphic/in_memory_image.h
> +  graphic/rect.h
> +  graphic/render/gamerenderer.h
> +  graphic/render/gamerenderer_gl.h
> +  graphic/render/gamerenderer_sdl.h
> +  graphic/render/gl_surface.h
> +  graphic/render/gl_surface_screen.h
> +  graphic/render/gl_surface_texture.h
> +  graphic/render/gl_utils.h
> +  graphic/render/minimaprenderer.h
> +  graphic/render/sdl_helper.h
> +  graphic/render/sdl_surface.h
> +  graphic/render/terrain_sdl.h
> +  graphic/render/vertex.h
> +  graphic/rendertarget.h
> +  graphic/richtext.h
> +  graphic/surface.h
> +  graphic/surface_cache.h
> +  graphic/text/rt_errors.h
> +  graphic/text/rt_errors_impl.h
> +  graphic/text/rt_parse.h
> +  graphic/text/rt_render.h
> +  graphic/text/sdl_ttf_font.h
> +  graphic/text/sdl_ttf_font_impl.h
> +  graphic/text/textstream.h
> +  graphic/text_parser.h
> +  graphic/texture.h
> +  graphic/wordwrap.h
> +  helper.h
> +  interval.h
> +  logic/attackable.h
> +  logic/backtrace.h
> +  logic/battle.h
> +  logic/bill_of_materials.h
> +  logic/bob.h
> +  logic/buildcost.h
> +  logic/building.h
> +  logic/carrier.h
> +  logic/checkstep.h
> +  logic/cmd_calculate_statistics.h
> +  logic/cmd_expire_message.h
> +  logic/cmd_incorporate.h
> +  logic/cmd_luacoroutine.h
> +  logic/cmd_luascript.h
> +  logic/cmd_queue.h
> +  logic/constructionsite.h
> +  logic/critter_bob.h
> +  logic/critter_bob_program.h
> +  logic/description_maintainer.h
> +  logic/dismantlesite.h
> +  logic/editor_game_base.h
> +  logic/expedition_bootstrap.h
> +  logic/field.h
> +  logic/findbob.h
> +  logic/findimmovable.h
> +  logic/findnode.h
> +  logic/game.h
> +  logic/game_data_error.h
> +  logic/immovable.h
> +  logic/immovable_program.h
> +  logic/instances.h
> +  logic/map.h
> +  logic/map_revision.h
> +  logic/mapastar.h
> +  logic/mapdifferenceregion.h
> +  logic/mapfringeregion.h
> +  logic/maphollowregion.h
> +  logic/mapregion.h
> +  logic/maptriangleregion.h
> +  logic/message.h
> +  logic/message_id.h
> +  logic/message_queue.h
> +  logic/military_data.h
> +  logic/militarysite.h
> +  logic/nodecaps.h
> +  logic/notification.h
> +  logic/objective.h
> +  logic/parse_map_object_types.h
> +  logic/partially_finished_building.h
> +  logic/path.h
> +  logic/pathfield.h
> +  logic/player.h
> +  logic/player_area.h
> +  logic/playercommand.h
> +  logic/playersmanager.h
> +  logic/production_program.h
> +  logic/productionsite.h
> +  logic/program_result.h
> +  logic/queue_cmd_factory.h
> +  logic/queue_cmd_ids.h
> +  logic/replay.h
> +  logic/requirements.h
> +  logic/roadtype.h
> +  logic/ship.h
> +  logic/soldier.h
> +  logic/soldier_counts.h
> +  logic/soldiercontrol.h
> +  logic/tattribute.h
> +  logic/trainingsite.h
> +  logic/tribe.h
> +  logic/walkingdir.h
> +  logic/ware_descr.h
> +  logic/warehouse.h
> +  logic/warelist.h
> +  logic/wareworker.h
> +  logic/widelands.h
> +  logic/widelands_geometry.h
> +  logic/widelands_geometry_io.h
> +  logic/workarea_info.h
> +  logic/worker.h
> +  logic/worker_descr.h
> +  logic/worker_program.h
> +  logic/world.h
> +  logic/worlddata.h
> +  machdep.h
> +  map_generator.h
> +  map_io/coords_profile.cc
> +  map_io/coords_profile.h
> +  map_io/map_loader.h
> +  map_io/widelands_map_allowed_building_types_data_packet.h
> +  map_io/widelands_map_allowed_worker_types_data_packet.h
> +  map_io/widelands_map_building_data_packet.h
> +  map_io/widelands_map_buildingdata_data_packet.h
> +  map_io/widelands_map_data_packet.h
> +  map_io/widelands_map_elemental_data_packet.h
> +  map_io/widelands_map_exploration_data_packet.h
> +  map_io/widelands_map_extradata_data_packet.h
> +  map_io/widelands_map_flag_data_packet.h
> +  map_io/widelands_map_flagdata_data_packet.h
> +  map_io/widelands_map_heights_data_packet.h
> +  map_io/widelands_map_loader.h
> +  map_io/widelands_map_map_object_loader.h
> +  map_io/widelands_map_map_object_saver.h
> +  map_io/widelands_map_message_saver.h
> +  map_io/widelands_map_node_ownership_data_packet.h
> +  map_io/widelands_map_object_packet.h
> +  map_io/widelands_map_objective_data_packet.h
> +  map_io/widelands_map_player_names_and_tribes_data_packet.h
> +  map_io/widelands_map_player_position_data_packet.h
> +  map_io/widelands_map_players_messages_data_packet.h
> +  map_io/widelands_map_players_view_data_packet.h
> +  map_io/widelands_map_port_spaces_data_packet.h
> +  map_io/widelands_map_resources_data_packet.h
> +  map_io/widelands_map_road_data_packet.h
> +  map_io/widelands_map_roaddata_data_packet.h
> +  map_io/widelands_map_saver.h
> +  map_io/widelands_map_scripting_data_packet.h
> +  map_io/widelands_map_terrain_data_packet.h
> +  map_io/widelands_map_version_data_packet.h
> +  md5.h
> +  network/internet_gaming.h
> +  network/internet_gaming_messages.h
> +  network/internet_gaming_protocol.h
> +  network/netclient.h
> +  network/nethost.h
> +  network/network.h
> +  network/network_gaming_messages.h
> +  network/network_lan_promotion.h
> +  network/network_player_settings_backend.h
> +  network/network_protocol.h
> +  network/network_system.h
> +  point.h
> +  random.h
> +  ref_cast.h
> +  replay_game_controller.h
> +  rgbcolor.h
> +  s2map.h
> +  save_handler.h
> +  scoped_timer.h
> +  scripting/c_utils.h
> +  scripting/factory.h
> +  scripting/lua_bases.h
> +  scripting/lua_coroutine.h
> +  scripting/lua_editor.h
> +  scripting/lua_errors.h
> +  scripting/lua_game.h
> +  scripting/lua_globals.h
> +  scripting/lua_map.h
> +  scripting/lua_root.h
> +  scripting/lua_table.h
> +  scripting/lua_ui.h
> +  scripting/luna.h
> +  scripting/luna_impl.h
> +  scripting/persistence.h
> +  scripting/scripting.h
> +  single_player_game_controller.h
> +  single_player_game_settings_provider.h
> +  text_layout.h
> +  timestring.h
> +  trackptr.h
> +  ui_basic/box.h
> +  ui_basic/button.h
> +  ui_basic/checkbox.h
> +  ui_basic/editbox.h
> +  ui_basic/helpwindow.h
> +  ui_basic/icon.h
> +  ui_basic/icongrid.h
> +  ui_basic/listselect.h
> +  ui_basic/messagebox.h
> +  ui_basic/mouse_constants.h
> +  ui_basic/multilineeditbox.h
> +  ui_basic/multilinetextarea.h
> +  ui_basic/panel.h
> +  ui_basic/progressbar.h
> +  ui_basic/progresswindow.h
> +  ui_basic/radiobutton.h
> +  ui_basic/scrollbar.h
> +  ui_basic/slider.h
> +  ui_basic/spinbox.h
> +  ui_basic/table.h
> +  ui_basic/tabpanel.h
> +  ui_basic/textarea.h
> +  ui_basic/unique_window.h
> +  ui_basic/window.h
> +  ui_fsmenu/base.h
> +  ui_fsmenu/campaign_select.h
> +  ui_fsmenu/editor.h
> +  ui_fsmenu/editor_mapselect.h
> +  ui_fsmenu/fileview.h
> +  ui_fsmenu/internet_lobby.h
> +  ui_fsmenu/intro.h
> +  ui_fsmenu/launchMPG.h
> +  ui_fsmenu/launchSPG.h
> +  ui_fsmenu/loadgame.h
> +  ui_fsmenu/loadreplay.h
> +  ui_fsmenu/main.h
> +  ui_fsmenu/mapselect.h
> +  ui_fsmenu/multiplayer.h
> +  ui_fsmenu/netsetup_lan.h
> +  ui_fsmenu/options.h
> +  ui_fsmenu/singleplayer.h
> +  upcast.h
> +  utf8.h
> +  vector.h
> +  wlapplication.h
> +  wui/actionconfirm.h
> +  wui/attack_box.h
> +  wui/building_statistics_menu.h
> +  wui/buildingwindow.h
> +  wui/chatoverlay.h
> +  wui/debugconsole.h
> +  wui/encyclopedia_window.h
> +  wui/fieldaction.h
> +  wui/game_chat_menu.h
> +  wui/game_debug_ui.h
> +  wui/game_main_menu.h
> +  wui/game_main_menu_save_game.h
> +  wui/game_message_menu.h
> +  wui/game_objectives_menu.h
> +  wui/game_options_menu.h
> +  wui/game_options_sound_menu.h
> +  wui/game_summary.h
> +  wui/game_tips.h
> +  wui/gamechatpanel.h
> +  wui/general_statistics_menu.h
> +  wui/interactive_base.h
> +  wui/interactive_gamebase.h
> +  wui/interactive_player.h
> +  wui/interactive_spectator.h
> +  wui/itemwaresdisplay.h
> +  wui/login_box.h
> +  wui/logmessage.h
> +  wui/mapview.h
> +  wui/mapviewpixelconstants.h
> +  wui/mapviewpixelfunctions.h
> +  wui/military_box.h
> +  wui/minimap.h
> +  wui/multiplayersetupgroup.h
> +  wui/overlay_manager.h
> +  wui/playerdescrgroup.h
> +  wui/plot_area.h
> +  wui/portdockwaresdisplay.h
> +  wui/productionsitewindow.h
> +  wui/quicknavigation.h
> +  wui/soldiercapacitycontrol.h
> +  wui/soldierlist.h
> +  wui/stock_menu.h
> +  wui/story_message_box.h
> +  wui/unique_window_handler.h
> +  wui/ware_statistics_menu.h
> +  wui/waresdisplay.h
> +  wui/waresqueuedisplay.h
> +  wui/watchwindow.h
> +)
> +
> +if (WIN32)
> +	set(WIN32_ICON_O ${CMAKE_CURRENT_BINARY_DIR}/wl_icon.o)
> +	ADD_CUSTOM_COMMAND(OUTPUT ${WIN32_ICON_O}
> +		COMMAND ${MINGW_PREFIX}windres
> +			-o${WIN32_ICON_O}
> +			-i${CMAKE_CURRENT_BINARY_DIR}/widelands.rc
> +  )
> +  wl_binary(
> +    widelands
> +    WIN32
> +    SRCS
> +      main.cc
> +      ${WIN32_ICON_O}
> +    DEPENDS
> +      widelands_ball_of_mud
> +      build_info
> +      # TODO(sirver): USE_SDL
> +      ${SDL_LIBRARY}
> +  )
> +else()
> +  wl_binary(
> +    widelands
> +    SRCS
> +      main.cc
> +    DEPENDS
> +      widelands_ball_of_mud
> +      build_info
> +      # TODO(sirver): USE_SDL
> +      ${SDL_LIBRARY}
> +  )
> +endif()
> +
> +add_subdirectory(base)
> +add_subdirectory(economy)
> +add_subdirectory(io)
> +add_subdirectory(profile)
> +add_subdirectory(scripting)
> +add_subdirectory(sound)
> +add_subdirectory(third_party)
> +
> +#TODO: It looks like various things have cyclic dependencies
> +#in all directions. Ideally this core shouldn't exist or at least
> +#be a limited set of header files needed to boostrap the other
> +#parts. For now it is absolutely everything to make things build :(
> +wl_library(widelands_ball_of_mud
> +  SRCS
> +    ${WL_SRCS}
> +  DEPENDS
> +    base_i18n
> +    third_party_eris
> +    io_dedicated_log
> +    io_filesystem
> +    profile
> +    sound
> +    # TODO(sirver): add USES_* for each of these
> +    ${SDLIMAGE_LIBRARY}
> +    ${SDLMIXER_LIBRARY}
> +    ${SDLNET_LIBRARY}
> +    ${SDLTTF_LIBRARY}
> +    ${SDLGFX_LIBRARY}
> +    ${PNG_LIBRARY}
> +    ${OPENGL_gl_LIBRARY}
> +    ${GLEW_LIBRARY}
> +)
> +
> +
> +if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
> +  target_link_libraries(widelands_ball_of_mud ${EXECINFO_LIBRARY})
> +endif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
> +
> +if (APPLE OR WIN32 OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
> +  target_link_libraries(widelands_ball_of_mud ${INTL_LIBRARY})
> +endif (APPLE OR WIN32 OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
> +
> +if (WIN32)
> +  target_link_libraries(widelands_ball_of_mud wsock32)
> +endif (WIN32)
> +
> +install(TARGETS widelands DESTINATION ${WL_INSTALL_BINDIR} COMPONENT ExecutableFiles)
> 
> === modified file 'src/ai/defaultai.cc'
> --- src/ai/defaultai.cc	2014-06-16 13:24:45 +0000
> +++ src/ai/defaultai.cc	2014-06-16 13:55:52 +0000
> @@ -28,10 +28,10 @@
>  #include <typeinfo>
>  
>  #include "ai/ai_hints.h"
> +#include "base/log.h"
>  #include "economy/economy.h"
>  #include "economy/flag.h"
>  #include "economy/road.h"
> -#include "log.h"
>  #include "logic/constructionsite.h"
>  #include "logic/findimmovable.h"
>  #include "logic/findnode.h"
> 
> === modified file 'src/ai/defaultai.h'
> --- src/ai/defaultai.h	2014-06-04 19:55:35 +0000
> +++ src/ai/defaultai.h	2014-06-16 13:55:52 +0000
> @@ -23,8 +23,8 @@
>  #include <map>
>  
>  #include "ai/ai_help_structs.h"
> +#include "base/i18n.h"
>  #include "computer_player.h"
> -#include "i18n.h"
>  
>  namespace Widelands {
>  struct Road;
> 
> === added directory 'src/base'
> === added file 'src/base/CMakeLists.txt'
> --- src/base/CMakeLists.txt	1970-01-01 00:00:00 +0000
> +++ src/base/CMakeLists.txt	2014-06-16 13:55:52 +0000
> @@ -0,0 +1,21 @@
> +wl_library(base_log
> +  SRCS
> +    log.cc
> +    log.h
> +)
> +
> +wl_library(base_exceptions
> +  SRCS
> +    exceptions.cc
> +    warning.h
> +    wexception.h
> +)
> +
> +wl_library(base_i18n
> +  SRCS
> +    i18n.h
> +    i18n.cc
> +  DEPENDS
> +    base_log
> +    ${INTL_LIBRARY}
> +)
> 
> === renamed file 'src/exceptions.cc' => 'src/base/exceptions.cc'
> --- src/exceptions.cc	2013-10-08 21:20:32 +0000
> +++ src/base/exceptions.cc	2014-06-16 13:55:52 +0000
> @@ -17,8 +17,8 @@
>   *
>   */
>  
> -#include "warning.h"
> -#include "wexception.h"
> +#include "base/warning.h"
> +#include "base/wexception.h"
>  
>  #include <cstdarg>
>  #include <cstdio>
> 
> === renamed file 'src/i18n.cc' => 'src/base/i18n.cc'
> --- src/i18n.cc	2013-07-26 19:16:51 +0000
> +++ src/base/i18n.cc	2014-06-16 13:55:52 +0000
> @@ -17,16 +17,16 @@
>   *
>   */
>  
> -#include "i18n.h"
> +#include "base/i18n.h"
>  
>  #include <cstdlib>
> +#include <map>
>  #include <utility>
>  
>  #include <config.h>
>  #include <libintl.h>
>  
> -#include "log.h"
> -#include "profile/profile.h"
> +#include "base/log.h"
>  
>  #ifdef __APPLE__
>  # if LIBINTL_VERSION >= 0x001201
> @@ -49,12 +49,16 @@
>  /// A stack of textdomains. On entering a new textdomain, the old one gets
>  /// pushed on the stack. On leaving the domain again it is popped back.
>  /// \see grab_texdomain()
> +namespace  {
> +
>  std::vector<std::pair<std::string, std::string> > textdomains;
>  
>  std::string env_locale;
>  std::string locale;
>  std::string localedir;
>  
> +}  // namespace
> +
>  /**
>   * Translate a string with gettext
>   * \todo Implement a workaround if gettext was not found
> @@ -148,6 +152,64 @@
>   * Code inspired by wesnoth.org
>   */
>  void set_locale(std::string name) {
> +	const std::map<std::string, std::string> kAlternatives = {
> +		{"ar", "ar,ar_AR,ar_AE,ar_BH,ar_DZ,ar_EG,ar_IN,ar_IQ,ar_JO,ar_KW,ar_LB,ar_LY,ar_MA,ar_OM,ar_"
> +		"QA,ar_SA,ar_SD,ar_SY,ar_TN,ar_YE"},
> +		{"ast", "ast,ast_ES"},
> +		{"ca", "ca,ca_ES,ca_ES@valencia,ca_FR,ca_IT"},
> +		{"cs", "cs,cs_CZ"},
> +		{"da", "da,da_DK"},
> +		{"de", "de,de_DE,de_AT,de_CH,de_LI,de_LU,de_BE"},
> +		{"el", "el,el_GR,el_CY"},
> +		{"en", "en,en_US,en_GB,en_AU,en_CA,en_AG,en_BW,en_DK,en_HK,en_IE,en_IN,en_NG,en_NZ,en_PH,en_"
> +		"SG,en_ZA,en_ZW"},
> +		{"en_AU", "en_AU,en,en_US,en_GB"},
> +		{"en_CA", "en_CA,en,en_US,en_GB"},
> +		{"en_GB", "en_GB,en,en_US"},
> +		{"eo", "eo,eo_XX"},
> +		{"es", "es,es_ES,es_MX,es_US"},
> +		{"et", "et,et_EE"},
> +		{"eu", "eu,eu_ES,eu_FR"},
> +		{"fa", "fa,fa_IR"},
> +		{"fi", "fi,fi_FI"},
> +		{"fr", "fr,fr_FR,fr_CH,fr_BE,fr_CA,fr_LU"},
> +		{"gd", "gd,gd_GB,gd_CA"},
> +		{"gl", "ga,gl_ES"},
> +		{"he", "he,he_IL"},
> +		{"hr", "hr,hr_HR,hr_RS,hr_BA,hr_ME,hr_HU"},
> +		{"hu", "hu,hu_HU"},
> +		{"ia", "ia"},
> +		{"id", "id,id_ID"},
> +		{"it", "it,it_IT,it_CH"},
> +		{"ja", "ja,ja_JP"},
> +		{"jv", "jv,jv_ID,jv_MY,jv_SR,jv_NC"},
> +		{"ka", "ka,ka_GE"},
> +		{"ko", "ko,ko_KR"},
> +		{"la", "la,la_AU,la_VA"},
> +		{"mr", "mr,mr_IN"},
> +		{"ms", "ms,ms_MY"},
> +		{"my", "my,my_MM"},
> +		{"nb", "nb,nb_NO"},
> +		{"nl", "nl,nl_NL,nl_BE,nl_AW"},
> +		{"nn", "nn,nn_NO"},
> +		{"oc", "oc,oc_FR"},
> +		{"pl", "pl,pl_PL"},
> +		{"pt", "pt,pt_PT,pt_BR"},
> +		{"pt_BR", "pt_BR,pt,pt_PT"},
> +		{"ru", "ru,ru_RU,ru_UA"},
> +		{"si", "si,si_LK"},
> +		{"sk", "sk,sk_SK"},
> +		{"sl", "sl,sl_SI"},
> +		{"sr", "sr,sr_RS,sr_ME"},
> +		{"sv", "sv,sv_FI,sv_SE"},
> +		{"tr", "tr,tr_TR,tr_CY"},
> +		{"uk", "uk,uk_UA"},
> +		{"vi", "vi,vi_VN"},
> +		{"zh", "zh,zh_CN,zh_TW,zh_HK,zh_MO"},
> +		{"zh_CN", "zh_CN,zh,zh_TW,zh_HK,zh_MO"},
> +		{"zh_TW", "zh_TW,zh_HK,zh_MO,zh,zh_CN"},
> +	};
> +
>  	std::string lang(name);
>  
>  	log("selected language: %s\n", lang.empty()?"(system language)":lang.c_str());
> @@ -164,14 +226,15 @@
>  	if (lang.empty()) {
>  		// reload system language, if selected
>  		lang = env_locale;
> -		alt_str = env_locale + ",";
> +		alt_str = env_locale;
>  	} else {
> -		// otherwise, read alternatives from file
> -		Profile loc("txts/locales");
> -		Section * s = &loc.pull_section("alternatives");
> -		alt_str = s->get_string(lang.c_str(), lang.c_str());
> -		alt_str += ",";
> +		alt_str = lang;
> +		// otherwise, try alternatives.
> +		if (kAlternatives.count(lang)) {
> +			alt_str = kAlternatives.at(lang);
> +		}
>  	}
> +	alt_str += ",";
>  
>  	// Somehow setlocale doesn't behave same on
>  	// some systems.
> 
> === renamed file 'src/i18n.h' => 'src/base/i18n.h'
> --- src/i18n.h	2013-07-26 19:16:51 +0000
> +++ src/base/i18n.h	2014-06-16 13:55:52 +0000
> @@ -26,7 +26,7 @@
>  
>  #include <config.h>
>  
> -#include "port.h"
> +#include "base/port.h"
>  
>  ///A macro to make i18n more readable and aid in tagging strings for translation
>  #define _(str) i18n::translate(str)
> 
> === renamed file 'src/log.cc' => 'src/base/log.cc'
> --- src/log.cc	2013-07-26 05:57:03 +0000
> +++ src/base/log.cc	2014-06-16 13:55:52 +0000
> @@ -17,14 +17,12 @@
>   *
>   */
>  
> -#include "log.h"
> +#include "base/log.h"
>  
>  #include <cstdarg>
>  #include <cstdio>
>  #include <iostream>
>  
> -#include "io/dedicated_log.h"
> -
>  // Default to stdout for logging.
>  std::ostream & wout = std::cout;
>  
> @@ -41,5 +39,3 @@
>  	wout << buffer;
>  	wout.flush();
>  }
> -
> -
> 
> === renamed file 'src/log.h' => 'src/base/log.h'
> === renamed file 'src/port.h' => 'src/base/port.h'
> === renamed file 'src/warning.h' => 'src/base/warning.h'
> --- src/warning.h	2014-02-22 18:04:02 +0000
> +++ src/base/warning.h	2014-06-16 13:55:52 +0000
> @@ -26,7 +26,7 @@
>  
>  #include <stdint.h>
>  
> -#include "port.h"
> +#include "base/port.h"
>  
>  #ifndef PRINTF_FORMAT
>  #ifdef __GNUC__
> 
> === renamed file 'src/wexception.h' => 'src/base/wexception.h'
> --- src/wexception.h	2014-02-22 18:04:02 +0000
> +++ src/base/wexception.h	2014-06-16 13:55:52 +0000
> @@ -26,7 +26,7 @@
>  
>  #include <stdint.h>
>  
> -#include "port.h"
> +#include "base/port.h"
>  
>  #ifndef PRINTF_FORMAT
>  #ifdef __GNUC__
> 
> === modified file 'src/campvis.cc'
> --- src/campvis.cc	2013-07-26 19:16:51 +0000
> +++ src/campvis.cc	2014-06-16 13:55:52 +0000
> @@ -24,9 +24,9 @@
>  
>  #include <sys/stat.h>
>  
> +#include "base/wexception.h"
>  #include "io/filesystem/filesystem.h"
>  #include "profile/profile.h"
> -#include "wexception.h"
>  
>  /**
>   * Get the path of campaign visibility save-file
> 
> === modified file 'src/economy/cmd_call_economy_balance.cc'
> --- src/economy/cmd_call_economy_balance.cc	2014-05-11 07:38:01 +0000
> +++ src/economy/cmd_call_economy_balance.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "economy/cmd_call_economy_balance.h"
>  
> +#include "base/wexception.h"
>  #include "economy/economy.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> @@ -26,7 +27,6 @@
>  #include "logic/player.h"
>  #include "map_io/widelands_map_map_object_loader.h"
>  #include "map_io/widelands_map_map_object_saver.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/economy/economy.cc'
> --- src/economy/economy.cc	2014-06-16 13:33:29 +0000
> +++ src/economy/economy.cc	2014-06-16 13:55:52 +0000
> @@ -23,6 +23,7 @@
>  
>  #include <boost/bind.hpp>
>  
> +#include "base/wexception.h"
>  #include "economy/cmd_call_economy_balance.h"
>  #include "economy/flag.h"
>  #include "economy/request.h"
> @@ -36,7 +37,6 @@
>  #include "logic/tribe.h"
>  #include "logic/warehouse.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/economy/flag.cc'
> --- src/economy/flag.cc	2014-04-21 10:27:29 +0000
> +++ src/economy/flag.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "economy/flag.h"
>  
> +#include "base/wexception.h"
>  #include "container_iterate.h"
>  #include "economy/economy.h"
>  #include "economy/portdock.h"
> @@ -34,7 +35,6 @@
>  #include "logic/warehouse.h"
>  #include "logic/worker.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/economy/fleet.cc'
> --- src/economy/fleet.cc	2014-05-11 07:38:01 +0000
> +++ src/economy/fleet.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,8 @@
>  
>  #include "economy/fleet.h"
>  
> +#include <memory>
> +
>  #include "container_iterate.h"
>  #include "economy/economy.h"
>  #include "economy/flag.h"
> 
> === modified file 'src/economy/idleworkersupply.cc'
> --- src/economy/idleworkersupply.cc	2014-02-22 18:04:02 +0000
> +++ src/economy/idleworkersupply.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "economy/idleworkersupply.h"
>  
> +#include "base/wexception.h"
>  #include "economy/economy.h"
>  #include "economy/request.h"
>  #include "logic/game.h"
> @@ -28,7 +29,6 @@
>  #include "logic/tribe.h"
>  #include "logic/warehouse.h"
>  #include "logic/worker.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/economy/portdock.cc'
> --- src/economy/portdock.cc	2014-06-10 20:38:57 +0000
> +++ src/economy/portdock.cc	2014-06-16 13:55:52 +0000
> @@ -21,12 +21,12 @@
>  
>  #include <memory>
>  
> +#include "base/log.h"
>  #include "container_iterate.h"
>  #include "economy/fleet.h"
>  #include "economy/ware_instance.h"
>  #include "economy/wares_queue.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/expedition_bootstrap.h"
>  #include "logic/game.h"
>  #include "logic/game_data_error.h"
> 
> === modified file 'src/economy/portdock.h'
> --- src/economy/portdock.h	2014-02-22 18:04:02 +0000
> +++ src/economy/portdock.h	2014-06-16 13:55:52 +0000
> @@ -20,6 +20,8 @@
>  #ifndef ECONOMY_PORTDOCK_H
>  #define ECONOMY_PORTDOCK_H
>  
> +#include <memory>
> +
>  #include "logic/immovable.h"
>  #include "logic/wareworker.h"
>  #include "economy/shippingitem.h"
> 
> === modified file 'src/economy/supply_list.cc'
> --- src/economy/supply_list.cc	2013-07-26 20:19:36 +0000
> +++ src/economy/supply_list.cc	2014-06-16 13:55:52 +0000
> @@ -19,10 +19,10 @@
>  
>  #include "economy/supply_list.h"
>  
> +#include "base/wexception.h"
>  #include "container_iterate.h"
>  #include "economy/request.h"
>  #include "economy/supply.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> @@ -62,4 +62,3 @@
>  }
>  
>  }
> -
> 
> === modified file 'src/economy/test/CMakeLists.txt'
> --- src/economy/test/CMakeLists.txt	2012-04-18 20:09:45 +0000
> +++ src/economy/test/CMakeLists.txt	2014-06-16 13:55:52 +0000
> @@ -1,9 +1,9 @@
> -file(GLOB WL_TEST_ECONOMY_SRCS *.cc)
> -
> -add_executable(test_economy ${WL_TEST_ECONOMY_SRCS} ${TEST_EXTRA_SOURCES})
> -
> -target_link_libraries(test_economy widelands_all)
> -target_link_libraries(test_economy ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
> -target_link_libraries(test_economy ${TEST_EXTRA_LIBS})
> -
> -add_test(test_economy test_economy)
> +wl_test(test_economy
> +  SRCS
> +    ./economy_test_main.cc
> +    ./test_economy.cc
> +    ./test_road.cc
> +    ./test_routing.cc
> +  DEPENDS
> +    widelands_ball_of_mud
> +)
> 
> === modified file 'src/economy/test/test_road.cc'
> --- src/economy/test/test_road.cc	2014-02-22 18:04:02 +0000
> +++ src/economy/test/test_road.cc	2014-06-16 13:55:52 +0000
> @@ -102,4 +102,3 @@
>  }
>  
>  BOOST_AUTO_TEST_SUITE_END()
> -
> 
> === modified file 'src/economy/ware_instance.cc'
> --- src/economy/ware_instance.cc	2014-05-11 07:38:01 +0000
> +++ src/economy/ware_instance.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,9 @@
>  
>  #include "economy/ware_instance.h"
>  
> +#include <memory>
> +
> +#include "base/wexception.h"
>  #include "economy/economy.h"
>  #include "economy/flag.h"
>  #include "economy/fleet.h"
> @@ -35,7 +38,6 @@
>  #include "map_io/widelands_map_map_object_loader.h"
>  #include "map_io/widelands_map_map_object_saver.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/economy/wares_queue.cc'
> --- src/economy/wares_queue.cc	2014-05-11 07:38:01 +0000
> +++ src/economy/wares_queue.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "economy/wares_queue.h"
>  
> +#include "base/wexception.h"
>  #include "economy/economy.h"
>  #include "economy/request.h"
>  #include "io/fileread.h"
> @@ -29,7 +30,6 @@
>  #include "logic/tribe.h"
>  #include "map_io/widelands_map_map_object_loader.h"
>  #include "map_io/widelands_map_map_object_saver.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/editor/editorinteractive.cc'
> --- src/editor/editorinteractive.cc	2014-06-10 20:38:57 +0000
> +++ src/editor/editorinteractive.cc	2014-06-16 13:55:52 +0000
> @@ -26,6 +26,8 @@
>  #include <SDL_keysym.h>
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/warning.h"
>  #include "editor/tools/editor_delete_immovable_tool.h"
>  #include "editor/ui_menus/editor_main_menu.h"
>  #include "editor/ui_menus/editor_main_menu_load_map.h"
> @@ -34,7 +36,6 @@
>  #include "editor/ui_menus/editor_tool_menu.h"
>  #include "editor/ui_menus/editor_toolsize_menu.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/map.h"
>  #include "logic/player.h"
>  #include "logic/tribe.h"
> @@ -45,7 +46,6 @@
>  #include "scripting/scripting.h"
>  #include "ui_basic/messagebox.h"
>  #include "ui_basic/progresswindow.h"
> -#include "warning.h"
>  #include "wlapplication.h"
>  #include "wui/game_tips.h"
>  #include "wui/interactive_base.h"
> 
> === modified file 'src/editor/tools/editor_info_tool.cc'
> --- src/editor/tools/editor_info_tool.cc	2014-03-09 10:28:39 +0000
> +++ src/editor/tools/editor_info_tool.cc	2014-06-16 13:55:52 +0000
> @@ -23,8 +23,8 @@
>  
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
> -#include "i18n.h"
>  #include "logic/map.h"
>  #include "logic/world.h"
>  #include "ui_basic/multilinetextarea.h"
> 
> === modified file 'src/editor/ui_menus/editor_main_menu.cc'
> --- src/editor/ui_menus/editor_main_menu.cc	2014-04-06 11:58:13 +0000
> +++ src/editor/ui_menus/editor_main_menu.cc	2014-06-16 13:55:52 +0000
> @@ -19,13 +19,13 @@
>  
>  #include "editor/ui_menus/editor_main_menu.h"
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/ui_menus/editor_main_menu_load_map.h"
>  #include "editor/ui_menus/editor_main_menu_map_options.h"
>  #include "editor/ui_menus/editor_main_menu_new_map.h"
>  #include "editor/ui_menus/editor_main_menu_random_map.h"
>  #include "editor/ui_menus/editor_main_menu_save_map.h"
> -#include "i18n.h"
>  #include "ui_fsmenu/fileview.h"
>  
>  //TODO: these should be defined globally for the whole UI
> 
> === modified file 'src/editor/ui_menus/editor_main_menu_load_map.cc'
> --- src/editor/ui_menus/editor_main_menu_load_map.cc	2014-04-06 16:58:10 +0000
> +++ src/editor/ui_menus/editor_main_menu_load_map.cc	2014-06-16 13:55:52 +0000
> @@ -20,13 +20,15 @@
>  #include "editor/ui_menus/editor_main_menu_load_map.h"
>  
>  #include <cstdio>
> +#include <memory>
>  
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/tools/editor_set_starting_pos_tool.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "logic/building.h"
>  #include "logic/editor_game_base.h"
> @@ -40,7 +42,6 @@
>  #include "ui_basic/multilinetextarea.h"
>  #include "ui_basic/progresswindow.h"
>  #include "ui_basic/textarea.h"
> -#include "wexception.h"
>  #include "wui/overlay_manager.h"
>  
>  using Widelands::WL_Map_Loader;
> 
> === modified file 'src/editor/ui_menus/editor_main_menu_map_options.cc'
> --- src/editor/ui_menus/editor_main_menu_map_options.cc	2013-07-26 20:19:36 +0000
> +++ src/editor/ui_menus/editor_main_menu_map_options.cc	2014-06-16 13:55:52 +0000
> @@ -21,9 +21,9 @@
>  
>  #include <cstdio>
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/map.h"
>  #include "profile/profile.h"
>  #include "ui_basic/editbox.h"
> 
> === modified file 'src/editor/ui_menus/editor_main_menu_new_map.cc'
> --- src/editor/ui_menus/editor_main_menu_new_map.cc	2013-08-05 03:26:31 +0000
> +++ src/editor/ui_menus/editor_main_menu_new_map.cc	2014-06-16 13:55:52 +0000
> @@ -24,9 +24,9 @@
>  #include <string>
>  #include <vector>
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/map.h"
>  #include "logic/world.h"
> 
> === modified file 'src/editor/ui_menus/editor_main_menu_random_map.cc'
> --- src/editor/ui_menus/editor_main_menu_random_map.cc	2013-08-05 03:26:31 +0000
> +++ src/editor/ui_menus/editor_main_menu_random_map.cc	2014-06-16 13:55:52 +0000
> @@ -24,9 +24,9 @@
>  #include <string>
>  #include <vector>
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/map.h"
>  #include "logic/world.h"
> 
> === modified file 'src/editor/ui_menus/editor_main_menu_save_map.cc'
> --- src/editor/ui_menus/editor_main_menu_save_map.cc	2014-06-10 20:38:57 +0000
> +++ src/editor/ui_menus/editor_main_menu_save_map.cc	2014-06-16 13:55:52 +0000
> @@ -26,11 +26,12 @@
>  
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "constants.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/ui_menus/editor_main_menu_save_map_make_directory.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "io/filesystem/filesystem.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "io/filesystem/zip_filesystem.h"
> @@ -44,7 +45,6 @@
>  #include "ui_basic/multilinetextarea.h"
>  #include "ui_basic/textarea.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  inline Editor_Interactive & Main_Menu_Save_Map::eia() {
>  	return ref_cast<Editor_Interactive, UI::Panel>(*get_parent());
> 
> === modified file 'src/editor/ui_menus/editor_main_menu_save_map_make_directory.cc'
> --- src/editor/ui_menus/editor_main_menu_save_map_make_directory.cc	2013-07-26 20:19:36 +0000
> +++ src/editor/ui_menus/editor_main_menu_save_map_make_directory.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "editor/ui_menus/editor_main_menu_save_map_make_directory.h"
>  
> +#include "base/i18n.h"
>  #include "constants.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "ui_basic/button.h"
>  #include "ui_basic/editbox.h"
>  #include "ui_basic/textarea.h"
> 
> === modified file 'src/editor/ui_menus/editor_player_menu.cc'
> --- src/editor/ui_menus/editor_player_menu.cc	2014-05-27 11:01:15 +0000
> +++ src/editor/ui_menus/editor_player_menu.cc	2014-06-16 13:55:52 +0000
> @@ -21,10 +21,11 @@
>  
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/tools/editor_set_starting_pos_tool.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/map.h"
>  #include "logic/player.h"
>  #include "logic/tribe.h"
> @@ -32,7 +33,6 @@
>  #include "ui_basic/editbox.h"
>  #include "ui_basic/messagebox.h"
>  #include "ui_basic/textarea.h"
> -#include "wexception.h"
>  #include "wui/overlay_manager.h"
>  
>  #define UNDEFINED_TRIBE_NAME "<undefined>"
> 
> === modified file 'src/editor/ui_menus/editor_player_menu_allowed_buildings_menu.cc'
> --- src/editor/ui_menus/editor_player_menu_allowed_buildings_menu.cc	2014-04-21 09:19:14 +0000
> +++ src/editor/ui_menus/editor_player_menu_allowed_buildings_menu.cc	2014-06-16 13:55:52 +0000
> @@ -19,8 +19,8 @@
>  
>  #include "editor/ui_menus/editor_player_menu_allowed_buildings_menu.h"
>  
> +#include "base/i18n.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/map.h"
>  #include "logic/player.h"
>  #include "logic/tribe.h"
> 
> === modified file 'src/editor/ui_menus/editor_tool_change_height_options_menu.cc'
> --- src/editor/ui_menus/editor_tool_change_height_options_menu.cc	2014-02-24 16:42:51 +0000
> +++ src/editor/ui_menus/editor_tool_change_height_options_menu.cc	2014-06-16 13:55:52 +0000
> @@ -21,11 +21,11 @@
>  
>  #include <cstdio>
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/tools/editor_increase_height_tool.h"
>  #include "editor/tools/editor_set_height_tool.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "ui_basic/button.h"
>  
>  #define width  20
> 
> === modified file 'src/editor/ui_menus/editor_tool_change_resources_options_menu.cc'
> --- src/editor/ui_menus/editor_tool_change_resources_options_menu.cc	2014-03-09 18:32:29 +0000
> +++ src/editor/ui_menus/editor_tool_change_resources_options_menu.cc	2014-06-16 13:55:52 +0000
> @@ -21,11 +21,11 @@
>  
>  #include <cstdio>
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/tools/editor_increase_resources_tool.h"
>  #include "editor/tools/editor_set_resources_tool.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/map.h"
>  #include "logic/widelands.h"
>  #include "logic/world.h"
> 
> === modified file 'src/editor/ui_menus/editor_tool_menu.cc'
> --- src/editor/ui_menus/editor_tool_menu.cc	2014-03-16 20:55:15 +0000
> +++ src/editor/ui_menus/editor_tool_menu.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "editor/ui_menus/editor_tool_menu.h"
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/tools/editor_decrease_height_tool.h"
>  #include "editor/tools/editor_decrease_resources_tool.h"
> @@ -36,7 +37,6 @@
>  #include "editor/ui_menus/editor_tool_place_immovable_options_menu.h"
>  #include "editor/ui_menus/editor_tool_set_terrain_options_menu.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "ui_basic/radiobutton.h"
>  #include "ui_basic/textarea.h"
>  
> 
> === modified file 'src/editor/ui_menus/editor_tool_noise_height_options_menu.cc'
> --- src/editor/ui_menus/editor_tool_noise_height_options_menu.cc	2013-07-26 20:19:36 +0000
> +++ src/editor/ui_menus/editor_tool_noise_height_options_menu.cc	2014-06-16 13:55:52 +0000
> @@ -21,12 +21,12 @@
>  
>  #include <cstdio>
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/tools/editor_decrease_height_tool.h"
>  #include "editor/tools/editor_increase_height_tool.h"
>  #include "editor/tools/editor_noise_height_tool.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  
>  
>  using Widelands::Field;
> 
> === modified file 'src/editor/ui_menus/editor_tool_place_bob_options_menu.cc'
> --- src/editor/ui_menus/editor_tool_place_bob_options_menu.cc	2014-03-31 20:21:27 +0000
> +++ src/editor/ui_menus/editor_tool_place_bob_options_menu.cc	2014-06-16 13:55:52 +0000
> @@ -21,10 +21,10 @@
>  
>  #include <SDL_keysym.h>
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/tools/editor_place_bob_tool.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/critter_bob.h"
>  #include "logic/map.h"
>  #include "logic/world.h"
> 
> === modified file 'src/editor/ui_menus/editor_tool_place_immovable_options_menu.cc'
> --- src/editor/ui_menus/editor_tool_place_immovable_options_menu.cc	2014-04-20 20:02:13 +0000
> +++ src/editor/ui_menus/editor_tool_place_immovable_options_menu.cc	2014-06-16 13:55:52 +0000
> @@ -21,10 +21,10 @@
>  
>  #include <SDL_keysym.h>
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/tools/editor_place_immovable_tool.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/map.h"
>  #include "logic/world.h"
>  #include "ui_basic/box.h"
> @@ -77,7 +77,7 @@
>  	Point pos;
>  	uint32_t cur_x = immovables_in_row;
>  
> -	UI::Box * box;
> +	UI::Box * box = nullptr;
>  	for (int i = 0; i < nr_immovables; ++cur_x, ++i) {
>  		if (cur_x == immovables_in_row) {
>  			cur_x = 0;
> 
> === modified file 'src/editor/ui_menus/editor_tool_set_terrain_options_menu.cc'
> --- src/editor/ui_menus/editor_tool_set_terrain_options_menu.cc	2014-04-21 10:47:03 +0000
> +++ src/editor/ui_menus/editor_tool_set_terrain_options_menu.cc	2014-06-16 13:55:52 +0000
> @@ -21,6 +21,7 @@
>  
>  #include <SDL_keysym.h>
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/tools/editor_set_terrain_tool.h"
>  #include "graphic/graphic.h"
> @@ -28,7 +29,6 @@
>  #include "graphic/rendertarget.h"
>  #include "graphic/surface.h"
>  #include "graphic/texture.h"
> -#include "i18n.h"
>  #include "logic/map.h"
>  #include "logic/world.h"
>  #include "logic/worlddata.h"
> 
> === modified file 'src/editor/ui_menus/editor_toolsize_menu.cc'
> --- src/editor/ui_menus/editor_toolsize_menu.cc	2014-02-24 16:42:51 +0000
> +++ src/editor/ui_menus/editor_toolsize_menu.cc	2014-06-16 13:55:52 +0000
> @@ -21,10 +21,10 @@
>  
>  #include <cstdio>
>  
> +#include "base/i18n.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/tools/editor_tool.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  
>  inline Editor_Interactive & Editor_Toolsize_Menu::eia() {
>  	return ref_cast<Editor_Interactive, UI::Panel>(*get_parent());
> 
> === modified file 'src/game_io/game_data_packet.h'
> --- src/game_io/game_data_packet.h	2014-03-24 21:47:08 +0000
> +++ src/game_io/game_data_packet.h	2014-06-16 13:55:52 +0000
> @@ -20,7 +20,7 @@
>  #ifndef GAME_DATA_PACKET_H
>  #define GAME_DATA_PACKET_H
>  
> -#include "wexception.h"
> +#include "base/wexception.h"
>  
>  class FileSystem;
>  
> 
> === modified file 'src/game_io/game_loader.cc'
> --- src/game_io/game_loader.cc	2014-02-22 18:04:02 +0000
> +++ src/game_io/game_loader.cc	2014-06-16 13:55:52 +0000
> @@ -22,6 +22,7 @@
>  #include <boost/bind.hpp>
>  #include <boost/signals2.hpp>
>  
> +#include "base/log.h"
>  #include "game_io/game_cmd_queue_data_packet.h"
>  #include "game_io/game_game_class_data_packet.h"
>  #include "game_io/game_interactive_player_data_packet.h"
> @@ -30,7 +31,6 @@
>  #include "game_io/game_player_info_data_packet.h"
>  #include "game_io/game_preload_data_packet.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "logic/cmd_expire_message.h"
>  #include "logic/game.h"
>  #include "logic/player.h"
> 
> === modified file 'src/game_io/game_saver.cc'
> --- src/game_io/game_saver.cc	2014-02-22 18:04:02 +0000
> +++ src/game_io/game_saver.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "game_io/game_saver.h"
>  
> +#include "base/log.h"
>  #include "game_io/game_cmd_queue_data_packet.h"
>  #include "game_io/game_game_class_data_packet.h"
>  #include "game_io/game_interactive_player_data_packet.h"
> @@ -27,7 +28,6 @@
>  #include "game_io/game_player_info_data_packet.h"
>  #include "game_io/game_preload_data_packet.h"
>  #include "io/filesystem/filesystem.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "scoped_timer.h"
>  
> 
> === modified file 'src/game_io/game_saver.h'
> --- src/game_io/game_saver.h	2013-09-22 18:01:36 +0000
> +++ src/game_io/game_saver.h	2014-06-16 13:55:52 +0000
> @@ -20,7 +20,7 @@
>  #ifndef GAME_SAVER_H
>  #define GAME_SAVER_H
>  
> -#include "wexception.h"
> +#include "base/wexception.h"
>  
>  class FileSystem;
>  
> 
> === renamed file 'src/align.cc' => 'src/graphic/align.cc'
> --- src/align.cc	2013-02-10 14:55:10 +0000
> +++ src/graphic/align.cc	2014-06-16 13:55:52 +0000
> @@ -17,7 +17,7 @@
>   *
>   */
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  
>  namespace UI {
>  
> 
> === renamed file 'src/align.h' => 'src/graphic/align.h'
> === modified file 'src/graphic/animation.cc'
> --- src/graphic/animation.cc	2014-06-16 13:24:45 +0000
> +++ src/graphic/animation.cc	2014-06-16 13:55:52 +0000
> @@ -29,6 +29,9 @@
>  #include <boost/format.hpp>
>  #include <boost/lexical_cast.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "constants.h"
>  #include "container_iterate.h"
>  #include "graphic/diranimations.h"
> @@ -39,14 +42,11 @@
>  #include "graphic/surface.h"
>  #include "graphic/surface_cache.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "logic/bob.h"
>  #include "logic/instances.h"  // For Map_Object_Descr.
>  #include "profile/profile.h"
>  #include "sound/sound_handler.h"
> -#include "wexception.h"
>  
>  
>  using namespace std;
> 
> === modified file 'src/graphic/animation.h'
> --- src/graphic/animation.h	2014-04-06 15:46:29 +0000
> +++ src/graphic/animation.h	2014-06-16 13:55:52 +0000
> @@ -27,8 +27,8 @@
>  
>  #include <boost/utility.hpp>
>  
> +#include "graphic/rect.h"
>  #include "point.h"
> -#include "rect.h"
>  
>  class Image;
>  class Surface;
> 
> === modified file 'src/graphic/font_handler.cc'
> --- src/graphic/font_handler.cc	2014-02-22 18:04:02 +0000
> +++ src/graphic/font_handler.cc	2014-06-16 13:55:52 +0000
> @@ -26,13 +26,13 @@
>  #include <SDL_ttf.h>
>  #include <boost/algorithm/string.hpp>
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "graphic/graphic.h"
>  #include "graphic/in_memory_image.h"
>  #include "graphic/rendertarget.h"
>  #include "graphic/surface.h"
>  #include "graphic/wordwrap.h"
> -#include "log.h"
> -#include "wexception.h"
>  
>  namespace UI {
>  
> 
> === modified file 'src/graphic/font_handler.h'
> --- src/graphic/font_handler.h	2013-07-26 19:16:51 +0000
> +++ src/graphic/font_handler.h	2014-06-16 13:55:52 +0000
> @@ -23,7 +23,7 @@
>  #include <memory>
>  #include <string>
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  #include "point.h"
>  
>  class RenderTarget;
> 
> === modified file 'src/graphic/font_handler1.cc'
> --- src/graphic/font_handler1.cc	2014-06-10 20:38:57 +0000
> +++ src/graphic/font_handler1.cc	2014-06-16 13:55:52 +0000
> @@ -24,6 +24,7 @@
>  #include <boost/lexical_cast.hpp>
>  #include <boost/utility.hpp>
>  
> +#include "base/wexception.h"
>  #include "graphic/graphic.h"
>  #include "graphic/image.h"
>  #include "graphic/image_cache.h"
> @@ -34,7 +35,6 @@
>  #include "graphic/text/rt_render.h"
>  #include "graphic/text/sdl_ttf_font.h"
>  #include "io/filesystem/filesystem.h"
> -#include "wexception.h"
>  
>  
>  using namespace std;
> 
> === modified file 'src/graphic/font_handler1.h'
> --- src/graphic/font_handler1.h	2013-07-25 21:05:20 +0000
> +++ src/graphic/font_handler1.h	2014-06-16 13:55:52 +0000
> @@ -24,7 +24,7 @@
>  
>  #include <boost/noncopyable.hpp>
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  #include "point.h"
>  
>  class FileSystem;
> 
> === modified file 'src/graphic/graphic.cc'
> --- src/graphic/graphic.cc	2014-06-10 20:38:57 +0000
> +++ src/graphic/graphic.cc	2014-06-16 13:55:52 +0000
> @@ -24,10 +24,13 @@
>  #include <memory>
>  
>  #include <SDL_image.h>
> -#include <config.h>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "build_info.h"
>  #include "compile_diagnostics.h"
> +#include "config.h"
>  #include "constants.h"
>  #include "container_iterate.h"
>  #include "graphic/animation.h"
> @@ -41,15 +44,12 @@
>  #include "graphic/rendertarget.h"
>  #include "graphic/surface_cache.h"
>  #include "graphic/texture.h"
> -#include "i18n.h"
>  #include "io/fileread.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "io/streamwrite.h"
> -#include "log.h"
>  #include "logic/roadtype.h"
>  #include "ui_basic/progresswindow.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  using namespace std;
>  
> 
> === modified file 'src/graphic/graphic.h'
> --- src/graphic/graphic.h	2014-03-16 20:55:15 +0000
> +++ src/graphic/graphic.h	2014-06-16 13:55:52 +0000
> @@ -28,7 +28,7 @@
>  #include <png.h>
>  
>  #include "graphic/image_cache.h"
> -#include "rect.h"
> +#include "graphic/rect.h"
>  
>  #define MAX_RECTS 20
>  
> 
> === modified file 'src/graphic/image_cache.cc'
> --- src/graphic/image_cache.cc	2014-04-21 10:47:03 +0000
> +++ src/graphic/image_cache.cc	2014-06-16 13:55:52 +0000
> @@ -23,11 +23,11 @@
>  #include <map>
>  #include <string>
>  
> +#include "base/log.h"
>  #include "graphic/image.h"
>  #include "graphic/image_loader.h"
>  #include "graphic/surface.h"
>  #include "graphic/surface_cache.h"
> -#include "log.h"
>  
>  
>  using namespace std;
> 
> === modified file 'src/graphic/image_loader_impl.cc'
> --- src/graphic/image_loader_impl.cc	2014-05-10 17:07:11 +0000
> +++ src/graphic/image_loader_impl.cc	2014-06-16 13:55:52 +0000
> @@ -22,11 +22,11 @@
>  #include <SDL.h>
>  #include <SDL_image.h>
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "graphic/surface.h"
>  #include "io/fileread.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
> -#include "wexception.h"
>  
>  using namespace std;
>  
> 
> === renamed file 'src/rect.h' => 'src/graphic/rect.h'
> === modified file 'src/graphic/render/gamerenderer_gl.h'
> --- src/graphic/render/gamerenderer_gl.h	2014-02-22 18:04:02 +0000
> +++ src/graphic/render/gamerenderer_gl.h	2014-06-16 13:55:52 +0000
> @@ -23,9 +23,9 @@
>  #include <memory>
>  #include <vector>
>  
> +#include "graphic/rect.h"
>  #include "graphic/render/gamerenderer.h"
>  #include "logic/widelands.h"
> -#include "rect.h"
>  
>  namespace Widelands {
>  struct Coords;
> 
> === modified file 'src/graphic/render/gl_surface_texture.cc'
> --- src/graphic/render/gl_surface_texture.cc	2014-02-22 18:04:02 +0000
> +++ src/graphic/render/gl_surface_texture.cc	2014-06-16 13:55:52 +0000
> @@ -20,10 +20,10 @@
>  
>  #include <cassert>
>  
> +#include "base/wexception.h"
>  #include "gl_surface.h"  // for glew.h
>  #include "graphic/graphic.h"
>  #include "graphic/render/gl_utils.h"
> -#include "wexception.h"
>  
>  GLuint GLSurfaceTexture::gl_framebuffer_id_;
>  bool use_arb_;
> 
> === modified file 'src/graphic/render/gl_utils.cc'
> --- src/graphic/render/gl_utils.cc	2013-07-26 20:19:36 +0000
> +++ src/graphic/render/gl_utils.cc	2014-06-16 13:55:52 +0000
> @@ -20,7 +20,7 @@
>  
>  #include <SDL_video.h>
>  
> -#include "log.h"
> +#include "base/log.h"
>  
>  /**
>   * Return the smallest power of two greater than or equal to \p x.
> 
> === modified file 'src/graphic/render/sdl_surface.h'
> --- src/graphic/render/sdl_surface.h	2014-02-22 18:04:02 +0000
> +++ src/graphic/render/sdl_surface.h	2014-06-16 13:55:52 +0000
> @@ -20,8 +20,8 @@
>  #ifndef SDL_SURFACE_H
>  #define SDL_SURFACE_H
>  
> +#include "graphic/rect.h"
>  #include "graphic/surface.h"
> -#include "rect.h"
>  #include "rgbcolor.h"
>  
>  /**
> 
> === modified file 'src/graphic/render/terrain_sdl.h'
> --- src/graphic/render/terrain_sdl.h	2013-07-26 20:19:36 +0000
> +++ src/graphic/render/terrain_sdl.h	2014-06-16 13:55:52 +0000
> @@ -22,15 +22,15 @@
>  
>  #include <cassert>
>  
> +#include "base/log.h"
>  #include "constants.h"
>  #include "graphic/graphic.h"
> +#include "graphic/render/sdl_surface.h"
> +#include "graphic/render/vertex.h"
>  #include "graphic/texture.h"
> -#include "log.h"
>  #include "logic/roadtype.h"
>  #include "random.h"
> -#include "graphic/render/sdl_surface.h"
>  #include "upcast.h"
> -#include "vertex.h"
>  #include "wui/mapviewpixelconstants.h"
>  
>  ///Must be a power of two
> 
> === renamed file 'src/vertex.h' => 'src/graphic/render/vertex.h'
> === modified file 'src/graphic/rendertarget.cc'
> --- src/graphic/rendertarget.cc	2014-03-18 18:18:37 +0000
> +++ src/graphic/rendertarget.cc	2014-06-16 13:55:52 +0000
> @@ -19,11 +19,11 @@
>  
>  #include "graphic/rendertarget.h"
>  
> +#include "base/log.h"
>  #include "graphic/animation.h"
>  #include "graphic/graphic.h"
>  #include "graphic/image_transformations.h"
>  #include "graphic/surface.h"
> -#include "log.h"
>  #include "logic/player.h"
>  #include "logic/tribe.h"
>  #include "upcast.h"
> 
> === modified file 'src/graphic/rendertarget.h'
> --- src/graphic/rendertarget.h	2014-03-16 20:55:15 +0000
> +++ src/graphic/rendertarget.h	2014-06-16 13:55:52 +0000
> @@ -22,10 +22,10 @@
>  
>  #include <vector>
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  #include "graphic/compositemode.h"
>  #include "graphic/image.h"
> -#include "rect.h"
> +#include "graphic/rect.h"
>  #include "rgbcolor.h"
>  
>  class Surface;
> 
> === modified file 'src/graphic/richtext.cc'
> --- src/graphic/richtext.cc	2014-02-22 18:04:02 +0000
> +++ src/graphic/richtext.cc	2014-06-16 13:55:52 +0000
> @@ -23,9 +23,9 @@
>  #include "graphic/font_handler.h"
>  #include "graphic/graphic.h"
>  #include "graphic/image.h"
> +#include "graphic/rect.h"
>  #include "graphic/rendertarget.h"
> -#include "rect.h"
> -#include "text_parser.h"
> +#include "graphic/text_parser.h"
>  
>  namespace UI {
>  
> 
> === modified file 'src/graphic/surface.h'
> --- src/graphic/surface.h	2013-07-26 20:19:36 +0000
> +++ src/graphic/surface.h	2014-06-16 13:55:52 +0000
> @@ -23,7 +23,7 @@
>  #include <boost/noncopyable.hpp>
>  
>  #include "graphic/compositemode.h"
> -#include "rect.h"
> +#include "graphic/rect.h"
>  #include "rgbcolor.h"
>  
>  /**
> 
> === modified file 'src/graphic/text/rt_render.cc'
> --- src/graphic/text/rt_render.cc	2014-06-10 20:38:57 +0000
> +++ src/graphic/text/rt_render.cc	2014-06-16 13:55:52 +0000
> @@ -29,10 +29,10 @@
>  #include <boost/lexical_cast.hpp>
>  
>  #include "graphic/image_cache.h"
> +#include "graphic/rect.h"
>  #include "graphic/surface.h"
>  #include "graphic/text/rt_parse.h"
>  #include "graphic/text/textstream.h"
> -#include "rect.h"
>  
>  
>  using namespace std;
> 
> === renamed file 'src/text_parser.cc' => 'src/graphic/text_parser.cc'
> --- src/text_parser.cc	2013-12-07 12:21:00 +0000
> +++ src/graphic/text_parser.cc	2014-06-16 13:55:52 +0000
> @@ -17,17 +17,17 @@
>   *
>   */
>  
> -#include "text_parser.h"
> +#include "graphic/text_parser.h"
>  
>  #include <algorithm>
>  #include <cstring>
>  #include <string>
>  #include <vector>
>  
> +#include "base/log.h"
>  #include "constants.h"
>  #include "container_iterate.h"
>  #include "helper.h"
> -#include "log.h"
>  
>  namespace UI {
>  
> 
> === renamed file 'src/text_parser.h' => 'src/graphic/text_parser.h'
> --- src/text_parser.h	2013-09-23 18:47:02 +0000
> +++ src/graphic/text_parser.h	2014-06-16 13:55:52 +0000
> @@ -23,7 +23,7 @@
>  #include <string>
>  #include <vector>
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  #include "rgbcolor.h"
>  
>  namespace UI {
> 
> === modified file 'src/graphic/texture.cc'
> --- src/graphic/texture.cc	2014-05-10 16:56:38 +0000
> +++ src/graphic/texture.cc	2014-06-16 13:55:52 +0000
> @@ -21,12 +21,12 @@
>  
>  #include <SDL_image.h>
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "constants.h"
>  #include "container_iterate.h"
>  #include "io/fileread.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
> -#include "wexception.h"
>  
>  extern bool g_opengl;
>  
> 
> === modified file 'src/graphic/wordwrap.cc'
> --- src/graphic/wordwrap.cc	2013-07-26 20:19:36 +0000
> +++ src/graphic/wordwrap.cc	2014-06-16 13:55:52 +0000
> @@ -23,9 +23,9 @@
>  
>  #include "graphic/wordwrap.h"
>  
> +#include "base/log.h"
>  #include "graphic/font_handler.h"
>  #include "graphic/rendertarget.h"
> -#include "log.h"
>  
>  namespace UI {
>  
> 
> === modified file 'src/graphic/wordwrap.h'
> --- src/graphic/wordwrap.h	2013-07-26 20:19:36 +0000
> +++ src/graphic/wordwrap.h	2014-06-16 13:55:52 +0000
> @@ -21,7 +21,7 @@
>  
>  #include <string>
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  #include "graphic/font.h"
>  #include "point.h"
>  
> 
> === modified file 'src/helper.h'
> --- src/helper.h	2014-03-26 07:24:34 +0000
> +++ src/helper.h	2014-06-16 13:55:52 +0000
> @@ -29,7 +29,7 @@
>  #include <SDL_keyboard.h>
>  #include <boost/utility.hpp>
>  
> -#include "wexception.h"
> +#include "base/wexception.h"
>  
>  /// Matches the string that candidate points to against the string that
>  /// template points to. Stops at when reaching a null character or the
> 
> === modified file 'src/io/CMakeLists.txt'
> --- src/io/CMakeLists.txt	2010-10-30 18:23:52 +0000
> +++ src/io/CMakeLists.txt	2014-06-16 13:55:52 +0000
> @@ -1,1 +1,46 @@
>  add_subdirectory(filesystem)
> +
> +wl_library(io_stream
> +  SRCS
> +    streamread.cc
> +    streamread.h
> +    streamwrite.cc
> +    streamwrite.h
> +  DEPENDS
> +    base_exceptions
> +)
> +
> +# TODO(sirver): Splitting this into filesystem and fileread.
> +wl_library(io_filesystem
> +  SRCS
> +    fileread.cc
> +    fileread.h
> +    filewrite.cc
> +    filewrite.h
> +    filesystem/disk_filesystem.cc
> +    filesystem/disk_filesystem.h
> +    filesystem/filesystem.cc
> +    filesystem/filesystem.h
> +    filesystem/filesystem_exceptions.h
> +    filesystem/layered_filesystem.cc
> +    filesystem/layered_filesystem.h
> +    filesystem/zip_exceptions.h
> +    filesystem/zip_filesystem.cc
> +    filesystem/zip_filesystem.h
> +  DEPENDS
> +    base_log
> +    build_info
> +    io_stream
> +    third_party_minizip
> +)
> +
> +
> +# TODO(sirver): This depends on logic, so it should not be here.
> +wl_library(io_dedicated_log
> +  SRCS
> +    dedicated_log.h
> +    dedicated_log.cc
> +  DEPENDS
> +    base_log
> +    io_filesystem
> +)
> 
> === modified file 'src/io/dedicated_log.cc'
> --- src/io/dedicated_log.cc	2014-02-22 18:04:02 +0000
> +++ src/io/dedicated_log.cc	2014-06-16 13:55:52 +0000
> @@ -21,9 +21,9 @@
>  
>  #include <boost/format.hpp>
>  
> -#include "i18n.h"
> +#include "base/i18n.h"
> +#include "base/log.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  
>  /// The dedicated server logger
>  static DedicatedLog * logger;
> 
> === modified file 'src/io/dedicated_log.h'
> --- src/io/dedicated_log.h	2013-07-26 20:19:36 +0000
> +++ src/io/dedicated_log.h	2014-06-16 13:55:52 +0000
> @@ -20,10 +20,10 @@
>  #ifndef DEDICATED_LOG_H
>  #define DEDICATED_LOG_H
>  
> +#include "base/log.h"
>  #include "chat.h"
>  #include "io/filesystem/disk_filesystem.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  
>  void dedicatedlog(const char *, ...) PRINTF_FORMAT(1, 2);
>  
> 
> === modified file 'src/io/fileread.h'
> --- src/io/fileread.h	2014-06-16 13:33:29 +0000
> +++ src/io/fileread.h	2014-06-16 13:55:52 +0000
> @@ -103,7 +103,7 @@
>  
>  	// Returns the next 'bytes' starting at 'pos' in the file. Can throw
>  	// File_Boundary_Exceeded.
> -	char* Data(uint32_t const bytes, const Pos pos = Pos::Null());
> +	char* Data(uint32_t bytes, Pos pos = Pos::Null());
>  
>  	// Returns the whole file as a string starting from 'pos'.
>  	char* CString(Pos pos);
> 
> === modified file 'src/io/filesystem/disk_filesystem.cc'
> --- src/io/filesystem/disk_filesystem.cc	2014-06-14 13:53:57 +0000
> +++ src/io/filesystem/disk_filesystem.cc	2014-06-16 13:55:52 +0000
> @@ -40,13 +40,13 @@
>  #include <sys/types.h>
>  #endif
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "compile_diagnostics.h"
>  #include "io/filesystem/filesystem_exceptions.h"
>  #include "io/filesystem/zip_filesystem.h"
>  #include "io/streamread.h"
>  #include "io/streamwrite.h"
> -#include "log.h"
> -#include "wexception.h"
>  
>  struct FileSystemPath: public std::string
>  {
> 
> === modified file 'src/io/filesystem/filesystem.cc'
> --- src/io/filesystem/filesystem.cc	2014-06-14 13:53:57 +0000
> +++ src/io/filesystem/filesystem.cc	2014-06-16 13:55:52 +0000
> @@ -32,7 +32,6 @@
>  #include <string>
>  #include <vector>
>  
> -#include <config.h>
>  #ifdef _WIN32
>  #include <direct.h>
>  #include <io.h>
> @@ -44,11 +43,12 @@
>  #include <sys/stat.h>
>  #include <unistd.h>
>  
> +#include "base/log.h"
> +#include "config.h"
>  #include "io/filesystem/disk_filesystem.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "io/filesystem/zip_exceptions.h"
>  #include "io/filesystem/zip_filesystem.h"
> -#include "log.h"
>  
>  #ifdef _WIN32
>  #define stat _stat
> 
> === modified file 'src/io/filesystem/layered_filesystem.cc'
> --- src/io/filesystem/layered_filesystem.cc	2014-05-10 16:56:38 +0000
> +++ src/io/filesystem/layered_filesystem.cc	2014-06-16 13:55:52 +0000
> @@ -22,12 +22,12 @@
>  #include <cstdio>
>  #include <memory>
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "build_info.h"
>  #include "container_iterate.h"
>  #include "io/fileread.h"
>  #include "io/streamread.h"
> -#include "log.h"
> -#include "wexception.h"
>  
>  LayeredFileSystem * g_fs;
>  
> @@ -208,12 +208,8 @@
>  	{
>  		files = (*it)->ListDirectory(path);
>  
> -		// need to workaround MSVC++6 issues
> -		for
> -			(filenameset_t::iterator fnit = files.begin();
> -			 fnit != files.end();
> -			 ++fnit)
> -				results.insert(*fnit);
> +		for (filenameset_t::iterator fnit = files.begin(); fnit != files.end(); ++fnit)
> +			   results.insert(*fnit);
>  	}
>  	return results;
>  }
> 
> === modified file 'src/io/filesystem/test/CMakeLists.txt'
> --- src/io/filesystem/test/CMakeLists.txt	2012-04-18 20:09:45 +0000
> +++ src/io/filesystem/test/CMakeLists.txt	2014-06-16 13:55:52 +0000
> @@ -1,9 +1,7 @@
> -file(GLOB WL_TEST_IO_FILESYSTEM_SRCS *.cc)
> -
> -add_executable(test_io_filesystem ${WL_TEST_IO_FILESYSTEM_SRCS} ${TEST_EXTRA_SOURCES})
> -
> -target_link_libraries(test_io_filesystem widelands_all)
> -target_link_libraries(test_io_filesystem ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
> -target_link_libraries(test_io_filesystem ${TEST_EXTRA_LIBS})
> -
> -add_test(test_io_filesystem test_io_filesystem)
> +wl_test(test_io_filesystem
> +  SRCS
> +    ./filesystem_test_main.cc
> +    ./test_filesystem.cc
> +  DEPENDS
> +    io_filesystem
> +)
> 
> === modified file 'src/io/filesystem/zip_filesystem.cc'
> --- src/io/filesystem/zip_filesystem.cc	2014-05-10 16:56:38 +0000
> +++ src/io/filesystem/zip_filesystem.cc	2014-06-16 13:55:52 +0000
> @@ -27,11 +27,11 @@
>  #include <cstring>
>  #include <string>
>  
> +#include "base/wexception.h"
>  #include "io/filesystem/filesystem_exceptions.h"
>  #include "io/filesystem/zip_exceptions.h"
>  #include "io/streamread.h"
>  #include "io/streamwrite.h"
> -#include "wexception.h"
>  
>  /**
>   * Initialize the real file-system
> 
> === modified file 'src/io/filesystem/zip_filesystem.h'
> --- src/io/filesystem/zip_filesystem.h	2014-05-10 16:56:38 +0000
> +++ src/io/filesystem/zip_filesystem.h	2014-06-16 13:55:52 +0000
> @@ -23,13 +23,12 @@
>  #include <cstring>
>  #include <string>
>  
> -#include <minizip/unzip.h>
> -#include <minizip/zip.h>
> -
> +#include "base/port.h"
>  #include "io/filesystem/filesystem.h"
>  #include "io/streamread.h"
>  #include "io/streamwrite.h"
> -#include "port.h"
> +#include "third_party/minizip/unzip.h"
> +#include "third_party/minizip/zip.h"
>  
>  class ZipFilesystem : public FileSystem {
>  public:
> 
> === modified file 'src/io/filewrite.h'
> --- src/io/filewrite.h	2014-06-16 13:33:29 +0000
> +++ src/io/filewrite.h	2014-06-16 13:55:52 +0000
> @@ -93,7 +93,7 @@
>  	void Data(const void* src, size_t size, Pos pos);
>  
>  	/// Write data at the current file pointer and advance it.
> -	void Data(void const* const src, size_t const size) override;
> +	void Data(void const* src, size_t size) override;
>  
>  private:
>  	char* data_;
> 
> === modified file 'src/io/streamread.cc'
> --- src/io/streamread.cc	2013-09-23 18:47:02 +0000
> +++ src/io/streamread.cc	2014-06-16 13:55:52 +0000
> @@ -23,7 +23,7 @@
>  #include <cstdarg>
>  #include <cstdio>
>  
> -#include "wexception.h"
> +#include "base/wexception.h"
>  
>  StreamRead::~StreamRead() {}
>  
> 
> === modified file 'src/io/streamread.h'
> --- src/io/streamread.h	2013-09-23 18:47:02 +0000
> +++ src/io/streamread.h	2014-06-16 13:55:52 +0000
> @@ -25,8 +25,8 @@
>  
>  #include <boost/noncopyable.hpp>
>  
> +#include "base/wexception.h"
>  #include "machdep.h"
> -#include "wexception.h"
>  
>  
>  /**
> 
> === modified file 'src/io/streamwrite.cc'
> --- src/io/streamwrite.cc	2014-02-22 18:04:02 +0000
> +++ src/io/streamwrite.cc	2014-06-16 13:55:52 +0000
> @@ -21,7 +21,7 @@
>  
>  #include <cstdarg>
>  
> -#include "wexception.h"
> +#include "base/wexception.h"
>  
>  StreamWrite::~StreamWrite() {}
>  
> @@ -66,4 +66,3 @@
>  		delete[] heapbuf;
>  	}
>  }
> -
> 
> === modified file 'src/io/streamwrite.h'
> --- src/io/streamwrite.h	2013-09-22 18:01:36 +0000
> +++ src/io/streamwrite.h	2014-06-16 13:55:52 +0000
> @@ -27,8 +27,8 @@
>  
>  #include <boost/noncopyable.hpp>
>  
> +#include "base/port.h"
>  #include "machdep.h"
> -#include "port.h"
>  
>  /**
>   * Abstract base class for stream-like data sinks.
> 
> === renamed file 'src/backtrace.cc' => 'src/logic/backtrace.cc'
> --- src/backtrace.cc	2013-07-26 19:16:51 +0000
> +++ src/logic/backtrace.cc	2014-06-16 13:55:52 +0000
> @@ -17,7 +17,7 @@
>   *
>   */
>  
> -#include "backtrace.h"
> +#include "logic/backtrace.h"
>  
>  #ifndef _WIN32
>  #ifndef __APPLE__
> 
> === renamed file 'src/backtrace.h' => 'src/logic/backtrace.h'
> === modified file 'src/logic/battle.cc'
> --- src/logic/battle.cc	2014-06-10 20:38:57 +0000
> +++ src/logic/battle.cc	2014-06-16 13:55:52 +0000
> @@ -21,16 +21,16 @@
>  
>  #include <memory>
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "logic/player.h"
>  #include "logic/soldier.h"
>  #include "map_io/widelands_map_map_object_loader.h"
>  #include "map_io/widelands_map_map_object_saver.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/bob.cc'
> --- src/logic/bob.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/bob.cc	2014-06-16 13:55:52 +0000
> @@ -21,13 +21,14 @@
>  
>  #include <cstdlib>
>  
> -#include "backtrace.h"
> +#include "base/wexception.h"
>  #include "economy/route.h"
>  #include "economy/transfer.h"
>  #include "graphic/graphic.h"
>  #include "graphic/rendertarget.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> +#include "logic/backtrace.h"
>  #include "logic/checkstep.h"
>  #include "logic/critter_bob.h"
>  #include "logic/findbob.h"
> @@ -43,7 +44,6 @@
>  #include "map_io/widelands_map_map_object_saver.h"
>  #include "profile/profile.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  #include "wui/mapviewpixelconstants.h"
>  
>  
> 
> === modified file 'src/logic/bob.h'
> --- src/logic/bob.h	2014-05-11 07:38:01 +0000
> +++ src/logic/bob.h	2014-06-16 13:55:52 +0000
> @@ -20,6 +20,7 @@
>  #ifndef BOB_H
>  #define BOB_H
>  
> +#include "base/port.h"
>  #include "economy/route.h"
>  #include "graphic/animation.h"
>  #include "graphic/diranimations.h"
> @@ -27,7 +28,6 @@
>  #include "logic/walkingdir.h"
>  #include "logic/widelands_geometry.h"
>  #include "point.h"
> -#include "port.h"
>  
>  struct Profile;
>  
> 
> === modified file 'src/logic/buildcost.cc'
> --- src/logic/buildcost.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/buildcost.cc	2014-06-16 13:55:52 +0000
> @@ -19,11 +19,11 @@
>  
>  #include "logic/buildcost.h"
>  
> +#include "base/wexception.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
>  #include "logic/tribe.h"
>  #include "profile/profile.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/building.cc'
> --- src/logic/building.cc	2014-04-21 10:47:03 +0000
> +++ src/logic/building.cc	2014-06-16 13:55:52 +0000
> @@ -22,6 +22,7 @@
>  #include <cstdio>
>  #include <sstream>
>  
> +#include "base/wexception.h"
>  #include "economy/flag.h"
>  #include "economy/request.h"
>  #include "graphic/font.h"
> @@ -43,7 +44,6 @@
>  #include "sound/sound_handler.h"
>  #include "text_layout.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  #include "wui/interactive_player.h"
>  
>  namespace Widelands {
> 
> === modified file 'src/logic/building.h'
> --- src/logic/building.h	2014-05-11 07:38:01 +0000
> +++ src/logic/building.h	2014-06-16 13:55:52 +0000
> @@ -33,7 +33,7 @@
>  #include "logic/soldier_counts.h"
>  #include "logic/wareworker.h"
>  #include "logic/widelands.h"
> -#include "workarea_info.h"
> +#include "logic/workarea_info.h"
>  
>  namespace UI {class Window;}
>  struct BuildingHints;
> 
> === modified file 'src/logic/carrier.cc'
> --- src/logic/carrier.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/carrier.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "logic/carrier.h"
>  
> +#include "base/wexception.h"
>  #include "economy/flag.h"
>  #include "economy/road.h"
>  #include "economy/ware_instance.h"
> @@ -27,7 +28,6 @@
>  #include "logic/game.h"
>  #include "logic/game_data_error.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/cmd_incorporate.cc'
> --- src/logic/cmd_incorporate.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/cmd_incorporate.cc	2014-06-16 13:55:52 +0000
> @@ -19,12 +19,12 @@
>  
>  #include "logic/cmd_incorporate.h"
>  
> -#include "i18n.h"
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
>  #include "map_io/widelands_map_map_object_loader.h"
>  #include "map_io/widelands_map_map_object_saver.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/cmd_luacoroutine.cc'
> --- src/logic/cmd_luacoroutine.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/cmd_luacoroutine.cc	2014-06-16 13:55:52 +0000
> @@ -19,10 +19,10 @@
>  
>  #include "logic/cmd_luacoroutine.h"
>  
> +#include "base/log.h"
>  #include "gamecontroller.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "logic/game_data_error.h"
>  #include "logic/player.h"
> 
> === modified file 'src/logic/cmd_luascript.cc'
> --- src/logic/cmd_luascript.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/cmd_luascript.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "logic/cmd_luascript.h"
>  
> +#include "base/log.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "logic/game_data_error.h"
>  #include "scripting/lua_table.h"
> 
> === modified file 'src/logic/cmd_queue.cc'
> --- src/logic/cmd_queue.cc	2014-05-10 16:47:03 +0000
> +++ src/logic/cmd_queue.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "logic/cmd_queue.h"
>  
> +#include "base/wexception.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
>  #include "logic/game.h"
> @@ -29,7 +30,6 @@
>  #include "logic/worker.h"
>  #include "machdep.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/constructionsite.cc'
> --- src/logic/constructionsite.cc	2014-04-21 09:19:14 +0000
> +++ src/logic/constructionsite.cc	2014-06-16 13:55:52 +0000
> @@ -23,11 +23,12 @@
>  
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "economy/wares_queue.h"
>  #include "graphic/animation.h"
>  #include "graphic/graphic.h"
>  #include "graphic/rendertarget.h"
> -#include "i18n.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/game.h"
>  #include "logic/tribe.h"
> @@ -35,7 +36,6 @@
>  #include "sound/sound_handler.h"
>  #include "ui_basic/window.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  #include "wui/interactive_gamebase.h"
>  
>  namespace Widelands {
> 
> === modified file 'src/logic/critter_bob.cc'
> --- src/logic/critter_bob.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/critter_bob.cc	2014-06-16 13:55:52 +0000
> @@ -20,7 +20,9 @@
>  #include "logic/critter_bob.h"
>  
>  #include <cstdio>
> +#include <memory>
>  
> +#include "base/wexception.h"
>  #include "helper.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> @@ -30,7 +32,6 @@
>  #include "logic/game_data_error.h"
>  #include "logic/tribe.h"
>  #include "profile/profile.h"
> -#include "wexception.h"
>  
>  
>  namespace Widelands {
> 
> === renamed file 'src/description_maintainer.h' => 'src/logic/description_maintainer.h'
> === modified file 'src/logic/dismantlesite.cc'
> --- src/logic/dismantlesite.cc	2014-04-21 10:47:03 +0000
> +++ src/logic/dismantlesite.cc	2014-06-16 13:55:52 +0000
> @@ -21,18 +21,18 @@
>  
>  #include <cstdio>
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "economy/wares_queue.h"
>  #include "graphic/animation.h"
>  #include "graphic/graphic.h"
>  #include "graphic/rendertarget.h"
> -#include "i18n.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/game.h"
>  #include "logic/tribe.h"
>  #include "logic/worker.h"
>  #include "sound/sound_handler.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/editor_game_base.cc'
> --- src/logic/editor_game_base.cc	2014-04-20 20:02:13 +0000
> +++ src/logic/editor_game_base.cc	2014-06-16 13:55:52 +0000
> @@ -22,11 +22,12 @@
>  #include <algorithm>
>  #include <set>
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "economy/flag.h"
>  #include "economy/road.h"
>  #include "graphic/font_handler.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/battle.h"
>  #include "logic/building.h"
>  #include "logic/dismantlesite.h"
> @@ -46,7 +47,6 @@
>  #include "sound/sound_handler.h"
>  #include "ui_basic/progresswindow.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  #include "wui/interactive_base.h"
>  #include "wui/interactive_gamebase.h"
>  
> @@ -527,7 +527,7 @@
>  	f.field->set_road(direction, roadtype);
>  
>  	FCoords neighbour;
> -	uint8_t mask;
> +	uint8_t mask = 0;
>  	switch (direction) {
>  	case Road_SouthWest:
>  		neighbour = m.bl_n(f);
> 
> === modified file 'src/logic/expedition_bootstrap.cc'
> --- src/logic/expedition_bootstrap.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/expedition_bootstrap.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,8 @@
>  
>  #include "logic/expedition_bootstrap.h"
>  
> +#include <memory>
> +
>  #include "economy/portdock.h"
>  #include "io/filewrite.h"
>  #include "logic/player.h"
> 
> === modified file 'src/logic/findnode.cc'
> --- src/logic/findnode.cc	2013-08-01 08:33:15 +0000
> +++ src/logic/findnode.cc	2014-06-16 13:55:52 +0000
> @@ -19,11 +19,11 @@
>  
>  #include "logic/findnode.h"
>  
> +#include "base/wexception.h"
>  #include "container_iterate.h"
>  #include "logic/field.h"
>  #include "logic/immovable.h"
>  #include "logic/map.h"
> -#include "wexception.h"
>  
>  
>  namespace Widelands {
> 
> === modified file 'src/logic/game.cc'
> --- src/logic/game.cc	2014-06-10 20:38:57 +0000
> +++ src/logic/game.cc	2014-06-16 13:55:52 +0000
> @@ -29,17 +29,18 @@
>  #include <windows.h>
>  #endif
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/warning.h"
>  #include "computer_player.h"
>  #include "economy/economy.h"
>  #include "game_io/game_loader.h"
>  #include "game_io/game_preload_data_packet.h"
>  #include "gamesettings.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "io/fileread.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/carrier.h"
>  #include "logic/cmd_calculate_statistics.h"
>  #include "logic/cmd_luacoroutine.h"
> @@ -62,7 +63,6 @@
>  #include "timestring.h"
>  #include "ui_basic/progresswindow.h"
>  #include "upcast.h"
> -#include "warning.h"
>  #include "wlapplication.h"
>  #include "wui/game_tips.h"
>  #include "wui/interactive_player.h"
> 
> === modified file 'src/logic/game_data_error.h'
> --- src/logic/game_data_error.h	2014-02-22 18:04:02 +0000
> +++ src/logic/game_data_error.h	2014-06-16 13:55:52 +0000
> @@ -20,7 +20,7 @@
>  #ifndef GAME_DATA_ERROR_H
>  #define GAME_DATA_ERROR_H
>  
> -#include "wexception.h"
> +#include "base/wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/immovable.cc'
> --- src/logic/immovable.cc	2014-06-10 20:38:57 +0000
> +++ src/logic/immovable.cc	2014-06-16 13:55:52 +0000
> @@ -23,8 +23,9 @@
>  #include <memory>
>  
>  #include <boost/format.hpp>
> -#include <config.h>
>  
> +#include "base/wexception.h"
> +#include "config.h"
>  #include "container_iterate.h"
>  #include "graphic/font_handler1.h"
>  #include "graphic/graphic.h"
> @@ -47,7 +48,6 @@
>  #include "sound/sound_handler.h"
>  #include "text_layout.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  #include "wui/interactive_base.h"
>  
>  namespace Widelands {
> 
> === modified file 'src/logic/instances.cc'
> --- src/logic/instances.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/instances.cc	2014-06-16 13:55:52 +0000
> @@ -24,16 +24,16 @@
>  #include <cstring>
>  #include <string>
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "container_iterate.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/cmd_queue.h"
>  #include "logic/game.h"
>  #include "logic/queue_cmd_ids.h"
>  #include "map_io/widelands_map_map_object_loader.h"
>  #include "map_io/widelands_map_map_object_saver.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/instances.h'
> --- src/logic/instances.h	2014-05-11 07:38:01 +0000
> +++ src/logic/instances.h	2014-06-16 13:55:52 +0000
> @@ -30,11 +30,11 @@
>  #include <boost/unordered_map.hpp>
>  #include <boost/signals2.hpp>
>  
> -#include "log.h"
> +#include "base/log.h"
> +#include "base/port.h"
>  #include "logic/cmd_queue.h"
> -#include "port.h"
> +#include "logic/widelands.h"
>  #include "ref_cast.h"
> -#include "widelands.h"
>  
>  class FileRead;
>  class RenderTarget;
> 
> === modified file 'src/logic/map.cc'
> --- src/logic/map.cc	2014-06-16 13:24:45 +0000
> +++ src/logic/map.cc	2014-06-16 13:55:52 +0000
> @@ -25,12 +25,13 @@
>  #include <boost/algorithm/string.hpp>
>  #include <boost/algorithm/string/predicate.hpp>
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "build_info.h"
>  #include "economy/flag.h"
>  #include "economy/road.h"
>  #include "editor/tools/editor_increase_resources_tool.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "logic/checkstep.h"
>  #include "logic/findimmovable.h"
>  #include "logic/findnode.h"
> @@ -45,7 +46,6 @@
>  #include "map_io/widelands_map_loader.h"
>  #include "s2map.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  #include "wui/overlay_manager.h"
>  
>  
> 
> === modified file 'src/logic/map.h'
> --- src/logic/map.h	2014-05-27 11:01:15 +0000
> +++ src/logic/map.h	2014-06-16 13:55:52 +0000
> @@ -26,8 +26,8 @@
>  #include <string>
>  #include <vector>
>  
> +#include "base/i18n.h"
>  #include "economy/itransport_cost_calculator.h"
> -#include "i18n.h"
>  #include "interval.h"
>  #include "logic/field.h"
>  #include "logic/map_revision.h"
> 
> === modified file 'src/logic/mapastar.h'
> --- src/logic/mapastar.h	2013-07-26 20:19:36 +0000
> +++ src/logic/mapastar.h	2014-06-16 13:55:52 +0000
> @@ -20,7 +20,7 @@
>  #ifndef LOGIC_MAPASTAR_H
>  #define LOGIC_MAPASTAR_H
>  
> -#include "log.h"
> +#include "base/log.h"
>  #include "logic/map.h"
>  #include "logic/pathfield.h"
>  
> 
> === modified file 'src/logic/message_id.h'
> --- src/logic/message_id.h	2013-07-09 05:40:36 +0000
> +++ src/logic/message_id.h	2014-06-16 13:55:52 +0000
> @@ -22,7 +22,7 @@
>  
>  #include <stdint.h>
>  
> -#include "port.h"
> +#include "base/port.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/military_data.cc'
> --- src/logic/military_data.cc	2014-03-04 13:24:58 +0000
> +++ src/logic/military_data.cc	2014-06-16 13:55:52 +0000
> @@ -22,9 +22,9 @@
>  #include <string>
>  #include <vector>
>  
> +#include "base/i18n.h"
>  #include "container_iterate.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "logic/game_data_error.h"
>  
>  namespace Widelands {
> @@ -83,4 +83,3 @@
>  }
>  
>  }
> -
> 
> === modified file 'src/logic/militarysite.cc'
> --- src/logic/militarysite.cc	2014-04-21 10:47:03 +0000
> +++ src/logic/militarysite.cc	2014-06-16 13:55:52 +0000
> @@ -24,10 +24,10 @@
>  
>  #include <libintl.h>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
>  #include "economy/flag.h"
>  #include "economy/request.h"
> -#include "i18n.h"
> -#include "log.h"
>  #include "logic/battle.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/findbob.h"
> 
> === modified file 'src/logic/militarysite.h'
> --- src/logic/militarysite.h	2014-04-18 16:31:54 +0000
> +++ src/logic/militarysite.h	2014-06-16 13:55:52 +0000
> @@ -20,6 +20,8 @@
>  #ifndef MILITARYSITE_H
>  #define MILITARYSITE_H
>  
> +#include <memory>
> +
>  #include "logic/attackable.h"
>  #include "logic/productionsite.h"
>  #include "logic/requirements.h"
> 
> === modified file 'src/logic/objective.h'
> --- src/logic/objective.h	2014-04-20 20:53:01 +0000
> +++ src/logic/objective.h	2014-06-16 13:55:52 +0000
> @@ -24,7 +24,7 @@
>  #include <cstring>
>  #include <string>
>  
> -#include "i18n.h"
> +#include "base/i18n.h"
>  
>  namespace Widelands {
>  
> 
> === renamed file 'src/parse_map_object_types.h' => 'src/logic/parse_map_object_types.h'
> === modified file 'src/logic/pathfield.cc'
> --- src/logic/pathfield.cc	2013-07-26 20:19:36 +0000
> +++ src/logic/pathfield.cc	2014-06-16 13:55:52 +0000
> @@ -19,8 +19,8 @@
>  
>  #include "logic/pathfield.h"
>  
> +#include "base/wexception.h"
>  #include "container_iterate.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/player.cc'
> --- src/logic/player.cc	2014-06-10 20:38:57 +0000
> +++ src/logic/player.cc	2014-06-16 13:55:52 +0000
> @@ -24,13 +24,15 @@
>  #include <boost/bind.hpp>
>  #include <boost/signals2.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/warning.h"
> +#include "base/wexception.h"
>  #include "economy/economy.h"
>  #include "economy/flag.h"
>  #include "economy/road.h"
> -#include "i18n.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/building.h"
>  #include "logic/checkstep.h"
>  #include "logic/cmd_expire_message.h"
> @@ -50,8 +52,6 @@
>  #include "scripting/scripting.h"
>  #include "sound/sound_handler.h"
>  #include "upcast.h"
> -#include "warning.h"
> -#include "wexception.h"
>  #include "wui/interactive_player.h"
>  
>  
> 
> === modified file 'src/logic/playercommand.cc'
> --- src/logic/playercommand.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/playercommand.cc	2014-06-16 13:55:52 +0000
> @@ -19,12 +19,13 @@
>  
>  #include "logic/playercommand.h"
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "economy/economy.h"
>  #include "economy/wares_queue.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
>  #include "io/streamwrite.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "logic/instances.h"
>  #include "logic/militarysite.h"
> @@ -36,7 +37,6 @@
>  #include "map_io/widelands_map_map_object_loader.h"
>  #include "map_io/widelands_map_map_object_saver.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/playersmanager.cc'
> --- src/logic/playersmanager.cc	2014-02-22 18:04:02 +0000
> +++ src/logic/playersmanager.cc	2014-06-16 13:55:52 +0000
> @@ -21,10 +21,10 @@
>  
>  #include <cstring>
>  
> +#include "base/wexception.h"
>  #include "gamesettings.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/player.h"
> -#include "wexception.h"
>  #include "wui/interactive_gamebase.h"
>  
>  namespace Widelands {
> 
> === modified file 'src/logic/production_program.cc'
> --- src/logic/production_program.cc	2014-04-21 10:00:16 +0000
> +++ src/logic/production_program.cc	2014-06-16 13:55:52 +0000
> @@ -20,9 +20,9 @@
>  #include "logic/production_program.h"
>  
>  #include <boost/format.hpp>
> -#include <config.h>
>  #include <libintl.h>
>  
> +#include "config.h"
>  #include "economy/economy.h"
>  #include "economy/flag.h"
>  #include "economy/wares_queue.h"
> 
> === modified file 'src/logic/production_program.h'
> --- src/logic/production_program.h	2014-05-11 07:38:01 +0000
> +++ src/logic/production_program.h	2014-06-16 13:55:52 +0000
> @@ -29,8 +29,8 @@
>  #include <boost/noncopyable.hpp>
>  #include <stdint.h>
>  
> +#include "base/log.h"
>  #include "container_iterate.h"
> -#include "log.h"
>  #include "logic/bill_of_materials.h"
>  #include "logic/program_result.h"
>  #include "logic/tattribute.h"
> 
> === modified file 'src/logic/productionsite.cc'
> --- src/logic/productionsite.cc	2014-06-16 13:33:29 +0000
> +++ src/logic/productionsite.cc	2014-06-16 13:55:52 +0000
> @@ -23,12 +23,13 @@
>  #include <boost/format.hpp>
>  #include <libintl.h>
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "economy/economy.h"
>  #include "economy/request.h"
>  #include "economy/ware_instance.h"
>  #include "economy/wares_queue.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "logic/carrier.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/game.h"
> @@ -40,7 +41,6 @@
>  #include "logic/world.h"
>  #include "profile/profile.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/queue_cmd_factory.cc'
> --- src/logic/queue_cmd_factory.cc	2013-08-05 14:05:21 +0000
> +++ src/logic/queue_cmd_factory.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "logic/queue_cmd_factory.h"
>  
> +#include "base/wexception.h"
>  #include "economy/cmd_call_economy_balance.h"
>  #include "logic/cmd_calculate_statistics.h"
>  #include "logic/cmd_incorporate.h"
> @@ -27,7 +28,6 @@
>  #include "logic/instances.h"
>  #include "logic/playercommand.h"
>  #include "logic/queue_cmd_ids.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/replay.cc'
> --- src/logic/replay.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/replay.cc	2014-06-16 13:55:52 +0000
> @@ -19,19 +19,19 @@
>  
>  #include "logic/replay.h"
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "game_io/game_loader.h"
>  #include "gamecontroller.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "io/streamread.h"
>  #include "io/streamwrite.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "logic/game_data_error.h"
>  #include "logic/playercommand.h"
>  #include "md5.h"
>  #include "random.h"
>  #include "save_handler.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/requirements.cc'
> --- src/logic/requirements.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/requirements.cc	2014-06-16 13:55:52 +0000
> @@ -19,8 +19,8 @@
>  
>  #include "logic/requirements.h"
>  
> +#include "base/i18n.h"
>  #include "container_iterate.h"
> -#include "i18n.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
>  #include "logic/game_data_error.h"
> 
> === modified file 'src/logic/soldier.cc'
> --- src/logic/soldier.cc	2014-05-11 07:38:01 +0000
> +++ src/logic/soldier.cc	2014-06-16 13:55:52 +0000
> @@ -22,6 +22,7 @@
>  #include <cstdio>
>  #include <list>
>  
> +#include "base/wexception.h"
>  #include "economy/economy.h"
>  #include "economy/flag.h"
>  #include "gamecontroller.h"
> @@ -49,7 +50,6 @@
>  #include "map_io/widelands_map_map_object_saver.h"
>  #include "profile/profile.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  #include "wui/mapviewpixelconstants.h"
>  
>  namespace Widelands {
> 
> === modified file 'src/logic/trainingsite.cc'
> --- src/logic/trainingsite.cc	2014-04-18 16:31:54 +0000
> +++ src/logic/trainingsite.cc	2014-06-16 13:55:52 +0000
> @@ -21,9 +21,9 @@
>  
>  #include <cstdio>
>  
> +#include "base/i18n.h"
>  #include "economy/request.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/game.h"
>  #include "logic/player.h"
> 
> === modified file 'src/logic/tribe.cc'
> --- src/logic/tribe.cc	2014-05-10 17:07:11 +0000
> +++ src/logic/tribe.cc	2014-06-16 13:55:52 +0000
> @@ -20,12 +20,13 @@
>  #include "logic/tribe.h"
>  
>  #include <iostream>
> +#include <memory>
>  
>  #include <boost/algorithm/string.hpp>
>  
> +#include "base/i18n.h"
>  #include "graphic/graphic.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "io/fileread.h"
>  #include "io/filesystem/disk_filesystem.h"
>  #include "io/filesystem/layered_filesystem.h"
> @@ -38,13 +39,13 @@
>  #include "logic/game_data_error.h"
>  #include "logic/immovable.h"
>  #include "logic/militarysite.h"
> +#include "logic/parse_map_object_types.h"
>  #include "logic/ship.h"
>  #include "logic/soldier.h"
>  #include "logic/trainingsite.h"
>  #include "logic/warehouse.h"
>  #include "logic/worker.h"
>  #include "logic/world.h"
> -#include "parse_map_object_types.h"
>  #include "profile/profile.h"
>  #include "scripting/lua_table.h"
>  #include "scripting/scripting.h"
> 
> === modified file 'src/logic/tribe.h'
> --- src/logic/tribe.h	2014-05-11 07:38:01 +0000
> +++ src/logic/tribe.h	2014-06-16 13:55:52 +0000
> @@ -24,10 +24,10 @@
>  #include <vector>
>  
>  #include "TribeBasicInfo.h"
> -#include "description_maintainer.h"
>  #include "graphic/animation.h"
>  #include "logic/bob.h"
>  #include "logic/building.h"
> +#include "logic/description_maintainer.h"
>  #include "logic/immovable.h"
>  #include "logic/military_data.h"
>  #include "logic/ware_descr.h"
> 
> === modified file 'src/logic/ware_descr.cc'
> --- src/logic/ware_descr.cc	2014-03-16 20:55:15 +0000
> +++ src/logic/ware_descr.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "logic/ware_descr.h"
>  
> +#include "base/i18n.h"
>  #include "graphic/animation.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "profile/profile.h"
>  
>  namespace Widelands {
> 
> === modified file 'src/logic/warehouse.cc'
> --- src/logic/warehouse.cc	2014-04-21 10:47:03 +0000
> +++ src/logic/warehouse.cc	2014-06-16 13:55:52 +0000
> @@ -21,6 +21,8 @@
>  
>  #include <algorithm>
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "container_iterate.h"
>  #include "economy/economy.h"
>  #include "economy/flag.h"
> @@ -29,7 +31,6 @@
>  #include "economy/ware_instance.h"
>  #include "economy/warehousesupply.h"
>  #include "economy/wares_queue.h"
> -#include "log.h"
>  #include "logic/battle.h"
>  #include "logic/carrier.h"
>  #include "logic/editor_game_base.h"
> @@ -45,7 +46,6 @@
>  #include "logic/worker.h"
>  #include "profile/profile.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/warehouse.h'
> --- src/logic/warehouse.h	2014-05-11 07:38:01 +0000
> +++ src/logic/warehouse.h	2014-06-16 13:55:52 +0000
> @@ -20,12 +20,12 @@
>  #ifndef WAREHOUSE_H
>  #define WAREHOUSE_H
>  
> +#include "base/wexception.h"
>  #include "economy/request.h"
>  #include "logic/attackable.h"
>  #include "logic/building.h"
>  #include "logic/soldiercontrol.h"
>  #include "logic/wareworker.h"
> -#include "wexception.h"
>  
>  class Interactive_Player;
>  struct Profile;
> 
> === modified file 'src/logic/warelist.cc'
> --- src/logic/warelist.cc	2014-04-21 09:19:14 +0000
> +++ src/logic/warelist.cc	2014-06-16 13:55:52 +0000
> @@ -19,7 +19,7 @@
>  
>  #include "logic/warelist.h"
>  
> -#include "log.h"
> +#include "base/log.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/widelands.h'
> --- src/logic/widelands.h	2014-04-21 09:19:14 +0000
> +++ src/logic/widelands.h	2014-06-16 13:55:52 +0000
> @@ -26,7 +26,7 @@
>  
>  #include <stdint.h>
>  
> -#include "port.h"
> +#include "base/port.h"
>  
>  namespace Widelands {
>  
> 
> === renamed file 'src/workarea_info.h' => 'src/logic/workarea_info.h'
> === modified file 'src/logic/worker.cc'
> --- src/logic/worker.cc	2014-06-10 20:38:57 +0000
> +++ src/logic/worker.cc	2014-06-16 13:55:52 +0000
> @@ -23,6 +23,7 @@
>  
>  #include <boost/format.hpp>
>  
> +#include "base/wexception.h"
>  #include "economy/economy.h"
>  #include "economy/flag.h"
>  #include "economy/portdock.h"
> @@ -55,7 +56,6 @@
>  #include "profile/profile.h"
>  #include "sound/sound_handler.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/worker_descr.cc'
> --- src/logic/worker_descr.cc	2014-04-21 10:00:16 +0000
> +++ src/logic/worker_descr.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,10 @@
>  
>  #include "logic/worker_descr.h"
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "graphic/graphic.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "logic/carrier.h"
>  #include "logic/nodecaps.h"
>  #include "logic/soldier.h"
> @@ -31,7 +32,6 @@
>  #include "profile/profile.h"
>  #include "ref_cast.h"
>  #include "sound/sound_handler.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/logic/worker_program.h'
> --- src/logic/worker_program.h	2014-02-22 18:04:02 +0000
> +++ src/logic/worker_program.h	2014-06-16 13:55:52 +0000
> @@ -21,7 +21,7 @@
>  #define WORKER_PROGRAM_H
>  
>  #include "logic/bob.h"
> -#include "workarea_info.h"
> +#include "logic/workarea_info.h"
>  #include "logic/worker.h"
>  
>  namespace Widelands {
> 
> === modified file 'src/logic/world.cc'
> --- src/logic/world.cc	2014-06-10 20:38:57 +0000
> +++ src/logic/world.cc	2014-06-16 13:55:52 +0000
> @@ -23,21 +23,21 @@
>  #include <memory>
>  #include <sstream>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "constants.h"
>  #include "container_iterate.h"
>  #include "graphic/graphic.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "io/fileread.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/critter_bob.h"
>  #include "logic/game_data_error.h"
> +#include "logic/parse_map_object_types.h"
>  #include "logic/worlddata.h"
> -#include "parse_map_object_types.h"
>  #include "profile/profile.h"
> -#include "wexception.h"
>  
>  using std::cerr;
>  using std::endl;
> 
> === modified file 'src/logic/world.h'
> --- src/logic/world.h	2014-05-10 16:47:03 +0000
> +++ src/logic/world.h	2014-06-16 13:55:52 +0000
> @@ -21,7 +21,7 @@
>  #define WORLD_H
>  
>  #include "logic/bob.h"
> -#include "description_maintainer.h"
> +#include "logic/description_maintainer.h"
>  #include "logic/immovable.h"
>  #include "logic/widelands.h"
>  #include "logic/worlddata.h"
> 
> === modified file 'src/main.cc'
> --- src/main.cc	2014-02-22 18:04:02 +0000
> +++ src/main.cc	2014-06-16 13:55:52 +0000
> @@ -22,15 +22,15 @@
>  #include <typeinfo>
>  
>  #include <SDL_main.h>
> -#include <config.h>
>  #ifndef _WIN32
>  #include <fcntl.h>
>  #include <syslog.h>
>  #endif
>  #include <unistd.h>
>  
> +#include "base/wexception.h"
>  #include "build_info.h"
> -#include "wexception.h"
> +#include "config.h"
>  #include "wlapplication.h"
>  
>  using std::cout;
> 
> === modified file 'src/map_generator.cc'
> --- src/map_generator.cc	2014-06-10 20:38:57 +0000
> +++ src/map_generator.cc	2014-06-16 13:55:52 +0000
> @@ -21,8 +21,8 @@
>  
>  #include <memory>
>  
> +#include "base/log.h"
>  #include "editor/tools/editor_increase_resources_tool.h"
> -#include "log.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/findnode.h"
>  #include "logic/map.h"
> 
> === modified file 'src/map_io/coords_profile.cc'
> --- src/map_io/coords_profile.cc	2014-06-16 09:38:03 +0000
> +++ src/map_io/coords_profile.cc	2014-06-16 13:55:52 +0000
> @@ -24,9 +24,9 @@
>  #include <memory>
>  #include <string>
>  
> +#include "base/wexception.h"
>  #include "logic/widelands_geometry.h"
>  #include "profile/profile.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/map_io/coords_profile.h'
> --- src/map_io/coords_profile.h	2014-06-16 13:33:29 +0000
> +++ src/map_io/coords_profile.h	2014-06-16 13:55:52 +0000
> @@ -31,11 +31,17 @@
>  
>  // Returns the key 'name' from 'section' parsed as Coords. Will throw if the
>  // value cannot be parsed. If 'name' is not in 'section' will return 'def'.
> +<<<<<<< TREE
>  Widelands::Coords get_coords(
>  	const std::string& name,
>  	const Widelands::Extent& extent,
>  	const Widelands::Coords& def,
>  	Section* section);
> +=======
> +Widelands::Coords get_coords
> +	(const std::string& name, const Widelands::Extent& extent, const
> +	 Widelands::Coords& def, Section* section);
> +>>>>>>> MERGE-SOURCE
>  
>  // Like get_coords, but will also throw when 'name' is not in 'section'.
>  Widelands::Coords
> 
> === modified file 'src/map_io/widelands_map_data_packet.h'
> --- src/map_io/widelands_map_data_packet.h	2014-05-11 07:38:01 +0000
> +++ src/map_io/widelands_map_data_packet.h	2014-06-16 13:55:52 +0000
> @@ -20,7 +20,7 @@
>  #ifndef WIDELANDS_MAP_DATA_PACKET_H
>  #define WIDELANDS_MAP_DATA_PACKET_H
>  
> -#include "wexception.h"
> +#include "base/wexception.h"
>  
>  class FileSystem;
>  
> 
> === modified file 'src/map_io/widelands_map_exploration_data_packet.cc'
> --- src/map_io/widelands_map_exploration_data_packet.cc	2014-05-11 07:38:01 +0000
> +++ src/map_io/widelands_map_exploration_data_packet.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "map_io/widelands_map_exploration_data_packet.h"
>  
> +#include "base/log.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/game_data_error.h"
>  #include "logic/map.h"
> 
> === modified file 'src/map_io/widelands_map_loader.cc'
> --- src/map_io/widelands_map_loader.cc	2014-04-01 18:15:56 +0000
> +++ src/map_io/widelands_map_loader.cc	2014-06-16 13:55:52 +0000
> @@ -19,7 +19,8 @@
>  
>  #include "map_io/widelands_map_loader.h"
>  
> -#include "log.h"
> +#include "base/log.h"
> +#include "base/warning.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/map.h"
>  #include "logic/player.h"
> @@ -51,7 +52,6 @@
>  #include "map_io/widelands_map_terrain_data_packet.h"
>  #include "map_io/widelands_map_version_data_packet.h"
>  #include "scoped_timer.h"
> -#include "warning.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/map_io/widelands_map_map_object_loader.cc'
> --- src/map_io/widelands_map_map_object_loader.cc	2013-07-26 20:19:36 +0000
> +++ src/map_io/widelands_map_map_object_loader.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "map_io/widelands_map_map_object_loader.h"
>  
> +#include "base/wexception.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/instances.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/map_io/widelands_map_map_object_saver.cc'
> --- src/map_io/widelands_map_map_object_saver.cc	2014-04-01 18:15:56 +0000
> +++ src/map_io/widelands_map_map_object_saver.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "map_io/widelands_map_map_object_saver.h"
>  
> +#include "base/wexception.h"
>  #include "container_iterate.h"
>  #include "economy/flag.h"
>  #include "economy/fleet.h"
> @@ -29,7 +30,6 @@
>  #include "logic/bob.h"
>  #include "logic/building.h"
>  #include "logic/ware_descr.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/map_io/widelands_map_object_packet.cc'
> --- src/map_io/widelands_map_object_packet.cc	2014-05-11 07:38:01 +0000
> +++ src/map_io/widelands_map_object_packet.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "map_io/widelands_map_object_packet.h"
>  
> +#include "base/wexception.h"
>  #include "economy/fleet.h"
>  #include "economy/portdock.h"
>  #include "io/fileread.h"
> @@ -32,7 +33,6 @@
>  #include "logic/worker.h"
>  #include "map_io/widelands_map_map_object_loader.h"
>  #include "map_io/widelands_map_map_object_saver.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/map_io/widelands_map_objective_data_packet.cc'
> --- src/map_io/widelands_map_objective_data_packet.cc	2014-04-21 10:21:08 +0000
> +++ src/map_io/widelands_map_objective_data_packet.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,8 @@
>  
>  #include "map_io/widelands_map_objective_data_packet.h"
>  
> +#include <memory>
> +
>  #include "logic/editor_game_base.h"
>  #include "logic/game_data_error.h"
>  #include "logic/map.h"
> 
> === modified file 'src/map_io/widelands_map_players_view_data_packet.cc'
> --- src/map_io/widelands_map_players_view_data_packet.cc	2014-05-11 07:38:01 +0000
> +++ src/map_io/widelands_map_players_view_data_packet.cc	2014-06-16 13:55:52 +0000
> @@ -22,10 +22,10 @@
>  #include <iostream>
>  #include <typeinfo>
>  
> +#include "base/log.h"
>  #include "economy/road.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/field.h"
>  #include "logic/game_data_error.h"
> @@ -997,7 +997,7 @@
>  	Map_Object_Descr const * const map_object_descr = map_object_data->map_object_descr;
>  	const Player::Constructionsite_Information & csi = map_object_data->csi;
>  	assert(not Road::IsRoadDescr(map_object_descr));
> -	uint8_t immovable_kind;
> +	uint8_t immovable_kind = 255;
>  
>  	if (not map_object_descr)
>  		immovable_kind = 0;
> 
> === modified file 'src/map_io/widelands_map_port_spaces_data_packet.cc'
> --- src/map_io/widelands_map_port_spaces_data_packet.cc	2014-06-08 21:02:17 +0000
> +++ src/map_io/widelands_map_port_spaces_data_packet.cc	2014-06-16 13:55:52 +0000
> @@ -21,8 +21,8 @@
>  
>  #include <boost/algorithm/string.hpp>
>  
> +#include "base/log.h"
>  #include "container_iterate.h"
> -#include "log.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/game_data_error.h"
>  #include "logic/map.h"
> 
> === modified file 'src/map_io/widelands_map_resources_data_packet.cc'
> --- src/map_io/widelands_map_resources_data_packet.cc	2014-05-11 07:38:01 +0000
> +++ src/map_io/widelands_map_resources_data_packet.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "map_io/widelands_map_resources_data_packet.h"
>  
> +#include "base/log.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/game_data_error.h"
>  #include "logic/map.h"
> 
> === modified file 'src/map_io/widelands_map_saver.cc'
> --- src/map_io/widelands_map_saver.cc	2014-04-21 09:19:14 +0000
> +++ src/map_io/widelands_map_saver.cc	2014-06-16 13:55:52 +0000
> @@ -19,7 +19,8 @@
>  
>  #include "map_io/widelands_map_saver.h"
>  
> -#include "log.h"
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/map.h"
>  #include "logic/player.h"
> @@ -50,7 +51,6 @@
>  #include "map_io/widelands_map_terrain_data_packet.h"
>  #include "map_io/widelands_map_version_data_packet.h"
>  #include "scoped_timer.h"
> -#include "wexception.h"
>  
>  namespace Widelands {
>  
> 
> === modified file 'src/map_io/widelands_map_saver.h'
> --- src/map_io/widelands_map_saver.h	2013-09-23 18:47:02 +0000
> +++ src/map_io/widelands_map_saver.h	2014-06-16 13:55:52 +0000
> @@ -20,7 +20,7 @@
>  #ifndef WIDELANDS_MAP_SAVER_H
>  #define WIDELANDS_MAP_SAVER_H
>  
> -#include "wexception.h"
> +#include "base/wexception.h"
>  
>  class FileSystem;
>  
> 
> === modified file 'src/map_io/widelands_map_terrain_data_packet.cc'
> --- src/map_io/widelands_map_terrain_data_packet.cc	2014-05-11 07:38:01 +0000
> +++ src/map_io/widelands_map_terrain_data_packet.cc	2014-06-16 13:55:52 +0000
> @@ -21,9 +21,9 @@
>  
>  #include <map>
>  
> +#include "base/log.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/game_data_error.h"
>  #include "logic/map.h"
> 
> === removed file 'src/minizip/CMakeLists.txt'
> --- src/minizip/CMakeLists.txt	2012-04-07 15:12:06 +0000
> +++ src/minizip/CMakeLists.txt	1970-01-01 00:00:00 +0000
> @@ -1,3 +0,0 @@
> -add_library(wl_minizip STATIC EXCLUDE_FROM_ALL "unzip.cc")
> -
> -message(WARNING "You are using widelands-bundled minizip sources. Please install your distribution's minizip library or urge your distribution maintainer to include the minizip library in your package repository. Thank you.")
> 
> === modified file 'src/network/internet_gaming.cc'
> --- src/network/internet_gaming.cc	2014-05-10 17:07:11 +0000
> +++ src/network/internet_gaming.cc	2014-06-16 13:55:52 +0000
> @@ -23,14 +23,14 @@
>  #include <boost/lexical_cast.hpp>
>  #include <libintl.h>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/warning.h"
>  #include "compile_diagnostics.h"
> -#include "i18n.h"
>  #include "io/dedicated_log.h"
>  #include "io/fileread.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "network/internet_gaming_messages.h"
> -#include "warning.h"
>  
>  
>  
> 
> === modified file 'src/network/internet_gaming_messages.cc'
> --- src/network/internet_gaming_messages.cc	2014-02-25 15:04:27 +0000
> +++ src/network/internet_gaming_messages.cc	2014-06-16 13:55:52 +0000
> @@ -21,7 +21,7 @@
>  
>  #include <map>
>  
> -#include "i18n.h"
> +#include "base/i18n.h"
>  
>  static std::map <std::string, std::string> igmessages;
>  
> 
> === modified file 'src/network/netclient.cc'
> --- src/network/netclient.cc	2014-05-10 17:07:11 +0000
> +++ src/network/netclient.cc	2014-06-16 13:55:52 +0000
> @@ -19,14 +19,18 @@
>  
>  #include "network/netclient.h"
>  
> +#include <memory>
> +
>  #include <boost/algorithm/string/predicate.hpp>
>  #include <boost/lexical_cast.hpp>
> -#include <config.h>
>  
> +#include "base/i18n.h"
> +#include "base/warning.h"
> +#include "base/wexception.h"
>  #include "build_info.h"
> +#include "config.h"
>  #include "game_io/game_loader.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
>  #include "logic/game.h"
> @@ -44,8 +48,6 @@
>  #include "ui_basic/messagebox.h"
>  #include "ui_basic/progresswindow.h"
>  #include "ui_fsmenu/launchMPG.h"
> -#include "warning.h"
> -#include "wexception.h"
>  #include "wlapplication.h"
>  #include "wui/game_tips.h"
>  #include "wui/interactive_player.h"
> 
> === modified file 'src/network/nethost.cc'
> --- src/network/nethost.cc	2014-05-10 17:07:11 +0000
> +++ src/network/nethost.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "network/nethost.h"
>  
> +#include <memory>
>  #include <sstream>
>  
>  #include <boost/algorithm/string/predicate.hpp>
> @@ -29,13 +30,14 @@
>  #include <unistd.h> // for usleep
>  #endif
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "build_info.h"
>  #include "chat.h"
>  #include "computer_player.h"
>  #include "game_io/game_loader.h"
>  #include "game_io/game_preload_data_packet.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "io/dedicated_log.h"
>  #include "io/fileread.h"
>  #include "io/filesystem/layered_filesystem.h"
> @@ -56,7 +58,6 @@
>  #include "scripting/scripting.h"
>  #include "ui_basic/progresswindow.h"
>  #include "ui_fsmenu/launchMPG.h"
> -#include "wexception.h"
>  #include "wlapplication.h"
>  #include "wui/game_tips.h"
>  #include "wui/interactive_player.h"
> 
> === modified file 'src/network/network.cc'
> --- src/network/network.cc	2013-10-08 21:20:32 +0000
> +++ src/network/network.cc	2014-06-16 13:55:52 +0000
> @@ -19,7 +19,7 @@
>  
>  #include "network/network.h"
>  
> -#include "log.h"
> +#include "base/log.h"
>  #include "wlapplication.h"
>  
>  
> 
> === modified file 'src/network/network_gaming_messages.cc'
> --- src/network/network_gaming_messages.cc	2014-03-09 10:28:39 +0000
> +++ src/network/network_gaming_messages.cc	2014-06-16 13:55:52 +0000
> @@ -24,8 +24,8 @@
>  #include <boost/format.hpp>
>  #include <stdint.h>
>  
> -#include "i18n.h"
> -#include "log.h"
> +#include "base/i18n.h"
> +#include "base/log.h"
>  
>  static std::map <std::string, std::string> ngmessages;
>  
> 
> === modified file 'src/network/network_player_settings_backend.cc'
> --- src/network/network_player_settings_backend.cc	2013-07-26 20:19:36 +0000
> +++ src/network/network_player_settings_backend.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "network/network_player_settings_backend.h"
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
>  #include "gamesettings.h"
> -#include "i18n.h"
> -#include "log.h"
>  #include "logic/player.h"
>  #include "logic/tribe.h"
>  #include "profile/profile.h"
> 
> === added file 'src/profile/CMakeLists.txt'
> --- src/profile/CMakeLists.txt	1970-01-01 00:00:00 +0000
> +++ src/profile/CMakeLists.txt	2014-06-16 13:55:52 +0000
> @@ -0,0 +1,8 @@
> +wl_library(profile
> +  SRCS
> +   profile.h
> +   profile.cc
> +  DEPENDS
> +   base_i18n
> +   io_filesystem
> + )
> 
> === modified file 'src/profile/profile.cc'
> --- src/profile/profile.cc	2014-06-08 21:02:17 +0000
> +++ src/profile/profile.cc	2014-06-16 13:55:52 +0000
> @@ -26,14 +26,14 @@
>  #include <limits>
>  #include <string>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "build_info.h"
> -#include "i18n.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "logic/player.h"
>  #include "logic/tribe.h"
> -#include "wexception.h"
>  
>  #define TRUE_WORDS 4
>  char const * trueWords[TRUE_WORDS] =
> 
> === modified file 'src/profile/profile.h'
> --- src/profile/profile.h	2014-06-08 21:02:17 +0000
> +++ src/profile/profile.h	2014-06-16 13:55:52 +0000
> @@ -25,11 +25,10 @@
>  
>  #include <boost/noncopyable.hpp>
>  
> -//TODO: as soon as g_fs is not needed anymore, next include can be changed
> -//to ..../filesystem.h
> +//TODO: as soon as g_fs is not needed anymore, include "filesystem.h" instead of layered_filesystem.h.
> +#include "base/port.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "point.h"
> -#include "port.h"
>  
>  
>  extern struct Profile g_options;
> 
> === modified file 'src/random.cc'
> --- src/random.cc	2013-07-26 19:16:51 +0000
> +++ src/random.cc	2014-06-16 13:55:52 +0000
> @@ -21,9 +21,9 @@
>  
>  #include <cstdio>
>  
> +#include "base/wexception.h"
>  #include "io/streamread.h"
>  #include "io/streamwrite.h"
> -#include "wexception.h"
>  
>  RNG::RNG () : state0(0), state1(0) {}
>  
> 
> === modified file 'src/s2map.cc'
> --- src/s2map.cc	2014-05-11 07:38:01 +0000
> +++ src/s2map.cc	2014-06-16 13:55:52 +0000
> @@ -24,11 +24,12 @@
>  
>  #include <libintl.h>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "constants.h"
> -#include "i18n.h"
>  #include "io/fileread.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/field.h"
>  #include "logic/game.h"
> @@ -39,7 +40,6 @@
>  #include "logic/world.h"
>  #include "map_io/map_loader.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  
>  using std::cerr;
>  using std::endl;
> 
> === modified file 'src/save_handler.cc'
> --- src/save_handler.cc	2014-06-10 20:38:57 +0000
> +++ src/save_handler.cc	2014-06-16 13:55:52 +0000
> @@ -21,15 +21,15 @@
>  
>  #include <memory>
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "chat.h"
>  #include "game_io/game_saver.h"
>  #include "io/filesystem/filesystem.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "profile/profile.h"
>  #include "scoped_timer.h"
>  #include "upcast.h"
> -#include "wexception.h"
>  #include "wlapplication.h"
>  #include "wui/interactive_base.h"
>  
> 
> === modified file 'src/scoped_timer.cc'
> --- src/scoped_timer.cc	2013-10-10 04:58:26 +0000
> +++ src/scoped_timer.cc	2014-06-16 13:55:52 +0000
> @@ -22,7 +22,7 @@
>  #include <SDL.h>
>  #include <boost/format.hpp>
>  
> -#include "log.h"
> +#include "base/log.h"
>  
>  ScopedTimer::ScopedTimer(const std::string& message)
>  		: message_(message)
> 
> === modified file 'src/scripting/CMakeLists.txt'
> --- src/scripting/CMakeLists.txt	2013-10-17 07:53:54 +0000
> +++ src/scripting/CMakeLists.txt	2014-06-16 13:55:52 +0000
> @@ -1,77 +1,1 @@
> -file(GLOB_RECURSE ERIS_SRCS_C *.c)
> -file(GLOB_RECURSE ERIS_SRCS_H *.h)
> -
> -SET(ERIS_SOURCES
> -  eris/eris.c
> -  eris/lapi.c
> -  eris/lauxlib.c
> -  eris/lbaselib.c
> -  eris/lbitlib.c
> -  eris/lcode.c
> -  eris/lcorolib.c
> -  eris/lctype.c
> -  eris/ldblib.c
> -  eris/ldebug.c
> -  eris/ldo.c
> -  eris/ldump.c
> -  eris/lfunc.c
> -  eris/lgc.c
> -  eris/linit.c
> -  eris/liolib.c
> -  eris/llex.c
> -  eris/lmathlib.c
> -  eris/lmem.c
> -  eris/loadlib.c
> -  eris/lobject.c
> -  eris/lopcodes.c
> -  eris/loslib.c
> -  eris/lparser.c
> -  eris/lstate.c
> -  eris/lstring.c
> -  eris/lstrlib.c
> -  eris/ltable.c
> -  eris/ltablib.c
> -  eris/ltm.c
> -  eris/lua.c
> -  eris/luac.c
> -  eris/lundump.c
> -  eris/lvm.c
> -  eris/lzio.c
> -)
> -
> -SET(ERIS_HEADERS
> -  eris/eris.h
> -  eris/lapi.h
> -  eris/lauxlib.h
> -  eris/lcode.h
> -  eris/lctype.h
> -  eris/ldebug.h
> -  eris/ldo.h
> -  eris/lfunc.h
> -  eris/lgc.h
> -  eris/llex.h
> -  eris/llimits.h
> -  eris/lmem.h
> -  eris/lobject.h
> -  eris/lopcodes.h
> -  eris/lparser.h
> -  eris/lstate.h
> -  eris/lstring.h
> -  eris/ltable.h
> -  eris/ltm.h
> -  eris/lua.h
> -  eris/luaconf.h
> -  eris/lualib.h
> -  eris/lundump.h
> -  eris/lvm.h
> -  eris/lzio.h
> -)
> -
> -add_library(eris STATIC
> -  ${ERIS_SOURCES}
> -  ${ERIS_HEADERS}
> -)
> -
> -if (WL_UNIT_TESTS)
> -  add_subdirectory(test)
> -endif (WL_UNIT_TESTS)
> +add_subdirectory(test)
> 
> === modified file 'src/scripting/c_utils.h'
> --- src/scripting/c_utils.h	2014-04-06 15:47:56 +0000
> +++ src/scripting/c_utils.h	2014-06-16 13:55:52 +0000
> @@ -24,8 +24,8 @@
>  #include "logic/game.h"
>  #include "map_io/widelands_map_map_object_loader.h"
>  #include "map_io/widelands_map_map_object_saver.h"
> -#include "scripting/eris/lua.hpp"
>  #include "scripting/factory.h"
> +#include "third_party/eris/lua.hpp"
>  
>  Factory & get_factory(lua_State *);
>  Widelands::Game & get_game(lua_State *);
> 
> === modified file 'src/scripting/eris.h'
> --- src/scripting/eris.h	2013-10-19 12:18:35 +0000
> +++ src/scripting/eris.h	2014-06-16 13:55:52 +0000
> @@ -22,7 +22,7 @@
>  
>  // We need eris in a cpp context. Include it as such.
>  extern "C" {
> -#include "scripting/eris/eris.h"
> +#include "third_party/eris/eris.h"
>  }
>  
>  
> 
> === modified file 'src/scripting/factory.h'
> --- src/scripting/factory.h	2014-02-22 18:04:02 +0000
> +++ src/scripting/factory.h	2014-06-16 13:55:52 +0000
> @@ -22,7 +22,7 @@
>  
>  
>  #include "logic/widelands.h"
> -#include "scripting/eris/lua.hpp"
> +#include "third_party/eris/lua.hpp"
>  
>  /*
>   * Class to create the correct type for types shared between Editor and Game.
> 
> === modified file 'src/scripting/lua_bases.h'
> --- src/scripting/lua_bases.h	2014-02-22 18:04:02 +0000
> +++ src/scripting/lua_bases.h	2014-06-16 13:55:52 +0000
> @@ -20,8 +20,8 @@
>  #ifndef LUA_BASES_H
>  #define LUA_BASES_H
>  
> -#include "scripting/eris/lua.hpp"
>  #include "scripting/luna.h"
> +#include "third_party/eris/lua.hpp"
>  
>  namespace LuaBases {
>  
> 
> === modified file 'src/scripting/lua_coroutine.h'
> --- src/scripting/lua_coroutine.h	2014-05-11 07:38:01 +0000
> +++ src/scripting/lua_coroutine.h	2014-06-16 13:55:52 +0000
> @@ -22,7 +22,7 @@
>  
>  #include <stdint.h>
>  
> -#include "scripting/eris/lua.hpp"
> +#include "third_party/eris/lua.hpp"
>  
>  class FileRead;
>  class FileWrite;
> 
> === modified file 'src/scripting/lua_editor.cc'
> --- src/scripting/lua_editor.cc	2014-02-22 18:04:02 +0000
> +++ src/scripting/lua_editor.cc	2014-06-16 13:55:52 +0000
> @@ -19,7 +19,7 @@
>  
>  #include "scripting/lua_editor.h"
>  
> -#include "log.h"
> +#include "base/log.h"
>  #include "logic/game.h"
>  #include "logic/player.h"
>  #include "scripting/c_utils.h"
> 
> === modified file 'src/scripting/lua_editor.h'
> --- src/scripting/lua_editor.h	2014-02-22 18:04:02 +0000
> +++ src/scripting/lua_editor.h	2014-06-16 13:55:52 +0000
> @@ -20,8 +20,8 @@
>  #ifndef LUA_EDITOR_H
>  #define LUA_EDITOR_H
>  
> -#include "scripting/eris/lua.hpp"
>  #include "scripting/lua_bases.h"
> +#include "third_party/eris/lua.hpp"
>  
>  namespace LuaEditor {
>  
> 
> === modified file 'src/scripting/lua_errors.h'
> --- src/scripting/lua_errors.h	2014-03-26 10:20:37 +0000
> +++ src/scripting/lua_errors.h	2014-06-16 13:55:52 +0000
> @@ -22,7 +22,7 @@
>  
>  #include <string>
>  
> -#include "wexception.h"
> +#include "base/wexception.h"
>  
>  class LuaError : public _wexception {
>  public:
> 
> === modified file 'src/scripting/lua_game.cc'
> --- src/scripting/lua_game.cc	2014-04-21 09:19:14 +0000
> +++ src/scripting/lua_game.cc	2014-06-16 13:55:52 +0000
> @@ -19,13 +19,15 @@
>  
>  #include "scripting/lua_game.h"
>  
> +#include <memory>
> +
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
>  #include "campvis.h"
>  #include "economy/economy.h"
>  #include "economy/flag.h"
>  #include "gamecontroller.h"
> -#include "i18n.h"
>  #include "logic/objective.h"
>  #include "logic/path.h"
>  #include "logic/player.h"
> 
> === modified file 'src/scripting/lua_game.h'
> --- src/scripting/lua_game.h	2014-04-20 20:53:01 +0000
> +++ src/scripting/lua_game.h	2014-06-16 13:55:52 +0000
> @@ -22,9 +22,9 @@
>  
>  #include "logic/building.h"
>  #include "logic/message_id.h"
> -#include "scripting/eris/lua.hpp"
>  #include "scripting/lua_bases.h"
>  #include "scripting/luna.h"
> +#include "third_party/eris/lua.hpp"
>  
>  namespace Widelands {
>  	struct Tribe_Descr;
> 
> === modified file 'src/scripting/lua_globals.cc'
> --- src/scripting/lua_globals.cc	2014-05-10 09:08:14 +0000
> +++ src/scripting/lua_globals.cc	2014-06-16 13:55:52 +0000
> @@ -24,8 +24,8 @@
>  #include <boost/format.hpp>
>  #include <libintl.h>
>  
> +#include "base/i18n.h"
>  #include "build_info.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "logic/game.h"
>  #include "scripting/c_utils.h"
> 
> === modified file 'src/scripting/lua_globals.h'
> --- src/scripting/lua_globals.h	2013-10-17 07:53:54 +0000
> +++ src/scripting/lua_globals.h	2014-06-16 13:55:52 +0000
> @@ -20,7 +20,7 @@
>  #ifndef LUA_GLOBALS_H
>  #define LUA_GLOBALS_H
>  
> -#include "scripting/eris/lua.hpp"
> +#include "third_party/eris/lua.hpp"
>  
>  namespace LuaGlobals {
>  
> 
> === modified file 'src/scripting/lua_map.cc'
> --- src/scripting/lua_map.cc	2014-04-21 10:47:03 +0000
> +++ src/scripting/lua_map.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "scripting/lua_map.h"
>  
> +#include "base/log.h"
>  #include "container_iterate.h"
>  #include "economy/wares_queue.h"
> -#include "log.h"
>  #include "logic/carrier.h"
>  #include "logic/checkstep.h"
>  #include "logic/findimmovable.h"
> 
> === modified file 'src/scripting/lua_map.h'
> --- src/scripting/lua_map.h	2014-03-31 20:21:27 +0000
> +++ src/scripting/lua_map.h	2014-06-16 13:55:52 +0000
> @@ -34,8 +34,8 @@
>  #include "logic/trainingsite.h"
>  #include "logic/warehouse.h"
>  #include "logic/worker.h"
> -#include "scripting/eris/lua.hpp"
>  #include "scripting/luna.h"
> +#include "third_party/eris/lua.hpp"
>  
>  
>  namespace Widelands {
> 
> === modified file 'src/scripting/lua_root.cc'
> --- src/scripting/lua_root.cc	2014-03-24 21:47:08 +0000
> +++ src/scripting/lua_root.cc	2014-06-16 13:55:52 +0000
> @@ -19,8 +19,8 @@
>  
>  #include "scripting/lua_root.h"
>  
> +#include "base/log.h"
>  #include "gamecontroller.h"
> -#include "log.h"
>  #include "logic/cmd_luacoroutine.h"
>  #include "logic/findimmovable.h"
>  #include "logic/game.h"
> 
> === modified file 'src/scripting/lua_root.h'
> --- src/scripting/lua_root.h	2014-02-22 18:04:02 +0000
> +++ src/scripting/lua_root.h	2014-06-16 13:55:52 +0000
> @@ -20,9 +20,9 @@
>  #ifndef LUA_ROOT_H
>  #define LUA_ROOT_H
>  
> -#include "scripting/eris/lua.hpp"
>  #include "scripting/lua_bases.h"
>  #include "scripting/luna.h"
> +#include "third_party/eris/lua.hpp"
>  
>  namespace LuaRoot {
>  
> 
> === modified file 'src/scripting/lua_table.h'
> --- src/scripting/lua_table.h	2014-06-10 20:42:45 +0000
> +++ src/scripting/lua_table.h	2014-06-16 13:55:52 +0000
> @@ -25,9 +25,9 @@
>  #include <boost/lexical_cast.hpp>
>  
>  #include "scripting/c_utils.h"
> -#include "scripting/eris/lua.hpp"
>  #include "scripting/lua_coroutine.h"
>  #include "scripting/lua_errors.h"
> +#include "third_party/eris/lua.hpp"
>  
>  class LuaTableKeyError : public LuaError {
>  public:
> 
> === modified file 'src/scripting/lua_ui.h'
> --- src/scripting/lua_ui.h	2014-02-22 18:04:02 +0000
> +++ src/scripting/lua_ui.h	2014-06-16 13:55:52 +0000
> @@ -20,8 +20,8 @@
>  #ifndef LUA_UI_H
>  #define LUA_UI_H
>  
> -#include "scripting/eris/lua.hpp"
>  #include "scripting/luna.h"
> +#include "third_party/eris/lua.hpp"
>  #include "ui_basic/button.h"
>  #include "ui_basic/tabpanel.h"
>  #include "ui_basic/window.h"
> 
> === modified file 'src/scripting/luna.h'
> --- src/scripting/luna.h	2013-10-19 10:42:47 +0000
> +++ src/scripting/luna.h	2014-06-16 13:55:52 +0000
> @@ -59,8 +59,8 @@
>  #define UNPERS_UINT32(name, value) _UNPERS_TYPE(name, value, uint32)
>  #define UNPERS_STRING(name, value) _UNPERS_TYPE(name, value, string)
>  
> -#include "scripting/eris/lua.hpp"
>  #include "scripting/luna_impl.h"
> +#include "third_party/eris/lua.hpp"
>  
>  /**
>   * Base Class. All Luna class must derive from this
> 
> === modified file 'src/scripting/luna_impl.cc'
> --- src/scripting/luna_impl.cc	2014-04-15 05:06:05 +0000
> +++ src/scripting/luna_impl.cc	2014-06-16 13:55:52 +0000
> @@ -21,7 +21,7 @@
>  
>  #include <string>
>  
> -#include "log.h"
> +#include "base/log.h"
>  #include "scripting/c_utils.h"
>  #include "scripting/luna.h"
>  
> 
> === modified file 'src/scripting/luna_impl.h'
> --- src/scripting/luna_impl.h	2014-04-15 05:06:05 +0000
> +++ src/scripting/luna_impl.h	2014-06-16 13:55:52 +0000
> @@ -27,7 +27,7 @@
>  #define LUNA_IMPL_H
>  
>  #include "scripting/c_utils.h"
> -#include "scripting/eris/lua.hpp"
> +#include "third_party/eris/lua.hpp"
>  
>  int luna_unpersisting_closure(lua_State * L);
>  
> 
> === modified file 'src/scripting/persistence.cc'
> --- src/scripting/persistence.cc	2014-05-11 07:38:01 +0000
> +++ src/scripting/persistence.cc	2014-06-16 13:55:52 +0000
> @@ -21,9 +21,9 @@
>  
>  #include <memory>
>  
> +#include "base/log.h"
>  #include "io/fileread.h"
>  #include "io/filewrite.h"
> -#include "log.h"
>  #include "scripting/c_utils.h"
>  #include "scripting/eris.h"
>  #include "scripting/luna_impl.h"
> 
> === modified file 'src/scripting/persistence.h'
> --- src/scripting/persistence.h	2014-05-11 07:38:01 +0000
> +++ src/scripting/persistence.h	2014-06-16 13:55:52 +0000
> @@ -22,7 +22,7 @@
>  
>  #include <string>
>  
> -#include "scripting/eris/lua.hpp"
> +#include "third_party/eris/lua.hpp"
>  
>  class FileRead;
>  class FileWrite;
> 
> === modified file 'src/scripting/scripting.cc'
> --- src/scripting/scripting.cc	2014-06-10 20:38:57 +0000
> +++ src/scripting/scripting.cc	2014-06-16 13:55:52 +0000
> @@ -29,8 +29,8 @@
>  #endif
>  #include <stdint.h>
>  
> +#include "base/log.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "scripting/c_utils.h"
>  #include "scripting/factory.h"
>  #include "scripting/lua_bases.h"
> 
> === modified file 'src/scripting/scripting.h'
> --- src/scripting/scripting.h	2014-05-11 12:29:55 +0000
> +++ src/scripting/scripting.h	2014-06-16 13:55:52 +0000
> @@ -26,8 +26,8 @@
>  
>  #include <stdint.h>
>  
> -#include "scripting/eris/lua.hpp"
>  #include "scripting/lua_errors.h"
> +#include "third_party/eris/lua.hpp"
>  
>  class FileRead;
>  class FileWrite;
> 
> === modified file 'src/scripting/test/CMakeLists.txt'
> --- src/scripting/test/CMakeLists.txt	2013-10-17 18:02:40 +0000
> +++ src/scripting/test/CMakeLists.txt	2014-06-16 13:55:52 +0000
> @@ -1,12 +1,8 @@
> -if (WL_UNIT_TESTS)
> -  file(GLOB WL_SCRIPTING_TEST_SRCS *.cc)
> -
> -  add_executable(test_widelands_scripting ${WL_SCRIPTING_TEST_SRCS} ${TEST_EXTRA_SOURCES})
> -
> -  target_link_libraries(test_widelands_scripting widelands_all)
> -  target_link_libraries(test_widelands_scripting eris)
> -  target_link_libraries(test_widelands_scripting ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
> -  target_link_libraries(test_widelands_scripting ${TEST_EXTRA_LIBS})
> -
> -  add_test(test_widelands_scripting test_widelands_scripting)
> -endif (WL_UNIT_TESTS)
> +wl_test(test_scripting
> + SRCS
> +   ./scripting_test_main.cc
> +   ./test_luna.cc
> + DEPENDS
> +   widelands_ball_of_mud
> +   third_party_eris
> +)
> 
> === modified file 'src/scripting/test/test_luna.cc'
> --- src/scripting/test/test_luna.cc	2014-02-22 18:04:02 +0000
> +++ src/scripting/test/test_luna.cc	2014-06-16 13:55:52 +0000
> @@ -22,9 +22,9 @@
>  
>  #include <boost/test/unit_test.hpp>
>  
> -#include "scripting/eris/lua.hpp"
>  #include "scripting/luna.h"
>  #include "scripting/luna_impl.h"
> +#include "third_party/eris/lua.hpp"
>  
>  #ifndef BEGIN_LUNA_PROPERTIES
>  #define BEGIN_LUNA_PROPERTIES(klass) \
> 
> === removed file 'src/singleton.h'
> --- src/singleton.h	2012-02-15 21:25:34 +0000
> +++ src/singleton.h	1970-01-01 00:00:00 +0000
> @@ -1,66 +0,0 @@
> -/*
> - * Copyright (C) 2002, 2008 by the Widelands Development Team
> - *
> - * This program is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License
> - * as published by the Free Software Foundation; either version 2
> - * of the License, or (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
> - *
> - */
> -
> -#ifndef SINGLETON_H
> -#define SINGLETON_H
> -
> -
> -#include <cassert>
> -
> -/* The original code seems to have come from Game Programming Gems I, P. 38
> - * but the current version probably doesn't really resemble it any more.
> - */
> -
> -/// Singleton class, to be used in
> -///
> -/// class SomeClass : public Singleton<SomeClass> {
> -///   etc.
> -/// };
> -///
> -/// The singleton must be explicitly instantiated using
> -///  new SomeClass;
> -/// and explicitly deleted using
> -///  delete SomeClass::get_ptsingleton();
> -///
> -/// \note There is a weakness here because the implementation doesn't
> -/// enforce that T equals the derived class. Unfortunately, using dynamic_cast
> -/// (or any other kind of RTTI) in the constructor doesn't work.
> -template <typename T> class Singleton {
> -	static T * ms;
> -
> -protected:
> -	Singleton() {
> -		assert(!ms);
> -		ms = static_cast<T *>(this);
> -	}
> -
> -	~Singleton() {
> -		assert(ms);
> -		ms = 0;
> -	}
> -
> -public:
> -	static T & get_singleton  () {assert(ms); return *ms;}
> -	static T * get_ptsingleton() {assert(ms); return  ms;}
> -};
> -
> -template <typename T> T * Singleton <T>::ms = 0;
> -
> -
> -#endif
> 
> === added file 'src/sound/CMakeLists.txt'
> --- src/sound/CMakeLists.txt	1970-01-01 00:00:00 +0000
> +++ src/sound/CMakeLists.txt	2014-06-16 13:55:52 +0000
> @@ -0,0 +1,15 @@
> +wl_library(sound
> +  SRCS
> +    ./fxset.cc
> +    ./fxset.h
> +    ./songset.cc
> +    ./songset.h
> +    #TODO: Has dependencies on graphic, logic, and wui... and various things in src root
> +    ./sound_handler.cc
> +    ./sound_handler.h
> +  USES_BOOST_REGEX
> +  DEPENDS
> +    base_log
> +    io_filesystem
> +    profile
> +)
> 
> === modified file 'src/sound/songset.cc'
> --- src/sound/songset.cc	2014-05-10 17:07:11 +0000
> +++ src/sound/songset.cc	2014-06-16 13:55:52 +0000
> @@ -21,9 +21,9 @@
>  
>  #include <utility>
>  
> +#include "base/log.h"
>  #include "io/fileread.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "sound/sound_handler.h"
>  
>  namespace {
> 
> === modified file 'src/sound/sound_handler.cc'
> --- src/sound/sound_handler.cc	2014-04-16 14:10:43 +0000
> +++ src/sound/sound_handler.cc	2014-06-16 13:55:52 +0000
> @@ -28,12 +28,12 @@
>  #include <windows.h>
>  #endif
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
>  #include "graphic/graphic.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "io/fileread.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "logic/map.h"
>  #include "profile/profile.h"
> 
> === added directory 'src/third_party'
> === added file 'src/third_party/CMakeLists.txt'
> --- src/third_party/CMakeLists.txt	1970-01-01 00:00:00 +0000
> +++ src/third_party/CMakeLists.txt	2014-06-16 13:55:52 +0000
> @@ -0,0 +1,73 @@
> +wl_library(third_party_minizip
> +  THIRD_PARTY
> +  SRCS
> +    minizip/unzip.cc
> +  USES_ZLIB
> +)
> +
> +wl_library(third_party_eris
> +  THIRD_PARTY
> +  C_LIBRARY
> +  SRCS
> +    eris/eris.c
> +    eris/eris.h
> +    eris/lapi.c
> +    eris/lapi.h
> +    eris/lauxlib.c
> +    eris/lauxlib.h
> +    eris/lbaselib.c
> +    eris/lbitlib.c
> +    eris/lcode.c
> +    eris/lcode.h
> +    eris/lcorolib.c
> +    eris/lctype.c
> +    eris/lctype.h
> +    eris/ldblib.c
> +    eris/ldebug.c
> +    eris/ldebug.h
> +    eris/ldo.c
> +    eris/ldo.h
> +    eris/ldump.c
> +    eris/lfunc.c
> +    eris/lfunc.h
> +    eris/lgc.c
> +    eris/lgc.h
> +    eris/linit.c
> +    eris/liolib.c
> +    eris/llex.c
> +    eris/llex.h
> +    eris/llimits.h
> +    eris/lmathlib.c
> +    eris/lmem.c
> +    eris/lmem.h
> +    eris/loadlib.c
> +    eris/lobject.c
> +    eris/lobject.h
> +    eris/lopcodes.c
> +    eris/lopcodes.h
> +    eris/loslib.c
> +    eris/lparser.c
> +    eris/lparser.h
> +    eris/lstate.c
> +    eris/lstate.h
> +    eris/lstring.c
> +    eris/lstring.h
> +    eris/lstrlib.c
> +    eris/ltable.c
> +    eris/ltable.h
> +    eris/ltablib.c
> +    eris/ltm.c
> +    eris/ltm.h
> +    eris/lua.c
> +    eris/lua.h
> +    eris/lua.hpp
> +    eris/luac.c
> +    eris/luaconf.h
> +    eris/lualib.h
> +    eris/lundump.c
> +    eris/lundump.h
> +    eris/lvm.c
> +    eris/lvm.h
> +    eris/lzio.c
> +    eris/lzio.h
> +)
> 
> === added file 'src/third_party/README'
> --- src/third_party/README	1970-01-01 00:00:00 +0000
> +++ src/third_party/README	2014-06-16 13:55:52 +0000
> @@ -0,0 +1,2 @@
> +This contains third party libraries that are uncommon and are therefore shipped
> +with the Widelands source code for transparent compilation.
> 
> === renamed directory 'src/scripting/eris' => 'src/third_party/eris'
> === renamed directory 'src/minizip' => 'src/third_party/minizip'
> === modified file 'src/third_party/minizip/README.txt'
> --- src/minizip/README.txt	2012-04-07 15:12:06 +0000
> +++ src/third_party/minizip/README.txt	2014-06-16 13:55:52 +0000
> @@ -1,5 +1,2 @@
> -The files in this directory are either original or derived sources from zlib's minizip examples.
> -
> -The sources are only included in Widelands if you don't have Minizip installed.
> -Please install your distribution's minizip library or urge your distribution maintainer 
> -to include the minizip library in your package repository. Thank you.
> +The files in this directory are either original or derived sources from zlib's
> +minizip examples.
> 
> === modified file 'src/third_party/minizip/unzip.cc'
> --- src/minizip/unzip.cc	2014-02-22 18:04:02 +0000
> +++ src/third_party/minizip/unzip.cc	2014-06-16 13:55:52 +0000
> @@ -1,10 +1,3 @@
> -/* Don't want to modify the minizip/zlib sources, so lets silence the warnings */
> -#include "compile_diagnostics.h"
> -GCC_DIAG_OFF("-Wold-style-cast")
> -GCC_DIAG_OFF("-Wswitch-default")
> -GCC_DIAG_OFF("-Wunused-macros")
> -CLANG_DIAG_OFF("-Wunused-macros")
> -
>  /*
>  ================================================================================
>  
> 
> === modified file 'src/ui_basic/box.cc'
> --- src/ui_basic/box.cc	2014-02-22 18:04:02 +0000
> +++ src/ui_basic/box.cc	2014-06-16 13:55:52 +0000
> @@ -23,9 +23,9 @@
>  
>  #include <boost/bind.hpp>
>  
> +#include "base/wexception.h"
>  #include "graphic/graphic.h"
>  #include "ui_basic/scrollbar.h"
> -#include "wexception.h"
>  
>  namespace UI {
>  /**
> 
> === modified file 'src/ui_basic/button.cc'
> --- src/ui_basic/button.cc	2013-07-26 20:19:36 +0000
> +++ src/ui_basic/button.cc	2014-06-16 13:55:52 +0000
> @@ -19,12 +19,12 @@
>  
>  #include "ui_basic/button.h"
>  
> +#include "base/log.h"
>  #include "graphic/font.h"
>  #include "graphic/font_handler.h"
>  #include "graphic/image.h"
>  #include "graphic/image_transformations.h"
>  #include "graphic/rendertarget.h"
> -#include "log.h"
>  #include "ui_basic/mouse_constants.h"
>  #include "wlapplication.h"
>  
> 
> === modified file 'src/ui_basic/editbox.h'
> --- src/ui_basic/editbox.h	2014-06-10 20:42:45 +0000
> +++ src/ui_basic/editbox.h	2014-06-16 13:55:52 +0000
> @@ -25,7 +25,7 @@
>  #include <SDL_keyboard.h>
>  #include <boost/signals2.hpp>
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  #include "ui_basic/button.h"
>  #include "graphic/graphic.h"
>  
> 
> === modified file 'src/ui_basic/helpwindow.cc'
> --- src/ui_basic/helpwindow.cc	2014-06-10 20:38:57 +0000
> +++ src/ui_basic/helpwindow.cc	2014-06-16 13:55:52 +0000
> @@ -23,13 +23,13 @@
>  
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
>  #include "constants.h"
>  #include "graphic/font.h"
>  #include "graphic/font_handler.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "scripting/lua_table.h"
>  #include "scripting/scripting.h"
>  #include "ui_basic/button.h"
> 
> === modified file 'src/ui_basic/helpwindow.h'
> --- src/ui_basic/helpwindow.h	2014-04-06 11:58:13 +0000
> +++ src/ui_basic/helpwindow.h	2014-06-16 13:55:52 +0000
> @@ -22,7 +22,7 @@
>  
>  #include <memory>
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  #include "ui_basic/multilinetextarea.h"
>  #include "ui_basic/unique_window.h"
>  #include "ui_basic/window.h"
> 
> === modified file 'src/ui_basic/icongrid.cc'
> --- src/ui_basic/icongrid.cc	2014-02-22 18:04:02 +0000
> +++ src/ui_basic/icongrid.cc	2014-06-16 13:55:52 +0000
> @@ -19,10 +19,10 @@
>  
>  #include "ui_basic/icongrid.h"
>  
> +#include "base/log.h"
>  #include "constants.h"
>  #include "graphic/font_handler.h"
>  #include "graphic/rendertarget.h"
> -#include "log.h"
>  #include "ui_basic/button.h"
>  #include "ui_basic/mouse_constants.h"
>  
> 
> === modified file 'src/ui_basic/listselect.cc'
> --- src/ui_basic/listselect.cc	2013-09-23 18:47:02 +0000
> +++ src/ui_basic/listselect.cc	2014-06-16 13:55:52 +0000
> @@ -23,13 +23,13 @@
>  
>  #include <boost/bind.hpp>
>  
> +#include "base/log.h"
>  #include "constants.h"
>  #include "container_iterate.h"
>  #include "graphic/font.h"
>  #include "graphic/font_handler.h"
>  #include "graphic/graphic.h"
>  #include "graphic/rendertarget.h"
> -#include "log.h"
>  #include "wlapplication.h"
>  
>  namespace UI {
> 
> === modified file 'src/ui_basic/listselect.h'
> --- src/ui_basic/listselect.h	2014-02-22 18:04:02 +0000
> +++ src/ui_basic/listselect.h	2014-06-16 13:55:52 +0000
> @@ -26,7 +26,7 @@
>  
>  #include <boost/signals2.hpp>
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  #include "ui_basic/panel.h"
>  #include "rgbcolor.h"
>  #include "ui_basic/scrollbar.h"
> 
> === modified file 'src/ui_basic/messagebox.cc'
> --- src/ui_basic/messagebox.cc	2013-10-18 11:23:26 +0000
> +++ src/ui_basic/messagebox.cc	2014-06-16 13:55:52 +0000
> @@ -19,10 +19,10 @@
>  
>  #include "ui_basic/messagebox.h"
>  
> +#include "base/i18n.h"
>  #include "constants.h"
>  #include "graphic/font_handler.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "ui_basic/button.h"
>  #include "ui_basic/multilinetextarea.h"
>  #include "ui_basic/window.h"
> 
> === modified file 'src/ui_basic/messagebox.h'
> --- src/ui_basic/messagebox.h	2014-02-22 18:04:02 +0000
> +++ src/ui_basic/messagebox.h	2014-06-16 13:55:52 +0000
> @@ -20,9 +20,11 @@
>  #ifndef UI_MESSAGEBOX_H
>  #define UI_MESSAGEBOX_H
>  
> +#include <memory>
> +
>  #include <boost/signals2.hpp>
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  #include "ui_basic/window.h"
>  
>  namespace UI {
> 
> === modified file 'src/ui_basic/multilinetextarea.h'
> --- src/ui_basic/multilinetextarea.h	2014-02-22 18:04:02 +0000
> +++ src/ui_basic/multilinetextarea.h	2014-06-16 13:55:52 +0000
> @@ -20,7 +20,9 @@
>  #ifndef UI_MULTILINE_TEXTAREA_H
>  #define UI_MULTILINE_TEXTAREA_H
>  
> -#include "align.h"
> +#include <memory>
> +
> +#include "graphic/align.h"
>  #include "ui_basic/panel.h"
>  #include "rgbcolor.h"
>  #include "ui_basic/scrollbar.h"
> 
> === modified file 'src/ui_basic/panel.cc'
> --- src/ui_basic/panel.cc	2014-04-16 11:19:14 +0000
> +++ src/ui_basic/panel.cc	2014-06-16 13:55:52 +0000
> @@ -19,6 +19,7 @@
>  
>  #include "ui_basic/panel.h"
>  
> +#include "base/log.h"
>  #include "constants.h"
>  #include "graphic/font_handler.h"
>  #include "graphic/font_handler1.h"
> @@ -27,7 +28,6 @@
>  #include "graphic/surface.h"
>  #include "graphic/surface_cache.h"
>  #include "helper.h"
> -#include "log.h"
>  #include "profile/profile.h"
>  #include "sound/sound_handler.h"
>  #include "text_layout.h"
> 
> === modified file 'src/ui_basic/progresswindow.cc'
> --- src/ui_basic/progresswindow.cc	2014-03-25 08:22:48 +0000
> +++ src/ui_basic/progresswindow.cc	2014-06-16 13:55:52 +0000
> @@ -23,6 +23,7 @@
>  #include <sys/time.h>
>  #endif
>  
> +#include "base/i18n.h"
>  #include "constants.h"
>  #include "container_iterate.h"
>  #include "graphic/font.h"
> @@ -30,7 +31,6 @@
>  #include "graphic/graphic.h"
>  #include "graphic/image_transformations.h"
>  #include "graphic/rendertarget.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
>  
>  #define PROGRESS_FONT_COLOR_FG        RGBColor(128, 128, 255)
> 
> === modified file 'src/ui_basic/progresswindow.h'
> --- src/ui_basic/progresswindow.h	2013-07-26 19:16:51 +0000
> +++ src/ui_basic/progresswindow.h	2014-06-16 13:55:52 +0000
> @@ -24,8 +24,8 @@
>  #include <string>
>  #include <vector>
>  
> +#include "graphic/rect.h"
>  #include "point.h"
> -#include "rect.h"
>  
>  class Image;
>  class RenderTarget;
> 
> === modified file 'src/ui_basic/scrollbar.h'
> --- src/ui_basic/scrollbar.h	2014-02-22 18:04:02 +0000
> +++ src/ui_basic/scrollbar.h	2014-06-16 13:55:52 +0000
> @@ -22,8 +22,8 @@
>  
>  #include <boost/signals2.hpp>
>  
> +#include "graphic/rect.h"
>  #include "ui_basic/panel.h"
> -#include "rect.h"
>  
>  namespace UI {
>  /**
> 
> === modified file 'src/ui_basic/spinbox.cc'
> --- src/ui_basic/spinbox.cc	2014-02-22 18:04:02 +0000
> +++ src/ui_basic/spinbox.cc	2014-06-16 13:55:52 +0000
> @@ -21,11 +21,11 @@
>  
>  #include <vector>
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "container_iterate.h"
> -#include "i18n.h"
>  #include "ui_basic/button.h"
>  #include "ui_basic/textarea.h"
> -#include "wexception.h"
>  
>  namespace UI {
>  
> 
> === modified file 'src/ui_basic/spinbox.h'
> --- src/ui_basic/spinbox.h	2013-07-26 20:19:36 +0000
> +++ src/ui_basic/spinbox.h	2014-06-16 13:55:52 +0000
> @@ -22,7 +22,7 @@
>  
>  #include <cstring>
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  #include "ui_basic/button.h"
>  #include "graphic/graphic.h"
>  
> 
> === modified file 'src/ui_basic/table.h'
> --- src/ui_basic/table.h	2014-04-06 17:14:28 +0000
> +++ src/ui_basic/table.h	2014-06-16 13:55:52 +0000
> @@ -27,7 +27,7 @@
>  #include <boost/function.hpp>
>  #include <boost/signals2.hpp>
>  
> -#include "align.h"
> +#include "graphic/align.h"
>  #include "ui_basic/panel.h"
>  #include "rgbcolor.h"
>  
> 
> === modified file 'src/ui_basic/textarea.h'
> --- src/ui_basic/textarea.h	2014-02-22 18:04:02 +0000
> +++ src/ui_basic/textarea.h	2014-06-16 13:55:52 +0000
> @@ -20,8 +20,8 @@
>  #ifndef UI_TEXTAREA_H
>  #define UI_TEXTAREA_H
>  
> -#include "align.h"
>  #include "constants.h"
> +#include "graphic/align.h"
>  #include "graphic/font.h"
>  #include "ui_basic/panel.h"
>  
> 
> === modified file 'src/ui_basic/window.cc'
> --- src/ui_basic/window.cc	2014-02-22 18:04:02 +0000
> +++ src/ui_basic/window.cc	2014-06-16 13:55:52 +0000
> @@ -21,12 +21,12 @@
>  
>  #include <SDL_keysym.h>
>  
> +#include "base/log.h"
>  #include "constants.h"
>  #include "graphic/font.h"
>  #include "graphic/font_handler1.h"
>  #include "graphic/graphic.h"
>  #include "graphic/rendertarget.h"
> -#include "log.h"
>  #include "text_layout.h"
>  #include "wlapplication.h"
>  
> 
> === modified file 'src/ui_fsmenu/base.cc'
> --- src/ui_fsmenu/base.cc	2014-02-22 18:04:02 +0000
> +++ src/ui_fsmenu/base.cc	2014-06-16 13:55:52 +0000
> @@ -21,15 +21,15 @@
>  
>  #include <cstdio>
>  
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "constants.h"
>  #include "graphic/font.h"
>  #include "graphic/graphic.h"
>  #include "graphic/image_transformations.h"
>  #include "graphic/rendertarget.h"
>  #include "io/filesystem/filesystem.h"
> -#include "log.h"
>  #include "profile/profile.h"
> -#include "wexception.h"
>  #include "wlapplication.h"
>  
>  /*
> 
> === modified file 'src/ui_fsmenu/campaign_select.cc'
> --- src/ui_fsmenu/campaign_select.cc	2014-06-10 20:38:57 +0000
> +++ src/ui_fsmenu/campaign_select.cc	2014-06-16 13:55:52 +0000
> @@ -21,13 +21,13 @@
>  
>  #include <memory>
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "campvis.h"
>  #include "constants.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "map_io/widelands_map_loader.h"
>  #include "profile/profile.h"
> -#include "wexception.h"
>  
>  
>  /*
> 
> === modified file 'src/ui_fsmenu/editor.cc'
> --- src/ui_fsmenu/editor.cc	2013-07-31 16:48:47 +0000
> +++ src/ui_fsmenu/editor.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "ui_fsmenu/editor.h"
>  
> +#include "base/i18n.h"
>  #include "constants.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  
>  Fullscreen_Menu_Editor::Fullscreen_Menu_Editor() :
>  	Fullscreen_Menu_Base("singleplmenu.jpg"),
> 
> === modified file 'src/ui_fsmenu/editor_mapselect.cc'
> --- src/ui_fsmenu/editor_mapselect.cc	2014-06-10 20:38:57 +0000
> +++ src/ui_fsmenu/editor_mapselect.cc	2014-06-16 13:55:52 +0000
> @@ -24,16 +24,16 @@
>  
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/map.h"
>  #include "map_io/widelands_map_loader.h"
>  #include "profile/profile.h"
>  #include "s2map.h"
> -#include "wexception.h"
>  
>  using Widelands::WL_Map_Loader;
>  
> 
> === modified file 'src/ui_fsmenu/fileview.cc'
> --- src/ui_fsmenu/fileview.cc	2014-03-25 07:39:28 +0000
> +++ src/ui_fsmenu/fileview.cc	2014-06-16 13:55:52 +0000
> @@ -19,11 +19,13 @@
>  
>  #include "ui_fsmenu/fileview.h"
>  
> +#include <memory>
> +
>  #include <boost/algorithm/string/predicate.hpp>
>  
> +#include "base/i18n.h"
>  #include "constants.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "io/filesystem/filesystem.h"
>  #include "profile/profile.h"
>  #include "scripting/lua_table.h"
> 
> === modified file 'src/ui_fsmenu/internet_lobby.cc'
> --- src/ui_fsmenu/internet_lobby.cc	2014-04-06 16:01:43 +0000
> +++ src/ui_fsmenu/internet_lobby.cc	2014-06-16 13:55:52 +0000
> @@ -22,11 +22,11 @@
>  #include <boost/bind.hpp>
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
>  #include "compile_diagnostics.h"
>  #include "constants.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
> -#include "log.h"
>  #include "network/internet_gaming.h"
>  #include "network/netclient.h"
>  #include "network/nethost.h"
> 
> === modified file 'src/ui_fsmenu/intro.cc'
> --- src/ui_fsmenu/intro.cc	2013-07-26 20:19:36 +0000
> +++ src/ui_fsmenu/intro.cc	2014-06-16 13:55:52 +0000
> @@ -19,7 +19,7 @@
>  
>  #include "ui_fsmenu/intro.h"
>  
> -#include "i18n.h"
> +#include "base/i18n.h"
>  
>  
>  Fullscreen_Menu_Intro::Fullscreen_Menu_Intro()
> 
> === modified file 'src/ui_fsmenu/launchMPG.cc'
> --- src/ui_fsmenu/launchMPG.cc	2014-06-10 20:38:57 +0000
> +++ src/ui_fsmenu/launchMPG.cc	2014-06-16 13:55:52 +0000
> @@ -24,10 +24,11 @@
>  #include <boost/format.hpp>
>  #include <libintl.h>
>  
> +#include "base/i18n.h"
> +#include "base/warning.h"
>  #include "gamecontroller.h"
>  #include "gamesettings.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "logic/game.h"
>  #include "logic/instances.h"
> @@ -40,7 +41,6 @@
>  #include "ui_basic/messagebox.h"
>  #include "ui_fsmenu/loadgame.h"
>  #include "ui_fsmenu/mapselect.h"
> -#include "warning.h"
>  #include "wui/gamechatpanel.h"
>  #include "wui/multiplayersetupgroup.h"
>  
> 
> === modified file 'src/ui_fsmenu/launchSPG.cc'
> --- src/ui_fsmenu/launchSPG.cc	2014-03-29 16:04:47 +0000
> +++ src/ui_fsmenu/launchSPG.cc	2014-06-16 13:55:52 +0000
> @@ -19,13 +19,16 @@
>  
>  #include "ui_fsmenu/launchSPG.h"
>  
> +#include <memory>
> +
>  #include <boost/algorithm/string/predicate.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/warning.h"
>  #include "gamecontroller.h"
>  #include "gamesettings.h"
>  #include "graphic/graphic.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "logic/game.h"
>  #include "logic/instances.h"
> @@ -37,7 +40,6 @@
>  #include "scripting/scripting.h"
>  #include "ui_fsmenu/loadgame.h"
>  #include "ui_fsmenu/mapselect.h"
> -#include "warning.h"
>  #include "wui/playerdescrgroup.h"
>  
>  Fullscreen_Menu_LaunchSPG::Fullscreen_Menu_LaunchSPG
> 
> === modified file 'src/ui_fsmenu/loadgame.cc'
> --- src/ui_fsmenu/loadgame.cc	2014-06-10 20:38:57 +0000
> +++ src/ui_fsmenu/loadgame.cc	2014-06-16 13:55:52 +0000
> @@ -24,6 +24,8 @@
>  
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
>  #include "game_io/game_loader.h"
>  #include "game_io/game_preload_data_packet.h"
>  #include "gamecontroller.h"
> @@ -33,9 +35,7 @@
>  #include "graphic/image_transformations.h"
>  #include "graphic/in_memory_image.h"
>  #include "graphic/surface.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "timestring.h"
>  #include "ui_basic/icon.h"
> 
> === modified file 'src/ui_fsmenu/loadreplay.cc'
> --- src/ui_fsmenu/loadreplay.cc	2014-03-26 07:24:34 +0000
> +++ src/ui_fsmenu/loadreplay.cc	2014-06-16 13:55:52 +0000
> @@ -22,13 +22,13 @@
>  #include <boost/algorithm/string/predicate.hpp>
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
>  #include "game_io/game_loader.h"
>  #include "game_io/game_preload_data_packet.h"
>  #include "graphic/graphic.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "logic/replay.h"
>  #include "timestring.h"
> 
> === modified file 'src/ui_fsmenu/main.cc'
> --- src/ui_fsmenu/main.cc	2014-02-24 16:42:51 +0000
> +++ src/ui_fsmenu/main.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "ui_fsmenu/main.h"
>  
> +#include "base/i18n.h"
>  #include "build_info.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  
>  Fullscreen_Menu_Main::Fullscreen_Menu_Main() :
>  	Fullscreen_Menu_Base("mainmenu.jpg"),
> 
> === modified file 'src/ui_fsmenu/mapselect.cc'
> --- src/ui_fsmenu/mapselect.cc	2014-06-10 20:38:57 +0000
> +++ src/ui_fsmenu/mapselect.cc	2014-06-16 13:55:52 +0000
> @@ -23,19 +23,19 @@
>  
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "gamecontroller.h"
>  #include "gamesettings.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "logic/editor_game_base.h"
>  #include "map_io/widelands_map_loader.h"
>  #include "profile/profile.h"
>  #include "s2map.h"
>  #include "ui_basic/box.h"
>  #include "ui_basic/checkbox.h"
> -#include "wexception.h"
>  
>  
>  using Widelands::WL_Map_Loader;
> 
> === modified file 'src/ui_fsmenu/multiplayer.cc'
> --- src/ui_fsmenu/multiplayer.cc	2013-07-26 20:19:36 +0000
> +++ src/ui_fsmenu/multiplayer.cc	2014-06-16 13:55:52 +0000
> @@ -19,8 +19,8 @@
>  
>  #include "ui_fsmenu/multiplayer.h"
>  
> +#include "base/i18n.h"
>  #include "constants.h"
> -#include "i18n.h"
>  #include "profile/profile.h"
>  #include "wui/login_box.h"
>  
> 
> === modified file 'src/ui_fsmenu/netsetup_lan.cc'
> --- src/ui_fsmenu/netsetup_lan.cc	2013-07-26 20:19:36 +0000
> +++ src/ui_fsmenu/netsetup_lan.cc	2014-06-16 13:55:52 +0000
> @@ -19,10 +19,10 @@
>  
>  #include "ui_fsmenu/netsetup_lan.h"
>  
> +#include "base/i18n.h"
>  #include "compile_diagnostics.h"
>  #include "constants.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "network/network.h"
>  #include "profile/profile.h"
>  
> @@ -265,4 +265,3 @@
>  		joingame.set_enabled(true);
>  	opengames.select(opengames.no_selection_index());
>  }
> -
> 
> === modified file 'src/ui_fsmenu/options.cc'
> --- src/ui_fsmenu/options.cc	2014-03-26 07:24:34 +0000
> +++ src/ui_fsmenu/options.cc	2014-06-16 13:55:52 +0000
> @@ -25,10 +25,10 @@
>  #include <boost/algorithm/string/predicate.hpp>
>  #include <libintl.h>
>  
> +#include "base/i18n.h"
>  #include "constants.h"
>  #include "graphic/graphic.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "profile/profile.h"
>  #include "save_handler.h"
> 
> === modified file 'src/ui_fsmenu/singleplayer.cc'
> --- src/ui_fsmenu/singleplayer.cc	2014-03-10 19:27:00 +0000
> +++ src/ui_fsmenu/singleplayer.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "ui_fsmenu/singleplayer.h"
>  
> +#include "base/i18n.h"
>  #include "constants.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  
>  Fullscreen_Menu_SinglePlayer::Fullscreen_Menu_SinglePlayer() :
>  Fullscreen_Menu_Base("singleplmenu.jpg"),
> 
> === modified file 'src/wlapplication.cc'
> --- src/wlapplication.cc	2014-04-16 11:19:14 +0000
> +++ src/wlapplication.cc	2014-06-16 13:55:52 +0000
> @@ -27,30 +27,33 @@
>  #include <ctime>
>  #include <fstream>
>  #include <iostream>
> +#include <memory>
>  #include <stdexcept>
>  #include <string>
>  
>  #include <boost/algorithm/string/predicate.hpp>
>  #include <boost/format.hpp>
> -#include <config.h>
>  #ifdef __APPLE__
>  #include <mach-o/dyld.h>
>  #endif
>  #include <sys/stat.h>
>  #include <sys/types.h>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/warning.h"
> +#include "base/wexception.h"
>  #include "build_info.h"
>  #include "computer_player.h"
> +#include "config.h"
>  #include "editor/editorinteractive.h"
>  #include "gamesettings.h"
>  #include "graphic/font_handler.h"
>  #include "graphic/font_handler1.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "io/dedicated_log.h"
>  #include "io/filesystem/disk_filesystem.h"
>  #include "io/filesystem/layered_filesystem.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "logic/game_data_error.h"
>  #include "logic/map.h"
> @@ -83,8 +86,6 @@
>  #include "ui_fsmenu/netsetup_lan.h"
>  #include "ui_fsmenu/options.h"
>  #include "ui_fsmenu/singleplayer.h"
> -#include "warning.h"
> -#include "wexception.h"
>  #include "wui/game_tips.h"
>  #include "wui/interactive_player.h"
>  #include "wui/interactive_spectator.h"
> 
> === modified file 'src/wui/building_statistics_menu.cc'
> --- src/wui/building_statistics_menu.cc	2014-04-21 09:19:14 +0000
> +++ src/wui/building_statistics_menu.cc	2014-06-16 13:55:52 +0000
> @@ -23,9 +23,9 @@
>  
>  #include <boost/bind.hpp>
>  
> +#include "base/i18n.h"
>  #include "graphic/graphic.h"
>  #include "graphic/rendertarget.h"
> -#include "i18n.h"
>  #include "logic/building.h"
>  #include "logic/player.h"
>  #include "logic/productionsite.h"
> 
> === modified file 'src/wui/buildingwindow.cc'
> --- src/wui/buildingwindow.cc	2014-05-27 11:01:15 +0000
> +++ src/wui/buildingwindow.cc	2014-06-16 13:55:52 +0000
> @@ -35,11 +35,11 @@
>  #include "logic/warehouse.h"
>  #include "ui_basic/helpwindow.h"
>  #include "ui_basic/tabpanel.h"
> -#include "unique_window_handler.h"
>  #include "upcast.h"
>  #include "wui/actionconfirm.h"
>  #include "wui/game_debug_ui.h"
>  #include "wui/interactive_player.h"
> +#include "wui/unique_window_handler.h"
>  #include "wui/waresqueuedisplay.h"
>  
>  static const char * pic_bulldoze           = "pics/menu_bld_bulldoze.png";
> 
> === modified file 'src/wui/chatoverlay.cc'
> --- src/wui/chatoverlay.cc	2014-02-22 18:04:02 +0000
> +++ src/wui/chatoverlay.cc	2014-06-16 13:55:52 +0000
> @@ -22,8 +22,8 @@
>  #include "chat.h"
>  #include "graphic/font_handler1.h"
>  #include "graphic/rendertarget.h"
> -#include "logmessage.h"
>  #include "profile/profile.h"
> +#include "wui/logmessage.h"
>  
>  /**
>   * Time, in seconds, that chat messages are shown in the overlay.
> 
> === renamed file 'src/debugconsole.cc' => 'src/wui/debugconsole.cc'
> --- src/debugconsole.cc	2014-02-22 18:04:02 +0000
> +++ src/wui/debugconsole.cc	2014-06-16 13:55:52 +0000
> @@ -17,14 +17,14 @@
>   *
>   */
>  
> -#include "debugconsole.h"
> +#include "wui/debugconsole.h"
>  
>  #include <map>
>  
>  #include <boost/bind.hpp>
>  
> +#include "base/log.h"
>  #include "chat.h"
> -#include "log.h"
>  
>  namespace DebugConsole {
>  
> 
> === renamed file 'src/debugconsole.h' => 'src/wui/debugconsole.h'
> === modified file 'src/wui/encyclopedia_window.cc'
> --- src/wui/encyclopedia_window.cc	2014-04-21 09:19:14 +0000
> +++ src/wui/encyclopedia_window.cc	2014-06-16 13:55:52 +0000
> @@ -27,10 +27,10 @@
>  #include <typeinfo>
>  #include <vector>
>  
> +#include "base/i18n.h"
>  #include "economy/economy.h"
>  #include "graphic/graphic.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "logic/building.h"
>  #include "logic/player.h"
>  #include "logic/production_program.h"
> 
> === modified file 'src/wui/fieldaction.cc'
> --- src/wui/fieldaction.cc	2014-05-27 11:01:15 +0000
> +++ src/wui/fieldaction.cc	2014-06-16 13:55:52 +0000
> @@ -19,12 +19,12 @@
>  
>  #include "wui/fieldaction.h"
>  
> +#include "base/i18n.h"
>  #include "economy/economy.h"
>  #include "economy/flag.h"
>  #include "economy/road.h"
>  #include "graphic/graphic.h"
>  #include "graphic/image_transformations.h"
> -#include "i18n.h"
>  #include "logic/attackable.h"
>  #include "logic/cmd_queue.h"
>  #include "logic/maphollowregion.h"
> 
> === modified file 'src/wui/game_chat_menu.cc'
> --- src/wui/game_chat_menu.cc	2014-04-06 17:14:28 +0000
> +++ src/wui/game_chat_menu.cc	2014-06-16 13:55:52 +0000
> @@ -19,7 +19,7 @@
>  
>  #include "wui/game_chat_menu.h"
>  
> -#include "i18n.h"
> +#include "base/i18n.h"
>  
>  /*
>  ==============================================================================
> 
> === modified file 'src/wui/game_debug_ui.cc'
> --- src/wui/game_debug_ui.cc	2014-03-16 20:55:15 +0000
> +++ src/wui/game_debug_ui.cc	2014-06-16 13:55:52 +0000
> @@ -22,8 +22,8 @@
>  
>  #include <cstdio>
>  
> +#include "base/i18n.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/bob.h"
>  #include "logic/building.h"
>  #include "logic/field.h"
> 
> === modified file 'src/wui/game_main_menu.cc'
> --- src/wui/game_main_menu.cc	2014-04-14 06:17:25 +0000
> +++ src/wui/game_main_menu.cc	2014-06-16 13:55:52 +0000
> @@ -21,8 +21,8 @@
>  
>  #include <boost/bind.hpp>
>  
> +#include "base/i18n.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "ui_basic/unique_window.h"
>  #include "wui/building_statistics_menu.h"
>  #include "wui/general_statistics_menu.h"
> 
> === modified file 'src/wui/game_main_menu_save_game.cc'
> --- src/wui/game_main_menu_save_game.cc	2014-03-25 08:22:48 +0000
> +++ src/wui/game_main_menu_save_game.cc	2014-06-16 13:55:52 +0000
> @@ -22,12 +22,12 @@
>  #include <boost/format.hpp>
>  #include <libintl.h>
>  
> +#include "base/i18n.h"
>  #include "constants.h"
>  #include "game_io/game_loader.h"
>  #include "game_io/game_preload_data_packet.h"
>  #include "game_io/game_saver.h"
>  #include "gamecontroller.h"
> -#include "i18n.h"
>  #include "io/filesystem/filesystem.h"
>  #include "io/filesystem/layered_filesystem.h"
>  #include "logic/game.h"
> 
> === modified file 'src/wui/game_main_menu_save_game.h'
> --- src/wui/game_main_menu_save_game.h	2014-02-22 18:04:02 +0000
> +++ src/wui/game_main_menu_save_game.h	2014-06-16 13:55:52 +0000
> @@ -20,7 +20,7 @@
>  #ifndef GAME_MAIN_MENU_SAVE_GAME_H
>  #define GAME_MAIN_MENU_SAVE_GAME_H
>  
> -#include "i18n.h"
> +#include "base/i18n.h"
>  #include "ref_cast.h"
>  #include "ui_basic/button.h"
>  #include "ui_basic/editbox.h"
> 
> === modified file 'src/wui/game_message_menu.h'
> --- src/wui/game_message_menu.h	2014-04-20 21:07:45 +0000
> +++ src/wui/game_message_menu.h	2014-06-16 13:55:52 +0000
> @@ -20,8 +20,8 @@
>  #ifndef GAME_MESSAGE_MENU_H
>  #define GAME_MESSAGE_MENU_H
>  
> +#include "base/i18n.h"
>  #include "container_iterate.h"
> -#include "i18n.h"
>  #include "logic/message_queue.h"
>  #include "ref_cast.h"
>  #include "ui_basic/button.h"
> 
> === modified file 'src/wui/game_options_menu.cc'
> --- src/wui/game_options_menu.cc	2014-04-06 11:58:13 +0000
> +++ src/wui/game_options_menu.cc	2014-06-16 13:55:52 +0000
> @@ -24,8 +24,8 @@
>  #include <boost/lambda/construct.hpp>
>  #include <boost/type_traits.hpp>
>  
> +#include "base/i18n.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "sound/sound_handler.h"
>  #include "ui_fsmenu/fileview.h"
>  #include "wui/game_main_menu_save_game.h"
> 
> === modified file 'src/wui/game_options_sound_menu.cc'
> --- src/wui/game_options_sound_menu.cc	2013-07-26 20:19:36 +0000
> +++ src/wui/game_options_sound_menu.cc	2014-06-16 13:55:52 +0000
> @@ -18,8 +18,8 @@
>  
>  #include "wui/game_options_sound_menu.h"
>  
> +#include "base/i18n.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "sound/sound_handler.h"
>  
>  GameOptionsSoundMenu::GameOptionsSoundMenu
> 
> === modified file 'src/wui/game_tips.cc'
> --- src/wui/game_tips.cc	2014-02-22 18:04:02 +0000
> +++ src/wui/game_tips.cc	2014-06-16 13:55:52 +0000
> @@ -19,12 +19,12 @@
>  
>  #include "wui/game_tips.h"
>  
> +#include "base/i18n.h"
>  #include "constants.h"
>  #include "graphic/font.h"
>  #include "graphic/font_handler1.h"
>  #include "graphic/graphic.h"
>  #include "graphic/rendertarget.h"
> -#include "i18n.h"
>  #include "io/fileread.h"
>  #include "profile/profile.h"
>  #include "text_layout.h"
> 
> === modified file 'src/wui/general_statistics_menu.cc'
> --- src/wui/general_statistics_menu.cc	2014-03-24 21:47:08 +0000
> +++ src/wui/general_statistics_menu.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,11 @@
>  
>  #include "wui/general_statistics_menu.h"
>  
> +#include <memory>
> +
> +#include "base/i18n.h"
>  #include "graphic/graphic.h"
>  #include "graphic/rendertarget.h"
> -#include "i18n.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/game.h"
>  #include "logic/player.h"
> 
> === modified file 'src/wui/interactive_base.cc'
> --- src/wui/interactive_base.cc	2014-06-10 20:38:57 +0000
> +++ src/wui/interactive_base.cc	2014-06-16 13:55:52 +0000
> @@ -41,7 +41,6 @@
>  #include "profile/profile.h"
>  #include "scripting/scripting.h"
>  #include "text_layout.h"
> -#include "unique_window_handler.h"
>  #include "upcast.h"
>  #include "wlapplication.h"
>  #include "wui/game_chat_menu.h"
> @@ -52,6 +51,7 @@
>  #include "wui/minimap.h"
>  #include "wui/overlay_manager.h"
>  #include "wui/quicknavigation.h"
> +#include "wui/unique_window_handler.h"
>  
>  using boost::format;
>  using Widelands::Area;
> @@ -264,7 +264,10 @@
>  		case 1: wa_index = 5; break;
>  		case 2: wa_index = 3; break;
>  		case 3: wa_index = 0; break;
> -		default: assert(false); break;
> +		default:
> +		  wa_index = 0;
> +		  assert(false);
> +		  break;
>  	}
>  	Widelands::Map & map = m_egbase.map();
>  	OverlayManager & overlay_manager = map.overlay_manager();
> 
> === modified file 'src/wui/interactive_base.h'
> --- src/wui/interactive_base.h	2014-06-10 20:42:45 +0000
> +++ src/wui/interactive_base.h	2014-06-16 13:55:52 +0000
> @@ -24,12 +24,12 @@
>  
>  #include <SDL_keysym.h>
>  
> -#include "debugconsole.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/map.h"
>  #include "logic/notification.h"
> -#include "logmessage.h"
>  #include "wui/chatoverlay.h"
> +#include "wui/debugconsole.h"
> +#include "wui/logmessage.h"
>  #include "wui/mapview.h"
>  #include "wui/overlay_manager.h"
>  #include "ui_basic/box.h"
> 
> === modified file 'src/wui/interactive_player.cc'
> --- src/wui/interactive_player.cc	2014-05-27 11:01:15 +0000
> +++ src/wui/interactive_player.cc	2014-06-16 13:55:52 +0000
> @@ -27,12 +27,11 @@
>  #include <boost/type_traits.hpp>
>  #include <libintl.h>
>  
> -#include "debugconsole.h"
> +#include "base/i18n.h"
>  #include "economy/flag.h"
>  #include "game_io/game_loader.h"
>  #include "graphic/font_handler.h"
>  #include "helper.h"
> -#include "i18n.h"
>  #include "logic/building.h"
>  #include "logic/cmd_queue.h"
>  #include "logic/constructionsite.h"
> @@ -46,6 +45,7 @@
>  #include "ui_basic/unique_window.h"
>  #include "upcast.h"
>  #include "wui/building_statistics_menu.h"
> +#include "wui/debugconsole.h"
>  #include "wui/encyclopedia_window.h"
>  #include "wui/fieldaction.h"
>  #include "wui/game_chat_menu.h"
> 
> === modified file 'src/wui/interactive_spectator.cc'
> --- src/wui/interactive_spectator.cc	2014-05-27 11:01:15 +0000
> +++ src/wui/interactive_spectator.cc	2014-06-16 13:55:52 +0000
> @@ -19,10 +19,10 @@
>  
>  #include "wui/interactive_spectator.h"
>  
> +#include "base/i18n.h"
>  #include "chat.h"
>  #include "gamecontroller.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "ui_basic/editbox.h"
>  #include "ui_basic/multilinetextarea.h"
>  #include "ui_basic/textarea.h"
> 
> === modified file 'src/wui/login_box.cc'
> --- src/wui/login_box.cc	2013-10-18 11:23:26 +0000
> +++ src/wui/login_box.cc	2014-06-16 13:55:52 +0000
> @@ -19,7 +19,7 @@
>  
>  #include "wui/login_box.h"
>  
> -#include "i18n.h"
> +#include "base/i18n.h"
>  #include "profile/profile.h"
>  #include "ui_basic/button.h"
>  #include "ui_basic/messagebox.h"
> 
> === renamed file 'src/logmessage.h' => 'src/wui/logmessage.h'
> === modified file 'src/wui/minimap.cc'
> --- src/wui/minimap.cc	2013-10-13 10:05:51 +0000
> +++ src/wui/minimap.cc	2014-06-16 13:55:52 +0000
> @@ -21,12 +21,12 @@
>  
>  #include <memory>
>  
> +#include "base/i18n.h"
>  #include "graphic/graphic.h"
>  #include "graphic/in_memory_image.h"
>  #include "graphic/render/minimaprenderer.h"
>  #include "graphic/rendertarget.h"
>  #include "graphic/surface.h"
> -#include "i18n.h"
>  #include "logic/map.h"
>  #include "wui/interactive_player.h"
>  #include "wui/mapviewpixelconstants.h"
> 
> === modified file 'src/wui/multiplayersetupgroup.cc'
> --- src/wui/multiplayersetupgroup.cc	2014-03-03 20:50:30 +0000
> +++ src/wui/multiplayersetupgroup.cc	2014-06-16 13:55:52 +0000
> @@ -21,10 +21,11 @@
>  
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/log.h"
> +#include "base/wexception.h"
>  #include "gamesettings.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
> -#include "log.h"
>  #include "logic/game.h"
>  #include "logic/player.h"
>  #include "logic/tribe.h"
> @@ -34,7 +35,6 @@
>  #include "ui_basic/icon.h"
>  #include "ui_basic/scrollbar.h"
>  #include "ui_basic/textarea.h"
> -#include "wexception.h"
>  
>  struct MultiPlayerClientGroup : public UI::Box {
>  	MultiPlayerClientGroup
> 
> === modified file 'src/wui/multiplayersetupgroup.h'
> --- src/wui/multiplayersetupgroup.h	2013-07-21 08:07:18 +0000
> +++ src/wui/multiplayersetupgroup.h	2014-06-16 13:55:52 +0000
> @@ -21,6 +21,7 @@
>  #define MULTIPLAYERSETUPGROUP_H
>  
>  #include <map>
> +#include <memory>
>  #include <string>
>  
>  #include "constants.h"
> 
> === modified file 'src/wui/playerdescrgroup.cc'
> --- src/wui/playerdescrgroup.cc	2014-03-07 09:22:06 +0000
> +++ src/wui/playerdescrgroup.cc	2014-06-16 13:55:52 +0000
> @@ -21,17 +21,17 @@
>  
>  #include <boost/format.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "constants.h"
>  #include "gamesettings.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/player.h"
>  #include "logic/tribe.h"
>  #include "profile/profile.h"
>  #include "ui_basic/button.h"
>  #include "ui_basic/checkbox.h"
>  #include "ui_basic/textarea.h"
> -#include "wexception.h"
>  
>  
>  struct PlayerDescriptionGroupImpl {
> 
> === modified file 'src/wui/plot_area.cc'
> --- src/wui/plot_area.cc	2013-07-26 20:19:36 +0000
> +++ src/wui/plot_area.cc	2014-06-16 13:55:52 +0000
> @@ -25,12 +25,12 @@
>  #include <boost/format.hpp>
>  #include <boost/lexical_cast.hpp>
>  
> +#include "base/i18n.h"
>  #include "constants.h"
>  #include "graphic/font.h"
>  #include "graphic/font_handler1.h"
>  #include "graphic/graphic.h"
>  #include "graphic/rendertarget.h"
> -#include "i18n.h"
>  #include "text_layout.h"
>  #include "ui_basic/panel.h"
>  
> @@ -627,4 +627,3 @@
>  
>  	m_negative_plotdata[id].dataset   = data;
>  }
> -
> 
> === modified file 'src/wui/stock_menu.cc'
> --- src/wui/stock_menu.cc	2013-07-26 20:19:36 +0000
> +++ src/wui/stock_menu.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "wui/stock_menu.h"
>  
> +#include "base/i18n.h"
>  #include "economy/economy.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/player.h"
>  #include "logic/warehouse.h"
>  #include "ui_basic/tabpanel.h"
> 
> === renamed file 'src/unique_window_handler.cc' => 'src/wui/unique_window_handler.cc'
> --- src/unique_window_handler.cc	2014-04-06 11:58:13 +0000
> +++ src/wui/unique_window_handler.cc	2014-06-16 13:55:52 +0000
> @@ -17,7 +17,7 @@
>   *
>   */
>  
> -#include "unique_window_handler.h"
> +#include "wui/unique_window_handler.h"
>  
>  UI::UniqueWindow::Registry& UniqueWindowHandler::get_registry(const std::string& name) {
>  	return registries_[name];
> 
> === renamed file 'src/unique_window_handler.h' => 'src/wui/unique_window_handler.h'
> === modified file 'src/wui/ware_statistics_menu.cc'
> --- src/wui/ware_statistics_menu.cc	2014-04-21 09:19:14 +0000
> +++ src/wui/ware_statistics_menu.cc	2014-06-16 13:55:52 +0000
> @@ -19,9 +19,9 @@
>  
>  #include "wui/ware_statistics_menu.h"
>  
> +#include "base/i18n.h"
>  #include "graphic/graphic.h"
>  #include "graphic/rendertarget.h"
> -#include "i18n.h"
>  #include "logic/player.h"
>  #include "logic/tribe.h"
>  #include "logic/warelist.h"
> 
> === modified file 'src/wui/waresdisplay.cc'
> --- src/wui/waresdisplay.cc	2014-04-21 10:47:03 +0000
> +++ src/wui/waresdisplay.cc	2014-06-16 13:55:52 +0000
> @@ -23,18 +23,18 @@
>  
>  #include <boost/lexical_cast.hpp>
>  
> +#include "base/i18n.h"
> +#include "base/wexception.h"
>  #include "graphic/font.h"
>  #include "graphic/font_handler.h"
>  #include "graphic/font_handler1.h"
>  #include "graphic/graphic.h"
>  #include "graphic/rendertarget.h"
> -#include "i18n.h"
>  #include "logic/editor_game_base.h"
>  #include "logic/player.h"
>  #include "logic/tribe.h"
>  #include "logic/worker.h"
>  #include "text_layout.h"
> -#include "wexception.h"
>  
>  const int WARE_MENU_INFO_SIZE = 12;
>  
> 
> === modified file 'src/wui/watchwindow.cc'
> --- src/wui/watchwindow.cc	2014-03-03 20:50:30 +0000
> +++ src/wui/watchwindow.cc	2014-06-16 13:55:52 +0000
> @@ -21,8 +21,8 @@
>  
>  #include <vector>
>  
> +#include "base/i18n.h"
>  #include "graphic/graphic.h"
> -#include "i18n.h"
>  #include "logic/bob.h"
>  #include "logic/game.h"
>  #include "logic/map.h"
> 
> === removed file 'txts/locales'
> --- txts/locales	2013-10-09 17:40:17 +0000
> +++ txts/locales	1970-01-01 00:00:00 +0000
> @@ -1,54 +0,0 @@
> -[alternatives]
> -ar="ar,ar_AR,ar_AE,ar_BH,ar_DZ,ar_EG,ar_IN,ar_IQ,ar_JO,ar_KW,ar_LB,ar_LY,ar_MA,ar_OM,ar_QA,ar_SA,ar_SD,ar_SY,ar_TN,ar_YE"
> -ast="ast,ast_ES"
> -ca="ca,ca_ES,ca_ES@valencia,ca_FR,ca_IT"
> -cs="cs,cs_CZ"
> -da="da,da_DK"
> -de="de,de_DE,de_AT,de_CH,de_LI,de_LU,de_BE"
> -el="el,el_GR,el_CY"
> -en="en,en_US,en_GB,en_AU,en_CA,en_AG,en_BW,en_DK,en_HK,en_IE,en_IN,en_NG,en_NZ,en_PH,en_SG,en_ZA,en_ZW"
> -en_AU="en_AU,en,en_US,en_GB"
> -en_CA="en_CA,en,en_US,en_GB"
> -en_GB="en_GB,en,en_US"
> -eo="eo,eo_XX"
> -es="es,es_ES,es_MX,es_US"
> -et="et,et_EE"
> -eu="eu,eu_ES,eu_FR"
> -fa="fa,fa_IR"
> -fi="fi,fi_FI"
> -fr="fr,fr_FR,fr_CH,fr_BE,fr_CA,fr_LU"
> -gd="gd,gd_GB,gd_CA"
> -gl="ga,gl_ES"
> -he="he,he_IL"
> -hr="hr,hr_HR,hr_RS,hr_BA,hr_ME,hr_HU"
> -hu="hu,hu_HU"
> -ia="ia"
> -id="id,id_ID"
> -it="it,it_IT,it_CH"
> -ja="ja,ja_JP"
> -jv="jv,jv_ID,jv_MY,jv_SR,jv_NC"
> -ka="ka,ka_GE"
> -ko="ko,ko_KR"
> -la="la,la_AU,la_VA"
> -mr="mr,mr_IN"
> -ms="ms,ms_MY"
> -my="my,my_MM"
> -nb="nb,nb_NO"
> -nl="nl,nl_NL,nl_BE,nl_AW"
> -nn="nn,nn_NO"
> -oc="oc,oc_FR"
> -pl="pl,pl_PL"
> -pt="pt,pt_PT,pt_BR"
> -pt_BR="pt_BR,pt,pt_PT"
> -ru="ru,ru_RU,ru_UA"
> -si="si,si_LK"
> -sk="sk,sk_SK"
> -sl="sl,sl_SI"
> -sr="sr,sr_RS,sr_ME"
> -sv="sv,sv_FI,sv_SE"
> -tr="tr,tr_TR,tr_CY"
> -uk="uk,uk_UA"
> -vi="vi,vi_VN"
> -zh="zh,zh_CN,zh_TW,zh_HK,zh_MO"
> -zh_CN="zh_CN,zh,zh_TW,zh_HK,zh_MO"
> -zh_TW="zh_TW,zh_HK,zh_MO,zh,zh_CN"
> 
> === removed directory 'utils/win32/msvc'
> === removed file 'utils/win32/msvc/Widelands-msvc.iss.cmake'
> --- utils/win32/msvc/Widelands-msvc.iss.cmake	2014-03-04 18:56:41 +0000
> +++ utils/win32/msvc/Widelands-msvc.iss.cmake	1970-01-01 00:00:00 +0000
> @@ -1,163 +0,0 @@
> -; ===================================== ;
> -; Widelands-Inno-Setup-Script           ;
> -; ===================================== ;
> -;                                       ;
> -; You will need a current version of    ;
> -; the "Inno Setup Compiler" and the     ;
> -; "Inno Setup QuickStart Pack" to com-  ;
> -; pile a Setup with use of this script. ;
> -;                                       ;
> -; For more information visit:           ;
> -; http://www.innosetup.com              ;
> -;                                       ;
> -; ===================================== ;
> -
> -
> -; CHANGES BEFORE COMPILE:
> -;
> -; Only change the "Placeholder"-variables in the two "#define"-sections.
> -; Nothing more must be changed. All visible stuff is defined there.
> -
> -
> -;Version String
> -#define Name "Widelands"
> -#define VerName "Widelands @WL_VERSION@"
> -#define VerNumber "@WL_VERSION_MAJOR@.@WL_VERSION_MINOR@.@WL_VERSION_PATCH@"
> -#define Copyright "Widelands Development Team 2001-2014"
> -#define SetupFileName "Widelands-@WL_VERSION@-win32"
> -
> -;General String
> -#define Publisher "Widelands Development Team"
> -#define URL "http://www.widelands.org";
> -#define HelpURL "http://wl.widelands.org/wiki/MainPage/";
> -#define ExeName "widelands.exe"
> -#define UrlName "Widelands.url"
> -#define HelpName "Widelands-Onlinehelp.url"
> -#define HelpNameName "Widelands-Onlinehelp"
> -#define Copying "COPYING.txt"
> -
> -[Setup]
> -AppName={#Name}
> -AppVerName={#VerName}
> -AppPublisher={#Publisher}
> -AppPublisherURL={#URL}
> -AppSupportURL={#URL}
> -AppUpdatesURL={#URL}
> -DefaultDirName={pf}\{#Name}
> -DefaultGroupName={#Name}
> -AllowNoIcons=true
> -LicenseFile=@CMAKE_CURRENT_SOURCE_DIR@\..\COPYING
> -InfoAfterFile=@CMAKE_CURRENT_SOURCE_DIR@\..\ChangeLog
> -OutputDir=@CMAKE_CURRENT_BINARY_DIR@\..\
> -OutputBaseFilename={#SetupFileName}
> -SetupIconFile=@CMAKE_CURRENT_SOURCE_DIR@\..\build\win32\WL.ico
> -Compression=lzma/ultra
> -SolidCompression=true
> -VersionInfoVersion={#VerNumber}
> -VersionInfoCompany={#Publisher}
> -VersionInfoDescription={#VerName} Setup
> -ShowLanguageDialog=yes
> -WizardImageFile=@CMAKE_CURRENT_SOURCE_DIR@\..\utils\win32\innosetup\WL.bmp
> -WizardSmallImageFile=@CMAKE_CURRENT_SOURCE_DIR@\utils\build\win32\innosetup\WLsmall.bmp
> -AppVersion={#VerName}
> -UninstallDisplayIcon={app}\unins000.exe
> -UninstallDisplayName={#VerName}
> -VersionInfoCopyright={#Publisher}
> -InternalCompressLevel=max
> -AppID={{WIDELANDS-WIN32-IS}
> -AppCopyright={#Copyright}
> -ChangesAssociations=yes
> -
> -[Languages]
> -Name: english;   MessagesFile: compiler:Default.isl
> -Name: czech;     MessagesFile: compiler:Languages\Czech.isl
> -Name: finnish;   MessagesFile: compiler:Languages\Finnish.isl
> -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
> -Name: gaelic;    MessagesFile: compiler:Languages\ScottishGaelic.isl
> -Name: hebrew;    MessagesFile: compiler:Languages\Hebrew.isl
> -Name: russian;   MessagesFile: compiler:Languages\Russian.isl
> -Name: spanish;   MessagesFile: compiler:Languages\Spanish.isl
> -
> -[Tasks]
> -Name: desktopicon;     Description: {cm:CreateDesktopIcon};     GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
> -Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
> -
> -[Files]
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\campaigns\*;  DestDir: {app}\campaigns\; Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\fonts\*;      DestDir: {app}\fonts\;     Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
> -Source: @CMAKE_CURRENT_BINARY_DIR@\..\locale\*;     DestDir: {app}\locale\;    Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\maps\*;       DestDir: {app}\maps\;      Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ;                  Components: " Maps"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\music\*;      DestDir: {app}\music\;     Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ;                  Components: " Music"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\pics\*;       DestDir: {app}\pics\;      Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\sound\*;      DestDir: {app}\sound\;     Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Sound"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\tribes\*;     DestDir: {app}\tribes\;    Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\txts\*;       DestDir: {app}\txts\;      Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\worlds\*;     DestDir: {app}\worlds\;    Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\global\*;     DestDir: {app}\global\;    Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\scripting\*;  DestDir: {app}\scripting\; Flags: recursesubdirs ignoreversion; Tasks: ; Languages: ; Attribs: hidden; Components: " Widelands"
> -Source: @CMAKE_CURRENT_BINARY_DIR@\@CMAKE_BUILD_TYPE@\widelands.exe;           DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\ChangeLog;                               DestDir: {app};            Flags: ignoreversion; DestName: ChangeLog.txt;                              Components: " Widelands"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\COPYING;                                 DestDir: {app};            Flags: ignoreversion; DestName: COPYING.txt;                                Components: " Widelands"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\CREDITS;                                 DestDir: {app};            Flags: ignoreversion; DestName: CREDITS.txt;                                Components: " Widelands"
> -Source: @CMAKE_CURRENT_SOURCE_DIR@\..\utils\win32\innosetup\WL-Editor.ico;     DestDir: {app};            Flags: ignoreversion;                                                       Components: " Widelands"
> -
> -[INI]
> -Filename: {app}\{#UrlName};  Section: InternetShortcut; Key: URL; String: {#URL}
> -Filename: {app}\{#HelpName}; Section: InternetShortcut; Key: URL; String: {#HelpURL}
> -
> -[Icons]
> -Name: {app}\{#Name} - Mapeditor;             Filename: {app}\{#ExeName}; Parameters: " --editor"; WorkingDir: {app}; IconFilename: {app}\WL-Editor.ico; Comment: Directly starts the Widelands-Editor; Flags: useapppaths
> -Name: {group}\{#Name};                       Filename: {app}\{#ExeName}; WorkingDir: {app}; IconFilename: {app}\widelands.exe; Flags: useapppaths; Tasks: ; Languages:
> -Name: {group}\{cm:ProgramOnTheWeb,{#Name}};  Filename: {app}\{#UrlName}
> -Name: {group}\{cm:UninstallProgram,{#Name}}; Filename: {uninstallexe}
> -Name: {group}\{#HelpNameName};               Filename: {app}\{#HelpName}; Tasks: ; Languages:
> -Name: {group}\{#Name} - Mapeditor;           Filename: {app}\{#ExeName}; Parameters: " --editor"; WorkingDir: {app}; IconFilename: {app}\WL-Editor.ico; Comment: Directly starts the Widelands-Editor; Flags: useapppaths
> -Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#Name}; Filename: {app}\{#ExeName}; Tasks: quicklaunchicon; WorkingDir: {app}; Flags: useapppaths; IconFilename: {app}\widelands.exe
> -Name: {userdesktop}\{#Name};                 Filename: {app}\{#ExeName}; Tasks: desktopicon; WorkingDir: {app}; Flags: useapppaths; IconFilename: {app}\widelands.exe
> -Name: {userdesktop}\{#Name} - Mapeditor;     Filename: {app}\{#ExeName}; Parameters: " --editor"; Tasks: desktopicon; WorkingDir: {app}; IconFilename: {app}\WL-Editor.ico; Comment: Directly starts the Widelands-Editor; Flags: useapppaths
> -Name: {group}\{#Copying};                    Filename: {app}\{#Copying}
> -
> -[Run]
> -Filename: {app}\{#ExeName}; Description: {cm:LaunchProgram,{#Name}}; Flags: nowait postinstall skipifsilent
> -
> -[InstallDelete]
> -Type: filesandordirs; Name: {app}\campaigns\*
> -Type: filesandordirs; Name: {app}\global\*
> -Type: filesandordirs; Name: {app}\locale\*
> -Type: filesandordirs; Name: {app}\maps\*
> -Type: filesandordirs; Name: {app}\pics\*
> -Type: filesandordirs; Name: {app}\scripting\*
> -Type: filesandordirs; Name: {app}\sound\*
> -Type: filesandordirs; Name: {app}\tribes\*
> -Type: filesandordirs; Name: {app}\txts\*
> -Type: filesandordirs; Name: {app}\worlds\*
> -
> -[UninstallDelete]
> -Type: files; Name: {app}\{#UrlName}
> -Type: files; Name: {app}\{#HelpName}
> -Type: files; Name: {app}\stdout.txt
> -Type: files; Name: {app}\stderr.txt
> -
> -[Components]
> -Name: Widelands; Description: Widelands Core;             Flags: fixed checkablealone; Types: custom compact full
> -Name: Music;     Description: Widelands Background Music;                              Types: full
> -Name: Sound;     Description: Widelands Sound Effects;                                 Types: compact full
> -Name: Maps;      Description: Widelands Maps;                                          Types: compact full
> -
> -[Registry]
> -Root: HKCR; Subkey: .wgf;                                 ValueType: string; ValueName: ; ValueData: WidelandsSavegame;  Flags: uninsdeletevalue
> -Root: HKCR; Subkey: WidelandsSavegame;                    ValueType: string; ValueName: ; ValueData: Widelands Savegame; Flags: uninsdeletekey
> -Root: HKCR; Subkey: WidelandsSavegame\DefaultIcon;        ValueType: string; ValueName: ; ValueData: {app}\{#ExeName},0
> -Root: HKCR; Subkey: WidelandsSavegame\shell\open\command; ValueType: string; ValueName: ; ValueData: """{app}\{#ExeName}"" ""--loadgame=%1"""
> -
> -Root: HKCR; Subkey: .wmf;                                 ValueType: string; ValueName: ; ValueData: WidelandsMapFile;  Flags: uninsdeletevalue
> -Root: HKCR; Subkey: WidelandsMapFile;                     ValueType: string; ValueName: ; ValueData: Widelands Mapfile; Flags: uninsdeletekey
> -Root: HKCR; Subkey: WidelandsMapFile\DefaultIcon;         ValueType: string; ValueName: ; ValueData: {app}\WL-Editor.ico
> -Root: HKCR; Subkey: WidelandsMapFile\shell\open\command;  ValueType: string; ValueName: ; ValueData: """{app}\{#ExeName}"" ""--editor=%1"""
> 
> === removed file 'utils/win32/msvc/widelands.rc.cmake'
> --- utils/win32/msvc/widelands.rc.cmake	2014-01-28 17:33:10 +0000
> +++ utils/win32/msvc/widelands.rc.cmake	1970-01-01 00:00:00 +0000
> @@ -1,53 +0,0 @@
> -/*
> - * Copyright (C) 2006-2014 by the Widelands Development Team
> - *
> - * This program is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License
> - * as published by the Free Software Foundation; either version 2
> - * of the License, or (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> - *
> - */
> -
> -#include <windows.h> // included for version info constants
> -
> -A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "@CMAKE_CURRENT_SOURCE_DIR@/../utils/win32/WL.ico"
> -
> -//
> -// TO CHANGE VERSION INFORMATION, EDIT  OPTIONS BELOW...
> -//
> -1 VERSIONINFO
> -FILEVERSION 0,18,0,1
> -PRODUCTVERSION 0,18,0,1
> -FILETYPE VFT_APP
> -{
> -  BLOCK "StringFileInfo"
> -	 {
> -		 BLOCK "080904E4"
> -		 {
> -			 VALUE "CompanyName", "The Widelands Development Team"
> -			 VALUE "FileVersion", "@WL_VERSION@"
> -			 VALUE "FileDescription", "Widelands - realtime strategy game"
> -			 VALUE "InternalName", "WL"
> -			 VALUE "LegalCopyright", "GPL v2"
> -			 VALUE "WWW", "http://www.widelands.org";
> -			 VALUE "License", "Gnu GPL v2"
> -			 VALUE "OriginalFilename", "widelands"
> -			 VALUE "ProductName", "Widelands - an Open-Source realtime strategy game"
> -			 VALUE "ProductVersion", "@WL_VERSION@"
> -		 }
> -	 }
> -  BLOCK "VarFileInfo"
> -	 {
> -		 VALUE "Translation", 0x0809, 1252
> -	 }
> -}
> -
> 
> === removed directory 'utils/win32/nsis'
> === removed file 'utils/win32/nsis/WL.bmp'
> Binary files utils/win32/nsis/WL.bmp	2012-02-06 15:14:44 +0000 and utils/win32/nsis/WL.bmp	1970-01-01 00:00:00 +0000 differ
> === removed file 'utils/win32/nsis/install_header.bmp'
> Binary files utils/win32/nsis/install_header.bmp	2012-02-06 15:14:44 +0000 and utils/win32/nsis/install_header.bmp	1970-01-01 00:00:00 +0000 differ


-- 
https://code.launchpad.net/~widelands-dev/widelands/cmake-reworked/+merge/222455
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/cmake-reworked into lp:widelands.


References