mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2024-12-25 14:15:46 +00:00
fixes for win32/MSVC build. This removes SDLmain as dependency, and fixes newer gcc versions refusing to compile FmodOpenALBridge.cpp. Allow enabling/disabling console window in win32 build.
This commit is contained in:
parent
a9f660d7d6
commit
fe16861832
9 changed files with 110 additions and 82 deletions
33
Aquaria/AquariaCompileConfig.h
Normal file
33
Aquaria/AquariaCompileConfig.h
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
#ifndef __AQUARIA_COMPILE_CONFIG_H__
|
||||||
|
#define __AQUARIA_COMPILE_CONFIG_H__
|
||||||
|
|
||||||
|
#ifndef BBGE_SKIP_CONFIG_HEADERS
|
||||||
|
|
||||||
|
//#define AQUARIA_FULL 1
|
||||||
|
//#define AQUARIA_DEMO 1
|
||||||
|
#define AQUARIA_BUILD_CONSOLE 1
|
||||||
|
#define AQUARIA_BUILD_SCENEEDITOR 1
|
||||||
|
|
||||||
|
#define AQUARIA_CUSTOM_BUILD_ID ""
|
||||||
|
|
||||||
|
// no console window in release mode (note: use together with linker SubSystem setting)
|
||||||
|
#ifdef NDEBUG
|
||||||
|
# define AQUARIA_WIN32_NOCONSOLE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define AQUARIA_BUILD_MAPVIS
|
||||||
|
|
||||||
|
// Define this to save map visited data in a base64-encoded raw format.
|
||||||
|
// This can take much less space than the standard text format (as little
|
||||||
|
// as 10%), but WILL BE INCOMPATIBLE with previous builds of Aquaria --
|
||||||
|
// the visited data will be lost if the file is loaded into such a build.
|
||||||
|
// (Current builds will load either format regardless of whether or not
|
||||||
|
// this is defined.)
|
||||||
|
//#define AQUARIA_SAVE_MAPVIS_RAW
|
||||||
|
|
||||||
|
// Interesting, old test stuff
|
||||||
|
//#define AQ_TEST_QUADTRAIL
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#ifndef __dsq__
|
#ifndef __dsq__
|
||||||
#define __dsq__
|
#define __dsq__
|
||||||
|
|
||||||
|
#include "AquariaCompileConfig.h"
|
||||||
#include "../BBGE/Core.h"
|
#include "../BBGE/Core.h"
|
||||||
#include "../BBGE/Quad.h"
|
#include "../BBGE/Quad.h"
|
||||||
#include "Element.h"
|
#include "Element.h"
|
||||||
|
@ -364,6 +365,14 @@ enum FormUpgradeType
|
||||||
FORMUPGRADE_MAX
|
FORMUPGRADE_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// defined on windows
|
||||||
|
#ifdef INPUT_MOUSE
|
||||||
|
# undef INPUT_MOUSE
|
||||||
|
#endif
|
||||||
|
#ifdef INPUT_KEYBOARD
|
||||||
|
# undef INPUT_KEYBOARD
|
||||||
|
#endif
|
||||||
|
|
||||||
enum InputMode
|
enum InputMode
|
||||||
{
|
{
|
||||||
INPUT_MOUSE = 0,
|
INPUT_MOUSE = 0,
|
||||||
|
|
|
@ -130,7 +130,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined(BBGE_BUILD_WINDOWS) && !defined(BBGE_BUILD_SDL)
|
#if defined(BBGE_BUILD_WINDOWS) && defined(AQUARIA_WIN32_NOCONSOLE)
|
||||||
int WINAPI WinMain( HINSTANCE hInstance, // Instance
|
int WINAPI WinMain( HINSTANCE hInstance, // Instance
|
||||||
HINSTANCE hPrevInstance, // Previous Instance
|
HINSTANCE hPrevInstance, // Previous Instance
|
||||||
LPSTR lpCmdLine, // Command Line Parameters
|
LPSTR lpCmdLine, // Command Line Parameters
|
||||||
|
@ -141,54 +141,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
_CrtSetReportMode ( _CRT_ERROR, _CRTDBG_MODE_DEBUG);
|
_CrtSetReportMode ( _CRT_ERROR, _CRTDBG_MODE_DEBUG);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
DSQ core(GetCommandLine());
|
std::string dsqParam = GetCommandLine();
|
||||||
|
|
||||||
#elif defined(BBGE_BUILD_SDL)
|
#elif defined(BBGE_BUILD_SDL)
|
||||||
|
|
||||||
static inline void check_beta(void)
|
|
||||||
{
|
|
||||||
#if defined(BBGE_BUILD_UNIX) && defined(BETAEXPIRE)
|
|
||||||
bool bail = false;
|
|
||||||
|
|
||||||
fprintf(stderr, "\n\n\n");
|
|
||||||
fprintf(stderr, "*********************************************************\n");
|
|
||||||
fprintf(stderr, "*********************************************************\n");
|
|
||||||
fprintf(stderr, "*********************************************************\n");
|
|
||||||
fprintf(stderr, "*********************************************************\n");
|
|
||||||
fprintf(stderr, "*********************************************************\n");
|
|
||||||
|
|
||||||
if ( time(NULL) > (BETAEXPIRE + 14 * 24 * 60 * 60) ) {
|
|
||||||
fprintf(stderr,
|
|
||||||
"Sorry, but this beta of the game has expired, and will no\n"
|
|
||||||
" longer run. This is to prevent tech support on out-of-date\n"
|
|
||||||
" and prerelease versions of the game. Please go to\n"
|
|
||||||
" http://www.bit-blot.com/ for information on getting a release\n"
|
|
||||||
" version that does not expire.\n");
|
|
||||||
bail = true;
|
|
||||||
} else {
|
|
||||||
fprintf(stderr, " Warning: This is a beta version of AQUARIA.\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf(stderr, "*********************************************************\n");
|
|
||||||
fprintf(stderr, "*********************************************************\n");
|
|
||||||
fprintf(stderr, "*********************************************************\n");
|
|
||||||
fprintf(stderr, "*********************************************************\n");
|
|
||||||
fprintf(stderr, "*********************************************************\n");
|
|
||||||
fprintf(stderr, "\n\n\n");
|
|
||||||
|
|
||||||
fflush(stderr);
|
|
||||||
|
|
||||||
if (bail) {
|
|
||||||
while (true) {
|
|
||||||
_exit(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" int main(int argc,char *argv[])
|
extern "C" int main(int argc,char *argv[])
|
||||||
{
|
{
|
||||||
check_beta();
|
|
||||||
|
|
||||||
#ifdef BBGE_BUILD_WINDOWS
|
#ifdef BBGE_BUILD_WINDOWS
|
||||||
#if defined(AQUARIA_DEMO) || defined(AQUARIA_FULL)
|
#if defined(AQUARIA_DEMO) || defined(AQUARIA_FULL)
|
||||||
|
@ -208,17 +166,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
remove("ran");
|
remove("ran");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
std::string fileSystem = "";
|
std::string dsqParam = "";
|
||||||
|
|
||||||
#ifdef BBGE_BUILD_UNIX
|
#ifdef BBGE_BUILD_UNIX
|
||||||
const char *envPath = getenv("AQUARIA_DATA_PATH");
|
const char *envPath = getenv("AQUARIA_DATA_PATH");
|
||||||
if (envPath != NULL)
|
if (envPath != NULL)
|
||||||
fileSystem = envPath;
|
dsqParam = envPath;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
DSQ core(fileSystem);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
DSQ core(dsqParam);
|
||||||
{
|
{
|
||||||
core.init();
|
core.init();
|
||||||
//enumerateTest();
|
//enumerateTest();
|
||||||
|
|
|
@ -23,10 +23,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "Avatar.h"
|
#include "Avatar.h"
|
||||||
#include "StatsAndAchievements.h"
|
#include "StatsAndAchievements.h"
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#define snprintf _snprintf
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ARRAYSIZE
|
#ifndef ARRAYSIZE
|
||||||
#define ARRAYSIZE(x) (sizeof (x) / sizeof ((x)[0]))
|
#define ARRAYSIZE(x) (sizeof (x) / sizeof ((x)[0]))
|
||||||
#endif
|
#endif
|
||||||
|
|
17
BBGE/BBGECompileConfig.h
Normal file
17
BBGE/BBGECompileConfig.h
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#ifndef __BBGE_COMPILE_CONFIG_H__
|
||||||
|
#define __BBGE_COMPILE_CONFIG_H__
|
||||||
|
|
||||||
|
#ifndef BBGE_SKIP_CONFIG_HEADERS
|
||||||
|
|
||||||
|
#define BBGE_BUILD_SDL 1
|
||||||
|
#define BBGE_BUILD_FRAMEBUFFER 1
|
||||||
|
#define BBGE_BUILD_SHADERS 1
|
||||||
|
#define BBGE_BUILD_OPENGL 1
|
||||||
|
#define BBGE_BUILD_OPENGL_DYNAMIC 1
|
||||||
|
#define BBGE_BUILD_WIDESCREEN 1
|
||||||
|
#define BBGE_BUILD_FMOD_OPENAL_BRIDGE 1
|
||||||
|
#define BBGE_BUILD_ACHIEVEMENTS_INTERNAL 1
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
11
BBGE/Base.h
11
BBGE/Base.h
|
@ -25,6 +25,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define strtof (float)strtod
|
||||||
|
#define snprintf _snprintf
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "BBGECompileConfig.h"
|
||||||
|
|
||||||
|
#ifdef BBGE_BUILD_WINDOWS
|
||||||
|
|
||||||
//#include "iprof/prof.h"
|
//#include "iprof/prof.h"
|
||||||
//#define BBGE_PROF(x) Prof(x)
|
//#define BBGE_PROF(x) Prof(x)
|
||||||
|
|
||||||
|
@ -78,6 +88,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#ifdef BBGE_BUILD_SDL
|
#ifdef BBGE_BUILD_SDL
|
||||||
|
|
||||||
#include "SDL.h"
|
#include "SDL.h"
|
||||||
|
#undef main // SDL defines main to SDL_main. This is the only place where SDL.h is included, so this is ok.
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <float.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "Event.h"
|
#include "Event.h"
|
||||||
|
|
||||||
|
|
|
@ -12,16 +12,15 @@ IF(APPLE)
|
||||||
SET(MACOSX TRUE)
|
SET(MACOSX TRUE)
|
||||||
ENDIF(APPLE)
|
ENDIF(APPLE)
|
||||||
|
|
||||||
OPTION(AQUARIA_BETAEXPIRE "This build should expire in 30 days." FALSE)
|
# HACK: in case mingw is not correctly detected, fix this.
|
||||||
IF(AQUARIA_BETAEXPIRE)
|
IF(${CMAKE_GENERATOR} MATCHES ".*[mM][iI][nN][gG][wW].*") # really ugly hack to match "mingw" case-insensitive
|
||||||
EXECUTE_PROCESS(
|
set(MINGW 1)
|
||||||
COMMAND date +%s
|
message(STATUS "!! Using MinGW hack !!")
|
||||||
OUTPUT_VARIABLE BUILD_TIMESTAMP
|
ENDIF()
|
||||||
ERROR_QUIET
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
IF(WIN32)
|
||||||
)
|
OPTION(AQUARIA_NO_CONSOLE "No console window?" FALSE)
|
||||||
ADD_DEFINITIONS(-DBETAEXPIRE=${BUILD_TIMESTAMP})
|
ENDIF(WIN32)
|
||||||
ENDIF(AQUARIA_BETAEXPIRE)
|
|
||||||
|
|
||||||
# No Steamworks SDK for Linux at the moment. Roll our own achievements.
|
# No Steamworks SDK for Linux at the moment. Roll our own achievements.
|
||||||
ADD_DEFINITIONS(-DBBGE_BUILD_ACHIEVEMENTS_INTERNAL=1)
|
ADD_DEFINITIONS(-DBBGE_BUILD_ACHIEVEMENTS_INTERNAL=1)
|
||||||
|
@ -134,17 +133,15 @@ if (NOT SDL_FOUND)
|
||||||
set(SDLDIR "${EXTLIBDIR}/SDL12")
|
set(SDLDIR "${EXTLIBDIR}/SDL12")
|
||||||
set(SDL_INCLUDE_DIR "${SDLDIR}/include")
|
set(SDL_INCLUDE_DIR "${SDLDIR}/include")
|
||||||
message(STATUS "Using internal copy of SDL")
|
message(STATUS "Using internal copy of SDL")
|
||||||
set(SDL_LIBRARY "${SDLDIR}/lib/macosx/libSDL-1.2.0.dylib;${SDLDIR}/lib/macosx/libSDLmain.a")
|
set(SDL_LIBRARY "${SDLDIR}/lib/macosx/libSDL-1.2.0.dylib")
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
if(MSVC)
|
|
||||||
set(SDLDIR "${EXTLIBDIR}/SDL12")
|
set(SDLDIR "${EXTLIBDIR}/SDL12")
|
||||||
set(SDL_INCLUDE_DIR "${SDLDIR}/include" CACHE PATH "SDL include directory" FORCE)
|
set(SDL_INCLUDE_DIR "${SDLDIR}/include" CACHE PATH "SDL include directory" FORCE)
|
||||||
message(STATUS "Using internal copy of SDL")
|
message(STATUS "Using internal copy of SDL")
|
||||||
set(SDLMAIN_LIBRARY "${SDLDIR}/lib/win32/SDLmain.lib" CACHE INTERNAL "")
|
if(MSVC)
|
||||||
set(SDL_LIBRARY_TEMP "${SDLDIR}/lib/win32/SDL.lib" CACHE INTERNAL "")
|
set(SDL_LIBRARY "${SDLDIR}/lib/win32/SDL.lib" CACHE PATH "Where the SDL library can be found")
|
||||||
set(SDL_LIBRARY ${SDLMAIN_LIBRARY} ${SDL_LIBRARY_TEMP} CACHE STRING "Where the SDL library can be found")
|
|
||||||
else(MSVC)
|
else(MSVC)
|
||||||
message(SEND_ERROR "We don't have a prebuilt SDL for this environment.")
|
set(SDL_LIBRARY "${SDLDIR}/lib/win32/libSDL.dll.a" CACHE PATH "Where the SDL library can be found")
|
||||||
endif(MSVC)
|
endif(MSVC)
|
||||||
else(MACOSX)
|
else(MACOSX)
|
||||||
message(SEND_ERROR "We don't have a prebuilt SDL for this platform.")
|
message(SEND_ERROR "We don't have a prebuilt SDL for this platform.")
|
||||||
|
@ -159,14 +156,10 @@ if(NOT AQUARIA_INTERNAL_OPENAL)
|
||||||
endif(NOT AQUARIA_INTERNAL_OPENAL)
|
endif(NOT AQUARIA_INTERNAL_OPENAL)
|
||||||
if (NOT OPENAL_FOUND)
|
if (NOT OPENAL_FOUND)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(MSVC)
|
|
||||||
set(OPENALDIR "${EXTLIBDIR}/AL")
|
set(OPENALDIR "${EXTLIBDIR}/AL")
|
||||||
set(OPENAL_INCLUDE_DIR "${OPENALDIR}/include" CACHE PATH "OpenAL include directory" FORCE)
|
set(OPENAL_INCLUDE_DIR "${OPENALDIR}/include" CACHE PATH "OpenAL include directory" FORCE)
|
||||||
message(STATUS "Using internal copy of OpenAL")
|
message(STATUS "Using internal copy of OpenAL")
|
||||||
set(OPENAL_LIBRARY "${OPENALDIR}/lib/win32/OpenAL32.lib" CACHE FILEPATH "Where the OpenAL library can be found" FORCE)
|
set(OPENAL_LIBRARY "${OPENALDIR}/lib/win32/OpenAL32.lib" CACHE FILEPATH "Where the OpenAL library can be found" FORCE)
|
||||||
else(MSVC)
|
|
||||||
message(SEND_ERROR "We don't have a prebuilt OpenAL for this environment.")
|
|
||||||
endif(MSVC)
|
|
||||||
else(WIN32)
|
else(WIN32)
|
||||||
message(SEND_ERROR "We don't have a prebuilt OpenAL for this platform.")
|
message(SEND_ERROR "We don't have a prebuilt OpenAL for this platform.")
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
|
@ -185,8 +178,6 @@ INCLUDE_DIRECTORIES(${OGGVORBIS_INCLUDE_DIRS})
|
||||||
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
|
||||||
INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR})
|
||||||
|
|
||||||
# !!! FIXME: don't use fmod!
|
|
||||||
#INCLUDE_DIRECTORIES("${BBGEDIR}/fmodapi42604linux64/api/inc")
|
|
||||||
|
|
||||||
# Custom build ID: e.g. "-custom", " (my very own build)"
|
# Custom build ID: e.g. "-custom", " (my very own build)"
|
||||||
SET(AQUARIA_CUSTOM_BUILD_ID "" CACHE STRING
|
SET(AQUARIA_CUSTOM_BUILD_ID "" CACHE STRING
|
||||||
|
@ -196,9 +187,11 @@ if (NOT(AQUARIA_CUSTOM_BUILD_ID STREQUAL ""))
|
||||||
endif (NOT(AQUARIA_CUSTOM_BUILD_ID STREQUAL ""))
|
endif (NOT(AQUARIA_CUSTOM_BUILD_ID STREQUAL ""))
|
||||||
|
|
||||||
# Aquaria/BBGE specific defines...
|
# Aquaria/BBGE specific defines...
|
||||||
|
|
||||||
ADD_DEFINITIONS(-DGL_GLEXT_LEGACY=1)
|
ADD_DEFINITIONS(-DGL_GLEXT_LEGACY=1)
|
||||||
ADD_DEFINITIONS(-DHAVE_PUTENV=1)
|
ADD_DEFINITIONS(-DHAVE_PUTENV=1)
|
||||||
ADD_DEFINITIONS(-DTIXML_USE_STL=1)
|
ADD_DEFINITIONS(-DTIXML_USE_STL=1)
|
||||||
|
ADD_DEFINITIONS(-DBBGE_SKIP_CONFIG_HEADERS=1) # if this is not defined, it will use .h files to set the necessary defines
|
||||||
ADD_DEFINITIONS(-DBBGE_BUILD_SDL=1)
|
ADD_DEFINITIONS(-DBBGE_BUILD_SDL=1)
|
||||||
ADD_DEFINITIONS(-DBBGE_BUILD_FRAMEBUFFER=1)
|
ADD_DEFINITIONS(-DBBGE_BUILD_FRAMEBUFFER=1)
|
||||||
#ADD_DEFINITIONS(-DBBGE_BUILD_SHADERS=1)
|
#ADD_DEFINITIONS(-DBBGE_BUILD_SHADERS=1)
|
||||||
|
@ -221,7 +214,10 @@ ENDIF(MACOSX)
|
||||||
|
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
ADD_DEFINITIONS(-DBBGE_BUILD_WINDOWS=1)
|
ADD_DEFINITIONS(-DBBGE_BUILD_WINDOWS=1)
|
||||||
|
IF(AQUARIA_NO_CONSOLE)
|
||||||
SET(EXETYPE WIN32)
|
SET(EXETYPE WIN32)
|
||||||
|
ADD_DEFINITIONS(-DAQUARIA_WIN32_NOCONSOLE=1)
|
||||||
|
ENDIF(AQUARIA_NO_CONSOLE)
|
||||||
ENDIF(WIN32)
|
ENDIF(WIN32)
|
||||||
|
|
||||||
|
|
||||||
|
@ -424,6 +420,13 @@ SET(BBGE_SRCS_UNUSED
|
||||||
${BBGEDIR}/PointSprites.cpp
|
${BBGEDIR}/PointSprites.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
IF(MINGW)
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(
|
||||||
|
${BBGEDIR}/FmodOpenALBridge.cpp
|
||||||
|
PROPERTIES COMPILE_FLAGS "-fpermissive"
|
||||||
|
)
|
||||||
|
ENDIF(MINGW)
|
||||||
|
|
||||||
SET(FTGL_SRCS
|
SET(FTGL_SRCS
|
||||||
${FTGLSRCDIR}/FTCharmap.cpp
|
${FTGLSRCDIR}/FTCharmap.cpp
|
||||||
${FTGLSRCDIR}/FTContour.cpp
|
${FTGLSRCDIR}/FTContour.cpp
|
||||||
|
|
|
@ -63,7 +63,7 @@ typedef size_t uintptr_t;
|
||||||
/* Enable the dummy video driver (src/video/dummy/\*.c) */
|
/* Enable the dummy video driver (src/video/dummy/\*.c) */
|
||||||
#define SDL_VIDEO_DRIVER_DUMMY 1
|
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
#ifdef _WINDOWS
|
#if defined(_WINDOWS) || defined(_WIN32)
|
||||||
#define SDL_VIDEO_DRIVER_WINDIB 1
|
#define SDL_VIDEO_DRIVER_WINDIB 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue