Worked on windows and emscripten builds, still not perfect.

This commit is contained in:
xawotihs
2015-10-24 23:33:31 +02:00
parent daabce1d2f
commit 579d612397
9 changed files with 49 additions and 21 deletions

6
.gitmodules vendored Normal file
View File

@@ -0,0 +1,6 @@
[submodule "thirdparty/zlib"]
path = thirdparty/zlib
url = https://github.com/madler/zlib
[submodule "thirdparty/SDL2"]
path = thirdparty/SDL2
url = https://github.com/emscripten-ports/SDL2.git

View File

@@ -85,7 +85,7 @@ if(PSP)
WAGIC_OPTION(backend_psp "build for psp" ON)
endif()
if(WIN32 OR ANDROID OR UNIX)
WAGIC_OPTION(backend_sdl "build for sdl" (WIN32 OR ANDROID))
WAGIC_OPTION(backend_sdl "build for sdl" (WIN32 OR ANDROID OR EMSCRIPTEN))
endif()
if(NOT backend_sdl AND UNIX AND NOT ANDROID)
WAGIC_OPTION(backend_qt_console "build qt-console version with testsuit" ON)
@@ -93,12 +93,13 @@ if(NOT backend_sdl AND UNIX AND NOT ANDROID)
endif()
#third party build options
WAGIC_OPTION(BUILD_ZLIB "build zlib from source" WIN32)
WAGIC_OPTION(BUILD_JPEG "build jpeg from source" (WIN32 OR APPLE OR PSP OR ANDROID))
WAGIC_OPTION(BUILD_PNG "build png from source" (WIN32 OR APPLE OR PSP OR ANDROID))
WAGIC_OPTION(BUILD_ZLIB "build zlib from source" WIN32 OR EMSCRIPTEN)
WAGIC_OPTION(BUILD_JPEG "build jpeg from source" (WIN32 OR APPLE OR PSP OR ANDROID OR EMSCRIPTEN))
WAGIC_OPTION(BUILD_PNG "build png from source" (WIN32 OR APPLE OR PSP OR ANDROID OR EMSCRIPTEN))
WAGIC_OPTION(BUILD_UNZIP "build unzip from source" ON)
WAGIC_OPTION(BUILD_TINYXML "build tinyxml from source" (WIN32 OR APPLE OR PSP OR ANDROID))
WAGIC_OPTION(BUILD_TINYXML "build tinyxml from source" (WIN32 OR APPLE OR PSP OR ANDROID OR EMSCRIPTEN))
WAGIC_OPTION(BUILD_ZIPFS "build zipfs from source" ON)
WAGIC_OPTION(BUILD_SDL2 "build SDL2 from source" (backend_sdl AND (WIN32 OR ANDROID OR EMSCRIPTEN)))
#project options
if(ANDROID)
@@ -145,6 +146,8 @@ elseif(UNIX)
include(platforms/unix/configure.cmake)
elseif(ANDROID)
include(platforms/android/configure.cmake)
elseif(EMSCRIPTEN)
include(platforms/emscripten/configure.cmake)
endif()
#set backend dependend configurations
@@ -159,7 +162,6 @@ elseif(backend_sdl)
endif()
# find or build 3rd party libraries
FindOrBuildZLIB()
FindOrBuildOpenGL()
FindOrBuildTinyXML()
@@ -200,3 +202,7 @@ add_subdirectory(projects/mtg)
if(BUILD_ANDROID_PACKAGE)
add_subdirectory(platforms/android/package)
endif()
if(EMSCRIPTEN)
set(CMAKE_EXECUTABLE_SUFFIX ".html")
endif()

View File

@@ -24,15 +24,23 @@ macro(FindOrBuildTinyXML)
endmacro()
macro(FindOrBuildSDL2)
if(ANDROID)
set(ENV{SDL2DIR} "$ENV{ANDROID_SDL2_ROOT};$ENV{ANDROID_SDL2_ROOT}/libs/${ANDROID_NDK_ABI_NAME}/")
elseif(WIN32 OR UNIX)
# set(ENV{SDL2DIR} $ENV{WIN_SDL2_ROOT})
if(BUILD_SDL2)
if(WIN32)
#SDL2 DirectX build is somehow broken...
set(SDL_AUDIO FALSE)
set(SDL_JOYSTICK FALSE)
set(SDL_HAPTIC FALSE)
set(SDL_SHARED FALSE)
endif()
add_subdirectory(${CMAKE_SOURCE_DIR}/thirdparty/SDL2)
set(SDL2_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/SDL2/include ${CMAKE_BINARY_DIR}/thirdparty/SDL2)
set(SDL2_LIBRARY SDL2)
else()
find_package(SDL2)
if(EMSCRIPTEN OR WIN32)
set(SDL2_LIBRARY SDL2-static)
else()
set(SDL2_LIBRARY SDL2)
endif()
elseif(NOT EMSCRIPTEN)
find_package(SDL2)
endif()
endmacro()
@@ -90,7 +98,7 @@ endmacro()
macro(FindOrBuildZLIB)
if(BUILD_ZLIB)
add_subdirectory(${CMAKE_SOURCE_DIR}/thirdparty/zlib)
add_subdirectory(${CMAKE_SOURCE_DIR}/thirdparty/zlib)
set(ZLIB_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/thirdparty/zlib ${CMAKE_BINARY_DIR}/thirdparty/zlib)
set(ZLIB_LIBRARIES zlib)
else()
@@ -142,7 +150,8 @@ endmacro()
macro(FindOrBuildPNG)
if(BUILD_PNG)
add_subdirectory(${CMAKE_SOURCE_DIR}/thirdparty/libpng ${CMAKE_BINARY_DIR}/thirdparty/libpng)
find_path(PNG_INCLUDE_DIRS NAMES png.h HINTS ${CMAKE_SOURCE_DIR}/thirdparty/libpng)
set(PNG_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/thirdparty/libpng)
# find_path(PNG_INCLUDE_DIRS NAMES png.h HINTS ${CMAKE_SOURCE_DIR}/thirdparty/libpng)
set(PNG_LIBRARIES png)
else()
if(WIN32)
@@ -202,6 +211,8 @@ macro(FindOrBuildOpenGL)
if(ANDROID)
#find openglesv on android
set(OPENGL_LIBRARIES "-ldl -lGLESv1_CM -lGLESv2 -llog -landroid")
elseif(EMSCRIPTEN)
set(OPENGL_LIBRARIES "")
else()
find_package(OpenGL)
# find_package(GLUT)

