2016-10-21 2 views
3

im очень новый для cmake. Я хочу добавить eclipse paho в свой проект, поэтому я использую «ExternalProject_add». Вот выдержка из моего CMakeLists.txt:Как построить eclipse paho с cmake

ExternalProject_add( 
libressl 
URL ${CMAKE_SOURCE_DIR}/externals/libressl-2.5.0.tar.gz 
CONFIGURE_COMMAND ./configure --disable-hardening --prefix=${CMAKE_BINARY_DIR} 
BUILD_IN_SOURCE 1) 

ExternalProject_add( 
paho 
DEPENDS libressl 
URL ${CMAKE_SOURCE_DIR}/externals/eclipse-paho-mqtt-c-src-1.1.0.tar.gz 
CMAKE_ARGS -DPAHO_WITH_SSL -DOPENSSL_INC_SEARCH_PATH=${CMAKE_SOURCE_DIR}/include -DOPENSSL_LIB_SEARCH_PATH=${CMAKE_SOURCE_DIR}/lib 
BUILD_COMMAND make 
BUILD_IN_SOURCE 1) 

Дело в том, что libressl строит просто отлично. Как видите, в нем используются инструменты autoconf.

Моя проблема заключается в том, что paho выдает ошибку на этапе «configure».

~/projects/cmake_test/CL_Test/build$ cmake .. 
-- Configuring done 
-- Generating done 
-- Build files have been written to: /projects/cmake_test/CL_Test/build 
:~/projects/cmake_test/CL_Test/build$ make 
[ 50%] Built target libressl 
[ 56%] Performing configure step for 'paho' 
CMake Error at /projects/cmake_test/CL_Test/build/paho-prefix/src/paho-stamp/paho-configure-.cmake:16 (message): 
Command failed: 1 

'/usr/bin/cmake' '-DPAHO_WITH_SSL' '-DOPENSSL_INC_SEARCH_PATH=/home/hbaumann/projects/cmake_test/CL_Test/include' '-DOPENSSL_LIB_SEARCH_PATH=/home/hbaumann/projects/cmake_test/CL_Test/lib' '-GUnix Makefiles' '/projects/cmake_test/CL_Test/build/paho-prefix/src/paho' 

CMakeFiles/paho.dir/build.make:107: recipe for target 'paho-prefix/src/paho-stamp/paho-configure' failed 
make[2]: *** [paho-prefix/src/paho-stamp/paho-configure] Error 1 
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/paho.dir/all' failed 
make[1]: *** [CMakeFiles/paho.dir/all] Error 2 
Makefile:83: recipe for target 'all' failed 
make: *** [all] Error 2 

Я думал, так как ПОЗ построен с использованием CMake по умолчанию, нет ничего, что я на самом деле нужно добавить. Здесь вы можете видеть, мои знания о CMake действительно низки.

Что заставляет меня задаться вопросом, что в tar-ball paho в основной папке есть только Makefile, а не CMakeLists.txt.

Что мне не хватает ... есть ли специальная команда configure, которую мне нужно установить?

ТНХ заранее

+0

'Я думал, поскольку paho строится с использованием CMake по умолчанию,' Как вы это знаете? Глядя на инструкции [здесь] (http://www.eclipse.org/paho/clients/cpp/) Я бы так не сказал, и действительно вы уже выяснили, что у вас есть только Makefile, а не CMakeLists.txt – Antonio

+0

Да, это беспокоит меня ... я заметил, что я не обрезал все записи пути/каталога с моим местным именем пользователя в нем ... моя ошибка :(Я также попытался изменить свое отображаемое имя в своем профиле, но он говорит, что я могу сделать это не раньше 30 дней с этого момента. – Heiko

+0

Я не помню, где я читал о том, что «paho строит с cmake по умолчанию» ... может быть, ошибка на моей стороне. Я заметил, что git-repo структурирован немного отличается от tar- ball, в главном каталоге есть CMakeLists.txt. – Heiko

ответ

2

вы можете использовать репозиторий, он имеет CMakeList.txt.

ExternalProject_add(
paho 
DEPENDS libressl 
GIT_REPOSITORY "https://github.com/eclipse/paho.mqtt.c.git" 
GIT_TAG "master" 
UPDATE_COMMAND "" 
PATCH_COMMAND "" 
SOURCE_DIR "${CMAKE_BINARY_DIR}/paho_sourcedir" 
CMAKE_ARGS -DPAHO_WITH_SSL=TRUE -DOPENSSL_INC_SEARCH_PATH=${CMAKE_BINARY_DIR}/include -DOPENSSL_LIB_SEARCH_PATH=${CMAKE_BINARY_DIR}/lib -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/paho_prefix 
) 
+0

да спасибо ... это работает для меня, как я уже заявляю Антонио, структуру из смолы -бол отличается от git-repo. Спасибо за вашу помощь. – Heiko

Смежные вопросы