KDStateMachineEditor icon indicating copy to clipboard operation
KDStateMachineEditor copied to clipboard

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

Open heuripedes opened this issue 3 years ago • 0 comments

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, <https://www.graphviz.org/>
   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, <https://www.doxygen.org>
   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.

heuripedes avatar Nov 13 '21 13:11 heuripedes