emscripten Humble Cloud interface
Edward Rudd
2014-08-19 6cb3cee3c6cf50bd29d7e183bdf39fb0be93cf24

move emscripten compilation methods into the main CreateProgram and use the helper functions from the emscripten toolchain

3 files modified
41 ■■■■ changed files
CMakeLists.txt 8 ●●●● patch | view | raw | blame | history
cmake/BoilerPlate.cmake 2 ●●● patch | view | raw | blame | history
cmake/UtilityFunctions.cmake 31 ●●●●● patch | view | raw | blame | history
CMakeLists.txt
@@ -7,11 +7,7 @@
CreateProgram(TestApp
FILES
    main.cpp
JS_LIBS
    ${CMAKE_CURRENT_SOURCE_DIR}/humble_cloud.js
)
if(EMSCRIPTEN)
    SetupEmscriptenTestPage(TestApp
        JS_LIBS
            ${CMAKE_CURRENT_SOURCE_DIR}/humble_cloud.js
    )
endif()
cmake/BoilerPlate.cmake
@@ -43,7 +43,7 @@
if(EMSCRIPTEN)
    set(PLATFORM_PREFIX             "emscripten")
    set(CMAKE_EXECUTABLE_SUFFIX     ".bc")
    set(CMAKE_EXECUTABLE_SUFFIX     ".js")
elseif(LINUX)
    set(PLATFORM_PREFIX             "linux")
    if(CMAKE_SIZEOF_VOID_P MATCHES "8" AND NOT(FORCE32) )
cmake/UtilityFunctions.cmake
@@ -82,6 +82,12 @@
            set(_mode "link")
        elseif(dir STREQUAL "PROPERTIES")
            set(_mode "properties")
        elseif(dir STREQUAL "ASM_FLAG")
            set(_mode "em_asmflag")
        elseif(dir STREQUAL "PRE_JS")
            set(_mode "em_prejs")
        elseif(dir STREQUAL "JS_LIBS")
            set(_mode "em_jslib")
        else()
            if(_mode STREQUAL "excl")
                file(GLOB _files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
@@ -131,6 +137,18 @@
                        ${_files}
                    )
                endif()
            elseif(_mode STREQUAL "em_asmflag")
                list(APPEND _em_asmflag
                    "-s ${dir}"
                )
            elseif(_mode STREQUAL "em_prejs")
                list(APPEND _em_prejs
                    ${dir}
                )
            elseif(_mode STREQUAL "em_jslib")
                list(APPEND _em_jslib
                    ${dir}
                )
            else()
                message(FATAL_ERROR "Unknown Mode ${_mode}")
            endif()
@@ -193,6 +211,19 @@
            ${_properties}
        )
    endif()
    if(EMSCRIPTEN)
        if(_em_jslib)
            em_link_js_library(${name} ${_em_jslib})
        endif()
        if(_em_prejs)
            em_link_pre_js(${name} ${_em_prejs})
        endif()
        if(_em_asmflag)
            target_link_libraries(${name}
                ${_em_asmflag}
            )
        endif()
    endif()
endfunction()
## These two power functions build up library and program targets