I see the stuff injected correctly.
also with your tarball
/usr/bin/c++ -fPIC -fvisibility=hidden -std=c++11 -fno-permissive -pedantic -Wall -Wextra -Wl,-z,defs -shared -Wl,-soname,libUbuntuGesturesQml.so -o libUbuntuGesturesQml.so CMakeFiles/UbuntuGesturesQml.dir/plugin.cpp.o CMakeFiles/UbuntuGesturesQml.dir/AxisVelocityCalculator.cpp.o CMakeFiles/UbuntuGesturesQml.dir/Damper.cpp.o CMakeFiles/UbuntuGesturesQml.dir/Direction.cpp.o CMakeFiles/UbuntuGesturesQml.dir/DirectionalDragArea.cpp.o CMakeFiles/UbuntuGesturesQml.dir/FloatingFlickable.cpp.o CMakeFiles/UbuntuGesturesQml.dir/PressedOutsideNotifier.cpp.o CMakeFiles/UbuntuGesturesQml.dir/TouchDispatcher.cpp.o CMakeFiles/UbuntuGesturesQml.dir/TouchGate.cpp.o CMakeFiles/UbuntuGesturesQml.dir/TouchGestureArea.cpp.o CMakeFiles/UbuntuGesturesQml.dir/UbuntuGesturesQml_automoc.cpp.o ../../../libs/UbuntuGestures/libUbuntuGestures.so /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.5.1 /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5.5.1 /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.5.1 /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.5.1 -Wl,-rpath,/unity8-cmakebug/build/libs/UbuntuGestures:
(I had to install also pkg-config libsystemsettings-dev libunity-api-dev)
actually as you said before:
cmake ..
make
make testFloatingFlickable # works
cmake . -DUNITY_PLUGINPATH=/usr/lib/x86_64-linux-gnu/unity8/qml
make testFloatingFlickable # broken
the second make is just changing an LD_LIBRARY_PATH variable, no rebuilds are actually performed.
You are trying to LD_PRELOAD a system qml library instead of the just built one.
Not sure what is wrong, maybe an ABI incompatibility or something else, but it seems to have nothing to do with cmake to me.
test good.
VERBOSE=1 make testFloatingFlickable
cd /unity8-cmakebug/build/tests/plugins/Ubuntu/Gestures && env QML2_IMPORT_PATH=/unity8-cmakebug/build/tests/utils/modules:/unity8-cmakebug/build/plugins LD_LIBRARY_PATH=/unity8-cmakebug/build/plugins/Ubuntu/Gestures UNITY_TESTING=1 LANGUAGE=C LC_ALL=C.UTF-8 LD_LIBRARY_PATH=/unity8-cmakebug/build/plugins/Ubuntu/Gestures /unity8-cmakebug/build/tests/plugins/Ubuntu/Gestures/FloatingFlickableTestExec -o /unity8-cmakebug/build/tests/plugins/Ubuntu/Gestures/testFloatingFlickable.xml,xunitxml -o -,txt
bad test.
cd /unity8-cmakebug/build/tests/plugins/Ubuntu/Gestures && env QML2_IMPORT_PATH=/unity8-cmakebug/build/tests/utils/modules:/usr/lib/x86_64-linux-gnu/unity8/qml LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/unity8/qml/Ubuntu/Gestures UNITY_TESTING=1 LANGUAGE=C LC_ALL=C.UTF-8 LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/unity8/qml/Ubuntu/Gestures /unity8-cmakebug/build/tests/plugins/Ubuntu/Gestures/FloatingFlickableTestExec -o /unity8-cmakebug/build/tests/plugins/Ubuntu/Gestures/testFloatingFlickable.xml,xunitxml -o -,txt
I think the testsuite should run against the local just built library, not against the system one, that might have a different API/ABI.
In any case, this seems a lot different from the first issue you reported, and the soname stuff seems to be correctly set now.
I did download the unity8 branch, dpkg-buildpackaged it, added all the dependencies, changed MODULE to SHARED.
I can't reproduce in a clean xenial environment (pbuilder)
/usr/bin/c++ -fPIC -fvisibility=hidden -std=c++11 -fno-permissive -pedantic -Wall -Wextra -Wl,-z,defs -shared -Wl,-soname, libUbuntuGestur es.so -o libUbuntuGestur es.so CMakeFiles/ UbuntuGestures. dir/CandidateIn activityTimer. cpp.o CMakeFiles/ UbuntuGestures. dir/DebugHelper s.cpp.o CMakeFiles/ UbuntuGestures. dir/Timer. cpp.o CMakeFiles/ UbuntuGestures. dir/TimeSource. cpp.o CMakeFiles/ UbuntuGestures. dir/TouchOwners hipEvent. cpp.o CMakeFiles/ UbuntuGestures. dir/TouchRegist ry.cpp. o CMakeFiles/ UbuntuGestures. dir/UnownedTouc hEvent. cpp.o CMakeFiles/ UbuntuGestures. dir/UbuntuGestu res_automoc. cpp.o /usr/lib/ x86_64- linux-gnu/ libQt5Quick. so.5.5. 1 /usr/lib/ x86_64- linux-gnu/ libQt5Qml. so.5.5. 1 /usr/lib/ x86_64- linux-gnu/ libQt5Network. so.5.5. 1 /usr/lib/ x86_64- linux-gnu/ libQt5Gui. so.5.5. 1 /usr/lib/ x86_64- linux-gnu/ libQt5Core. so.5.5. 1
I see the stuff injected correctly. libUbuntuGestur esQml.so -o libUbuntuGestur esQml.so CMakeFiles/ UbuntuGesturesQ ml.dir/ plugin. cpp.o CMakeFiles/ UbuntuGesturesQ ml.dir/ AxisVelocityCal culator. cpp.o CMakeFiles/ UbuntuGesturesQ ml.dir/ Damper. cpp.o CMakeFiles/ UbuntuGesturesQ ml.dir/ Direction. cpp.o CMakeFiles/ UbuntuGesturesQ ml.dir/ DirectionalDrag Area.cpp. o CMakeFiles/ UbuntuGesturesQ ml.dir/ FloatingFlickab le.cpp. o CMakeFiles/ UbuntuGesturesQ ml.dir/ PressedOutsideN otifier. cpp.o CMakeFiles/ UbuntuGesturesQ ml.dir/ TouchDispatcher .cpp.o CMakeFiles/ UbuntuGesturesQ ml.dir/ TouchGate. cpp.o CMakeFiles/ UbuntuGesturesQ ml.dir/ TouchGestureAre a.cpp.o CMakeFiles/ UbuntuGesturesQ ml.dir/ UbuntuGesturesQ ml_automoc. cpp.o ../../. ./libs/ UbuntuGestures/ libUbuntuGestur es.so /usr/lib/ x86_64- linux-gnu/ libQt5Quick. so.5.5. 1 /usr/lib/ x86_64- linux-gnu/ libQt5Qml. so.5.5. 1 /usr/lib/ x86_64- linux-gnu/ libQt5Network. so.5.5. 1 /usr/lib/ x86_64- linux-gnu/ libQt5Gui. so.5.5. 1 /usr/lib/ x86_64- linux-gnu/ libQt5Core. so.5.5. 1 -Wl,-rpath, /unity8- cmakebug/ build/libs/ UbuntuGestures:
also with your tarball
/usr/bin/c++ -fPIC -fvisibility=hidden -std=c++11 -fno-permissive -pedantic -Wall -Wextra -Wl,-z,defs -shared -Wl,-soname,
(I had to install also pkg-config libsystemsettin gs-dev libunity-api-dev)
actually as you said before: ckable # works PLUGINPATH= /usr/lib/ x86_64- linux-gnu/ unity8/ qml ckable # broken
cmake ..
make
make testFloatingFli
cmake . -DUNITY_
make testFloatingFli
the second make is just changing an LD_LIBRARY_PATH variable, no rebuilds are actually performed.
You are trying to LD_PRELOAD a system qml library instead of the just built one.
Not sure what is wrong, maybe an ABI incompatibility or something else, but it seems to have nothing to do with cmake to me.
test good. ckable cmakebug/ build/tests/ plugins/ Ubuntu/ Gestures && env QML2_IMPORT_ PATH=/unity8- cmakebug/ build/tests/ utils/modules: /unity8- cmakebug/ build/plugins LD_LIBRARY_ PATH=/unity8- cmakebug/ build/plugins/ Ubuntu/ Gestures UNITY_TESTING=1 LANGUAGE=C LC_ALL=C.UTF-8 LD_LIBRARY_ PATH=/unity8- cmakebug/ build/plugins/ Ubuntu/ Gestures /unity8- cmakebug/ build/tests/ plugins/ Ubuntu/ Gestures/ FloatingFlickab leTestExec -o /unity8- cmakebug/ build/tests/ plugins/ Ubuntu/ Gestures/ testFloatingFli ckable. xml,xunitxml -o -,txt
VERBOSE=1 make testFloatingFli
cd /unity8-
bad test. cmakebug/ build/tests/ plugins/ Ubuntu/ Gestures && env QML2_IMPORT_ PATH=/unity8- cmakebug/ build/tests/ utils/modules: /usr/lib/ x86_64- linux-gnu/ unity8/ qml LD_LIBRARY_ PATH=/usr/ lib/x86_ 64-linux- gnu/unity8/ qml/Ubuntu/ Gestures UNITY_TESTING=1 LANGUAGE=C LC_ALL=C.UTF-8 LD_LIBRARY_ PATH=/usr/ lib/x86_ 64-linux- gnu/unity8/ qml/Ubuntu/ Gestures /unity8- cmakebug/ build/tests/ plugins/ Ubuntu/ Gestures/ FloatingFlickab leTestExec -o /unity8- cmakebug/ build/tests/ plugins/ Ubuntu/ Gestures/ testFloatingFli ckable. xml,xunitxml -o -,txt
cd /unity8-
I think the testsuite should run against the local just built library, not against the system one, that might have a different API/ABI.
In any case, this seems a lot different from the first issue you reported, and the soname stuff seems to be correctly set now.
objdump -p ./build/ plugins/ Ubuntu/ Gestures/ libUbuntuGestur esQml.so |grep SONAME esQml.so
SONAME libUbuntuGestur