Skip to content
Snippets Groups Projects
Commit 26ae2758 authored by Jonathan Hanks's avatar Jonathan Hanks
Browse files

Forward port of r4611. Adapted the build system so that libzmq is optional.

If built without zmq present the src/zmq_stream will not be built and the daqd builds will use a run_number_client that always returns a run number of 0. This is in response to a request to build the daqd variants w/o having a hard zmq dependency.

The change has been done to both the CMake and autotools build systems.


git-svn-id: https://redoubt.ligo-wa.caltech.edu/svn/advLigoRTS/trunk@4625 6dcd42c9-f523-4c6d-aada-af552506706e
parent 07b2c627
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@ set(cds_find_zmq4_included TRUE)
FIND_PACKAGE(PkgConfig)
pkg_check_modules(LibZMQ REQUIRED libzmq>=4.0.0)
pkg_check_modules(LibZMQ libzmq>=4.0.0)
if (LibZMQ_FOUND)
set (_fcpp_lib_list "")
......
......@@ -4,7 +4,11 @@ add_subdirectory(dv)
add_subdirectory(nds)
add_subdirectory(mx_stream)
add_subdirectory(run_number)
add_subdirectory(zmq_stream)
if (${LibZMQ_FOUND})
add_subdirectory(zmq_stream)
else (${LibZMQ_FOUND})
MESSAGE("Skipping zmq_stream")
endif (${LibZMQ_FOUND})
if (${DEV_BUILD})
add_subdirectory(fe_stream_test)
endif(${DEV_BUILD})
\ No newline at end of file
endif(${DEV_BUILD})
......@@ -41,8 +41,8 @@ GDSFLAGS=@GDSFLAGS@
GDSLIBFLAGS=@GDSLIBFLAGS@
GDSOBJECTS=@GDSOBJECTS@
RUN_NUMBER_ARCHIVE=@srcdir@/../run_number
RUN_NUMBER_OBJECTS=run_number_client.o
RUN_NUMBER_LIBS=-lzmq
RUN_NUMBER_OBJECTS=@RUN_NUMBER_CLIENT@.o
RUN_NUMBER_LIBS=@RUN_NUMBER_LIBS@
BROADCAST_OBJECTS=framesend.o gdsmutex.o
BROADCASTOBJECTS=@BROADCASTOBJECTS@
......@@ -165,7 +165,7 @@ gdsxdr_util.o: ${GDS_ARCHIVE}/gdsxdr_util.c
sockutil.o: ${GDS_ARCHIVE}/sockutil.c
$(CC) -c -D_TP_DAQD -D_TESTPOINT_DIRECT=0 $<
run_number_client.o: ${RUN_NUMBER_ARCHIVE}/run_number_client.cc
@RUN_NUMBER_CLIENT@.o: ${RUN_NUMBER_ARCHIVE}/@RUN_NUMBER_CLIENT@.cc
$(CXX) -c ${CXXFLAGS} -I$(srcdir)/@ZMQ_INCLUDES@ $<
......
......@@ -35,9 +35,21 @@ AC_CHECK_HEADERS(FlexLexer.h arpa/inet.h assert.h ctype.h \
errno.h fcntl.h fstream.h iostream.h limits.h math.h \
netinet/in.h pthread.h signal.h stdio.h stdlib.h stream.h \
string.h sys/socket.h sys/types.h time.h unistd.h tnf/probe.h \
regex.h regexp.h zmq.h)
regex.h regexp.h)
AC_HEADER_TIME
dnl check for zmq headers
dnl =====================
AC_CHECK_HEADER(zmq.h, [HAVE_ZMQ_H=1], [HAVE_ZMQ_H=0])
RUN_NUMBER_CLIENT="run_number_client"
RUN_NUMBER_LIBS="-lzmq"
AS_IF([test "$HAVE_ZMQ_H" = "0"], [
RUN_NUMBER_CLIENT="null_run_number_client";
RUN_NUMBER_LIBS=""
])
AC_SUBST(RUN_NUMBER_CLIENT)
AC_SUBST(RUN_NUMBER_LIBS)
dnl check for zmq c++ wrapper
dnl =========================
AC_LANG_PUSH([C++])
......
......@@ -5,7 +5,7 @@ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../c
INCLUDE(CheckCXXCompilerFlag)
include(FindThreads)
find_package(ZMQ4 REQUIRED)
find_package(ZMQ4)
find_path(CATCH_PATH catch.hpp
HINTS /usr/include /usr/local/include ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
......@@ -20,27 +20,39 @@ else(${HAS_CXX_11})
set(_RN_CHECK_FLAGS "")
endif (${HAS_CXX_11})
add_executable(run_number_server run_number_main.cc run_number.cc run_number.hh)
target_link_libraries(run_number_server PUBLIC zmq4::zmq)
target_compile_options(run_number_server PRIVATE ${_RN_CHECK_FLAGS})
if (${LibZMQ_FOUND})
add_library(run_number_client STATIC run_number_client.cc run_number_client.hh)
target_link_libraries(run_number_client PUBLIC zmq4::zmq)
target_include_directories(run_number_client PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
add_library(run_number::run_number ALIAS run_number_client)
add_executable(run_number_server run_number_main.cc run_number.cc run_number.hh)
target_link_libraries(run_number_server PUBLIC zmq4::zmq)
target_compile_options(run_number_server PRIVATE ${_RN_CHECK_FLAGS})
add_executable(test_run_number tests/test_main.cc tests/test_run_number.cc tests/test_run_number_structs.cc run_number.cc run_number.hh)
target_include_directories(test_run_number PRIVATE ${CATCH_PATH})
target_compile_options(test_run_number PRIVATE ${_RN_CHECK_FLAGS})
add_library(run_number_client STATIC run_number_client.cc run_number_client.hh)
target_link_libraries(run_number_client PUBLIC zmq4::zmq)
target_include_directories(run_number_client PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
add_library(run_number::run_number ALIAS run_number_client)
add_executable(test_run_number_client tests/test_client_main.cc)
target_link_libraries(test_run_number_client PUBLIC run_number::run_number)
add_executable(test_run_number tests/test_main.cc tests/test_run_number.cc tests/test_run_number_structs.cc run_number.cc run_number.hh)
target_include_directories(test_run_number PRIVATE ${CATCH_PATH})
target_compile_options(test_run_number PRIVATE ${_RN_CHECK_FLAGS})
add_executable(run_number_test_client run_number_test_client.cc)
target_link_libraries(run_number_test_client PUBLIC run_number_client)
add_executable(test_run_number_client tests/test_client_main.cc)
target_link_libraries(test_run_number_client PUBLIC run_number::run_number)
add_test(_rn_basic_run_number_tests_ test_run_number)
add_executable(run_number_test_client run_number_test_client.cc)
target_link_libraries(run_number_test_client PUBLIC run_number_client)
install(TARGETS run_number_server
DESTINATION bin
)
\ No newline at end of file
add_test(_rn_basic_run_number_tests_ test_run_number)
install(TARGETS run_number_server
DESTINATION bin
)
else (${LibZMQ_FOUND})
MESSAGE("ZeroMQ libraries not found, building the null run number client")
add_library(null_run_number_client STATIC null_run_number_client.cc run_number_client.hh)
target_include_directories(null_run_number_client PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
add_library(run_number::run_number ALIAS null_run_number_client)
endif (${LibZMQ_FOUND})
\ No newline at end of file
#include "run_number_client.hh"
namespace daqd_run_number {
int get_run_number(const std::string &target, const std::string &hash) {
return 0;
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment