c283f0216d
Always set CMAKE_BUILD_TYPE to Release otherwise supertux will be built
with -pg since:
afd5f1b33c
This will result in the following build failure on uclibc or musl:
[ 77%] Linking C executable sq_static
CMakeFiles/sq_static.dir/sq.c.o: In function `quit':
/home/buildroot/autobuild/instance-3/output/build/supertux-0.6.0/external/squirrel/sq/sq.c:42: undefined reference to `__gnu_mcount_nc'
Fixes:
- http://autobuild.buildroot.org/results/b0b2e25af198d01713d1e2bcf38c77ae8ffbd7de
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
73 lines
3.1 KiB
Makefile
73 lines
3.1 KiB
Makefile
################################################################################
|
|
#
|
|
# supertux
|
|
#
|
|
################################################################################
|
|
|
|
SUPERTUX_VERSION = 0.6.0
|
|
SUPERTUX_SITE = https://github.com/SuperTux/supertux/releases/download/v$(SUPERTUX_VERSION)
|
|
SUPERTUX_SOURCE = SuperTux-v$(SUPERTUX_VERSION)-Source.tar.gz
|
|
|
|
# Supertux itself is GPL-3.0+, but it bundles a few libraries with different
|
|
# licenses (sexp-cpp, squirrel, tinygettext) which are linked statically.
|
|
SUPERTUX_LICENSE = GPL-3.0+ (code), CC-BY-SA-2.0, CC-BY-SA-3.0, GPL-2.0+ (images music sounds)
|
|
SUPERTUX_LICENSE_FILES = LICENSE.txt data/AUTHORS
|
|
|
|
# Use bundled squirrel, tinygettext sexp-cpp packages which are hardcoded in
|
|
# the CMake build system.
|
|
SUPERTUX_DEPENDENCIES = host-pkgconf boost freetype libcurl libgl libglew libglu \
|
|
libogg libpng libvorbis openal physfs sdl2 sdl2_image
|
|
|
|
# CMAKE_BUILD_TYPE=Release: disable profiling code (-pg)
|
|
# ENABLE_BOOST_STATIC_LIBS=OFF: use boost shared libraries since supertux
|
|
# depends on !BR2_STATIC_LIBS and boost provide only shared libraries with
|
|
# BR2_SHARED_LIBS.
|
|
# ENABLE_OPENGL=ON: Can be disabled but will make SuperTux unplayable slow.
|
|
# GLBINDING_ENABLED=OFF: use GLEW (default) instead of glbinding.
|
|
# Install the game directly in /usr/bin and game data in /usr/share/supertux2.
|
|
# Force using physfs.so from staging since the check on PHYSFS_getPrefDir symbol
|
|
# in physfs.h (CHECK_SYMBOL_EXISTS) doesn't work.
|
|
# ENABLE_OPENGLES2=OFF: Disable opengles2 for now.
|
|
SUPERTUX_CONF_OPTS += \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DENABLE_BOOST_STATIC_LIBS=OFF \
|
|
-DBUILD_DOCUMENTATION=OFF \
|
|
-DENABLE_OPENGL=ON \
|
|
-DGLBINDING_ENABLED=OFF \
|
|
-DINSTALL_SUBDIR_BIN="bin" \
|
|
-DINSTALL_SUBDIR_SHARE="share/supertux2" \
|
|
-DUSE_SYSTEM_PHYSFS=ON \
|
|
-DENABLE_OPENGLES2=OFF
|
|
|
|
# Avoid incompatible posix_memalign declaration on x86 and x86_64 with
|
|
# musl.
|
|
# https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01425.html
|
|
ifeq ($(BR2_TOOLCHAIN_USES_MUSL):$(BR2_i386)$(BR2_x86_64),y:y)
|
|
define SUPERTUX_REMOVE_PEDANTIC
|
|
$(SED) 's% -pedantic%%' $(@D)/CMakeLists.txt
|
|
$(SED) 's%CHECK_CXX_FLAG(pedantic)%%' $(@D)/external/tinygettext/CMakeLists.txt
|
|
endef
|
|
SUPERTUX_POST_PATCH_HOOKS += SUPERTUX_REMOVE_PEDANTIC
|
|
endif
|
|
|
|
# From https://bugs.debian.org/cgi-bin/bugreport.cgi/?bug=770670
|
|
# "The problem lies within SDL_cpuinfo.h. It includes altivec.h, which by
|
|
# definition provides an unconditional vector, pixel and bool define in
|
|
# standard-c++ mode. In GNU-c++ mode this names are only defined
|
|
# context-sensitive by cpp. SDL_cpuinfo.h is included by SDL.h.
|
|
# Including altivec.h makes arbitrary code break."
|
|
#
|
|
# Acording to a bug report in GCC [1]:
|
|
# "You need to use -std=g++11 or undefine bool after the include of altivec.h
|
|
# as context sensitive keywords is not part of the C++11 standard".
|
|
# So use gnu++11 instead of c++11 only for altivec system.
|
|
# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58241#c3
|
|
ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
|
|
define SUPERTUX_FIX_ALTIVEC_ISSUE
|
|
$(SED) 's%std=c++0x%std=gnu++0x%' $(@D)/external/tinygettext/CMakeLists.txt
|
|
endef
|
|
SUPERTUX_POST_PATCH_HOOKS += SUPERTUX_FIX_ALTIVEC_ISSUE
|
|
endif
|
|
|
|
$(eval $(cmake-package))
|