Review Request 115210: Always set DATA_INSTALL_DIR to %ALLUSERSPROFILE% on Windows

Andrius da Costa Ribas andriusmao at gmail.com
Sun Apr 20 21:32:12 UTC 2014



> On Jan. 22, 2014, 8:22 a.m., Patrick von Reth wrote:
> > Until now we had no problems with the data installed to bin/../share  and this setup would make it impossible to have multiple independent  kde setups on one system.
> 
> Alexander Richardson wrote:
>     I know. The problem is QStandardPaths with QStandardPaths::GenericDataLocation only looks in %ALLUSERSPROFILE% and I think %APPDATA%. KF5 based KDE software won't work otherwise since it can't find the data. I think the better way of fixing this is patching Qt, but for now this works.
> 
> Patrick Spendrin wrote:
>     Can you keep that patch locally for now and we try and come up with a patch for Qt instead? We cannot restrict ourselves at that point I think.
> 
> Alexander Richardson wrote:
>     Sure no problem. I'll drop this request
> 
> David Faure wrote:
>     So what do you recommend instead, for QStandardPaths? Checking some non-standard environment variable? or?
> 
> Alexander Richardson wrote:
>     I would go for the environment variable. Something like QSTANDARDPATHS_EXTRA_DATA_DIRS that is checked in addition to the default dirs.
>     
>     Would also be useful for other cases: e.g. in the okteta unit tests I set XDG_DATA_DIRS so that my test data gets found by QStandardPaths (I know there is QFINDTESTDATA, but that won't work in that case).
>     
>     It would also be nice if there were some cross-platform solution like QStandardpaths::addDirectory(QStandardPaths::StandardLocation, const QString& path) to inject (like KStandardDirs::addResourceDir).
> 
> Patrick von Reth wrote:
>     I don't like the idea of using the env var as this would require the user to setup the variables or a kde process to set them up.
>     We also would get an undefined behaviour if the env var is not set.
>     I think kde is not the only qt project ported to windows wich uses the bin/../share location on windows, so why not only add this path with a low priority to QStrandardpathes?
>
> 
> David Faure wrote:
>     I agree that the env var would be quite inconvenient, which is why I was dubious about that approach.
>     
>     A method to add paths wouldn't help either (how would all apps do it?)
>     
>     bin/../share means "go up one level from the location of the executable and enter share"? I thought Windows apps didn't use a bin/ dir actually, but were rather in the toplevel?
>     Anyhow I'd be fine with that, especially if you can find any documentation of this outside of kde (to explain the reasoning in the Qt change request).

As far as I can see:

1 - Most GNU apps and libs ported from *nix to Windows use $PREFIX/bin, $PREFIX/share etc... and PREFIX is not standard on windows (those apps normally don't use %PROGRAMFILES%)
 * Other autoconf-based apps and libs also follow this structure
 * even those using %PROGRAMFILES% also follow this structure (e.g. for GIMP 2, $PREFIX is "%PROGRAMFILES%\GIMP 2\", having bin, lib, share... inside it)
2 - Most CMake-based apps also follow a similar pattern, relative to $CMAKE_INSTALL_PREFIX, having no specific "if(WIN32)" to install to a different directory structure
 * Cmake itself is distributed in this kind of structure (http://www.cmake.org/files/v2.8/cmake-2.8.12.2.zip)

I think those can explain the reasoning needed for a Qt request.


- Andrius da Costa


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/115210/#review47983
-----------------------------------------------------------


On Jan. 22, 2014, 2:53 p.m., Alexander Richardson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/115210/
> -----------------------------------------------------------
> 
> (Updated Jan. 22, 2014, 2:53 p.m.)
> 
> 
> Review request for Build System, Extra Cmake Modules, KDE Frameworks, and kdewin.
> 
> 
> Repository: extra-cmake-modules
> 
> 
> Description
> -------
> 
> Always set DATA_INSTALL_DIR to %ALLUSERSPROFILE% on Windows
> 
> Otherwise QStandardPaths will always fail with e.g. GenericDataLocation
> 
> 
> Diffs
> -----
> 
>   kde-modules/KDEInstallDirs.cmake 46e15c17d488d56f146aba0c2d420f74a22b9152 
> 
> Diff: https://git.reviewboard.kde.org/r/115210/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Alexander Richardson
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-buildsystem/attachments/20140420/71ba2fa2/attachment.html>


More information about the Kde-buildsystem mailing list