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,libUbuntuGestures.so -o libUbuntuGestures.so
CMakeFiles/UbuntuGestures.dir/CandidateInactivityTimer.cpp.o
CMakeFiles/UbuntuGestures.dir/DebugHelpers.cpp.o
CMakeFiles/UbuntuGestures.dir/Timer.cpp.o
CMakeFiles/UbuntuGestures.dir/TimeSource.cpp.o
CMakeFiles/UbuntuGestures.dir/TouchOwnershipEvent.cpp.o
CMakeFiles/UbuntuGestures.dir/TouchRegistry.cpp.o
CMakeFiles/UbuntuGestures.dir/UnownedTouchEvent.cpp.o
CMakeFiles/UbuntuGestures.dir/UbuntuGestures_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.
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.

objdump -p ./build/plugins/Ubuntu/Gestures/libUbuntuGesturesQml.so |grep SONAME
  SONAME               libUbuntuGesturesQml.so

-- 
You received this bug notification because you are a member of Kubuntu
Bugs, which is subscribed to cmake in Ubuntu.
https://bugs.launchpad.net/bugs/1564571

Title:
  cmake 3.5.1 no longer passes -soname to linker reliably

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cmake/+bug/1564571/+subscriptions

-- 
kubuntu-bugs mailing list
kubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kubuntu-bugs

Reply via email to