Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set(EMSCRIPTEN_PREFIX "${PROJECT_SOURCE_DIR}/emscripten/emsdk/emscripten/1.38.28/")
- set(_WEBAPPLICATION_HTML "${PROJECT_SOURCE_DIR}/platforms/web/Application.html")
- set(MAGNUM_EMSCRIPTENAPPLICATION_JS "${PROJECT_SOURCE_DIR}/platforms/web/EmscriptenApplication.js")
- set(MAGNUM_WINDOWLESSEMSCRIPTENAPPLICATION_JS ${MAGNUM_EMSCRIPTENAPPLICATION_JS})
- set(MAGNUM_WEBAPPLICATION_CSS "${PROJECT_SOURCE_DIR}/platforms/web/WebApplication.css")
- set(_DEPLOY_DIR "${PROJECT_SOURCE_DIR}/deploy/")
- set(CMAKE_SYSTEM_NAME Emscripten)
- # Help CMake find the platform file
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/../modules)
- if(NOT EMSCRIPTEN_PREFIX)
- if(DEFINED ENV{EMSCRIPTEN})
- file(TO_CMAKE_PATH "$ENV{EMSCRIPTEN}" EMSCRIPTEN_PREFIX)
- else()
- set(EMSCRIPTEN_PREFIX "/usr/lib/emscripten")
- endif()
- endif()
- set(EMSCRIPTEN_TOOLCHAIN_PATH "${EMSCRIPTEN_PREFIX}/system")
- if(CMAKE_HOST_WIN32)
- set(EMCC_SUFFIX ".bat")
- else()
- set(EMCC_SUFFIX "")
- endif()
- set(CMAKE_C_COMPILER "${EMSCRIPTEN_PREFIX}/emcc${EMCC_SUFFIX}")
- set(CMAKE_CXX_COMPILER "${EMSCRIPTEN_PREFIX}/em++${EMCC_SUFFIX}")
- set(CMAKE_AR "${EMSCRIPTEN_PREFIX}/emar${EMCC_SUFFIX}" CACHE FILEPATH "Emscripten ar")
- set(CMAKE_RANLIB "${EMSCRIPTEN_PREFIX}/emranlib${EMCC_SUFFIX}" CACHE FILEPATH "Emscripten ranlib")
- set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH}
- "${EMSCRIPTEN_TOOLCHAIN_PATH}"
- "${EMSCRIPTEN_PREFIX}")
- set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
- set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
- set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
- # Otherwise FindCorrade fails to find _CORRADE_MODULE_DIR. Why the heck is this
- # not implicit is beyond me.
- set(CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_FIND_ROOT_PATH})
- # Since some unspecified release, -s WASM=1 is the default, so we need to
- # explicitly say -s WASM=0 to use asm.js. The *_INIT variables are available
- # since CMake 3.7, so it won't work in earlier versions. Sorry.
- cmake_minimum_required(VERSION 3.7)
- set(CMAKE_CXX_FLAGS_INIT "-s WASM=0")
- set(CMAKE_EXE_LINKER_FLAGS_INIT "-s WASM=0")
- set(CMAKE_CXX_FLAGS_RELEASE_INIT "-DNDEBUG -O3")
- set(CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT "-O3 --llvm-lto 1")
- find_package(MagnumIntegration REQUIRED ImGui)
- set(CORRADE_TARGET_EMSCRIPTEN 1)
- find_package(Magnum REQUIRED GL Sdl2Application)
- #set(CMAKE_TOOLCHAIN_FILE "${PROJECT_SOURCE_DIR}/toolchains/generic/Emscripten.cmake")
- #set(CMAKE_INSTALL_PREFIX "${EMSCRIPTEN_PREFIX}/system/")
- #set(CMAKE_PREFIX_PATH "${EMSCRIPTEN_PREFIX}/system/")
- set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS ON)
- add_executable(MyApplication main.cpp)
- target_link_libraries(MyApplication PRIVATE
- Magnum::Application
- Magnum::GL
- MagnumIntegration::ImGui)
- if(CORRADE_TARGET_EMSCRIPTEN)
- install(TARGETS MyApplication DESTINATION ${_DEPLOY_DIR})
- install(FILES
- ${_WEBAPPLICATION_HTML}
- ${_EMSCRIPTENAPPLICATION_JS}
- ${_WEBAPPLICATION_CSS}
- DESTINATION ${_DEPLOY_DIR})
- endif()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement