--- a/CMakeLists.txt Thu Apr 21 11:54:21 2016 -0400
+++ b/CMakeLists.txt Thu Apr 21 11:55:36 2016 -0400
@@ -51,6 +51,22 @@
option(NOVERSIONINFOUPDATE "Disable update of version_info.txt. To be used if source is in a git/repo that is NOT the hedgewars repo" OFF)
+
+if(BUILD_ENGINE_JS)
+ if(NOT CMAKE_TOOLCHAIN_FILE)
+ message(FATAL_ERROR "Missing emscripten toolchain file\nRerun cmake with -DCMAKE_TOOLCHAIN_FILE=${CMAKE_SOURCE_DIR}/cmake_modules/Platform/Emscripten.cmake")
+ endif()
+
+ set(BUILD_ENGINE_C ON CACHE STRING "Required for BUILD_ENGINE_JS" FORCE)
+ set(NOAUTOUPDATE ON CACHE STRING "Required for BUILD_ENGINE_JS" FORCE)
+ set(PHYSFS_SYSTEM OFF CACHE STRING "Required for BUILD_ENGINE_JS" FORCE)
+ set(LUA_SYSTEM OFF CACHE STRING "Required for BUILD_ENGINE_JS" FORCE)
+ set(NOVIDEOREC ON CACHE STRING "Required for BUILD_ENGINE_JS" FORCE)
+ set(NOSERVER ON CACHE STRING "Required for BUILD_ENGINE_JS" FORCE)
+ set(GL2 ON CACHE STRING "Required for BUILD_ENGINE_JS" FORCE)
+ set(BUILD_SHARED_LIBS OFF CACHE STRING "Required for BUILD_ENGINE_JS" FORCE)
+endif()
+
#system paths for finding required fonts (see share/hedgewars/Data/fonts)
#subdirectories will NOT be searched.
#all fonts that can't be found will be bundled with hedgewars
@@ -91,7 +107,10 @@
#perform safe check that enable/disable compilation features
-include(${CMAKE_MODULE_PATH}/compilerchecks.cmake)
+#skip when crosscompiling to javascript
+if(NOT BUILD_ENGINE_JS)
+ include(${CMAKE_MODULE_PATH}/compilerchecks.cmake)
+endif()
#set default compiler flags
add_flag_append(CMAKE_C_FLAGS "-Wall -pipe")
@@ -136,7 +155,7 @@
#build engine without freepascal
-if(BUILD_ENGINE_C)
+if(BUILD_ENGINE_C AND NOT BUILD_ENGINE_JS)
find_package(Clang REQUIRED)
if(${CLANG_VERSION} VERSION_LESS "3.0")
@@ -226,9 +245,6 @@
else()
#main pascal engine
add_subdirectory(hedgewars)
- if(BUILD_ENGINE_JS)
- message(FATAL_ERROR "This option needs BUILD_ENGINE_C to be set")
- endif()
endif()
#Android related build scripts
@@ -236,9 +252,13 @@
if(ANDROID)
add_subdirectory(project_files/Android-build)
else(ANDROID)
+ #skip frontend for javascript
+ if(NOT BUILD_ENGINE_JS)
+ add_subdirectory(QTfrontend)
+ add_subdirectory(share)
+ endif()
+
add_subdirectory(bin)
- add_subdirectory(QTfrontend)
- add_subdirectory(share)
add_subdirectory(tools)
endif(ANDROID)