cmake_modules/FindEmscripten.cmake
author sheepluva
Mon, 05 Aug 2019 00:20:45 +0200
changeset 15300 f382ec6dba11
parent 11659 870f22de388b
permissions -rw-r--r--
In hindsight my emscripten-ifdef (70d416a8f63f) is nonsense. As fpcrtl_glShaderSource() would not be defined and lead to compiling issues. So either it's 3 ifdefs (in pas2cRedo, pas2cSystem and misc.c), in order to toggle between fpcrtl_ and the native function, or alternatively have no ifdef for it at all. I'm going with none at all, which means emscripten will compile with the original (const) function prototype, being wrapped by the fpcrtl_ function, same as non-emscripten builds.

# - Try to find the Clang/LLVM executable
# Once done this will define
#
#  EMSCRIPTEN_FOUND       - system has Clang
#  EMSCRIPTEN_VERSION     - Clang version
#  EMSCRIPTEN_EXECUTABLE  - Clang executable
#
# Copyright (c) 2013, Vittorio Giovara <vittorio.giovara@gmail.com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.

find_program(EMSCRIPTEN_EXECUTABLE
        NAMES emcc
        PATHS /opt/local/bin /usr/local/bin /usr/bin)

if (EMSCRIPTEN_EXECUTABLE)
    execute_process(COMMAND ${EMSCRIPTEN_EXECUTABLE} -v
                    OUTPUT_VARIABLE EMSCRIPTEN_VERSION_OUTPUT
                    ERROR_VARIABLE EMSCRIPTEN_VERSION_ERROR
                    RESULT_VARIABLE EMSCRIPTEN_VERSION_RESULT
                    OUTPUT_STRIP_TRAILING_WHITESPACE
                    )

    if(${EMSCRIPTEN_VERSION_RESULT} EQUAL 0)
        string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" EMSCRIPTEN_VERSION "${EMSCRIPTEN_VERSION_OUTPUT}")
        string(REGEX REPLACE "([0-9]+\\.[0-9]+\\.[0-9]+)" "\\1" EMSCRIPTEN_VERSION "${EMSCRIPTEN_VERSION}")
    else()
        message(SEND_ERROR "Command \"${EMSCRIPTEN_EXECUTABLE} --version\" failed with output: ${EMSCRIPTEN_VERSION_ERROR}")
    endif()
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Emscripten DEFAULT_MSG EMSCRIPTEN_EXECUTABLE EMSCRIPTEN_VERSION)
mark_as_advanced(EMSCRIPTEN_VERSION)