qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robbie Gemmell <robbie.gemm...@gmail.com>
Subject Re: How to build qpid with proton v0.5, boost v1.55.0 statically on fedora19
Date Tue, 14 Jan 2014 21:30:07 GMT
Hi Davin,

I am completely the wrong person to answer your actual question I'm afraid,
but just to say...

The vote to release RC3 as Proton 0.6 passed earlier today, so if you
wanted to try with that before it is properly distributed you can currently
find it here: http://people.apache.org/~rhs/qpid-proton-0.6rc3/

Hopefully someone who can actually help will be along next...

Robbie

On 14 January 2014 20:56, Shearer, Davin <dshearer@novetta.com> wrote:

> Want to create all libraries statically and boost statically, so updated
> the CMakeLists.txt to make that happen (I'm not an expert on cmake, so let
> me know if this is the wrong way to build static libraries):
>
> -----
> diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt
> index c77b753..22f72f0 100644
> --- a/qpid/cpp/src/CMakeLists.txt
> +++ b/qpid/cpp/src/CMakeLists.txt
> @@ -306,7 +306,7 @@ endif (BUILD_TESTING)
>  # Boost on Windows can use automatic linking to pick up the correct
>  # Boost libs based on compile-time touching of the headers. Since we don't
>  # really need to add them to the link lines, set the names to blanks.
> -option(QPID_LINK_BOOST_DYNAMIC "Link with dynamic Boost libs (OFF to link
> static)" ON)
> +option(QPID_LINK_BOOST_DYNAMIC "Link with dynamic Boost libs (OFF to link
> static)" OFF)
>  mark_as_advanced(QPID_LINK_BOOST_DYNAMIC)
>
>  if (MSVC)
> @@ -912,7 +912,7 @@ set (qpidcommon_SOURCES
>  )
>  add_msvc_version (qpidcommon library dll)
>
> -add_library (qpidcommon SHARED ${qpidcommon_SOURCES})
> +add_library (qpidcommon STATIC ${qpidcommon_SOURCES})
>
>  target_link_libraries (qpidcommon qpidtypes
>                         ${qpidcommon_platform_LIBS}
> @@ -943,7 +943,7 @@ set_source_files_properties(
>       COMPILE_FLAGS "${HIDE_SYMBOL_FLAGS}")
>
>  add_msvc_version (qpidtypes library dll)
> -add_library(qpidtypes SHARED ${qpidtypes_SOURCES})
> +add_library(qpidtypes STATIC ${qpidtypes_SOURCES})
>  target_link_libraries(qpidtypes ${qpidtypes_platform_LIBS})
>  set_target_properties (qpidtypes PROPERTIES
>                         LINK_FLAGS "${HIDE_SYMBOL_FLAGS}
> ${LINK_VERSION_SCRIPT_FLAG}"
> @@ -999,7 +999,7 @@ set (qpidclient_SOURCES
>  )
>  add_msvc_version (qpidclient library dll)
>
> -add_library (qpidclient SHARED ${qpidclient_SOURCES})
> +add_library (qpidclient STATIC ${qpidclient_SOURCES})
>
>  target_link_libraries (qpidclient qpidcommon
>                         ${Boost_PROGRAM_OPTIONS_LIBRARY}
> @@ -1070,7 +1070,7 @@ set (qpidmessaging_SOURCES
>
>  add_msvc_version (qpidmessaging library dll)
>
> -add_library (qpidmessaging SHARED ${qpidmessaging_SOURCES})
> +add_library (qpidmessaging STATIC ${qpidmessaging_SOURCES})
>  target_link_libraries (qpidmessaging qpidtypes qpidclient qpidcommon
> "${Boost_PROGRAM_OPTIONS_LIBRARY}" ${PROTON_LIB
>  set_target_properties (qpidmessaging PROPERTIES
>                         LINK_FLAGS "${HIDE_SYMBOL_FLAGS}
> ${LINK_VERSION_SCRIPT_FLAG}"
> @@ -1092,7 +1092,7 @@ if (MSVC)
>      set(qpidxarm_SOURCES
> ${AMQP_WCF_DIR}/src/Apache/Qpid/DtcPlugin/DtcPlugin.cpp)
>      if (EXISTS ${qpidxarm_SOURCES})
>          add_msvc_version (qpidxarm library dll)
> -        add_library (qpidxarm SHARED ${qpidxarm_SOURCES})
> +        add_library (qpidxarm STATIC ${qpidxarm_SOURCES})
>          target_link_libraries (qpidxarm qpidclient qpidcommon)
>          install (TARGETS qpidxarm
>                   RUNTIME DESTINATION ${QPID_INSTALL_BINDIR}
> @@ -1203,7 +1203,7 @@ set (qpidbroker_SOURCES
>       qpid/sys/TCPIOPlugin.cpp
>  )
>  add_msvc_version (qpidbroker library dll)
> -add_library (qpidbroker SHARED ${qpidbroker_SOURCES})
> +add_library (qpidbroker STATIC ${qpidbroker_SOURCES})
>
>  target_link_libraries (qpidbroker qpidcommon qpidtypes
>                         "${Boost_PROGRAM_OPTIONS_LIBRARY}"
> @@ -1322,7 +1322,7 @@ endif (NOT WIN32)
>          )
>
>      add_msvc_version (qmf2 library dll)
> -    add_library (qmf2 SHARED ${qmf2_SOURCES})
> +    add_library (qmf2 STATIC ${qmf2_SOURCES})
>      target_link_libraries (qmf2 qpidmessaging qpidtypes qpidclient
> qpidcommon)
>      set_target_properties (qmf2 PROPERTIES
>                             VERSION ${qmf2_version}
> -----
>
> Want to link proton 0.50 static library
> (/home/davin/external/proton-0.5/lib64/libqpid-proton.a):
>
> $ export
> PKG_CONFIG_PATH=$HOME/external/proton-0.5/lib64/pkgconfig:$PKG_CONFIG_PATH
> $ pkg-config --cflags libqpid-proton
> -I/home/davin/external/proton-0.5/include -I/usr/include/uuid
> $ pkg-config --libs libqpid-proton
> -L/home/davin/external/proton-0.5/lib64 -lqpid-proton -lssl -lcrypto -luuid
>
> Want to link PIC, link boost v1.55.0 static libraries and enable AMQP 1.0
> (via proton):
>
> $ rm -rf build-cpp
> $ mkdir build-cpp
> $ cd build-cpp
> $ cmake \
>   -DBoost_LIBRARY_DIR:PATH="/home/davin/external/boost-1.55.0/boost/lib" \
>
> -DBoost_INCLUDE_DIR:PATH="/home/davin/external/boost-1.55.0/boost/include"
> \
>   -DCMAKE_CXX_FLAGS:STRING="-Wno-unused-local-typedefs
> -Wno-ignored-qualifiers -fPIC -DPIC -DQMF_USE_DEPRECATED_API" \
>   -DBUILD_AMQP:BOOL="1" ../qpid/cpp
>
> $ make all && make DESTDIR=$(readlink -e ..)/qpid-install install
>
> OS is fedora19, compiler is gcc 4.8.2.  qpid is from SCM (git-svn-id:
> https://svn.apache.org/repos/asf/qpid/trunk@1558037).  The static boost
> and
> proton libraries are all built with -fPIC -DPIC.  gcc 4.8 and boost 1.55.0
> generate many unused local typedef warnings with are suppressed with
> -Wno-unused-local-typedefs and there is a warning about a qualifier being
> ignored in boost, so we suppress that also with -Wno-ignored-qualifiers.
> The QMF build is warning about using a deprecated API, so we suppress that
> with -DPIC -DQMF_USE_DEPRECATED_API.
>
> I get this far:
>
> [ 78%] Building CXX object src/CMakeFiles/ha.dir/qpid/ha/types.cpp.o
> [ 78%] Building CXX object src/CMakeFiles/ha.dir/qpid/ha/TxReplicator.cpp.o
> Linking CXX shared module ha.so
> /usr/bin/ld: cannot find -lqpid-proton
> collect2: error: ld returned 1 exit status
> make[2]: *** [src/ha.so] Error 1
> make[1]: *** [src/CMakeFiles/ha.dir/all] Error 2
> make: *** [all] Error 2
>
> The build of ha.so should be using the LDFLAGS from pkg-config --libs (in
> this case -L/home/davin/external/proton-0.5/lib64 -lqpid-proton -lssl
> -lcrypto -luuid), but obviously it is not working correctly.
>
> $ ls -l /home/davin/external/proton-0.5/lib64/libqpid-proton.a
> -rw-r--r-- 1 davin davin 553474 Dec 30 16:47
> /home/davin/external/proton-0.5/lib64/libqpid-proton.a
>
> Are the build scripts not using pkg-config correctly or am I not using
> cmake correctly?
>
> --
> Davin Shearer
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message