2016-04-16 00:50:31 +02:00
|
|
|
# determines the JavaScript provider (either Qt Script or Qt Declarative)
|
|
|
|
|
2017-02-11 02:31:43 +01:00
|
|
|
if(TARGET_CONFIG_DONE)
|
|
|
|
message(FATAL_ERROR "Can not include JsProviderConfig module when targets are already configured.")
|
|
|
|
endif()
|
|
|
|
|
2016-08-29 15:41:11 +02:00
|
|
|
include(QtLinkage)
|
|
|
|
|
2016-04-16 00:50:31 +02:00
|
|
|
set(JS_PROVIDER "auto" CACHE STRING "specifies the JavaScript provider: auto (default), qml, script or none")
|
2016-11-08 19:57:57 +01:00
|
|
|
if(NOT JS_PROVIDER OR "${JS_PROVIDER}" STREQUAL "auto")
|
2016-10-29 00:26:06 +02:00
|
|
|
find_qt5_module(Script OPTIONAL)
|
|
|
|
if(QT5_Script_FOUND)
|
|
|
|
set(JS_PROVIDER Script)
|
2016-11-08 19:57:57 +01:00
|
|
|
set(JS_DEFINITION "${META_PROJECT_VARNAME_UPPER}_USE_SCRIPT")
|
2016-07-16 23:12:02 +02:00
|
|
|
list(APPEND ADDITIONAL_QT_REPOS "script")
|
2016-04-16 00:50:31 +02:00
|
|
|
message(STATUS "No JavaScript provider explicitly specified, defaulting to Qt Script.")
|
|
|
|
else()
|
2016-10-29 00:26:06 +02:00
|
|
|
find_qt5_module(Qml OPTIONAL)
|
|
|
|
if(QT5_Qml_FOUND)
|
|
|
|
set(JS_PROVIDER Qml)
|
2016-11-08 19:57:57 +01:00
|
|
|
set(JS_DEFINITION "${META_PROJECT_VARNAME_UPPER}_USE_JSENGINE")
|
2016-07-16 23:12:02 +02:00
|
|
|
list(APPEND ADDITIONAL_QT_REPOS "declarative")
|
2016-07-09 23:52:43 +02:00
|
|
|
message(STATUS "No JavaScript provider explicitly specified, defaulting to Qt QML.")
|
|
|
|
else()
|
2016-07-10 00:22:20 +02:00
|
|
|
set(JS_PROVIDER "")
|
2016-11-08 19:57:57 +01:00
|
|
|
set(JS_DEFINITION "${META_PROJECT_VARNAME_UPPER}_NO_JSENGINE")
|
2016-07-09 23:52:43 +02:00
|
|
|
message(STATUS "No JavaScript provider available, features requiring JavaScript have been disabled.")
|
|
|
|
endif()
|
2016-04-16 00:50:31 +02:00
|
|
|
endif()
|
|
|
|
else()
|
|
|
|
if(${JS_PROVIDER} STREQUAL "script")
|
2016-10-29 00:26:06 +02:00
|
|
|
find_qt5_module(Script REQUIRED)
|
2016-11-08 19:57:57 +01:00
|
|
|
set(JS_PROVIDER Script)
|
|
|
|
set(JS_DEFINITION "${META_PROJECT_VARNAME_UPPER}_USE_SCRIPT")
|
2016-07-16 23:12:02 +02:00
|
|
|
list(APPEND ADDITIONAL_QT_REPOS "script")
|
2016-04-16 00:50:31 +02:00
|
|
|
message(STATUS "Using Qt Script as JavaScript provider.")
|
|
|
|
elseif(${JS_PROVIDER} STREQUAL "qml")
|
2016-10-29 00:26:06 +02:00
|
|
|
find_qt5_module(Qml REQUIRED)
|
|
|
|
set(JS_PROVIDER Qml)
|
2016-11-08 19:57:57 +01:00
|
|
|
set(JS_DEFINITION "${META_PROJECT_VARNAME_UPPER}_USE_JSENGINE")
|
2016-07-16 23:12:02 +02:00
|
|
|
list(APPEND ADDITIONAL_QT_REPOS "declarative")
|
2016-04-16 00:50:31 +02:00
|
|
|
message(STATUS "Using Qt QML as JavaScript provider.")
|
|
|
|
elseif(${JS_PROVIDER} STREQUAL "none")
|
2016-04-21 23:58:52 +02:00
|
|
|
set(JS_PROVIDER "")
|
2016-11-08 19:57:57 +01:00
|
|
|
set(JS_DEFINITION "${META_PROJECT_VARNAME_UPPER}_NO_JSENGINE")
|
2016-04-16 00:50:31 +02:00
|
|
|
message(STATUS "JavaScript provider has been disabled.")
|
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "The specified JavaScript provider '${JS_PROVIDER}' is unknown.")
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2016-10-29 00:26:06 +02:00
|
|
|
if(JS_PROVIDER)
|
2016-11-08 19:57:57 +01:00
|
|
|
use_qt5_module(${JS_PROVIDER} REQUIRED)
|
2016-10-29 00:26:06 +02:00
|
|
|
endif()
|
2016-11-08 19:57:57 +01:00
|
|
|
list(APPEND META_PRIVATE_COMPILE_DEFINITIONS ${JS_DEFINITION})
|