diff -r f87ed83568c8 -r 71bdf987e41f CMakeLists.txt --- 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)