blob: e7676b68a1ef193a80fc16a6462e651e5cc0287c (
plain) (
tree)
|
|
################################################################################
# Build OpenPGM
################################################################################
INCLUDE(../OpenPGMConfig.cmake)
ADD_DEFINITIONS(${LIBPGM_CFLAGS})
# OpenPGM will be built in the binary tree
SET(pgm
"${CMAKE_CURRENT_SOURCE_DIR}/openpgm-${pgm_VERSION}/pgm"
)
# This has been adapted from SConscript.libpgm
SET(pgm_SRCS
${pgm}/thread.c
${pgm}/mem.c
${pgm}/string.c
${pgm}/list.c
${pgm}/slist.c
${pgm}/queue.c
${pgm}/hashtable.c
${pgm}/messages.c
${pgm}/error.c
${pgm}/math.c
${pgm}/packet_parse.c
${pgm}/packet_test.c
${pgm}/sockaddr.c
${pgm}/time.c
${pgm}/if.c
${pgm}/getifaddrs.c
${pgm}/getnodeaddr.c
${pgm}/indextoaddr.c
${pgm}/indextoname.c
${pgm}/nametoindex.c
${pgm}/inet_network.c
${pgm}/md5.c
${pgm}/rand.c
${pgm}/gsi.c
${pgm}/tsi.c
${pgm}/txw.c
${pgm}/rxw.c
${pgm}/skbuff.c
${pgm}/socket.c
${pgm}/source.c
${pgm}/receiver.c
${pgm}/recv.c
${pgm}/engine.c
${pgm}/timer.c
${pgm}/net.c
${pgm}/rate_control.c
${pgm}/checksum.c
${pgm}/reed_solomon.c
${pgm}/wsastrerror.c
${pgm}/histogram.c
)
SET(pgm_HDRS
${pgm}/include/pgm/atomic.h
${pgm}/include/pgm/backtrace.h
${pgm}/include/pgm/engine.h
${pgm}/include/pgm/error.h
${pgm}/include/pgm/gsi.h
${pgm}/include/pgm/http.h
${pgm}/include/pgm/if.h
${pgm}/include/pgm/list.h
${pgm}/include/pgm/log.h
${pgm}/include/pgm/macros.h
${pgm}/include/pgm/mem.h
${pgm}/include/pgm/messages.h
${pgm}/include/pgm/msgv.h
${pgm}/include/pgm/packet.h
${pgm}/include/pgm/pgm.h
${pgm}/include/pgm/signal.h
${pgm}/include/pgm/skbuff.h
${pgm}/include/pgm/snmp.h
${pgm}/include/pgm/socket.h
${pgm}/include/pgm/time.h
${pgm}/include/pgm/tsi.h
${pgm}/include/pgm/types.h
${pgm}/include/pgm/version.h
${pgm}/include/pgm/winint.h
${pgm}/include/pgm/wininttypes.h
)
SET(pgm_GENERATED
${CMAKE_CURRENT_BINARY_DIR}/version.c
${CMAKE_CURRENT_BINARY_DIR}/galois_tables.c
)
# We need to generate galois_tables.c ...
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/galois_tables.c
COMMAND perl ${pgm}/galois_generator.pl > ${CMAKE_CURRENT_BINARY_DIR}/galois_tables.c
DEPENDS ${pgm}/galois_generator.pl
)
# ... and version.c ...
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.c
COMMAND python ${pgm}/version_generator.py > ${CMAKE_CURRENT_BINARY_DIR}/version.c
DEPENDS ${pgm}/version_generator.py
)
IF(comment_this_out_we_dont_need_it)
# ... and we need to unpack the tree.
ADD_CUSTOM_COMMAND(
OUTPUT
${pgm_SRCS}
${pgm_HDRS}
${pgm}/galois_generator.pl
${pgm}/version_generator.py
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/libpgm-${pgm_VERSION}.tar.bz2"
"${CMAKE_CURRENT_SOURCE_DIR}/01-libpgm-fix-switch-fallthrough.patch"
COMMAND rm -rf "${CMAKE_CURRENT_BINARY_DIR}/libpgm-src"
COMMAND bzip2 -dc "${CMAKE_CURRENT_SOURCE_DIR}/libpgm-${pgm_VERSION}.tar.bz2" | tar -C "${CMAKE_CURRENT_BINARY_DIR}" -x
COMMAND mv "${CMAKE_CURRENT_BINARY_DIR}/libpgm-${pgm_VERSION}" "${CMAKE_CURRENT_BINARY_DIR}/libpgm-src"
COMMAND cd ${pgm} && patch -p1 < "${CMAKE_CURRENT_SOURCE_DIR}/01-libpgm-fix-switch-fallthrough.patch"
)
ADD_CUSTOM_COMMAND(TARGET clean
COMMAND rm -rf "${CMAKE_CURRENT_BINARY_DIR}/libpgm-src"
)
ADD_CUSTOM_TARGET(
unpack_libpgm
DEPENDS ${pgm_SRCS} ${pgm_HDRS}
)
ENDIF(comment_this_out_we_dont_need_it)
ADD_LIBRARY(
pgm
STATIC
${pgm_SRCS}
${pgm_HDRS}
${pgm_GENERATED}
)
TARGET_LINK_LIBRARIES(pgm
${LIBPGM_LIBRARIES}
)
LINK_DIRECTORIES(
${GLIB_LIBRARY_DIRS}
)
ADD_DEFINITIONS(
${GLIB_CFLAGS}
)
|