July 03, 2022, 09:28:39 PM



Build failure, missing dependency?

Started by Blues, May 16, 2022, 03:59:27 PM

Previous topic - Next topic


May 16, 2022, 03:59:27 PM Last Edit: May 16, 2022, 07:17:21 PM by Blues
CMake Error at i18n/Ts.cmake:14 (MESSAGE):
  LRELEASE_EXECUTABLE-NOTFOUND not found - ts files can't be processed
Call Stack (most recent call first):
  i18n/Ts.cmake:69 (FIND_LRELEASE)
  i18n/CMakeLists.txt:4 (COMPILE_TS_FILES)

This message is a little cryptic for me, what exactly is not found? Building the latest from GIT.


You probably haven't installed a Qt package providing lrelease executable. Please provide more info about the system you are building on and the Qt version you are building for.


May 16, 2022, 06:56:03 PM #2 Last Edit: May 16, 2022, 07:27:52 PM by Blues
Thanks. I completely misunderstood this error. First, I thought TS has something to do with MPEG transport stream, then I thought LRELEASE is some variable because it is uppercase ...
It is Gentoo and some Qt5 packages certainly are installed, apparently one is not. My GUI is Openbox, therefore full set of Qt is not required. Now I have to figure out what Qt package provides lrelease executable.

Edit: This Gentoo package is dev-qt/linguist-tools, I have it installed. There is /usr/lib64/qt5/bin/lrelease. Why it is not found?

Dammit, I just discovered I need javascript turned on for this forum.


LRELEASE_EXECUTABLE is indeed a CMake variable which is set to LRELEASE_EXECUTABLE-NOTFOUND when the lrelease executable is not found, thus producing an error message at

                IF (NOT LRELEASE_EXECUTABLE) # search again under the name lrelease-qt4
                    MESSAGE(FATAL_ERROR "${LRELEASE_EXECUTABLE} not found - ts files can't be processed")
                    SET(LRELEASE_NOT_FOUND "1")     # to avoid double checking in one cmake run
                ENDIF (NOT LRELEASE_EXECUTABLE) # search again under the name lrelease-qt4

in the FIND_LRELEASE() CMake macro, which a human brain should never be asked to parse.

Quote from: Blues on May 16, 2022, 06:56:03 PMDammit, I just discovered I need javascript turned on for this forum.

Either that or you got that stupid CleanTalk (an external black-box-alike antispam service used by this forum) message.


Can't figure out why it is not found, where should I put it to be found? What is the search path for CMake?


FIND_LRELEASE() looks first for lrelease, then for lrelease-qt5 (in case of Qt5) or lrelease-qt6 (in case of Qt6) executable in directories listed in $PATH, then in ${QTDIR}/bin. If /usr/lib64/qt5/bin is not in your PATH (and you don't want it to be included), export QTDIR set to "/usr/lib64/qt5".


Thanks, $QTDIR was the one I wasn't aware of. I realized there must be a variable like this, but had no clue what it is called. I'm no programmer, just a guy who likes computers. Although once many moons ago I was an IT manager, for over 7 years, can you imagine that ...  :o
It builds now, but I'm not completely happy, why I have to set it by hand? Do mainstream distros have this variable set systemwide?


Mainstream distros place lrelease executables in $PATH thus no need to set QTDIR.