¿Cómo construir cmake-gui en Linux desde la fuente?

Respuestas:

6

Dos opciones aquí:

  • cmake-guiestá empaquetado como cmake-qt-gui . Instalarlo con:

    sudo apt-get install cmake-qt-gui
    
  • Si realmente necesita construirlo desde la fuente, haga lo siguiente:

    sudo apt-get update
    sudo apt-get build-dep cmake-qt-gui
    wget https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz
    
    tar -xzf cmake-3.11.0.tar.gz
    cd cmake-3.11.0/
    ./configure --qt-gui
    make -j5
    bin/cmake-gui
    
N0rbert
fuente
2
No, los paquetes contienen cmake obsoleto, que no admite el impulso 1.66, por ejemplo ...
stiv
55
Instalar cmake-qt-guicon apt después de haber compilado cmakede las fuentes provocaría el siguiente tipo de error:Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: cmake-qt-gui : Depends: cmake (= 3.5.1-1ubuntu3) E: Unable to correct problems, you have held broken packages.
sk
2

Nada más depende de cmake (probablemente), por lo que es un nodo hoja. Desinstalar la deb. Obtenga la última fuente de https://cmake.org/ y desempaquete el tarball en algún lugar, cd en él.

./bootstrap --qt-gui
make
make install

Asumiendo que tienes las cosas QT dev instaladas. Terminas con la línea de comandos regular cmake y cmake-qui. Comience desde la línea de comandos escribiendo cmake o cmake-gui, no sé cómo agregar a los menús.

Alan Corey
fuente
0

Proceso

  • En este proceso en particular, decidí configurar la última versión de cmake, con la versión adecuada de cmake (perdón si esto es confuso).

  • cmake-gui se compila con el mismo repositorio que la herramienta de línea de comando cmake, pero la configuración de compilación predeterminada para cmake no está configurada para compilar cmake-gui (ni la interfaz curses ni la interfaz Qt).

  • Para compilar cmake con cmake-gui, es necesario establecer algunas variables en el script de compilación de cmake. Normalmente puede hacer esto a través de la interfaz de usuario, pero también es posible establecer estas variables editando manualmente CMakeCache.txt en el directorio de compilación, que es lo que mostraré cómo hacer en esta respuesta.

  • CMake requiere Qt, pero no puede encontrarlo automáticamente, una de las cosas que debemos hacer es mostrar dónde están los scripts de Qt CMake.

1. Instale Qt (si aún no lo tiene)

  • Descargue el instalador del sitio web de Qt . En mi caso, seleccioné la última versión de 5.12 (al momento de escribir, 5.12.7) y la instalé con todas las configuraciones predeterminadas.

  • Deberá crear una cuenta con Qt para descargar el instalador utilizando este método; la cuenta es gratuita para usuarios de código abierto (que es si está usando esto para crear cmake para su propio uso; si planea usar Qt para cualquier otra cosa, debe verificar si puede usar esta versión).

  • Instalé Qt en una carpeta llamada Qt en mi directorio de inicio.

  • Este proceso de instalación llevará un tiempo.

  • Creo que Qt podría estar disponible a través de apt, pero para mis propósitos necesitaba la descarga completa para otro proyecto, así que lo tuve aquí de todos modos.

2. git clone las fuentes de cmake desde su repositorio de git a algún lugar (por ejemplo, su directorio de inicio).

git clone https://gitlab.kitware.com/cmake/cmake.git

3. Hacer un directorio de compilación

cd cmake
mkdir build
cd build
cmake ..

Eso, entre otras cosas, colocará un archivo llamado CMakeCache.txt en su carpeta de compilación.

4. Edite CMakeCache.txt para configurar la interfaz de usuario

  • Abra este archivo en su editor de texto y edite las siguientes líneas para habilitar qt ui (las encontré buscando qt).

  • Tenga en cuenta que necesita reemplazar PATH_TO_QT con donde está su directorio qt, en mi caso PATH_TO_QT era solo / home / myname / Qt.

  • Aconsejaría no usar rutas relativas o ~.
//Build Qt dialog for CMake
BUILD_QtDialog:BOOL=ON

QT_QMAKE_EXECUTABLE:FILEPATH=PATH_TO_QT/5.12.7/gcc_64/bin/qmake

//The directory containing a CMake configuration file for Qt5Core.
Qt5Core_DIR:PATH=PATH_TO_QT/5.12.7/gcc_64/lib/cmake/Qt5Core

//The directory containing a CMake configuration file for Qt5Widgets.
Qt5Widgets_DIR:PATH=PATH_TO_QT/5.12.7/gcc_64/lib/cmake/Qt5Widgets

5. Vuelva a ejecutar cmake .. en el directorio de compilación

cmake ..

6. Compile cmake (en el directorio de compilación)

Donde N es el número de núcleos que desea compilar, en mi caso escribí make -j10.

make -jN

7. Instale el cmake construido

  • Puede tener la tentación de eliminar la versión apta de cmake antes de hacerlo, pero parece que (por alguna razón), la parte de instalación de cmake requiere que se instale cmake para ... instalar cmake.
sudo make install

8. Operaciones finales

  • sudo make install Desafortunadamente, no reemplaza la versión de cmake almacenada en / usr / bin.

  • Puede haber una forma más limpia de lograr este paso.

  • Use cmake --versionpara verificar si necesita hacer esto, si le da la versión que vino con apt (para mí al momento de escribir, 3.10.2), deberá hacerlo.

  • También debe verificar que su versión de cmake esté en / usr / local / bin /

Necesitaba hacer lo siguiente:

Cambie el nombre del binario cmake instalado apt

sudo mv /usr/bin/cmake /usr/bin/cmake_old

Enlace nuestra versión integrada de cmake en / usr / bin /

sudo ln -s /usr/local/bin/cmake /usr/bin/cmake
  • No esperaba tener que vincular la nueva versión de cmake a / usr / bin /, ya que / usr / local / bin debería estar en PATH; por alguna razón, obstinadamente solo buscaría cmake en / usr / bin, y me daría un error diciendo que / usr / bin / cmake no se encontró a pesar de que la última versión de cmake estaba disponible en / usr / local / bin.

  • Supongo que es posible que un reinicio de bash o un reinicio haya solucionado la necesidad de vinculación, pero no estoy seguro.

Escriba cmake-guipara iniciar la IU

Una captura de pantalla de cmake-gui

¡Frio!

Notas

  • Probado en Ubuntu Mate 18.04.1 x86_64
  • Versión de Cmake que estoy tratando de instalar: este commit , no tiene un significado particular, solo cloné lo último.

  • Es mi opinión que este método debería funcionar si está utilizando la versión adecuada de cmake para configurar la última versión de cmake durante todo este proceso. Si esto no funciona, hágamelo saber en los comentarios.

  • En mi caso (como el OP), estoy buscando volver y construir cmake-gui después de instalar la versión más reciente de cmake desde la fuente.
  • Por lo tanto, en la oportunidad (IMO improbable) de que la parte del script que construye cmake-gui necesite la última versión de cmake para compilar cmake, pero el resto de la compilación estuvo bien con la versión adecuada, para replicar exactamente los pasos que hice aquí, puede compilar cmake con la versión apt, luego reconfigurar con la última versión compilada de cmake y compilar nuevamente.
jrh
fuente
No hay ninguna sugerencia de lenguaje cmake , utilicé el resaltado C. Supongo que es mejor que nada.
jrh