View File

@@ -101,7 +101,7 @@ if(backend_qt_widget)
endif()
if(backend_sdl)
if(UNIX AND NOT ANDROID)
if((UNIX OR EMSCRIPTEN) AND NOT ANDROID)
set(JGE_INTERNAL_INCLUDE_DIRS ${TINYXML_INCLUDE_DIR} ${ZIPFS_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIR}
${SDL2_INCLUDE_DIR} ${UNZIP_INCLUDE_DIR} ${PNG_INCLUDE_DIRS} ${JPEG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS})
set(JGE_SOURCES ${JGE_generic_src} ${JGE_graphics_src} ${JGE_linux_src} ${JGE_hge_src})
@@ -119,7 +119,7 @@ if(backend_sdl)
${UNZIP_INCLUDE_DIR} ${PNG_INCLUDE_DIRS} ${JPEG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/thirdparty/binary/win/include)
set(JGE_SOURCES ${JGE_generic_src} ${JGE_graphics_src} ${JGE_linux_src} ${JGE_hge_src})
set(JGE_LINK_LIBRARIES ${ZIPFS_LIBRARY} ${UNZIP_LIRARY} ${JPEG_LIBRARY} ${PNG_LIBRARIES})
set(JGE_LINK_DIRECTORIES ${Boost_LIBRARY_DIR} ${SDL2_LIBRARY_DIR})
set(JGE_LINK_DIRECTORIES ${Boost_LIBRARY_DIR})
endif()
endif()

View File

@@ -12,7 +12,7 @@
#if (!defined IOS) && (!defined QT_CONFIG)
#ifdef WIN32
#pragma warning(disable : 4786)
#pragma comment( lib, "giflib.lib" )
//#pragma comment( lib, "giflib.lib" )
#endif
#include <png.h>

View File

@@ -0,0 +1,3 @@
set_target_properties(wagic PROPERTIES LINK_FLAGS "-s USE_SDL=2")
set(CMAKE_CXX_FLAGS "-s USE_SDL=2")
set(CMAKE_EXECUTABLE_SUFFIX ".html")

View File

@@ -166,8 +166,8 @@ elseif(backend_qt_widget)
message(FATAL_ERROR "qt-widget bilds are only supported on unix platforms")
endif()
elseif(backend_sdl)
if(UNIX AND NOT ANDROID)
include_directories(${MTG_INCLUDE_DIRS} ${JGE_INCLUDE_DIRS} ${SDL2_INCLUDE_DIR} ${ZIPFS_INCLUDE_DIR} ${UNZIP_INCLUDE_DIR} ${HGE_INCLUDE_DIR} ${TINYXML_INCLUDE_DIR})
if((UNIX OR EMSCRIPTEN) AND NOT ANDROID)
include_directories(${MTG_INCLUDE_DIRS} ${JGE_INCLUDE_DIRS} ${SDL2_INCLUDE_DIR} ${ZIPFS_INCLUDE_DIR} ${UNZIP_INCLUDE_DIR} ${HGE_INCLUDE_DIR} ${TINYXML_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS})
add_executable(wagic ${MTG_generic_src} ${MTG_sdl_src})
target_link_libraries(wagic ${JGE_LIBRARY} ${SDL2_LIBRARY} ${OPENGL_LIBRARIES} ${TINYXML_LIBRARIES} ${HGE_LIBRARY} ${ZLIB_LIBRARIES})
elseif(ANDROID)
@@ -188,7 +188,7 @@ elseif(backend_sdl)
add_executable(wagic ${MTG_generic_src} ${MTG_sdl_src} src/TestSuiteAI.cpp src/AIPlayerBakaB.cpp)
link_directories(${Boost_LIBRARY_DIR} ${SDL2_LIBRARY_DIR})
target_link_libraries(wagic ${JGE_LIBRARY} ${SDL2_LIBRARY} ${OPENGL_LIBRARIES} ${TINYXML_LIBRARIES}
${BOOST_date_time} ${HGE_LIBRARY} ${CMAKE_SOURCE_DIR}/thirdparty/binary/win/lib/fmodvc.lib)
${BOOST_date_time} ${HGE_LIBRARY} ${CMAKE_SOURCE_DIR}/thirdparty/binary/win/lib/fmodvc.lib ${ZLIB_LIBRARIES})
endif()
elseif(backend_psp)
if(PSP)

1
thirdparty/SDL2 vendored Submodule

Submodule thirdparty/SDL2 added at e60718c37e

1
thirdparty/zlib vendored Submodule

Submodule thirdparty/zlib added at 5089329162