Tino has proposed merging lp:~widelands-dev/widelands/appveyor into
lp:widelands.
Requested reviews:
Widelands Developers (widelands-dev)
For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/appveyor/+merge/281599
Provide a build script for appveyor, the "travis ci" for windows.
Currently a release build is done and a complete inno setup created.
Includes 2 fixes for windows:
- enable static linking glew32 with cmake option on windows
- allow git revision detection in windows (does work on my machine, but atm not
an appveyor)
--
Your team Widelands Developers is requested to review the proposed merge of
lp:~widelands-dev/widelands/appveyor into lp:widelands.
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2016-01-04 20:58:32 +
+++ CMakeLists.txt 2016-01-05 10:27:43 +
@@ -1,296 +1,300 @@
-project (widelands)
-
-cmake_minimum_required (VERSION 2.8.7)
-
-include("${CMAKE_SOURCE_DIR}/cmake/WlFunctions.cmake")
-
-option(OPTION_USE_GLBINDING "Use glbinding instead of GLEW" OFF)
-option(OPTION_GLEW_STATIC "Use static GLEW Library" OFF)
-
-if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
- message(FATAL_ERROR "Build directory and source directory must not be the same.")
-endif (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
-
-# Define the directory structure for installation - will be hardcoded in WL bin
-# (through config.h). If not specified, we are going to use the directory where
-# the executable is in. Also on Linux.
-# Packagers (or people using make install) have to set this variable to an absolute path.
-wl_set_if_unset(WL_INSTALL_DATADIR ".")
-
-if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
- if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
-message(FATAL_ERROR "Widelands needs GCC >= 4.7 to compile.")
- endif()
-elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2)
-message(FATAL_ERROR "Clang version must be at least 3.2!")
- endif()
-else()
- message(WARNING "You are using an unsupported compiler! Supported are Clang and GCC.")
-endif()
-
-SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
-
-set (Boost_USE_STATIC_LIBS OFF)
-set (Boost_USE_MULTITHREADED ON)
-set (Boost_DETAILED_FAILURE_MSG ON)
-find_package(Boost 1.48
- COMPONENTS
-unit_test_framework
-regex
- REQUIRED)
-
-find_package (PythonInterp REQUIRED)
-
-find_package(Gettext REQUIRED)
-find_package(OpenGL REQUIRED)
-find_package(PNG REQUIRED)
-find_package(SDL2 REQUIRED)
-find_package(SDL2_image REQUIRED)
-find_package(SDL2_mixer REQUIRED)
-find_package(SDL2_net REQUIRED)
-find_package(SDL2_ttf REQUIRED)
-find_package(ZLIB REQUIRED)
-find_package(ICU REQUIRED)
-if(OPTION_USE_GLBINDING)
- find_package(glbinding REQUIRED)
-else()
- find_package(GLEW REQUIRED)
-endif()
-
-if (APPLE OR WIN32 OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
- if (NOT CMAKE_SYSTEM_NAME MATCHES "kFreeBSD")
-find_package(intl REQUIRED)
- endif()
-endif()
-
-# TODO(sirver): One day, this should be enabled. Then we have no more cycles in our dependencies
-# set_property(GLOBAL PROPERTY GLOBAL_DEPENDS_NO_CYCLES ON)
-
-if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
- find_path(FILE_WL_RELEASE "WL_RELEASE" ${CMAKE_CURRENT_SOURCE_DIR})
- if(${FILE_WL_RELEASE} STREQUAL "FILE_WL_RELEASE-NOTFOUND")
-set(CMAKE_BUILD_TYPE Debug)
- else()
-set(CMAKE_BUILD_TYPE Release)
- endif()
-endif (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
-
-if(CMAKE_BUILD_TYPE STREQUAL "Debug")
- set(WL_DEBUG_FLAGS "-g -DDEBUG")
-elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
- set(WL_OPTIMIZE_FLAGS "-O3")
- set(WL_DEBUG_FLAGS "-DNDEBUG -DNOPARACHUTE")
-elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
- set(WL_OPTIMIZE_FLAGS "-O3")
- set(WL_DEBUG_FLAGS "-g -DNDEBUG -DNOPARACHUTE")
-else()
- message(FATAL_ERROR "Unknown CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
-endif()
-
-wl_add_flag(WL_GENERIC_CXX_FLAGS "-std=c++11")
-
-if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Weverything")
-
- # Disabled warnings that are overly verbose right now or just do not make sense.
- wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-c++98-compat")
- wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-c++98-compat-pedantic")
- wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-conversion")
- wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-exit-time-destructors")
- wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-global-constructors")
- wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-padded")
- wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-sign-conversi