# determines the JavaScript provider (either Qt Script or Qt Declarative) set(JS_PROVIDER "auto" CACHE STRING "specifies the JavaScript provider: auto (default), qml, script or none") if(${JS_PROVIDER} STREQUAL "auto") find_package(Qt5Script) if(Qt5Script_FOUND) set(JS_PROVIDER Qt5::Script) set(JS_DEFINITION "-D${META_PROJECT_VARNAME_UPPER}_USE_SCRIPT") message(STATUS "No JavaScript provider explicitly specified, defaulting to Qt Script.") else() find_package(Qt5Qml) if(Qt5Qml_FOUND) set(JS_PROVIDER Qt5::Qml) set(JS_DEFINITION "-D${META_PROJECT_VARNAME_UPPER}_USE_JSENGINE") message(STATUS "No JavaScript provider explicitly specified, defaulting to Qt QML.") else() message(STATUS "No JavaScript provider available, features requiring JavaScript have been disabled.") endif() endif() else() if(${JS_PROVIDER} STREQUAL "script") find_package(Qt5Script REQUIRED) set(JS_PROVIDER Qt5::Script) set(JS_DEFINITION "-D${META_PROJECT_VARNAME_UPPER}_USE_SCRIPT") message(STATUS "Using Qt Script as JavaScript provider.") elseif(${JS_PROVIDER} STREQUAL "qml") find_package(Qt5Qml REQUIRED) set(JS_PROVIDER Qt5::Qml) set(JS_DEFINITION "-D${META_PROJECT_VARNAME_UPPER}_USE_JSENGINE") message(STATUS "Using Qt QML as JavaScript provider.") elseif(${JS_PROVIDER} STREQUAL "none") set(JS_PROVIDER "") set(JS_DEFINITION "-D${META_PROJECT_VARNAME_UPPER}_NO_JSENGINE") message(STATUS "JavaScript provider has been disabled.") else() message(FATAL_ERROR "The specified JavaScript provider '${JS_PROVIDER}' is unknown.") endif() endif() list(APPEND LIBRARIES ${JS_PROVIDER}) add_definitions(${JS_DEFINITION})