diff options
47 files changed, 1912 insertions, 11 deletions
diff --git a/.prev_CMakeLists.txt b/.prev_CMakeLists.txt new file mode 100644 index 0000000..b6a05b5 --- /dev/null +++ b/.prev_CMakeLists.txt @@ -0,0 +1,15 @@ +# Generated from qtscxml.pro. + +cmake_minimum_required(VERSION 3.15.0) + +project(QtScxml + VERSION 6.0.0 + DESCRIPTION "Qt Scxml Libraries" + HOMEPAGE_URL "https://qt.io/" + LANGUAGES CXX C +) + +find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core SET_ME_TO_SOMETHING_USEFUL) +find_package(Qt6 ${PROJECT_VERSION} CONFIG OPTIONAL_COMPONENTS SET_ME_TO_SOMETHING_USEFUL) + +qt_build_repo() diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ed52112 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,17 @@ +# Generated from qtscxml.pro. + +cmake_minimum_required(VERSION 3.15.0) + +project(QtScxml + VERSION 6.0.0 + DESCRIPTION "Qt Scxml Libraries" + HOMEPAGE_URL "https://qt.io/" + LANGUAGES CXX C +) + +# special case begin +find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) +find_package(Qt6 ${PROJECT_VERSION} CONFIG OPTIONAL_COMPONENTS Qml Gui) +# special case end + +qt_build_repo() diff --git a/cmake/QtRepoSetup.cmake b/cmake/QtRepoSetup.cmake new file mode 100644 index 0000000..25ddbc1 --- /dev/null +++ b/cmake/QtRepoSetup.cmake @@ -0,0 +1,12 @@ +function(add_qt_statecharts target) + # Don't try to add statecharts when cross compiling, and the target is actually a host target + # (like a tool). + qt_is_imported_target("${target}" is_imported) + if(is_imported) + return() + endif() + + qt_parse_all_arguments(arg "add_qt_statecharts" "" "" "FILES" ${ARGN}) + + qt6_add_statecharts(${target} ${arg_FILES}) +endfunction() diff --git a/coin/module_config.yaml b/coin/module_config.yaml new file mode 100644 index 0000000..9f29e11 --- /dev/null +++ b/coin/module_config.yaml @@ -0,0 +1,13 @@ +version: 1 +accept_configuration: + condition: property + property: host.os + equals_property: target.os + +build_instructions: + - !include "{{qt/qtbase}}/prepare_building_env.yaml" + - !include "{{qt/qtbase}}/cmake_module_build_instructions.yaml" + - !include "{{qt/qtbase}}/cmake_build_and_upload_test_artifacts.yaml" + +test_instructions: + - !include "{{qt/qtbase}}/cmake_regular_test_instructions.yaml" diff --git a/configure.cmake b/configure.cmake new file mode 100644 index 0000000..53e3f11 --- /dev/null +++ b/configure.cmake @@ -0,0 +1,21 @@ + + +#### Inputs + + + +#### Libraries + + + +#### Tests + + + +#### Features + + +qt_extra_definition("QT_VERSION_STR" "\"${PROJECT_VERSION}\"" PUBLIC) +qt_extra_definition("QT_VERSION_MAJOR" ${PROJECT_VERSION_MAJOR} PUBLIC) +qt_extra_definition("QT_VERSION_MINOR" ${PROJECT_VERSION_MINOR} PUBLIC) +qt_extra_definition("QT_VERSION_PATCH" ${PROJECT_VERSION_PATCH} PUBLIC) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 0000000..a739b11 --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1,9 @@ +# Generated from examples.pro. + +qt_examples_build_begin() + +if(TARGET Qt::Scxml) + add_subdirectory(scxml) +endif() + +qt_examples_build_end() diff --git a/examples/scxml/CMakeLists.txt b/examples/scxml/CMakeLists.txt new file mode 100644 index 0000000..6e0220c --- /dev/null +++ b/examples/scxml/CMakeLists.txt @@ -0,0 +1,23 @@ +# Generated from scxml.pro. + +add_subdirectory(ftpclient) +if(TARGET Qt::Widgets) + add_subdirectory(trafficlight-widgets-static) + add_subdirectory(trafficlight-widgets-dynamic) + add_subdirectory(mediaplayer-widgets-static) + add_subdirectory(mediaplayer-widgets-dynamic) + add_subdirectory(calculator-widgets) + add_subdirectory(pinball) + add_subdirectory(sudoku) +endif() +if(TARGET Qt::Quick) + add_subdirectory(calculator-qml) + add_subdirectory(trafficlight-qml-static) + add_subdirectory(trafficlight-qml-dynamic) + add_subdirectory(trafficlight-qml-simple) + add_subdirectory(mediaplayer-qml-static) + add_subdirectory(mediaplayer-qml-dynamic) + add_subdirectory(mediaplayer-qml-cppdatamodel) + add_subdirectory(invoke-static) + add_subdirectory(invoke-dynamic) +endif() diff --git a/examples/scxml/calculator-qml/CMakeLists.txt b/examples/scxml/calculator-qml/CMakeLists.txt new file mode 100644 index 0000000..82aa74f --- /dev/null +++ b/examples/scxml/calculator-qml/CMakeLists.txt @@ -0,0 +1,52 @@ +# Generated from calculator-qml.pro. + +cmake_minimum_required(VERSION 3.14) +project(calculator-qml LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(calculator-qml + calculator-qml.cpp +) +target_link_libraries(calculator-qml PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set(calculator-qml_resource_files + "Button.qml" + "calculator-qml.qml" +) + +qt6_add_resources(calculator-qml "calculator-qml" + PREFIX + "/" + FILES + ${calculator-qml_resource_files} +) + + +# Statecharts: +qt6_add_statecharts(calculator-qml + ../calculator-common/statemachine.scxml +) + +install(TARGETS calculator-qml + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/calculator-widgets/CMakeLists.txt b/examples/scxml/calculator-widgets/CMakeLists.txt new file mode 100644 index 0000000..f083979 --- /dev/null +++ b/examples/scxml/calculator-widgets/CMakeLists.txt @@ -0,0 +1,39 @@ +# Generated from calculator-widgets.pro. + +cmake_minimum_required(VERSION 3.14) +project(calculator-widgets LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Widgets) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(calculator-widgets + calculator-widgets.cpp + mainwindow.cpp mainwindow.h mainwindow.ui +) +target_link_libraries(calculator-widgets PUBLIC + Qt::Core + Qt::Gui + Qt::Scxml + Qt::Widgets +) + +# Statecharts: +qt6_add_statecharts(calculator-widgets + ../calculator-common/statemachine.scxml +) + +install(TARGETS calculator-widgets + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/ftpclient/CMakeLists.txt b/examples/scxml/ftpclient/CMakeLists.txt new file mode 100644 index 0000000..e97b669 --- /dev/null +++ b/examples/scxml/ftpclient/CMakeLists.txt @@ -0,0 +1,38 @@ +# Generated from ftpclient.pro. + +cmake_minimum_required(VERSION 3.14) +project(ftpclient LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Scxml) +find_package(Qt6 COMPONENTS Network) + +add_qt_gui_executable(ftpclient + ftpcontrolchannel.cpp ftpcontrolchannel.h + ftpdatachannel.cpp ftpdatachannel.h + main.cpp +) +target_link_libraries(ftpclient PUBLIC + Qt::Core + Qt::Network + Qt::Scxml +) + +# Statecharts: +qt6_add_statecharts(ftpclient + simpleftp.scxml +) + +install(TARGETS ftpclient + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/invoke-dynamic/CMakeLists.txt b/examples/scxml/invoke-dynamic/CMakeLists.txt new file mode 100644 index 0000000..eb8ef6a --- /dev/null +++ b/examples/scxml/invoke-dynamic/CMakeLists.txt @@ -0,0 +1,62 @@ +# Generated from invoke-dynamic.pro. + +cmake_minimum_required(VERSION 3.14) +project(invoke-dynamic LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(invoke-dynamic + invoke-dynamic.cpp +) +target_link_libraries(invoke-dynamic PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set_source_files_properties("../invoke-common/Button.qml" + PROPERTIES QT_RESOURCE_ALIAS "Button.qml" +) +set_source_files_properties("../invoke-common/MainView.qml" + PROPERTIES QT_RESOURCE_ALIAS "MainView.qml" +) +set_source_files_properties("../invoke-common/SubView.qml" + PROPERTIES QT_RESOURCE_ALIAS "SubView.qml" +) +set_source_files_properties("../invoke-common/statemachine.scxml" + PROPERTIES QT_RESOURCE_ALIAS "statemachine.scxml" +) +set(invoke-dynamic_resource_files + "../invoke-common/Button.qml" + "../invoke-common/MainView.qml" + "../invoke-common/SubView.qml" + "../invoke-common/statemachine.scxml" + "invoke-dynamic.qml" +) + +qt6_add_resources(invoke-dynamic "invoke-dynamic" + PREFIX + "/" + FILES + ${invoke-dynamic_resource_files} +) + + +install(TARGETS invoke-dynamic + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/invoke-static/CMakeLists.txt b/examples/scxml/invoke-static/CMakeLists.txt new file mode 100644 index 0000000..f98abe3 --- /dev/null +++ b/examples/scxml/invoke-static/CMakeLists.txt @@ -0,0 +1,63 @@ +# Generated from invoke-static.pro. + +cmake_minimum_required(VERSION 3.14) +project(invoke-static LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(invoke-static + invoke-static.cpp +) +target_link_libraries(invoke-static PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set_source_files_properties("../invoke-common/Button.qml" + PROPERTIES QT_RESOURCE_ALIAS "Button.qml" +) +set_source_files_properties("../invoke-common/MainView.qml" + PROPERTIES QT_RESOURCE_ALIAS "MainView.qml" +) +set_source_files_properties("../invoke-common/SubView.qml" + PROPERTIES QT_RESOURCE_ALIAS "SubView.qml" +) +set(invoke-static_resource_files + "../invoke-common/Button.qml" + "../invoke-common/MainView.qml" + "../invoke-common/SubView.qml" + "invoke-static.qml" +) + +qt6_add_resources(invoke-static "invoke-static" + PREFIX + "/" + FILES + ${invoke-static_resource_files} +) + + +# Statecharts: +qt6_add_statecharts(invoke-static + ../invoke-common/statemachine.scxml +) + +install(TARGETS invoke-static + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/mediaplayer-qml-cppdatamodel/CMakeLists.txt b/examples/scxml/mediaplayer-qml-cppdatamodel/CMakeLists.txt new file mode 100644 index 0000000..3ef5bf8 --- /dev/null +++ b/examples/scxml/mediaplayer-qml-cppdatamodel/CMakeLists.txt @@ -0,0 +1,56 @@ +# Generated from mediaplayer-qml-cppdatamodel.pro. + +cmake_minimum_required(VERSION 3.14) +project(mediaplayer-qml-cppdatamodel LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(mediaplayer-qml-cppdatamodel + mediaplayer-qml-cppdatamodel.cpp + thedatamodel.cpp thedatamodel.h +) +target_link_libraries(mediaplayer-qml-cppdatamodel PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set_source_files_properties("../mediaplayer-common/Mediaplayer.qml" + PROPERTIES QT_RESOURCE_ALIAS "Mediaplayer.qml" +) +set(mediaplayer-qml-cppdatamodel_resource_files + "../mediaplayer-common/Mediaplayer.qml" + "mediaplayer-qml-cppdatamodel.qml" +) + +qt6_add_resources(mediaplayer-qml-cppdatamodel "mediaplayer-qml-cppdatamodel" + PREFIX + "/" + FILES + ${mediaplayer-qml-cppdatamodel_resource_files} +) + + +# Statecharts: +qt6_add_statecharts(mediaplayer-qml-cppdatamodel + mediaplayer-cppdatamodel.scxml +) + +install(TARGETS mediaplayer-qml-cppdatamodel + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/mediaplayer-qml-dynamic/CMakeLists.txt b/examples/scxml/mediaplayer-qml-dynamic/CMakeLists.txt new file mode 100644 index 0000000..670558a --- /dev/null +++ b/examples/scxml/mediaplayer-qml-dynamic/CMakeLists.txt @@ -0,0 +1,54 @@ +# Generated from mediaplayer-qml-dynamic.pro. + +cmake_minimum_required(VERSION 3.14) +project(mediaplayer-qml-dynamic LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(mediaplayer-qml-dynamic + mediaplayer-qml-dynamic.cpp +) +target_link_libraries(mediaplayer-qml-dynamic PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set_source_files_properties("../mediaplayer-common/Mediaplayer.qml" + PROPERTIES QT_RESOURCE_ALIAS "Mediaplayer.qml" +) +set_source_files_properties("../mediaplayer-common/mediaplayer.scxml" + PROPERTIES QT_RESOURCE_ALIAS "mediaplayer.scxml" +) +set(mediaplayer-qml-dynamic_resource_files + "../mediaplayer-common/Mediaplayer.qml" + "../mediaplayer-common/mediaplayer.scxml" + "mediaplayer-qml-dynamic.qml" +) + +qt6_add_resources(mediaplayer-qml-dynamic "mediaplayer-qml-dynamic" + PREFIX + "/" + FILES + ${mediaplayer-qml-dynamic_resource_files} +) + + +install(TARGETS mediaplayer-qml-dynamic + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/mediaplayer-qml-static/CMakeLists.txt b/examples/scxml/mediaplayer-qml-static/CMakeLists.txt new file mode 100644 index 0000000..6802e3b --- /dev/null +++ b/examples/scxml/mediaplayer-qml-static/CMakeLists.txt @@ -0,0 +1,55 @@ +# Generated from mediaplayer-qml-static.pro. + +cmake_minimum_required(VERSION 3.14) +project(mediaplayer-qml-static LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(mediaplayer-qml-static + mediaplayer-qml-static.cpp +) +target_link_libraries(mediaplayer-qml-static PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set_source_files_properties("../mediaplayer-common/Mediaplayer.qml" + PROPERTIES QT_RESOURCE_ALIAS "Mediaplayer.qml" +) +set(mediaplayer-qml-static_resource_files + "../mediaplayer-common/Mediaplayer.qml" + "mediaplayer-qml-static.qml" +) + +qt6_add_resources(mediaplayer-qml-static "mediaplayer-qml-static" + PREFIX + "/" + FILES + ${mediaplayer-qml-static_resource_files} +) + + +# Statecharts: +qt6_add_statecharts(mediaplayer-qml-static + ../mediaplayer-common/mediaplayer.scxml +) + +install(TARGETS mediaplayer-qml-static + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/mediaplayer-widgets-dynamic/CMakeLists.txt b/examples/scxml/mediaplayer-widgets-dynamic/CMakeLists.txt new file mode 100644 index 0000000..42d5b89 --- /dev/null +++ b/examples/scxml/mediaplayer-widgets-dynamic/CMakeLists.txt @@ -0,0 +1,50 @@ +# Generated from mediaplayer-widgets-dynamic.pro. + +cmake_minimum_required(VERSION 3.14) +project(mediaplayer-widgets-dynamic LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Widgets) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(mediaplayer-widgets-dynamic + ../mediaplayer-common/mainwindow.cpp ../mediaplayer-common/mainwindow.h ../mediaplayer-common/mainwindow.ui + mediaplayer-widgets-dynamic.cpp +) +target_link_libraries(mediaplayer-widgets-dynamic PUBLIC + Qt::Core + Qt::Gui + Qt::Scxml + Qt::Widgets +) + +# Resources: +set_source_files_properties("../mediaplayer-common/mediaplayer.scxml" + PROPERTIES QT_RESOURCE_ALIAS "mediaplayer.scxml" +) +set(mediaplayer_resource_files + "../mediaplayer-common/mediaplayer.scxml" +) + +qt6_add_resources(mediaplayer-widgets-dynamic "mediaplayer" + PREFIX + "/" + FILES + ${mediaplayer_resource_files} +) + + +install(TARGETS mediaplayer-widgets-dynamic + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/mediaplayer-widgets-static/CMakeLists.txt b/examples/scxml/mediaplayer-widgets-static/CMakeLists.txt new file mode 100644 index 0000000..70f5f71 --- /dev/null +++ b/examples/scxml/mediaplayer-widgets-static/CMakeLists.txt @@ -0,0 +1,39 @@ +# Generated from mediaplayer-widgets-static.pro. + +cmake_minimum_required(VERSION 3.14) +project(mediaplayer-widgets-static LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Widgets) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(mediaplayer-widgets-static + ../mediaplayer-common/mainwindow.cpp ../mediaplayer-common/mainwindow.h ../mediaplayer-common/mainwindow.ui + mediaplayer-widgets-static.cpp +) +target_link_libraries(mediaplayer-widgets-static PUBLIC + Qt::Core + Qt::Gui + Qt::Scxml + Qt::Widgets +) + +# Statecharts: +qt6_add_statecharts(mediaplayer-widgets-static + ../mediaplayer-common/mediaplayer.scxml +) + +install(TARGETS mediaplayer-widgets-static + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/pinball/CMakeLists.txt b/examples/scxml/pinball/CMakeLists.txt new file mode 100644 index 0000000..b52bab1 --- /dev/null +++ b/examples/scxml/pinball/CMakeLists.txt @@ -0,0 +1,39 @@ +# Generated from pinball.pro. + +cmake_minimum_required(VERSION 3.14) +project(pinball LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Widgets) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(pinball + main.cpp + mainwindow.cpp mainwindow.h mainwindow.ui +) +target_link_libraries(pinball PUBLIC + Qt::Core + Qt::Gui + Qt::Scxml + Qt::Widgets +) + +# Statecharts: +qt6_add_statecharts(pinball + pinball.scxml +) + +install(TARGETS pinball + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/sudoku/CMakeLists.txt b/examples/scxml/sudoku/CMakeLists.txt new file mode 100644 index 0000000..6647645 --- /dev/null +++ b/examples/scxml/sudoku/CMakeLists.txt @@ -0,0 +1,54 @@ +# Generated from sudoku.pro. + +cmake_minimum_required(VERSION 3.14) +project(sudoku LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Widgets) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(sudoku + main.cpp + mainwindow.cpp mainwindow.h +) +target_link_libraries(sudoku PUBLIC + Qt::Core + Qt::Gui + Qt::Scxml + Qt::Widgets +) + +# Resources: +set(sudoku_resource_files + "data/nearly-solved-sudoku.data" + "data/sudoku.data" + "sudoku.js" +) + +qt6_add_resources(sudoku "sudoku" + PREFIX + "/" + FILES + ${sudoku_resource_files} +) + + +# Statecharts: +qt6_add_statecharts(sudoku + sudoku.scxml +) + +install(TARGETS sudoku + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/trafficlight-qml-dynamic/CMakeLists.txt b/examples/scxml/trafficlight-qml-dynamic/CMakeLists.txt new file mode 100644 index 0000000..c7bee0b --- /dev/null +++ b/examples/scxml/trafficlight-qml-dynamic/CMakeLists.txt @@ -0,0 +1,86 @@ +# Generated from trafficlight-qml-dynamic.pro. + +cmake_minimum_required(VERSION 3.14) +project(trafficlight-qml-dynamic LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(trafficlight-qml-dynamic + trafficlight-qml-dynamic.cpp +) +target_link_libraries(trafficlight-qml-dynamic PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set_source_files_properties("../trafficlight-common/Button.qml" + PROPERTIES QT_RESOURCE_ALIAS "Button.qml" +) +set_source_files_properties("../trafficlight-common/Lights.ui.qml" + PROPERTIES QT_RESOURCE_ALIAS "Lights.ui.qml" +) +set_source_files_properties("../trafficlight-common/TrafficLight.qml" + PROPERTIES QT_RESOURCE_ALIAS "TrafficLight.qml" +) +set_source_files_properties("../trafficlight-common/background.png" + PROPERTIES QT_RESOURCE_ALIAS "background.png" +) +set_source_files_properties("../trafficlight-common/green.png" + PROPERTIES QT_RESOURCE_ALIAS "green.png" +) +set_source_files_properties("../trafficlight-common/pause.png" + PROPERTIES QT_RESOURCE_ALIAS "pause.png" +) +set_source_files_properties("../trafficlight-common/play.png" + PROPERTIES QT_RESOURCE_ALIAS "play.png" +) +set_source_files_properties("../trafficlight-common/red.png" + PROPERTIES QT_RESOURCE_ALIAS "red.png" +) +set_source_files_properties("../trafficlight-common/statemachine.scxml" + PROPERTIES QT_RESOURCE_ALIAS "statemachine.scxml" +) +set_source_files_properties("../trafficlight-common/yellow.png" + PROPERTIES QT_RESOURCE_ALIAS "yellow.png" +) +set(trafficlight-qml-dynamic_resource_files + "../trafficlight-common/Button.qml" + "../trafficlight-common/Lights.ui.qml" + "../trafficlight-common/TrafficLight.qml" + "../trafficlight-common/background.png" + "../trafficlight-common/green.png" + "../trafficlight-common/pause.png" + "../trafficlight-common/play.png" + "../trafficlight-common/red.png" + "../trafficlight-common/statemachine.scxml" + "../trafficlight-common/yellow.png" + "trafficlight-qml-dynamic.qml" +) + +qt6_add_resources(trafficlight-qml-dynamic "trafficlight-qml-dynamic" + PREFIX + "/" + FILES + ${trafficlight-qml-dynamic_resource_files} +) + + +install(TARGETS trafficlight-qml-dynamic + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/trafficlight-qml-simple/CMakeLists.txt b/examples/scxml/trafficlight-qml-simple/CMakeLists.txt new file mode 100644 index 0000000..ad85c61 --- /dev/null +++ b/examples/scxml/trafficlight-qml-simple/CMakeLists.txt @@ -0,0 +1,52 @@ +# Generated from trafficlight-qml-simple.pro. + +cmake_minimum_required(VERSION 3.14) +project(trafficlight-qml-simple LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(trafficlight-qml-simple + trafficlight-qml-simple.cpp +) +target_link_libraries(trafficlight-qml-simple PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set(trafficlight-qml-simple_resource_files + "Light.qml" + "TrafficLight.qml" +) + +qt6_add_resources(trafficlight-qml-simple "trafficlight-qml-simple" + PREFIX + "/" + FILES + ${trafficlight-qml-simple_resource_files} +) + + +# Statecharts: +qt6_add_statecharts(trafficlight-qml-simple + ../trafficlight-common/statemachine.scxml +) + +install(TARGETS trafficlight-qml-simple + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/trafficlight-qml-static/CMakeLists.txt b/examples/scxml/trafficlight-qml-static/CMakeLists.txt new file mode 100644 index 0000000..6927b9a --- /dev/null +++ b/examples/scxml/trafficlight-qml-static/CMakeLists.txt @@ -0,0 +1,87 @@ +# Generated from trafficlight-qml-static.pro. + +cmake_minimum_required(VERSION 3.14) +project(trafficlight-qml-static LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(trafficlight-qml-static + trafficlight-qml-static.cpp +) +target_link_libraries(trafficlight-qml-static PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set_source_files_properties("../trafficlight-common/Button.qml" + PROPERTIES QT_RESOURCE_ALIAS "Button.qml" +) +set_source_files_properties("../trafficlight-common/Lights.ui.qml" + PROPERTIES QT_RESOURCE_ALIAS "Lights.ui.qml" +) +set_source_files_properties("../trafficlight-common/TrafficLight.qml" + PROPERTIES QT_RESOURCE_ALIAS "TrafficLight.qml" +) +set_source_files_properties("../trafficlight-common/background.png" + PROPERTIES QT_RESOURCE_ALIAS "background.png" +) +set_source_files_properties("../trafficlight-common/green.png" + PROPERTIES QT_RESOURCE_ALIAS "green.png" +) +set_source_files_properties("../trafficlight-common/pause.png" + PROPERTIES QT_RESOURCE_ALIAS "pause.png" +) +set_source_files_properties("../trafficlight-common/play.png" + PROPERTIES QT_RESOURCE_ALIAS "play.png" +) +set_source_files_properties("../trafficlight-common/red.png" + PROPERTIES QT_RESOURCE_ALIAS "red.png" +) +set_source_files_properties("../trafficlight-common/yellow.png" + PROPERTIES QT_RESOURCE_ALIAS "yellow.png" +) +set(trafficlight-qml-static_resource_files + "../trafficlight-common/Button.qml" + "../trafficlight-common/Lights.ui.qml" + "../trafficlight-common/TrafficLight.qml" + "../trafficlight-common/background.png" + "../trafficlight-common/green.png" + "../trafficlight-common/pause.png" + "../trafficlight-common/play.png" + "../trafficlight-common/red.png" + "../trafficlight-common/yellow.png" + "trafficlight-qml-static.qml" +) + +qt6_add_resources(trafficlight-qml-static "trafficlight-qml-static" + PREFIX + "/" + FILES + ${trafficlight-qml-static_resource_files} +) + + +# Statecharts: +qt6_add_statecharts(trafficlight-qml-static + ../trafficlight-common/statemachine.scxml +) + +install(TARGETS trafficlight-qml-static + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/trafficlight-widgets-dynamic/CMakeLists.txt b/examples/scxml/trafficlight-widgets-dynamic/CMakeLists.txt new file mode 100644 index 0000000..5a3e268 --- /dev/null +++ b/examples/scxml/trafficlight-widgets-dynamic/CMakeLists.txt @@ -0,0 +1,74 @@ +# Generated from trafficlight-widgets-dynamic.pro. + +cmake_minimum_required(VERSION 3.14) +project(trafficlight-widgets-dynamic LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Widgets) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(trafficlight-widgets-dynamic + ../trafficlight-common/trafficlight.cpp ../trafficlight-common/trafficlight.h + trafficlight-widgets-dynamic.cpp +) +target_link_libraries(trafficlight-widgets-dynamic PUBLIC + Qt::Core + Qt::Gui + Qt::Scxml + Qt::Widgets +) + +# Resources: +set_source_files_properties("../trafficlight-common/background.png" + PROPERTIES QT_RESOURCE_ALIAS "background.png" +) +set_source_files_properties("../trafficlight-common/green.png" + PROPERTIES QT_RESOURCE_ALIAS "green.png" +) +set_source_files_properties("../trafficlight-common/pause.png" + PROPERTIES QT_RESOURCE_ALIAS "pause.png" +) +set_source_files_properties("../trafficlight-common/play.png" + PROPERTIES QT_RESOURCE_ALIAS "play.png" +) +set_source_files_properties("../trafficlight-common/red.png" + PROPERTIES QT_RESOURCE_ALIAS "red.png" +) +set_source_files_properties("../trafficlight-common/statemachine.scxml" + PROPERTIES QT_RESOURCE_ALIAS "statemachine.scxml" +) +set_source_files_properties("../trafficlight-common/yellow.png" + PROPERTIES QT_RESOURCE_ALIAS "yellow.png" +) +set(trafficlight-widgets-dynamic_resource_files + "../trafficlight-common/background.png" + "../trafficlight-common/green.png" + "../trafficlight-common/pause.png" + "../trafficlight-common/play.png" + "../trafficlight-common/red.png" + "../trafficlight-common/statemachine.scxml" + "../trafficlight-common/yellow.png" +) + +qt6_add_resources(trafficlight-widgets-dynamic "trafficlight-widgets-dynamic" + PREFIX + "/" + FILES + ${trafficlight-widgets-dynamic_resource_files} +) + + +install(TARGETS trafficlight-widgets-dynamic + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/scxml/trafficlight-widgets-static/CMakeLists.txt b/examples/scxml/trafficlight-widgets-static/CMakeLists.txt new file mode 100644 index 0000000..f0268b7 --- /dev/null +++ b/examples/scxml/trafficlight-widgets-static/CMakeLists.txt @@ -0,0 +1,75 @@ +# Generated from trafficlight-widgets-static.pro. + +cmake_minimum_required(VERSION 3.14) +project(trafficlight-widgets-static LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Widgets) +find_package(Qt6 COMPONENTS Scxml) + +add_qt_gui_executable(trafficlight-widgets-static + ../trafficlight-common/trafficlight.cpp ../trafficlight-common/trafficlight.h + trafficlight-widgets-static.cpp +) +target_link_libraries(trafficlight-widgets-static PUBLIC + Qt::Core + Qt::Gui + Qt::Scxml + Qt::Widgets +) + +# Resources: +set_source_files_properties("../trafficlight-common/background.png" + PROPERTIES QT_RESOURCE_ALIAS "background.png" +) +set_source_files_properties("../trafficlight-common/green.png" + PROPERTIES QT_RESOURCE_ALIAS "green.png" +) +set_source_files_properties("../trafficlight-common/pause.png" + PROPERTIES QT_RESOURCE_ALIAS "pause.png" +) +set_source_files_properties("../trafficlight-common/play.png" + PROPERTIES QT_RESOURCE_ALIAS "play.png" +) +set_source_files_properties("../trafficlight-common/red.png" + PROPERTIES QT_RESOURCE_ALIAS "red.png" +) +set_source_files_properties("../trafficlight-common/yellow.png" + PROPERTIES QT_RESOURCE_ALIAS "yellow.png" +) +set(trafficlight-widgets-static_resource_files + "../trafficlight-common/background.png" + "../trafficlight-common/green.png" + "../trafficlight-common/pause.png" + "../trafficlight-common/play.png" + "../trafficlight-common/red.png" + "../trafficlight-common/yellow.png" +) + +qt6_add_resources(trafficlight-widgets-static "trafficlight-widgets-static" + PREFIX + "/" + FILES + ${trafficlight-widgets-static_resource_files} +) + + +# Statecharts: +qt6_add_statecharts(trafficlight-widgets-static + ../trafficlight-common/statemachine.scxml +) + +install(TARGETS trafficlight-widgets-static + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..0e4e3bb --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,6 @@ +# Generated from src.pro. + +add_subdirectory(scxml) +if(TARGET Qt::Qml) + add_subdirectory(imports) +endif() diff --git a/src/imports/CMakeLists.txt b/src/imports/CMakeLists.txt new file mode 100644 index 0000000..805a479 --- /dev/null +++ b/src/imports/CMakeLists.txt @@ -0,0 +1,3 @@ +# Generated from imports.pro. + +add_subdirectory(scxmlstatemachine) diff --git a/src/imports/scxmlstatemachine/.prev_CMakeLists.txt b/src/imports/scxmlstatemachine/.prev_CMakeLists.txt new file mode 100644 index 0000000..bf4a0ea --- /dev/null +++ b/src/imports/scxmlstatemachine/.prev_CMakeLists.txt @@ -0,0 +1,30 @@ +# Generated from scxmlstatemachine.pro. + +##################################################################### +## scxml Plugin: +##################################################################### + +add_qml_module(scxml + URI "QtScxml" + VERSION "5.${CMAKE_PROJECT_VERSION_MINOR}" + CLASSNAME QScxmlStateMachinePlugin + SOURCES + eventconnection.cpp eventconnection_p.h + invokedservices.cpp invokedservices_p.h + plugin.cpp + statemachineextended.cpp statemachineextended_p.h + statemachineloader.cpp statemachineloader_p.h + LIBRARIES + Qt::CorePrivate + Qt::QmlPrivate + PUBLIC_LIBRARIES + Qt::Core + Qt::Qml + Qt::Scxml +) + +#### Keys ignored in scope 1:.:.:scxmlstatemachine.pro:<TRUE>: +# IMPORT_VERSION = "5.$$QT_MINOR_VERSION" +# OTHER_FILES = "plugins.qmltypes" "qmldir" +# TARGETPATH = "QtScxml" +# _LOADED = "qml_plugin" diff --git a/src/imports/scxmlstatemachine/CMakeLists.txt b/src/imports/scxmlstatemachine/CMakeLists.txt new file mode 100644 index 0000000..b94c0e5 --- /dev/null +++ b/src/imports/scxmlstatemachine/CMakeLists.txt @@ -0,0 +1,30 @@ +# Generated from scxmlstatemachine.pro. + +##################################################################### +## scxml Plugin: +##################################################################### + +add_qml_module(declarative_scxml # special case + URI "QtScxml" + VERSION "5.${CMAKE_PROJECT_VERSION_MINOR}" + CLASSNAME QScxmlStateMachinePlugin + SOURCES + eventconnection.cpp eventconnection_p.h + invokedservices.cpp invokedservices_p.h + plugin.cpp + statemachineextended.cpp statemachineextended_p.h + statemachineloader.cpp statemachineloader_p.h + LIBRARIES + Qt::CorePrivate + Qt::QmlPrivate + PUBLIC_LIBRARIES + Qt::Core + Qt::Qml + Qt::Scxml +) + +#### Keys ignored in scope 1:.:.:scxmlstatemachine.pro:<TRUE>: +# IMPORT_VERSION = "5.$$QT_MINOR_VERSION" +# OTHER_FILES = "plugins.qmltypes" "qmldir" +# TARGETPATH = "QtScxml" +# _LOADED = "qml_plugin" diff --git a/src/scxml/.prev_CMakeLists.txt b/src/scxml/.prev_CMakeLists.txt new file mode 100644 index 0000000..1d078b2 --- /dev/null +++ b/src/scxml/.prev_CMakeLists.txt @@ -0,0 +1,62 @@ +# Generated from scxml.pro. + +##################################################################### +## Scxml Module: +##################################################################### + +add_qt_module(Scxml + QMAKE_MODULE_CONFIG c++11 qscxmlc + SOURCES + qscxmlcompiler.cpp qscxmlcompiler.h qscxmlcompiler_p.h + qscxmlcppdatamodel.cpp qscxmlcppdatamodel.h qscxmlcppdatamodel_p.h + qscxmldatamodel.cpp qscxmldatamodel.h qscxmldatamodel_p.h + qscxmlerror.cpp qscxmlerror.h + qscxmlevent.cpp qscxmlevent.h qscxmlevent_p.h + qscxmlexecutablecontent.cpp qscxmlexecutablecontent.h qscxmlexecutablecontent_p.h + qscxmlglobals.h qscxmlglobals_p.h + qscxmlinvokableservice.cpp qscxmlinvokableservice.h qscxmlinvokableservice_p.h + qscxmlnulldatamodel.cpp qscxmlnulldatamodel.h + qscxmlstatemachine.cpp qscxmlstatemachine.h qscxmlstatemachine_p.h + qscxmlstatemachineinfo.cpp qscxmlstatemachineinfo_p.h + qscxmltabledata.cpp qscxmltabledata.h qscxmltabledata_p.h + DEFINES + QT_NO_CAST_FROM_ASCII + QT_NO_CAST_TO_ASCII + LIBRARIES + Qt::CorePrivate + PUBLIC_LIBRARIES + Qt::Core +) + +#### Keys ignored in scope 1:.:.:scxml.pro:<TRUE>: +# FEATURES = "../../mkspecs/features/qscxmlc.prf" +# INSTALLS = "features" +# MODULE_CONFIG = "c++11" "qscxmlc" +# _LOADED = "qt_module" +# features.files = "$$FEATURES" +# features.path = "$$[QT_HOST_DATA]/mkspecs/features/" + +## Scopes: +##################################################################### + +extend_target(Scxml CONDITION QT_FEATURE_scxml_ecmascriptdatamodel + SOURCES + qscxmlecmascriptdatamodel.cpp qscxmlecmascriptdatamodel.h + qscxmlecmascriptplatformproperties.cpp qscxmlecmascriptplatformproperties_p.h + LIBRARIES + Qt::QmlPrivate + PUBLIC_LIBRARIES + Qt::Qml +) + +#### Keys ignored in scope 3:.:.:scxml.pro:NOT force_independent AND (NOT debug_and_release OR NOT build_all OR CONFIG(release,debug OR release)): +# QMAKE_EXTRA_COMPILERS = "prf2build" +# prf2build.CONFIG = "no_link" "no_clean" "target_predeps" +# prf2build.commands = "$$QMAKE_COPY" "${QMAKE_FILE_IN}" "${QMAKE_FILE_OUT}" +# prf2build.input = "FEATURES" +# prf2build.name = "COPY" "${QMAKE_FILE_IN}" +# prf2build.output = "$$[QT_INSTALL_DATA/get]/mkspecs/features/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}" +add_qt_docs(Scxml + doc/qtscxml.qdocconf +) + diff --git a/src/scxml/CMakeLists.txt b/src/scxml/CMakeLists.txt new file mode 100644 index 0000000..aa04656 --- /dev/null +++ b/src/scxml/CMakeLists.txt @@ -0,0 +1,63 @@ +# Generated from scxml.pro. + +##################################################################### +## Scxml Module: +##################################################################### + +add_qt_module(Scxml + QMAKE_MODULE_CONFIG c++11 qscxmlc + SOURCES + qscxmlcompiler.cpp qscxmlcompiler.h qscxmlcompiler_p.h + qscxmlcppdatamodel.cpp qscxmlcppdatamodel.h qscxmlcppdatamodel_p.h + qscxmldatamodel.cpp qscxmldatamodel.h qscxmldatamodel_p.h + qscxmlerror.cpp qscxmlerror.h + qscxmlevent.cpp qscxmlevent.h qscxmlevent_p.h + qscxmlexecutablecontent.cpp qscxmlexecutablecontent.h qscxmlexecutablecontent_p.h + qscxmlglobals.h qscxmlglobals_p.h + qscxmlinvokableservice.cpp qscxmlinvokableservice.h qscxmlinvokableservice_p.h + qscxmlnulldatamodel.cpp qscxmlnulldatamodel.h + qscxmlstatemachine.cpp qscxmlstatemachine.h qscxmlstatemachine_p.h + qscxmlstatemachineinfo.cpp qscxmlstatemachineinfo_p.h + qscxmltabledata.cpp qscxmltabledata.h qscxmltabledata_p.h + DEFINES + QT_NO_CAST_FROM_ASCII + QT_NO_CAST_TO_ASCII + LIBRARIES + Qt::CorePrivate + PUBLIC_LIBRARIES + Qt::Core +) + +#### Keys ignored in scope 1:.:.:scxml.pro:<TRUE>: +# FEATURES = "../../mkspecs/features/qscxmlc.prf" +# INSTALLS = "features" +# MODULE_CONFIG = "c++11" "qscxmlc" +# _LOADED = "qt_module" +# features.files = "$$FEATURES" +# features.path = "$$[QT_HOST_DATA]/mkspecs/features/" + +## Scopes: +##################################################################### + +extend_target(Scxml CONDITION QT_FEATURE_scxml_ecmascriptdatamodel + SOURCES + qscxmlecmascriptdatamodel.cpp qscxmlecmascriptdatamodel.h + qscxmlecmascriptplatformproperties.cpp qscxmlecmascriptplatformproperties_p.h + LIBRARIES + Qt::QmlPrivate + PUBLIC_LIBRARIES + Qt::Qml +) + +#### Keys ignored in scope 3:.:.:scxml.pro:NOT force_independent AND (NOT debug_and_release OR NOT build_all OR CONFIG(release,debug OR release)): +# QMAKE_EXTRA_COMPILERS = "prf2build" +# prf2build.CONFIG = "no_link" "no_clean" "target_predeps" +# prf2build.commands = "$$QMAKE_COPY" "${QMAKE_FILE_IN}" "${QMAKE_FILE_OUT}" +# prf2build.input = "FEATURES" +# prf2build.name = "COPY" "${QMAKE_FILE_IN}" +# prf2build.output = "$$[QT_INSTALL_DATA/get]/mkspecs/features/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}" +add_qt_docs(Scxml + doc/qtscxml.qdocconf +) + +include(Qt6ScxmlMacros.cmake) # special case diff --git a/src/scxml/Qt5ScxmlMacros.cmake b/src/scxml/Qt6ScxmlMacros.cmake index c4454ec..a319607 100644 --- a/src/scxml/Qt5ScxmlMacros.cmake +++ b/src/scxml/Qt6ScxmlMacros.cmake @@ -34,13 +34,9 @@ # # $QT_END_LICENSE$ -if(NOT Qt5Scxml_QSCXMLC_EXECUTABLE) - message(FATAL_ERROR "qscxmlc executable not found -- Check installation.") -endif() +# qt6_add_statecharts(target_or_outfiles inputfile ... ) -# qt5_add_statecharts(outfiles inputfile ... ) - -function(qt5_add_statecharts outfiles) +function(qt6_add_statecharts target_or_outfiles) set(options) set(oneValueArgs) set(multiValueArgs OPTIONS) @@ -48,6 +44,7 @@ function(qt5_add_statecharts outfiles) cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) set(scxml_files ${ARGS_UNPARSED_ARGUMENTS}) + set(outfiles) foreach(it ${scxml_files}) get_filename_component(outfilename ${it} NAME_WE) @@ -57,12 +54,17 @@ function(qt5_add_statecharts outfiles) set(outfile_h ${CMAKE_CURRENT_BINARY_DIR}/${outfilename}.h) add_custom_command(OUTPUT ${outfile_cpp} ${outfile_h} - COMMAND ${Qt5Scxml_QSCXMLC_EXECUTABLE} + ${QT_TOOL_PATH_SETUP_COMMAND} + COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::qscxmlc ARGS ${ARGS_OPTIONS} --output ${outfile} ${infile} MAIN_DEPENDENCY ${infile} VERBATIM) - list(APPEND ${outfiles} ${outfile_cpp}) + list(APPEND outfiles ${outfile_cpp}) endforeach() set_source_files_properties(${outfiles} PROPERTIES SKIP_AUTOMOC TRUE) - set(${outfiles} ${${outfiles}} PARENT_SCOPE) + if (TARGET ${target_or_outfiles}) + target_sources(${target_or_outfiles} PRIVATE ${outfiles}) + else() + set(${target_or_outfiles} ${outfiles} PARENT_SCOPE) + endif() endfunction() diff --git a/src/scxml/configure.cmake b/src/scxml/configure.cmake new file mode 100644 index 0000000..40cc67a --- /dev/null +++ b/src/scxml/configure.cmake @@ -0,0 +1,21 @@ + + +#### Inputs + + + +#### Libraries + + + +#### Tests + + + +#### Features + +qt_feature("scxml_ecmascriptdatamodel" PUBLIC + SECTION "SCXML" + LABEL "ECMAScript data model for QtScxml" + PURPOSE "Enables the usage of ecmascript data models in SCXML state machines." +) diff --git a/src/scxml/qscxmlcppdatamodel.cpp b/src/scxml/qscxmlcppdatamodel.cpp index ba18cc7..88289ad 100644 --- a/src/scxml/qscxmlcppdatamodel.cpp +++ b/src/scxml/qscxmlcppdatamodel.cpp @@ -69,12 +69,12 @@ using namespace QScxmlExecutableContent; class TheDataModel: public QScxmlCppDataModel { - Q_OBJECT + \Q_OBJECT Q_SCXML_DATAMODEL }; \endcode The Q_SCXML_DATAMODEL has to appear in the private section of the class definition, for example - right after the opening bracket, or after a Q_OBJECT macro. + right after the opening bracket, or after a \Q_OBJECT macro. This macro expands to the declaration of some virtual methods whose implementation is generated by the Qt SCXML compiler. diff --git a/tests/.prev_CMakeLists.txt b/tests/.prev_CMakeLists.txt new file mode 100644 index 0000000..f9ace95 --- /dev/null +++ b/tests/.prev_CMakeLists.txt @@ -0,0 +1,10 @@ +# Generated from tests.pro. + +if(NOT TARGET Qt::Test) + cmake_minimum_required(VERSION 3.15.0) + project(QtScxmlTests VERSION 6.0.0 LANGUAGES C CXX) + find_package(Qt6 ${PROJECT_VERSION} REQUIRED COMPONENTS BuildInternals Core SET_ME_TO_SOMETHING_USEFUL) + find_package(Qt6 ${PROJECT_VERSION} OPTIONAL_COMPONENTS SET_ME_TO_SOMETHING_USEFUL) + qt_set_up_standalone_tests_build() +endif() +qt_build_tests() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..b241c6e --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,10 @@ +# Generated from tests.pro. + +if(NOT TARGET Qt::Test) + cmake_minimum_required(VERSION 3.15.0) + project(QtScxmlTests VERSION 6.0.0 LANGUAGES C CXX) + find_package(Qt6 ${PROJECT_VERSION} REQUIRED COMPONENTS BuildInternals Core Scxml Test) # special case + find_package(Qt6 ${PROJECT_VERSION} OPTIONAL_COMPONENTS Qml Gui) # special case + qt_set_up_standalone_tests_build() +endif() +qt_build_tests() diff --git a/tests/auto/.prev_CMakeLists.txt b/tests/auto/.prev_CMakeLists.txt new file mode 100644 index 0000000..dd9caab --- /dev/null +++ b/tests/auto/.prev_CMakeLists.txt @@ -0,0 +1,9 @@ +# Generated from auto.pro. + +add_subdirectory(cmake) +add_subdirectory(compiled) +add_subdirectory(dynamicmetaobject) +add_subdirectory(parser) +add_subdirectory(scion) +add_subdirectory(statemachine) +add_subdirectory(statemachineinfo) diff --git a/tests/auto/CMakeLists.txt b/tests/auto/CMakeLists.txt new file mode 100644 index 0000000..1666cfd --- /dev/null +++ b/tests/auto/CMakeLists.txt @@ -0,0 +1,11 @@ +# Generated from auto.pro. + +# special case begin +# add_subdirectory(cmake) +# special case end +add_subdirectory(compiled) +add_subdirectory(dynamicmetaobject) +add_subdirectory(parser) +add_subdirectory(scion) +add_subdirectory(statemachine) +add_subdirectory(statemachineinfo) diff --git a/tests/auto/compiled/CMakeLists.txt b/tests/auto/compiled/CMakeLists.txt new file mode 100644 index 0000000..6b61bab --- /dev/null +++ b/tests/auto/compiled/CMakeLists.txt @@ -0,0 +1,46 @@ +# Generated from compiled.pro. + +##################################################################### +## tst_compiled Test: +##################################################################### + +add_qt_test(tst_compiled + SOURCES + tst_compiled.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set(tst_compiled_resource_files + "submachineA.scxml" + "submachineB.scxml" + "topmachine.scxml" +) + +add_qt_resource(tst_compiled "tst_compiled" + PREFIX + "/" + FILES + ${tst_compiled_resource_files} +) + + +# Statecharts: +add_qt_statecharts(tst_compiled FILES + ids1.scxml + eventnames1.scxml + eventnames2.scxml + statemachineunicodename.scxml + anonymousstate.scxml + submachineunicodename.scxml + datainnulldatamodel.scxml + initialhistory.scxml + connection.scxml + topmachine.scxml +) + +#### Keys ignored in scope 1:.:.:compiled.pro:<TRUE>: +# TEMPLATE = "app" diff --git a/tests/auto/dynamicmetaobject/CMakeLists.txt b/tests/auto/dynamicmetaobject/CMakeLists.txt new file mode 100644 index 0000000..698bb5c --- /dev/null +++ b/tests/auto/dynamicmetaobject/CMakeLists.txt @@ -0,0 +1,31 @@ +# Generated from dynamicmetaobject.pro. + +##################################################################### +## tst_dynamicmetaobject Test: +##################################################################### + +add_qt_test(tst_dynamicmetaobject + SOURCES + tst_dynamicmetaobject.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set(tst_dynamicmetaobject_resource_files + "mediaplayer.scxml" + "test1.scxml" +) + +add_qt_resource(tst_dynamicmetaobject "tst_dynamicmetaobject" + PREFIX + "/tst_dynamicmetaobject" + FILES + ${tst_dynamicmetaobject_resource_files} +) + + +#### Keys ignored in scope 1:.:.:dynamicmetaobject.pro:<TRUE>: +# TEMPLATE = "app" diff --git a/tests/auto/parser/CMakeLists.txt b/tests/auto/parser/CMakeLists.txt new file mode 100644 index 0000000..fea776f --- /dev/null +++ b/tests/auto/parser/CMakeLists.txt @@ -0,0 +1,109 @@ +# Generated from parser.pro. + +##################################################################### +## tst_parser Test: +##################################################################### + +add_qt_test(tst_parser + SOURCES + tst_parser.cpp + PUBLIC_LIBRARIES + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set(tst_parser_resource_files + "data/badInitial.scxml" + "data/badInitial.scxml.errors" + "data/commentInScript.scxml" + "data/commentInScript.scxml.errors" + "data/empty.scxml" + "data/empty.scxml.errors" + "data/eventnames.scxml" + "data/eventnames.scxml.errors" + "data/ids1.scxml" + "data/ids1.scxml.errors" + "data/ids2.scxml" + "data/ids2.scxml.errors" + "data/invalidContent.scxml" + "data/invalidContent.scxml.errors" + "data/invalidRoot1.scxml" + "data/invalidRoot1.scxml.errors" + "data/invalidRoot2.scxml" + "data/invalidRoot2.scxml.errors" + "data/invalidRoot3.scxml" + "data/invalidRoot3.scxml.errors" + "data/invalidRoot6.scxml" + "data/invalidRoot6.scxml.errors" + "data/invalidUnicode1.scxml" + "data/invalidUnicode1.scxml.errors" + "data/invalidXmlHeader1.scxml" + "data/invalidXmlHeader1.scxml.errors" + "data/invalidXmlHeader2.scxml" + "data/invalidXmlHeader2.scxml.errors" + "data/invalidstatemachinename.scxml" + "data/invalidstatemachinename.scxml.errors" + "data/misplacedinvoke.scxml" + "data/misplacedinvoke.scxml.errors" + "data/namespaces1.scxml" + "data/namespaces1.scxml.errors" + "data/nestedScxml.scxml" + "data/nestedScxml.scxml.errors" + "data/noContentInInvoke1.scxml" + "data/noContentInInvoke1.scxml.errors" + "data/noContentInInvoke2.scxml" + "data/noContentInInvoke2.scxml.errors" + "data/noContentInInvoke3.scxml" + "data/noContentInInvoke3.scxml.errors" + "data/noContentInInvoke4.scxml" + "data/noContentInInvoke4.scxml.errors" + "data/prematureEndOfDocument1.scxml" + "data/prematureEndOfDocument1.scxml.errors" + "data/prematureEndOfDocument2.scxml" + "data/prematureEndOfDocument2.scxml.errors" + "data/scxml1.scxml" + "data/scxml1.scxml.errors" + "data/scxml2.scxml" + "data/scxml2.scxml.errors" + "data/syntaxErrors1.scxml" + "data/syntaxErrors1.scxml.errors" + "data/syntaxErrors10.scxml" + "data/syntaxErrors10.scxml.errors" + "data/syntaxErrors11.scxml" + "data/syntaxErrors11.scxml.errors" + "data/syntaxErrors12.scxml" + "data/syntaxErrors12.scxml.errors" + "data/syntaxErrors13.scxml" + "data/syntaxErrors13.scxml.errors" + "data/syntaxErrors14.scxml" + "data/syntaxErrors14.scxml.errors" + "data/syntaxErrors15.scxml" + "data/syntaxErrors15.scxml.errors" + "data/syntaxErrors2.scxml" + "data/syntaxErrors2.scxml.errors" + "data/syntaxErrors3.scxml" + "data/syntaxErrors3.scxml.errors" + "data/syntaxErrors4.scxml" + "data/syntaxErrors4.scxml.errors" + "data/syntaxErrors5.scxml" + "data/syntaxErrors5.scxml.errors" + "data/syntaxErrors7.scxml" + "data/syntaxErrors7.scxml.errors" + "data/syntaxErrors9.scxml" + "data/syntaxErrors9.scxml.errors" + "data/test1.scxml" + "data/test1.scxml.errors" +) + +add_qt_resource(tst_parser "tst_parser" + PREFIX + "/tst_parser" + FILES + ${tst_parser_resource_files} +) + + +#### Keys ignored in scope 1:.:.:parser.pro:<TRUE>: +# TEMPLATE = "app" diff --git a/tests/auto/scion/.prev_CMakeLists.txt b/tests/auto/scion/.prev_CMakeLists.txt new file mode 100644 index 0000000..51bba64 --- /dev/null +++ b/tests/auto/scion/.prev_CMakeLists.txt @@ -0,0 +1,50 @@ +# Generated from scion.pro. + +##################################################################### +## tst_scion Test: +##################################################################### + +add_qt_test(tst_scion + SOURCES + tst_scion.cpp + DEFINES + QT_NO_CAST_FROM_ASCII + QT_NO_CAST_TO_ASCII + PUBLIC_LIBRARIES + Qt::Gui + Qt::Qml + Qt::Scxml +) +#### Ignored generated resource: ${CMAKE_CURRENT_BINARY_DIR}/scion.qrc +#### Keys ignored in scope 1:.:.:scion.pro:<TRUE>: +# ALLFILES = "$$SCXMLS_DIR/*.*," +# ALLSCXMLS = "$$SCXMLS_DIR/*.scxml," +# BLACKLISTED = "test216sub1.scxml" "test226sub1.txml" "test239sub1.scxml" "test242sub1.scxml" "test276sub1.scxml" "test530.txml.scxml" "test301.txml.scxml" "test441a.txml.scxml" "test441b.txml.scxml" "test557.txml.scxml" +# QMAKE_EXTRA_COMPILERS = "myscxml" "myscxml_hdr" +# SCXMLS_DIR = "$$absolute_path($$PWD/../../3rdparty/scion-tests/scxml-test-framework/test)" +# TEMPLATE = "app" +# contents = "'<!DOCTYPE" "RCC><RCC" "version=\"1.0\">'" "'<qresource>'" "$$qrc" "'</qresource></RCC>'" +# myscxml.commands = "$$QMAKE_QSCXMLC" "--header" "scxml/${QMAKE_FUNC_nameTheNamespace}_${QMAKE_FILE_IN_BASE}.h" "--impl" "${QMAKE_FILE_OUT}" "--namespace" "${QMAKE_FUNC_nameTheNamespace}" "--classname" "${QMAKE_FUNC_nameTheClass}" "${QMAKE_FILE_IN}" +# myscxml.depends = "$$QMAKE_QSCXMLC_EXE" +# myscxml.input = "SCXMLS" +# myscxml.output = "scxml/${QMAKE_FUNC_nameTheNamespace}_${QMAKE_FILE_IN_BASE}.cpp" +# myscxml.variable_out = "SOURCES" +# myscxml_hdr.commands = "$$escape_expand(\\n)" +# myscxml_hdr.depends = "scxml/${QMAKE_FUNC_nameTheNamespace}_${QMAKE_FILE_IN_BASE}.cpp" +# myscxml_hdr.input = "SCXMLS" +# myscxml_hdr.output = "scxml/${QMAKE_FUNC_nameTheNamespace}_${QMAKE_FILE_IN_BASE}.h" +# myscxml_hdr.variable_out = "SCXML_HEADERS" + +## Scopes: +##################################################################### + +#### Keys ignored in scope 2:.:.:scion.pro:defineReplace(nameTheNamespace): +# sn = "__relative_path___absolute_path___dirname_1_____OUT_PWD____SCXMLS_DIR_" + +#### Keys ignored in scope 3:.:.:scion.pro:defineReplace(nameTheClass): +# cn = "__basename_1_" + +extend_target(tst_scion CONDITION MSVC AND WIN32 + COMPILE_OPTIONS + /bigobj +) diff --git a/tests/auto/scion/CMakeLists.txt b/tests/auto/scion/CMakeLists.txt new file mode 100644 index 0000000..70f0c08 --- /dev/null +++ b/tests/auto/scion/CMakeLists.txt @@ -0,0 +1,139 @@ +# Generated from scion.pro. + +##################################################################### +## tst_scion Test: +##################################################################### + +add_qt_test(tst_scion + SOURCES + tst_scion.cpp + DEFINES + QT_NO_CAST_FROM_ASCII + QT_NO_CAST_TO_ASCII + PUBLIC_LIBRARIES + Qt::Gui + Qt::Qml + Qt::Scxml +) +#### Ignored generated resource: ${CMAKE_CURRENT_BINARY_DIR}/scion.qrc +#### Keys ignored in scope 1:.:.:scion.pro:<TRUE>: +# ALLFILES = "$$SCXMLS_DIR/*.*," +# ALLSCXMLS = "$$SCXMLS_DIR/*.scxml," +# BLACKLISTED = "test216sub1.scxml" "test226sub1.txml" "test239sub1.scxml" "test242sub1.scxml" "test276sub1.scxml" "test530.txml.scxml" "test301.txml.scxml" "test441a.txml.scxml" "test441b.txml.scxml" "test557.txml.scxml" +# QMAKE_EXTRA_COMPILERS = "myscxml" "myscxml_hdr" +# SCXMLS_DIR = "$$absolute_path($$PWD/../../3rdparty/scion-tests/scxml-test-framework/test)" +# TEMPLATE = "app" +# contents = "'<!DOCTYPE" "RCC><RCC" "version=\"1.0\">'" "'<qresource>'" "$$qrc" "'</qresource></RCC>'" +# myscxml.commands = "$$QMAKE_QSCXMLC" "--header" "scxml/${QMAKE_FUNC_nameTheNamespace}_${QMAKE_FILE_IN_BASE}.h" "--impl" "${QMAKE_FILE_OUT}" "--namespace" "${QMAKE_FUNC_nameTheNamespace}" "--classname" "${QMAKE_FUNC_nameTheClass}" "${QMAKE_FILE_IN}" +# myscxml.depends = "$$QMAKE_QSCXMLC_EXE" +# myscxml.input = "SCXMLS" +# myscxml.output = "scxml/${QMAKE_FUNC_nameTheNamespace}_${QMAKE_FILE_IN_BASE}.cpp" +# myscxml.variable_out = "SOURCES" +# myscxml_hdr.commands = "$$escape_expand(\\n)" +# myscxml_hdr.depends = "scxml/${QMAKE_FUNC_nameTheNamespace}_${QMAKE_FILE_IN_BASE}.cpp" +# myscxml_hdr.input = "SCXMLS" +# myscxml_hdr.output = "scxml/${QMAKE_FUNC_nameTheNamespace}_${QMAKE_FILE_IN_BASE}.h" +# myscxml_hdr.variable_out = "SCXML_HEADERS" + +## Scopes: +##################################################################### + +#### Keys ignored in scope 2:.:.:scion.pro:defineReplace(nameTheNamespace): +# sn = "__relative_path___absolute_path___dirname_1_____OUT_PWD____SCXMLS_DIR_" + +#### Keys ignored in scope 3:.:.:scion.pro:defineReplace(nameTheClass): +# cn = "__basename_1_" + +extend_target(tst_scion CONDITION MSVC AND WIN32 + COMPILE_OPTIONS + /bigobj +) + +# special case begin + +# For a better explanation about the "blacklisted" tests, see tst_scion.cpp +# <invoke> +set(blacklisted + test216sub1.scxml + test226sub1.txml + test239sub1.scxml + test242sub1.scxml + test276sub1.scxml + test530.txml.scxml) + +# other +list(APPEND blacklisted + test301.txml.scxml + test441a.txml.scxml + test441b.txml.scxml + test557.txml.scxml) + +set(scxmls_dir ../../3rdparty/scion-tests/scxml-test-framework/test) +get_filename_component(scxmls_dir ${scxmls_dir} ABSOLUTE) +file(GLOB_RECURSE allscxmls ${scxmls_dir}/*.scxml) + +set(scxmls) +set(inc_list) +set(func_list) +set(test_bases) +foreach(f ${allscxmls}) + get_filename_component(cn ${f} NAME) + if(NOT cn IN_LIST blacklisted) + list(APPEND scxmls ${f}) + + string(REGEX REPLACE "\\.scxml$" "" cn ${cn}) + set(hn ${cn}) + string(REGEX REPLACE "\\.txml$" "" cn ${cn}) + get_filename_component(sn ${f} DIRECTORY) + file(RELATIVE_PATH sn ${scxmls_dir} ${sn}) + string(REGEX REPLACE "[^a-zA-Z_0-9]" "_" sn ${sn}) + + set(out_h scxml/${sn}_${hn}.h) + set(out_cpp scxml/${sn}_${hn}.cpp) + string(APPEND inc_list "#include \"${out_h}\"\n") + string(APPEND func_list " []()->QScxmlStateMachine*{return new ${sn}::${cn};},\n") + + file(RELATIVE_PATH tn ${scxmls_dir} ${f}) + string(REGEX REPLACE "\\.scxml$" "" tn ${tn}) + string(APPEND test_bases " \"${tn}\",\n") + + file(TO_NATIVE_PATH ${out_h} native_out_h) + file(TO_NATIVE_PATH ${out_cpp} native_out_cpp) + add_custom_command( + OUTPUT ${out_cpp} ${out_h} + ${QT_TOOL_PATH_SETUP_COMMAND} + COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::qscxmlc + ARGS --header ${native_out_h} --impl ${native_out_cpp} --namespace ${sn} --classname ${cn} ${f} + VERBATIM + ) + set_source_files_properties(${out_h} ${out_cpp} PROPERTIES SKIP_AUTOMOC TRUE) + target_sources(tst_scion PRIVATE ${out_h} ${out_cpp}) + endif() +endforeach() + +file(GLOB_RECURSE allfiles ${scxmls_dir}/*.*) +foreach(f ${allfiles}) + file(RELATIVE_PATH base ${scxmls_dir} ${f}) + set_source_files_properties(${f} + PROPERTIES + QT_SKIP_QUICKCOMPILER ON + QT_RESOURCE_ALIAS ${base} + ) +endforeach() + +add_qt_resource(tst_scion "scion" + PREFIX "/" + FILES ${allfiles} +) + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scxml/compiled_tests.h + "${inc_list}\nstd::function<QScxmlStateMachine *()> creators[] = {\n${func_list}};") +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scxml/scion.h + "const char *testBases[] = {\n${test_bases}};") +target_sources(tst_scion + PRIVATE + ${CMAKE_CURRENT_BINARY_DIR}/scxml/compiled_tests.h + ${CMAKE_CURRENT_BINARY_DIR}/scxml/scion.h +) + +# special case end diff --git a/tests/auto/statemachine/CMakeLists.txt b/tests/auto/statemachine/CMakeLists.txt new file mode 100644 index 0000000..f0e90e3 --- /dev/null +++ b/tests/auto/statemachine/CMakeLists.txt @@ -0,0 +1,40 @@ +# Generated from statemachine.pro. + +##################################################################### +## tst_statemachine Test: +##################################################################### + +add_qt_test(tst_statemachine + SOURCES + tst_statemachine.cpp + LIBRARIES + Qt::ScxmlPrivate + PUBLIC_LIBRARIES + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set(tst_statemachine_resource_files + "emptylog.scxml" + "eventoccurred.scxml" + "historystate.scxml" + "ids1.scxml" + "invoke.scxml" + "multipleinvokableservices.scxml" + "stateDotDoneEvent.scxml" + "statenames.scxml" + "statenamesnested.scxml" +) + +add_qt_resource(tst_statemachine "tst_statemachine" + PREFIX + "/tst_statemachine" + FILES + ${tst_statemachine_resource_files} +) + + +#### Keys ignored in scope 1:.:.:statemachine.pro:<TRUE>: +# TEMPLATE = "app" diff --git a/tests/auto/statemachineinfo/CMakeLists.txt b/tests/auto/statemachineinfo/CMakeLists.txt new file mode 100644 index 0000000..06c0cd2 --- /dev/null +++ b/tests/auto/statemachineinfo/CMakeLists.txt @@ -0,0 +1,32 @@ +# Generated from statemachineinfo.pro. + +##################################################################### +## tst_statemachineinfo Test: +##################################################################### + +add_qt_test(tst_statemachineinfo + SOURCES + tst_statemachineinfo.cpp + LIBRARIES + Qt::ScxmlPrivate + PUBLIC_LIBRARIES + Qt::Gui + Qt::Qml + Qt::Scxml +) + +# Resources: +set(tst_statemachineinfo_resource_files + "statemachine.scxml" +) + +add_qt_resource(tst_statemachineinfo "tst_statemachineinfo" + PREFIX + "/tst_statemachineinfo" + FILES + ${tst_statemachineinfo_resource_files} +) + + +#### Keys ignored in scope 1:.:.:statemachineinfo.pro:<TRUE>: +# TEMPLATE = "app" diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt new file mode 100644 index 0000000..3d0405c --- /dev/null +++ b/tools/CMakeLists.txt @@ -0,0 +1,5 @@ +# Generated from tools.pro. + +if(QT_FEATURE_commandlineparser) + add_subdirectory(qscxmlc) +endif() diff --git a/tools/qscxmlc/.prev_CMakeLists.txt b/tools/qscxmlc/.prev_CMakeLists.txt new file mode 100644 index 0000000..71e210e --- /dev/null +++ b/tools/qscxmlc/.prev_CMakeLists.txt @@ -0,0 +1,49 @@ +# Generated from qscxmlc.pro. + +##################################################################### +## qscxmlc Tool: +##################################################################### + +add_qt_tool(qscxmlc + SOURCES + ../../src/scxml/qscxmlcompiler.cpp ../../src/scxml/qscxmlcompiler.h ../../src/scxml/qscxmlcompiler_p.h + ../../src/scxml/qscxmlerror.cpp ../../src/scxml/qscxmlerror.h + ../../src/scxml/qscxmlexecutablecontent.cpp ../../src/scxml/qscxmlexecutablecontent.h ../../src/scxml/qscxmlexecutablecontent_p.h + ../../src/scxml/qscxmlglobals.h + ../../src/scxml/qscxmltabledata.cpp ../../src/scxml/qscxmltabledata.h + generator.cpp generator.h + main.cpp + moc.h + outputrevision.h + qscxmlc.cpp qscxmlc.h + scxmlcppdumper.cpp scxmlcppdumper.h + utils.h + DEFINES + BUILD_QSCXMLC + QT_NO_CAST_FROM_ASCII + QT_NO_CAST_TO_ASCII + INCLUDE_DIRECTORIES + .scxml.includes + .scxml_private.includes + LIBRARIES + Qt::CorePrivate +) + +# Resources: +set(templates_resource_files + "cppdatamodel.t" + "data.t" + "decl.t" +) + +add_qt_resource(qscxmlc "templates" + PREFIX + "/" + FILES + ${templates_resource_files} +) + + +#### Keys ignored in scope 1:.:.:qscxmlc.pro:<TRUE>: +# _LOADED = "qt_tool" "resources" +# _OPTION = "host_build" diff --git a/tools/qscxmlc/CMakeLists.txt b/tools/qscxmlc/CMakeLists.txt new file mode 100644 index 0000000..ba91e9c --- /dev/null +++ b/tools/qscxmlc/CMakeLists.txt @@ -0,0 +1,58 @@ +# Generated from qscxmlc.pro. + +##################################################################### +## qscxmlc Tool: +##################################################################### + +add_qt_tool(qscxmlc + TOOLS_TARGET Scxml # special case + SOURCES + ../../src/scxml/qscxmlcompiler.cpp ../../src/scxml/qscxmlcompiler.h ../../src/scxml/qscxmlcompiler_p.h + ../../src/scxml/qscxmlerror.cpp ../../src/scxml/qscxmlerror.h + ../../src/scxml/qscxmlexecutablecontent.cpp ../../src/scxml/qscxmlexecutablecontent.h ../../src/scxml/qscxmlexecutablecontent_p.h + ../../src/scxml/qscxmlglobals.h + ../../src/scxml/qscxmltabledata.cpp ../../src/scxml/qscxmltabledata.h + generator.cpp generator.h + main.cpp + moc.h + outputrevision.h + qscxmlc.cpp qscxmlc.h + scxmlcppdumper.cpp scxmlcppdumper.h + utils.h + DEFINES + BUILD_QSCXMLC + QT_NO_CAST_FROM_ASCII + QT_NO_CAST_TO_ASCII + INCLUDE_DIRECTORIES +# special case begin + $<TARGET_PROPERTY:Qt::Scxml,INTERFACE_INCLUDE_DIRECTORIES> + $<TARGET_PROPERTY:Qt::ScxmlPrivate,INTERFACE_INCLUDE_DIRECTORIES> +# special case end + LIBRARIES + Qt::CorePrivate +) + +# special case begin +set_property(SOURCE ../../src/scxml/qscxmlerror.h PROPERTY SKIP_AUTOMOC ON) +set_property(SOURCE ../../src/scxml/qscxmlcompiler.cpp PROPERTY SKIP_AUTOMOC ON) +# special case end + +# Resources: +set(templates_resource_files + "cppdatamodel.t" + "data.t" + "decl.t" +) + +add_qt_resource(qscxmlc "templates" + PREFIX + "/" + FILES + ${templates_resource_files} + OPTIONS --no-compress # special case +) + + +#### Keys ignored in scope 1:.:.:qscxmlc.pro:<TRUE>: +# _LOADED = "qt_tool" "resources" +# _OPTION = "host_build" |