Linux-only for now. This will be necessary for projects that do not actually use the rendering engine, such as LolRemez.legacy
@@ -162,33 +162,6 @@ fi | |||||
AM_CONDITIONAL(LOL_USE_GDIPLUS, test "${ac_cv_my_have_gdiplus}" = "yes") | AM_CONDITIONAL(LOL_USE_GDIPLUS, test "${ac_cv_my_have_gdiplus}" = "yes") | ||||
dnl Use libavcodec? (required for movie encoding) | |||||
ac_cv_my_have_ffmpeg="yes" | |||||
PKG_CHECK_MODULES([LIBAVCODEC], [libavcodec], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
PKG_CHECK_MODULES([LIBAVUTIL], [libavutil], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
PKG_CHECK_MODULES([LIBAVFORMAT], [libavformat], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
PKG_CHECK_MODULES([LIBSWSCALE], [libswscale], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
if test "${ac_cv_my_have_ffmpeg}" = "no"; then | |||||
ac_cv_my_have_ffmpeg="yes" | |||||
AC_CHECK_HEADERS(libavcodec/avcodec.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
AC_CHECK_HEADERS(libavformat/avformat.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
AC_CHECK_HEADERS(libswscale/swscale.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
if test "${ac_cv_my_have_ffmpeg}" = "yes"; then | |||||
LIBAVCODEC_LIBS="-lavcodec" | |||||
LIBAVUTIL_LIBS="-lavutil" | |||||
LIBAVFORMAT_LIBS="-lavformat" | |||||
LIBSWSCALE_LIBS="-lswscale" | |||||
AC_CHECK_LIB(ws2_32, main, LOL_LIBS="${LOL_LIBS} -lws2_32") | |||||
fi | |||||
fi | |||||
if test "${ac_cv_my_have_ffmpeg}" != "no"; then | |||||
AC_DEFINE(LOL_USE_FFMPEG, 1, Define to 1 to use FFmpeg) | |||||
LOL_CFLAGS="${LOL_CFLAGS} ${LIBAVFORMAT_CFLAGS} ${LIBAVUTIL_CFLAGS} ${LIBAVCODEC_CFLAGS} ${LIBSWSCALE_CFLAGS}" | |||||
LOL_LIBS="${LOL_LIBS} ${LIBAVFORMAT_LIBS} ${LIBAVUTIL_LIBS} ${LIBAVCODEC_LIBS} ${LIBSWSCALE_LIBS}" | |||||
fi | |||||
AM_CONDITIONAL(LOL_USE_FFMPEG, test "${ac_cv_my_have_ffmpeg}" != "no") | |||||
dnl Are we building using MinGW? | dnl Are we building using MinGW? | ||||
LOL_TRY_CXXFLAGS(-mwindows -mwin32, | LOL_TRY_CXXFLAGS(-mwindows -mwin32, | ||||
[AM_CXXFLAGS="${AM_CXXFLAGS} -mwindows -mwin32" | [AM_CXXFLAGS="${AM_CXXFLAGS} -mwindows -mwin32" | ||||
@@ -223,6 +196,7 @@ LOL_TRY_LDFLAGS(-framework UIKit, | |||||
dnl Other complex checks | dnl Other complex checks | ||||
LOL_AC_CHECK_OPENGL() | LOL_AC_CHECK_OPENGL() | ||||
LOL_AC_CHECK_SDL() | LOL_AC_CHECK_SDL() | ||||
LOL_AC_CHECK_FFMPEG() | |||||
dnl Debug symbols | dnl Debug symbols | ||||
@@ -0,0 +1,53 @@ | |||||
dnl | |||||
dnl Lol Engine | |||||
dnl | |||||
dnl Copyright © 2010—2016 Sam Hocevar <sam@hocevar.net> | |||||
dnl | |||||
dnl Lol Engine is free software. It comes without any warranty, to | |||||
dnl the extent permitted by applicable law. You can redistribute it | |||||
dnl and/or modify it under the terms of the Do What the Fuck You Want | |||||
dnl to Public License, Version 2, as published by the WTFPL Task Force. | |||||
dnl See http://www.wtfpl.net/ for more details. | |||||
dnl | |||||
# LOL_AC_CHECK_FFMPEG() | |||||
# --------------------- | |||||
AC_DEFUN([LOL_AC_CHECK_FFMPEG], | |||||
[ | |||||
if test "${enable_ffmpeg}" != "no"; then | |||||
LOL_AC_CHECK_FFMPEG_INNER() | |||||
fi | |||||
AM_CONDITIONAL(LOL_USE_FFMPEG, test "${ac_cv_my_have_ffmpeg}" != "no") | |||||
]) | |||||
# LOL_AC_CHECK_FFMPEG_INNER() | |||||
# --------------------------- | |||||
AC_DEFUN([LOL_AC_CHECK_FFMPEG_INNER], | |||||
[ | |||||
ac_cv_my_have_ffmpeg="yes" | |||||
PKG_CHECK_MODULES([LIBAVCODEC], [libavcodec], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
PKG_CHECK_MODULES([LIBAVUTIL], [libavutil], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
PKG_CHECK_MODULES([LIBAVFORMAT], [libavformat], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
PKG_CHECK_MODULES([LIBSWSCALE], [libswscale], [:], [ac_cv_my_have_ffmpeg=no]) | |||||
if test "${ac_cv_my_have_ffmpeg}" != "yes"; then | |||||
ac_cv_my_have_ffmpeg="yes" | |||||
AC_CHECK_HEADERS(libavcodec/avcodec.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
AC_CHECK_HEADERS(libavformat/avformat.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
AC_CHECK_HEADERS(libswscale/swscale.h, [:], [ac_cv_my_have_ffmpeg=no]) | |||||
if test "${ac_cv_my_have_ffmpeg}" = "yes"; then | |||||
LIBAVCODEC_LIBS="-lavcodec" | |||||
LIBAVUTIL_LIBS="-lavutil" | |||||
LIBAVFORMAT_LIBS="-lavformat" | |||||
LIBSWSCALE_LIBS="-lswscale" | |||||
AC_CHECK_LIB(ws2_32, main, LOL_LIBS="${LOL_LIBS} -lws2_32") | |||||
fi | |||||
fi | |||||
if test "${ac_cv_my_have_ffmpeg}" = "yes"; then | |||||
AC_DEFINE(LOL_USE_FFMPEG, 1, Define to 1 to use FFmpeg) | |||||
LOL_CFLAGS="${LOL_CFLAGS} ${LIBAVFORMAT_CFLAGS} ${LIBAVUTIL_CFLAGS} ${LIBAVCODEC_CFLAGS} ${LIBSWSCALE_CFLAGS}" | |||||
LOL_LIBS="${LOL_LIBS} ${LIBAVFORMAT_LIBS} ${LIBAVUTIL_LIBS} ${LIBAVCODEC_LIBS} ${LIBSWSCALE_LIBS}" | |||||
fi | |||||
]) # LOL_AC_CHECK_FFMPEG_INNER | |||||
@@ -15,6 +15,19 @@ dnl | |||||
# ------------------ | # ------------------ | ||||
AC_DEFUN([LOL_AC_CHECK_SDL], | AC_DEFUN([LOL_AC_CHECK_SDL], | ||||
[ | [ | ||||
if test "${enable_sdl}" != "no"; then | |||||
LOL_AC_CHECK_SDL_INNER() | |||||
fi | |||||
AM_CONDITIONAL(LOL_USE_SDL, test "x${ac_cv_my_have_sdl}" = xyes) | |||||
AM_CONDITIONAL(LOL_USE_SDL_MIXER, test "x${ac_cv_my_have_sdl_mixer}" = xyes) | |||||
AM_CONDITIONAL(LOL_USE_SDL_IMAGE, test "x${ac_cv_my_have_sdl_image}" = xyes) | |||||
AM_CONDITIONAL(LOL_USE_OLD_SDL, test "x${ac_cv_my_have_old_sdl}" = xyes) | |||||
]) | |||||
# LOL_AC_CHECK_SDL_INNER() | |||||
# ------------------------ | |||||
AC_DEFUN([LOL_AC_CHECK_SDL_INNER], | |||||
[ | |||||
dnl Find which version of SDL to use (always required on Linux or Win32) | dnl Find which version of SDL to use (always required on Linux or Win32) | ||||
dnl | dnl | ||||
dnl Defined C/C++ macros: | dnl Defined C/C++ macros: | ||||
@@ -169,27 +182,22 @@ if test "x${ac_cv_my_have_sdl}" = xno; then | |||||
else | else | ||||
AC_DEFINE(LOL_USE_SDL, 1, Define to 1 to use SDL) | AC_DEFINE(LOL_USE_SDL, 1, Define to 1 to use SDL) | ||||
fi | fi | ||||
AM_CONDITIONAL(LOL_USE_SDL, test "x${ac_cv_my_have_sdl}" = xyes) | |||||
if test "x${ac_cv_my_have_sdl_mixer}" = xno; then | if test "x${ac_cv_my_have_sdl_mixer}" = xno; then | ||||
AC_MSG_WARN([SDL_mixer not found]) | AC_MSG_WARN([SDL_mixer not found]) | ||||
else | else | ||||
AC_DEFINE(LOL_USE_SDL_MIXER, 1, Define to 1 to use SDL_mixer) | AC_DEFINE(LOL_USE_SDL_MIXER, 1, Define to 1 to use SDL_mixer) | ||||
fi | fi | ||||
AM_CONDITIONAL(LOL_USE_SDL_MIXER, test "x${ac_cv_my_have_sdl_mixer}" = xyes) | |||||
if test "x${ac_cv_my_have_sdl_image}" = xno; then | if test "x${ac_cv_my_have_sdl_image}" = xno; then | ||||
AC_MSG_WARN([SDL_image not found]) | AC_MSG_WARN([SDL_image not found]) | ||||
else | else | ||||
AC_DEFINE(LOL_USE_SDL_IMAGE, 1, Define to 1 to use SDL_image) | AC_DEFINE(LOL_USE_SDL_IMAGE, 1, Define to 1 to use SDL_image) | ||||
fi | fi | ||||
AM_CONDITIONAL(LOL_USE_SDL_IMAGE, test "x${ac_cv_my_have_sdl_image}" = xyes) | |||||
if test "x${ac_cv_my_have_old_sdl}" != xno; then | if test "x${ac_cv_my_have_old_sdl}" != xno; then | ||||
AC_DEFINE(LOL_USE_OLD_SDL, 1, Define to 1 to use SDL) | AC_DEFINE(LOL_USE_OLD_SDL, 1, Define to 1 to use SDL) | ||||
fi | fi | ||||
AM_CONDITIONAL(LOL_USE_OLD_SDL, test "x${ac_cv_my_have_old_sdl}" = xyes) | |||||
]) # LOL_AC_CHECK_SDL | |||||
]) # LOL_AC_CHECK_SDL_INNER | |||||
@@ -80,6 +80,11 @@ AC_ARG_ENABLE(experimental, | |||||
AC_ARG_ENABLE(subproject, | AC_ARG_ENABLE(subproject, | ||||
[ --enable-subproject build as a subproject (default no)]) | [ --enable-subproject build as a subproject (default no)]) | ||||
AC_ARG_ENABLE(ffmpeg, | |||||
[ --enable-ffmpeg build using FFmpeg (default autodetected)]) | |||||
AC_ARG_ENABLE(sdl, | |||||
[ --enable-sdl build using SDL (default autodetected)]) | |||||
AC_ARG_ENABLE(test, | AC_ARG_ENABLE(test, | ||||
[ --enable-test build test suite (default yes)]) | [ --enable-test build test suite (default yes)]) | ||||
AC_ARG_ENABLE(tools, | AC_ARG_ENABLE(tools, | ||||
@@ -140,9 +140,11 @@ liblol_core_sources = \ | |||||
debug/fps.cpp debug/fps.h debug/lines.cpp \ | debug/fps.cpp debug/fps.h debug/lines.cpp \ | ||||
debug/record.cpp debug/record.h debug/stats.cpp debug/stats.h | debug/record.cpp debug/record.h debug/stats.cpp debug/stats.h | ||||
if LOL_USE_SDL | |||||
sdl_sources = \ | sdl_sources = \ | ||||
platform/sdl/sdlapp.cpp platform/sdl/sdlapp.h \ | platform/sdl/sdlapp.cpp platform/sdl/sdlapp.h \ | ||||
platform/sdl/sdlinput.cpp platform/sdl/sdlinput.h | platform/sdl/sdlinput.cpp platform/sdl/sdlinput.h | ||||
endif | |||||
d3d9_sources = \ | d3d9_sources = \ | ||||
platform/d3d9/d3d9input.cpp platform/d3d9/d3d9input.h | platform/d3d9/d3d9input.cpp platform/d3d9/d3d9input.h | ||||
@@ -32,6 +32,32 @@ | |||||
namespace lol | namespace lol | ||||
{ | { | ||||
class null_display | |||||
{ | |||||
friend class ApplicationDisplayData; | |||||
public: | |||||
null_display(char const *, ivec2) {} | |||||
virtual ~null_display() {} | |||||
protected: | |||||
void SetResolution(ivec2) {} | |||||
void SetPosition(ivec2) {} | |||||
void Enable() {} | |||||
void Disable() {} | |||||
}; | |||||
class null_app | |||||
{ | |||||
public: | |||||
null_app(char const *, ivec2, float) {} | |||||
virtual ~null_app() {} | |||||
void ShowPointer(bool) {} | |||||
void Tick() {} | |||||
}; | |||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
class ApplicationDisplayData | class ApplicationDisplayData | ||||
{ | { | ||||
@@ -69,7 +95,7 @@ protected: | |||||
/* FIXME: this macro is only deactivated if we include "lolgl.h" */ | /* FIXME: this macro is only deactivated if we include "lolgl.h" */ | ||||
//NOT HANDLED YET | //NOT HANDLED YET | ||||
#else | #else | ||||
# error No application class available on this platform | |||||
null_display display; | |||||
#endif | #endif | ||||
}; | }; | ||||
@@ -129,7 +155,7 @@ class ApplicationData | |||||
/* FIXME: this macro is only deactivated if we include "lolgl.h" */ | /* FIXME: this macro is only deactivated if we include "lolgl.h" */ | ||||
EglApp app; | EglApp app; | ||||
#else | #else | ||||
# error No application class available on this platform | |||||
null_app app; | |||||
#endif | #endif | ||||
}; | }; | ||||