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) WAGIC_OPTION(backend_psp "build for psp" ON)
endif() endif()
if(WIN32 OR ANDROID OR UNIX) 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() endif()
if(NOT backend_sdl AND UNIX AND NOT ANDROID) if(NOT backend_sdl AND UNIX AND NOT ANDROID)
WAGIC_OPTION(backend_qt_console "build qt-console version with testsuit" ON) 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() endif()
#third party build options #third party build options
WAGIC_OPTION(BUILD_ZLIB "build zlib from source" WIN32) 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)) 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)) 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_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_ZIPFS "build zipfs from source" ON)
WAGIC_OPTION(BUILD_SDL2 "build SDL2 from source" (backend_sdl AND (WIN32 OR ANDROID OR EMSCRIPTEN)))
#project options #project options
if(ANDROID) if(ANDROID)
@@ -145,6 +146,8 @@ elseif(UNIX)
include(platforms/unix/configure.cmake) include(platforms/unix/configure.cmake)
elseif(ANDROID) elseif(ANDROID)
include(platforms/android/configure.cmake) include(platforms/android/configure.cmake)
elseif(EMSCRIPTEN)
include(platforms/emscripten/configure.cmake)
endif() endif()
#set backend dependend configurations #set backend dependend configurations
@@ -159,7 +162,6 @@ elseif(backend_sdl)
endif() endif()
# find or build 3rd party libraries # find or build 3rd party libraries
FindOrBuildZLIB() FindOrBuildZLIB()
FindOrBuildOpenGL() FindOrBuildOpenGL()
FindOrBuildTinyXML() FindOrBuildTinyXML()
@@ -200,3 +202,7 @@ add_subdirectory(projects/mtg)
if(BUILD_ANDROID_PACKAGE) if(BUILD_ANDROID_PACKAGE)
add_subdirectory(platforms/android/package) add_subdirectory(platforms/android/package)
endif() endif()
if(EMSCRIPTEN)
set(CMAKE_EXECUTABLE_SUFFIX ".html")
endif()

View File

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

View File

@@ -101,7 +101,7 @@ if(backend_qt_widget)
endif() endif()
if(backend_sdl) 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} 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}) ${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}) 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) ${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_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_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()
endif() endif()

View File

@@ -12,7 +12,7 @@
#if (!defined IOS) && (!defined QT_CONFIG) #if (!defined IOS) && (!defined QT_CONFIG)
#ifdef WIN32 #ifdef WIN32
#pragma warning(disable : 4786) #pragma warning(disable : 4786)
#pragma comment( lib, "giflib.lib" ) //#pragma comment( lib, "giflib.lib" )
#endif #endif
#include <png.h> #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") message(FATAL_ERROR "qt-widget bilds are only supported on unix platforms")
endif() endif()
elseif(backend_sdl) elseif(backend_sdl)
if(UNIX AND NOT ANDROID) 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}) 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}) 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}) target_link_libraries(wagic ${JGE_LIBRARY} ${SDL2_LIBRARY} ${OPENGL_LIBRARIES} ${TINYXML_LIBRARIES} ${HGE_LIBRARY} ${ZLIB_LIBRARIES})
elseif(ANDROID) elseif(ANDROID)
@@ -188,7 +188,7 @@ elseif(backend_sdl)
add_executable(wagic ${MTG_generic_src} ${MTG_sdl_src} src/TestSuiteAI.cpp src/AIPlayerBakaB.cpp) add_executable(wagic ${MTG_generic_src} ${MTG_sdl_src} src/TestSuiteAI.cpp src/AIPlayerBakaB.cpp)
link_directories(${Boost_LIBRARY_DIR} ${SDL2_LIBRARY_DIR}) link_directories(${Boost_LIBRARY_DIR} ${SDL2_LIBRARY_DIR})
target_link_libraries(wagic ${JGE_LIBRARY} ${SDL2_LIBRARY} ${OPENGL_LIBRARIES} ${TINYXML_LIBRARIES} 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() endif()
elseif(backend_psp) elseif(backend_psp)
if(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