Search code examples
qtdockercmakeqt5ubuntu-18.04

CMake cannot find Qt5LinguistTools in Docker / Ubuntu 18.04


My simple Dockerfile:

FROM ubuntu:18.04

RUN apt update && apt upgrade -y

RUN apt install build-essential cmake qt5-default -y

RUN apt install qttools5-dev-tools -y

When I check linguist inside the container it's there:

root@9087245330a7:/# which linguist
/usr/bin/linguist

...but when I configure my app inside the container:

CMake Error at CMakeLists.txt:72 (find_package):
  By not providing "FindQt5LinguistTools.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "Qt5LinguistTools", but CMake did not find one.

  Could not find a package configuration file provided by "Qt5LinguistTools"
  (requested version 5.5.1) with any of the following names:

    Qt5LinguistToolsConfig.cmake
    qt5linguisttools-config.cmake

  Add the installation prefix of "Qt5LinguistTools" to CMAKE_PREFIX_PATH or
  set "Qt5LinguistTools_DIR" to a directory containing one of the above
  files.  If "Qt5LinguistTools" provides a separate development package or
  SDK, be sure it has been installed.

What is going on? This works on Ubuntu 16.04 just fine.


Solution

  • The problem was that in Ubuntu 18.04+ you need to install also qttools5-dev in order to get /usr/lib/x86_64-linux-gnu/cmake/Qt5LinguistTools/Qt5LinguistToolsConfig.cmake.

    Edit: For Qt 6 you'll need qt6-tools-dev.