2016-10-21 9 views
3

im sehr neuen cmake bauen. Ich möchte Eclipse Paho zu meinem Projekt hinzufügen, dafür verwende ich "ExternalProject_add". Hier ein Auszug meiner CMakeLists.txt:Wie man Eklipse Paho mit 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) 

Die Sache ist Libressl baut gerade fein. Wie Sie sehen können, verwendet es autoconf-tools.

Mein Problem ist, dass Paho einen Fehler bei der "konfigurieren Schritt".

~/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 

Ich dachte, da paho mit der standardmäßig Verwendung von CMake ist zu bauen, gibt es nichts, was ich wirklich hinzufügen müssen. Hier siehst du, mein Wissen über CMake ist wirklich gering.

Was mich wundern ist, dass in der Paho Tar-Ball, gibt es nur ein Makefile im Hauptordner und nicht eine CMakeLists.txt.

Was vermisse ich ... gibt es einen speziellen Konfigurationsbefehl, den ich einstellen muss?

thx im Voraus

+0

'Ich dachte, da Paho mit der Verwendung von CMake standardmäßig erstellt wird,' Woher weißt du das? Wenn ich die Anweisungen [hier] (http://www.eclipse.org/paho/clients/cpp/) ansehe, würde ich das nicht sagen, und tatsächlich haben Sie bereits herausgefunden, dass Sie nur ein Makefile haben, nicht eine CMakeLists.txt – Antonio

+0

Ja, es stört mich ... Ich bemerkte, dass ich nicht alle Pfad-/Verzeichniseinträge mit meinem lokalen Benutzernamen darin geschnitten habe ... meine Schuld :(Ich habe auch versucht, meinen Anzeigenamen in meinem Profil zu ändern, aber es sagt, dass ich das vorher nicht tun kann 30 Tage ab jetzt – Heiko

+0

Ich kann mich nicht erinnern, wo ich gelesen habe über den "Paho ist standardmäßig mit CMake gebaut" ... vielleicht ein Fehler auf meiner Seite. Ich habe bemerkt, dass das Git-Repo etwas anders strukturiert ist als das Targeting. Ball, es gibt eine CMakeLists.txt im Hauptverzeichnis – Heiko

Antwort

2

Sie das GIT-Repository verwenden können, muss es sich um eine 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

yeah thanks ... das funktioniert für mich! wie ich schon zu Antonio, die Struktur aus dem Teer -ball unterscheidet sich von der git-repo.Thanks für Ihre Hilfe – Heiko