From: Hazen B. <hba...@ma...> - 2016-01-22 02:23:27
|
Hello, As Qt4 is now at least technically no longer supported I thought I might spend some time to see if I could get our PyQt bindings to work with Qt5. However unfortunately I can't even build PLplot with Qt5 due to a cmake error. Any suggestions would be appreciated. The error message: CMake Error at bindings/qt_gui/CMakeLists.txt:54 (target_link_libraries): The plain signature for target_link_libraries has already been used with the target "plplotqt". All uses of target_link_libraries with a target must be either all-keyword or all-plain. The uses of the plain signature are here: * /usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreMacros.cmake:278 (target_link_libraries) I used this command in my build directory: cmake -DPLPLOT_USE_QT5=ON ../plplot > cmake.txt 2>&1 CMake log files attached. lubuntu 15.10. > uname -a Linux Dell-XPS-8100 4.2.0-25-generic #30-Ubuntu SMP Mon Jan 18 12:31:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux -Hazen |
From: Greg J. <gv...@gm...> - 2016-01-22 03:21:46
|
I know that one, it came up for me when building a new shared library and one of the target_link_libraries() calls included "PRIVATE" as a keyword (i.e., exactly what it said). I took out the "PRIVATE " and it worked. What that all means, I don't know! the result worked out for linux. http://sourceforge.net/p/gnudatalanguage/patches/95/#4f41/b267 On Thu, Jan 21, 2016 at 6:23 PM, Hazen Babcock <hba...@ma...> wrote: > > Hello, > > As Qt4 is now at least technically no longer supported I thought I might > spend some time to see if I could get our PyQt bindings to work with Qt5. > However unfortunately I can't even build PLplot with Qt5 due to a cmake > error. Any suggestions would be appreciated. > > The error message: > > CMake Error at bindings/qt_gui/CMakeLists.txt:54 (target_link_libraries): > The plain signature for target_link_libraries has already been used with > the target "plplotqt". All uses of target_link_libraries with a target > must be either all-keyword or all-plain. > > The uses of the plain signature are here: > > * /usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreMacros.cmake:278 > (target_link_libraries) > > > I used this command in my build directory: > cmake -DPLPLOT_USE_QT5=ON ../plplot > cmake.txt 2>&1 > > CMake log files attached. > > lubuntu 15.10. > > > uname -a > Linux Dell-XPS-8100 4.2.0-25-generic #30-Ubuntu SMP Mon Jan 18 12:31:50 > UTC 2016 x86_64 x86_64 x86_64 GNU/Linux > > -Hazen > > > ------------------------------------------------------------------------------ > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 > _______________________________________________ > Plplot-devel mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-devel > > |
From: Alan W. I. <ir...@be...> - 2016-01-22 07:42:49
|
On 2016-01-21 21:23-0500 Hazen Babcock wrote: > > Hello, > > As Qt4 is now at least technically no longer supported I thought I might > spend some time to see if I could get our PyQt bindings to work with Qt5. > However unfortunately I can't even build PLplot with Qt5 due to a cmake > error. Any suggestions would be appreciated. > > The error message: > > CMake Error at bindings/qt_gui/CMakeLists.txt:54 (target_link_libraries): > The plain signature for target_link_libraries has already been used with > the target "plplotqt". All uses of target_link_libraries with a target > must be either all-keyword or all-plain. > > The uses of the plain signature are here: > > * /usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreMacros.cmake:278 > (target_link_libraries) > > > I used this command in my build directory: > cmake -DPLPLOT_USE_QT5=ON ../plplot > cmake.txt 2>&1 Hi Hazen: If you compare the two target_link_libraries commands on the exact lines mentioned in the error message, bindings/qt_gui/CMakeLists.txt uses the PRIVATE keyword, and Qt5CoreMacros.cmake uses no keywords at all, and apparently from the error message that combination of keyword signature and plain text signature for target_link_libraries commands for the same target is not allowed by CMake. I had success with a build of PLplot against Qt5 some time ago. But I am pretty sure that predated May 2015 when "git blame" tells me I introduced that PRIVATE keyword in bindings/qt_gui/CMakeLists.txt. So I would try locally removing PRIVATE from the offending line in bindings/qt_gui/CMakeLists.txt. That might introduce some overlinking issues, but I don't think you have to be concerned with those. Also, please follow the advice in the first two lines of cmake.txt, namely -- WARNING: CMAKE_VERSION = 3.2.2 is in the range from 3.2 through 3.3.1 which has a compromised find ability that was fixed in 3.3.2. Please upgrade to 3.3.2 or greater. I suggest trying 3.3.2 instead of exploring 3.4.x territory just yet because we have a lot of good experience with 3.3.2, and we have little experience of any kind with 3.4.x. Anyhow, with the above workaround and CMake-3.3.2, I think you should likely be able to build PLplot against Qt5, but let me know if you encounter any further issues. By the way, Qt4 is virtually CMake-unaware so that CMake has to do everything for it in house (but in a well-understood and stable way that virtually always works). In contrast Qt5 supplies a lot of CMake support files that help CMake figure out how to build software against Qt5, but there is a lot of churn on both the CMake side and Qt5 side on how the two work together. Part of that churn is there are about 4 different build methods of various vintages that are supported for the two working together. I chose the most modern of those methods that was available for our minimum CMake version at the time, but our CMake minimum version is higher now so I might be able to use a still more modern build method which might avoid the above issue altogether. Although I don't have time to explore that possibility any time soon, it is something to keep in mind for the future. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Hazen B. <hba...@ma...> - 2016-01-22 14:24:24
|
On 01/22/2016 02:42 AM, Alan W. Irwin wrote: > I had success with a build of PLplot against Qt5 some time ago. But I > am pretty > sure that predated May 2015 when "git blame" tells me I introduced > that PRIVATE keyword in bindings/qt_gui/CMakeLists.txt. So I would > try locally removing PRIVATE from the offending line in > bindings/qt_gui/CMakeLists.txt. That might introduce some > overlinking issues, but I don't think you have to be concerned with > those. Hi Alan, Greg, Removing the PRIVATE keyword solved the problem, thanks! > > Also, please follow the advice in the first two lines of cmake.txt, > namely > > -- WARNING: CMAKE_VERSION = 3.2.2 is in the range from 3.2 through 3.3.1 > which has > a compromised find ability that was fixed in 3.3.2. Please upgrade > to 3.3.2 or greater. This was not necessary so I'm just going to stay with my current version of cmake for the time being. -Hazen |