"kde5" or "kf5" ?

Alexander Neundorf neundorf at kde.org
Wed Feb 20 21:40:16 UTC 2013


On Monday 18 February 2013, Alexander Neundorf wrote:
> On Sunday 17 February 2013, David Faure wrote:
> > On Saturday 16 February 2013 17:23:46 Sune Vuorela wrote:
> > > On 2013-02-16, Alexander Neundorf <neundorf at kde.org> wrote:
> > > > _set_fancy(LIBEXEC_INSTALL_DIR  "${LIB_INSTALL_DIR}/kde5/libexec")
> > > 
> > > I still don't see a reason for a *shared* libexec directory. libexec is
> > > implementation details of specific libraries, just like one shouldn't
> > > mess around with each others private's in the code, one also shouldn't
> > > mess around with other's libexec bits.
> > > 
> > > so libfoo's libexec should be lib_install_dir/foo/libexec
> > 
> > I like this solution. It answers my long-lasting question about why there
> > isn't a standardized libexec path (so that
> > QStandardPaths::findExecutable) can look into it. If there isn't a
> > standard path, then we might as well split it per lib indeed.
> > 
> > Any volunteer for porting the current uses of LIBEXEC_INSTALL_DIR
> > everywhere in kdelibs-frameworks (both in cmakelists.txt and in code)?
> 
> I'll have a look (if nobody else is faster).

Ok, this is not a simple search-and-replace.
kinit.cpp has this code:

ByteArray execpath_avoid_loops( const QByteArray& exec, int envc,
                                const char* envs, bool avoid_loops )
{
     QStringList paths;
     const QRegExp pathSepRegExp(QString::fromLatin1("[:\b]"));
     if( envc > 0 ) /* use the passed environment */
     {
         const char* path = get_env_var( "PATH=", envc, envs );
         if( path != NULL )
         {
             paths = QFile::decodeName(path).split(pathSepRegExp);
         }
     }
     else
     {
         paths = QString::fromLocal8Bit(qgetenv("PATH")).
                         split(pathSepRegExp, QString::KeepEmptyParts);
         paths.prepend(QFile::decodeName(
                         CMAKE_INSTALL_PREFIX "/" LIBEXEC_INSTALL_DIR));
     }
     QString execpath = QStandardPaths::findExecutable(
                         QFile::decodeName(exec), paths);
...

     return QFile::encodeName(execpath);
}


So it will find all executables installed into the same LIBEXEC_INSTALL_DIR.
(Having said that, it also assumes that LIBEXEC_INSTALL_DIR is a relative 
path. It should be able to handle both).

If we don't have a common LIBEXEC_INSTALL_DIR anymore, what do we do then ?

Alex


More information about the Kde-frameworks-devel mailing list