KDAB / KDStateMachineEditor

A framework for creating Qt State Machine metacode using a graphical user interface
https://kdab.github.io/KDStateMachineEditor/
167 stars 32 forks source link

Unable to configure on Ubuntu Focal 20.xx (Qt 5.12 and Qt 5.14) when scxml packages are installed #24

Closed heuripedes closed 8 months ago

heuripedes commented 2 years ago

When libqt5scxml5* packages are installed CMake will configure the Qt SCXML adapter but it fails when it finds out there's no Qt5::ScxmlPrivate target. The *qt5scxml5-private-dev package is only available on Ubuntu 21.04 onwards.

Upstream bug filled: https://bugs.launchpad.net/ubuntu/+source/qtscxml-everywhere-src/+bug/1950857

Workaround (broken) This doesn't work because some files are still missing, but might be an initial step for a proper workaround until a definitive solution is found. 1. Download the appropriate `qtscxml-everywhere-src*.orig.tar.xz` file - Ubuntu 20.04: https://packages.ubuntu.com/source/focal/qtscxml-everywhere-src - Ubuntu 20.10: https://packages.ubuntu.com/source/groovy/qtscxml-everywhere-src 2. Extract `include/QtScxml` and copy it to `/usr/include/x86_64-linux-gnu/qt5/`
cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local .. -- The CXX compiler identification is GNU 9.3.0 -- The C compiler identification is GNU 9.3.0 -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Looking for include file graphviz/graphviz_version.h -- Looking for include file graphviz/graphviz_version.h - found -- Found Graphviz version 2.43.0 -- Looking for include file string.h -- Looking for include file string.h - found -- Found Graphviz: /usr/lib/x86_64-linux-gnu/libcdt.so /usr/lib/x86_64-linux-gnu/libgvc.so /usr/lib/x86_64-linux-gnu/libcgraph.so GRAPHVIZ_GRAPH_LIBRARY-NOTFOUND /usr/lib/x86_64-linux-gnu/libpathplan.so -- Performing Test C_SUPPORTS_UNUSED_BUT_SET -- Performing Test C_SUPPORTS_UNUSED_BUT_SET - Success -- Performing Test CXX_SUPPORTS_UNUSED_BUT_SET -- Performing Test CXX_SUPPORTS_UNUSED_BUT_SET - Success -- Performing Test C_SUPPORTS_LOGICAL_OP -- Performing Test C_SUPPORTS_LOGICAL_OP - Success -- Performing Test CXX_SUPPORTS_LOGICAL_OP -- Performing Test CXX_SUPPORTS_LOGICAL_OP - Success -- Performing Test C_SUPPORTS_POINTER_MEMACCESS -- Performing Test C_SUPPORTS_POINTER_MEMACCESS - Success -- Performing Test CXX_SUPPORTS_POINTER_MEMACCESS -- Performing Test CXX_SUPPORTS_POINTER_MEMACCESS - Success -- Performing Test C_SUPPORTS_REORDER -- Performing Test C_SUPPORTS_REORDER - Failed -- Performing Test CXX_SUPPORTS_REORDER -- Performing Test CXX_SUPPORTS_REORDER - Success -- Performing Test C_SUPPORTS_FORMAT_SECURITY -- Performing Test C_SUPPORTS_FORMAT_SECURITY - Success -- Performing Test CXX_SUPPORTS_FORMAT_SECURITY -- Performing Test CXX_SUPPORTS_FORMAT_SECURITY - Success -- Performing Test HAVE_GXX_GNUXX11 -- Performing Test HAVE_GXX_GNUXX11 - Success -- Performing Test HAVE_GXX_CXX11 -- Performing Test HAVE_GXX_CXX11 - Success -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success -- Performing Test COMPILER_HAS_DEPRECATED_ATTR -- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) -- The following OPTIONAL packages have been found: * Qt5RemoteObjects (required version >= 5.12), Qt Remote Objects module Needed for the QStateMachine/QtSCXML adapter and remote debugging capabilities * Qt5Scxml (required version >= 5.12), Qt SCXML module Needed for the Qt SCXML adapter (adapter itself depends on Qt RemoteObjects) * Qt5XmlPatterns (required version >= 5.12), Qt XmlPatterns library Required for unit tests dealing with XML input/output -- The following RECOMMENDED packages have been found: * Graphviz, Graph visualization software, Needed for automatic layout of state charts -- The following REQUIRED packages have been found: * Qt5Network (required version >= 5.12.8) * Qt5Qml (required version >= 5.12.8) * Qt5Gui (required version >= 5.12.8) * Qt5Quick * Qt5QuickWidgets * Qt5Test * Qt5Widgets * Qt5 (required version >= 5.12) * Qt5Core -- The following features have been disabled: * Internal build of Graphviz, enable with WITH_INTERNAL_GRAPHVIZ=ON -- The following OPTIONAL packages have not been found: * Doxygen, API Documentation system, Needed to build the API documentation. -- Configuring done CMake Warning (dev) in src/core/tests/CMakeLists.txt: Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files. Run "cmake --help-policy CMP0071" for policy details. Use the cmake_policy command to set the policy and suppress this warning. For compatibility, CMake is excluding the GENERATED source file(s): "/home/higor/code/KDStateMachineEditor/build/src/core/tests/rep_debuginterface_replica.h" from processing by AUTOMOC and AUTOUIC. If any of the files should be processed, set CMP0071 to NEW. If any of the files should not be processed, explicitly exclude them by setting the source file property SKIP_AUTOGEN: set_property(SOURCE file.h PROPERTY SKIP_AUTOGEN ON) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) in src/debuginterface/debuginterfacesource/CMakeLists.txt: Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files. Run "cmake --help-policy CMP0071" for policy details. Use the cmake_policy command to set the policy and suppress this warning. For compatibility, CMake is excluding the GENERATED source file(s): "/home/higor/code/KDStateMachineEditor/build/src/debuginterface/debuginterfacesource/rep_debuginterface_source.h" from processing by AUTOMOC and AUTOUIC. If any of the files should be processed, set CMP0071 to NEW. If any of the files should not be processed, explicitly exclude them by setting the source file property SKIP_AUTOGEN: set_property(SOURCE file.h PROPERTY SKIP_AUTOGEN ON) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) in src/debuginterface/debuginterfaceclient/CMakeLists.txt: Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files. Run "cmake --help-policy CMP0071" for policy details. Use the cmake_policy command to set the policy and suppress this warning. For compatibility, CMake is excluding the GENERATED source file(s): "/home/higor/code/KDStateMachineEditor/build/src/debuginterface/debuginterfaceclient/rep_debuginterface_replica.h" from processing by AUTOMOC and AUTOUIC. If any of the files should be processed, set CMP0071 to NEW. If any of the files should not be processed, explicitly exclude them by setting the source file property SKIP_AUTOGEN: set_property(SOURCE file.h PROPERTY SKIP_AUTOGEN ON) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) in examples/qsmdebugger/CMakeLists.txt: Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files. Run "cmake --help-policy CMP0071" for policy details. Use the cmake_policy command to set the policy and suppress this warning. For compatibility, CMake is excluding the GENERATED source file(s): "/home/higor/code/KDStateMachineEditor/build/examples/qsmdebugger/rep_debuginterface_replica.h" from processing by AUTOMOC and AUTOUIC. If any of the files should be processed, set CMP0071 to NEW. If any of the files should not be processed, explicitly exclude them by setting the source file property SKIP_AUTOGEN: set_property(SOURCE file.h PROPERTY SKIP_AUTOGEN ON) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) in examples/qscxmldebugger/CMakeLists.txt: Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files. Run "cmake --help-policy CMP0071" for policy details. Use the cmake_policy command to set the policy and suppress this warning. For compatibility, CMake is excluding the GENERATED source file(s): "/home/higor/code/KDStateMachineEditor/build/examples/qscxmldebugger/rep_debuginterface_replica.h" "/home/higor/code/KDStateMachineEditor/build/examples/qscxmldebugger/statemachine.cpp" "/home/higor/code/KDStateMachineEditor/build/examples/qscxmldebugger/statemachine.h" from processing by AUTOMOC and AUTOUIC. If any of the files should be processed, set CMP0071 to NEW. If any of the files should not be processed, explicitly exclude them by setting the source file property SKIP_AUTOGEN: set_property(SOURCE file.h PROPERTY SKIP_AUTOGEN ON) This warning is for project developers. Use -Wno-dev to suppress it. CMake Error at cmake/ECM/modules/ECMAddTests.cmake:89 (add_executable): Target "test_qsmintegration" links to target "Qt5::ScxmlPrivate" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): src/core/tests/CMakeLists.txt:66 (ecm_add_test) CMake Error at src/debuginterface/debuginterfacesource/CMakeLists.txt:31 (add_library): Target "kdstatemachineeditor_debuginterfacesource" links to target "Qt5::ScxmlPrivate" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? CMake Error at examples/qsmdebugger/CMakeLists.txt:21 (add_executable): Target "qsmdebugger" links to target "Qt5::ScxmlPrivate" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? CMake Error at examples/qscxmldebugger/CMakeLists.txt:22 (add_executable): Target "qscxmldebugger" links to target "Qt5::ScxmlPrivate" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? CMake Error at src/debuginterface/debuginterfacesource/CMakeLists.txt:31 (add_library): Target "kdstatemachineeditor_debuginterfacesource" links to target "Qt5::ScxmlPrivate" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? -- Generating done CMake Generate step failed. Build files cannot be regenerated correctly.
dantti commented 8 months ago

Closing as we now require Qt 5.15 or Qt6, also we require the private headers that we can't control which distros make it available.