Установите QGLViewer, используя ExternalProject_Add в Cmake

Я хотел бы установить QGLViewer как внешний от исходного кода в среде сборки cmake. Это то, что я пробовал до сих пор:

set(QGLViewer_VERSION 2.5.2)

set(QGLViewer_URL_REMOTE "http://www.libqglviewer.com/src/libQGLViewer-${QGLViewer_VERSION}.tar.gz")

ExternalProject_Add(QGLViewer
                    PREFIX ${CMAKE_CURRENT_BINARY_DIR}/external/qglviewer
                    URL ${QGLViewer_URL_REMOTE}
                    BUILD_IN_SOURCE 1
                    CONFIGURE_COMMAND qmake PREFIX="${CMAKE_CURRENT_BINARY_DIR}/external/qglviewer" QGLVIEWER_STATIC=yes
                    BUILD_COMMAND make
                   )

cmake работает просто отлично.

Однако при запуске make я получаю кучу ошибок компиляции. make находит заголовки, установленные в моей системе, а не в каталоге проекта сборки:

make[4]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
Project MESSAGE: Warning: unknown QT: widgets
In file included from /usr/include/QGLViewer/manipulatedFrame.h:26:0,
                 from /usr/include/QGLViewer/manipulatedCameraFrame.h:26,
                 from /usr/include/QGLViewer/camera.h:26,
                 from /usr/include/QGLViewer/qglviewer.h:26,
                 from animation.h:23,
                 from animation.cpp:23:
/usr/include/QGLViewer/frame.h:139:3: error: ‘signals’ does not name a type
/usr/include/QGLViewer/frame.h:404:10: error: expected ‘:’ before ‘slots’
/usr/include/QGLViewer/frame.h:404:10: error: ‘slots’ does not name a type

NaN

1 ответ

Решение

Решение состоит в том, чтобы указать выполнение qmake для файла QGLViewer/QGLViewer.pro вместо файла.pro по умолчанию, расположенного в корневой папке libQGLViewer-2.5.2/

ExternalProject_Add(QGLViewer
                    PREFIX ${CMAKE_CURRENT_BINARY_DIR}/external/qglviewer
                    URL ${QGLViewer_URL_REMOTE}
                    DOWNLOAD_DIR ${QGLViewer_DSTDIR}
                    BUILD_IN_SOURCE 1
                    CONFIGURE_COMMAND qmake QGLViewer/QGLViewer.pro QGLVIEWER_STATIC=yes PREFIX=${CMAKE_CURRENT_BINARY_DIR}/external/qglviewer
                    BUILD_COMMAND make
                   )
Другие вопросы по тегам