Skip to content

Commit

Permalink
Problem: packaging is out of date
Browse files Browse the repository at this point in the history
Solution: regenerate via zproject
  • Loading branch information
hintjens committed Dec 30, 2015
1 parent 998cc1a commit b1e0244
Show file tree
Hide file tree
Showing 37 changed files with 286 additions and 198 deletions.
184 changes: 139 additions & 45 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,31 @@ set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
# determine version
########################################################################
foreach(which MAJOR MINOR PATCH)
file(STRINGS "${SOURCE_DIR}/include/mlm_library.h" MALAMUTE_VERSION_STRING REGEX "#define MALAMUTE_VERSION_${which}")
string(REGEX MATCH "#define MALAMUTE_VERSION_${which} ([0-9_]+)" MALAMUTE_REGEX_MATCH "${MALAMUTE_VERSION_STRING}")
file(
STRINGS
"${SOURCE_DIR}/include/mlm_library.h"
MALAMUTE_VERSION_STRING REGEX
"#define MALAMUTE_VERSION_${which}"
)
string(
REGEX MATCH
"#define MALAMUTE_VERSION_${which} ([0-9_]+)"
MALAMUTE_REGEX_MATCH
"${MALAMUTE_VERSION_STRING}"
)
if (NOT MALAMUTE_REGEX_MATCH)
message(FATAL_ERROR "failed to parse MALAMUTE_VERSION_${which} from malamute.h")
message(
FATAL_ERROR
"failed to parse MALAMUTE_VERSION_${which} from malamute.h"
)
endif()
set(MALAMUTE_${which}_VERSION ${CMAKE_MATCH_1})
endforeach(which)

set(MALAMUTE_VERSION ${MALAMUTE_MAJOR_VERSION}.${MALAMUTE_MINOR_VERSION}.${MALAMUTE_PATCH_VERSION})
set(
MALAMUTE_VERSION
${MALAMUTE_MAJOR_VERSION}.${MALAMUTE_MINOR_VERSION}.${MALAMUTE_PATCH_VERSION}
)

########################################################################
# platform.h
Expand Down Expand Up @@ -59,7 +75,10 @@ configure_file("${SOURCE_DIR}/src/platform.h.in" "${SOURCE_DIR}/src/platform.h")
if (MSVC)
enable_language(CXX)
file(GLOB sources "${SOURCE_DIR}/src/*.c")
set_source_files_properties(${sources} PROPERTIES LANGUAGE CXX)
set_source_files_properties(
${sources}
PROPERTIES LANGUAGE CXX
)
set(MORE_LIBRARIES ws2_32 Rpcrt4 Iphlpapi)
endif()

Expand All @@ -80,32 +99,32 @@ list(APPEND CMAKE_MODULE_PATH "${SOURCE_DIR}")
########################################################################
find_package(Libsodium REQUIRED)
IF (LIBSODIUM_FOUND)
include_directories(${LIBSODIUM_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${LIBSODIUM_LIBRARIES})
include_directories(${LIBSODIUM_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${LIBSODIUM_LIBRARIES})
ELSE (LIBSODIUM_FOUND)
message( FATAL_ERROR "Libsodium not found." )
message( FATAL_ERROR "Libsodium not found." )
ENDIF (LIBSODIUM_FOUND)

########################################################################
# LIBZMQ dependency
########################################################################
find_package(ZeroMQ REQUIRED)
IF (ZEROMQ_FOUND)
include_directories(${ZEROMQ_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${ZEROMQ_LIBRARIES})
include_directories(${ZEROMQ_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${ZEROMQ_LIBRARIES})
ELSE (ZEROMQ_FOUND)
message( FATAL_ERROR "ZeroMQ not found." )
message( FATAL_ERROR "ZeroMQ not found." )
ENDIF (ZEROMQ_FOUND)

########################################################################
# CZMQ dependency
########################################################################
find_package(CZMQ REQUIRED)
IF (CZMQ_FOUND)
include_directories(${CZMQ_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${CZMQ_LIBRARIES})
include_directories(${CZMQ_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${CZMQ_LIBRARIES})
ELSE (CZMQ_FOUND)
message( FATAL_ERROR "CZMQ not found." )
message( FATAL_ERROR "CZMQ not found." )
ENDIF (CZMQ_FOUND)

########################################################################
Expand All @@ -131,24 +150,30 @@ install(FILES ${malamute_headers} DESTINATION include)
# library
########################################################################
include_directories("${SOURCE_DIR}/src" "${SOURCE_DIR}/include")
set (malamute_sources
set (mlm_sources
src/mlm_proto.c
src/mlm_server.c
src/mlm_client.c
src/mlm_msg.c
src/mlm_stream_simple.c
src/mlm_mailbox_simple.c
)
source_group ("Source Files" FILES ${malamute_sources})
source_group("Source Files" FILES ${mlm_sources})
if (NOT DEFINED BUILD_SHARED_LIBS)
SET(BUILD_SHARED_LIBS ON)
endif()
add_library(malamute ${malamute_sources})
set_target_properties(malamute PROPERTIES DEFINE_SYMBOL "LIBMLM_EXPORTS")
set_target_properties(malamute PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${SOURCE_DIR}/src")
target_link_libraries(malamute ${ZEROMQ_LIBRARIES} ${MORE_LIBRARIES})
add_library(mlm ${mlm_sources})
set_target_properties(mlm
PROPERTIES DEFINE_SYMBOL "LIBMLM_EXPORTS"
)
set_target_properties(mlm
PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${SOURCE_DIR}/src"
)
target_link_libraries(mlm
${ZEROMQ_LIBRARIES} ${MORE_LIBRARIES}
)

install(TARGETS malamute
install(TARGETS mlm
LIBRARY DESTINATION "lib${LIB_SUFFIX}" # .so file
ARCHIVE DESTINATION "lib${LIB_SUFFIX}" # .lib file
RUNTIME DESTINATION bin # .dll file
Expand All @@ -175,21 +200,81 @@ install(
########################################################################
# executables
########################################################################
add_executable(malamute "${SOURCE_DIR}/src/malamute.c")
target_link_libraries(malamute malamute ${ZEROMQ_LIBRARIES})
set_target_properties(malamute PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src")
add_executable(mshell "${SOURCE_DIR}/src/mshell.c")
target_link_libraries(mshell malamute ${ZEROMQ_LIBRARIES})
set_target_properties(mshell PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src")
add_executable(mlm_tutorial "${SOURCE_DIR}/src/mlm_tutorial.c")
target_link_libraries(mlm_tutorial malamute ${ZEROMQ_LIBRARIES})
set_target_properties(mlm_tutorial PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src")
add_executable(mlm_perftest "${SOURCE_DIR}/src/mlm_perftest.c")
target_link_libraries(mlm_perftest malamute ${ZEROMQ_LIBRARIES})
set_target_properties(mlm_perftest PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src")
add_executable(mlm_selftest "${SOURCE_DIR}/src/mlm_selftest.c")
target_link_libraries(mlm_selftest malamute ${ZEROMQ_LIBRARIES})
set_target_properties(mlm_selftest PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src")
add_executable(
malamute
"${SOURCE_DIR}/src/malamute.c"
)
target_link_libraries(
malamute
mlm
${LIBSODIUM_LIBRARIES}
${ZEROMQ_LIBRARIES}
${CZMQ_LIBRARIES}
)
set_target_properties(
malamute
PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src"
)
add_executable(
mshell
"${SOURCE_DIR}/src/mshell.c"
)
target_link_libraries(
mshell
mlm
${LIBSODIUM_LIBRARIES}
${ZEROMQ_LIBRARIES}
${CZMQ_LIBRARIES}
)
set_target_properties(
mshell
PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src"
)
add_executable(
mlm_tutorial
"${SOURCE_DIR}/src/mlm_tutorial.c"
)
target_link_libraries(
mlm_tutorial
mlm
${LIBSODIUM_LIBRARIES}
${ZEROMQ_LIBRARIES}
${CZMQ_LIBRARIES}
)
set_target_properties(
mlm_tutorial
PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src"
)
add_executable(
mlm_perftest
"${SOURCE_DIR}/src/mlm_perftest.c"
)
target_link_libraries(
mlm_perftest
mlm
${LIBSODIUM_LIBRARIES}
${ZEROMQ_LIBRARIES}
${CZMQ_LIBRARIES}
)
set_target_properties(
mlm_perftest
PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src"
)
add_executable(
mlm_selftest
"${SOURCE_DIR}/src/mlm_selftest.c"
)
target_link_libraries(
mlm_selftest
mlm
${LIBSODIUM_LIBRARIES}
${ZEROMQ_LIBRARIES}
${CZMQ_LIBRARIES}
)
set_target_properties(
mlm_selftest
PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src"
)

########################################################################
# tests
Expand All @@ -198,21 +283,30 @@ set(CLASSTEST_TIMEOUT 5 CACHE STRING "Timeout of the selftest of a class")
set(TOTAL_TIMEOUT 20 CACHE STRING "Timout of the total testsuite")

set(TEST_CLASSES
mlm_proto_test
mlm_server_test
mlm_client_test
mlm_msg_test
mlm_stream_simple_test
mlm_mailbox_simple_test
mlm_proto_test
mlm_server_test
mlm_client_test
mlm_msg_test
mlm_stream_simple_test
mlm_mailbox_simple_test
)

foreach(TEST_CLASS ${TEST_CLASSES})
add_test(NAME ${TEST_CLASS} COMMAND mlm_selftest -e -v --test ${TEST_CLASS})
set_tests_properties(${TEST_CLASS} PROPERTIES TIMEOUT ${CLASSTEST_TIMEOUT})
add_test(
NAME ${TEST_CLASS}
COMMAND mlm_selftest -e -v --test ${TEST_CLASS}
)
set_tests_properties(
${TEST_CLASS}
PROPERTIES TIMEOUT ${CLASSTEST_TIMEOUT}
)
endforeach(TEST_CLASS)

add_test(mlm_selftest mlm_selftest)
set_tests_properties(mlm_selftest PROPERTIES TIMEOUT ${TOTAL_TIMEOUT})
set_tests_properties(
mlm_selftest
PROPERTIES TIMEOUT ${TOTAL_TIMEOUT}
)

########################################################################
# summary
Expand Down
34 changes: 19 additions & 15 deletions FindCZMQ.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@
################################################################################

if (NOT MSVC)
include(FindPkgConfig)
pkg_check_modules(PC_CZMQ "libczmq")
if (NOT PC_CZMQ_FOUND)
pkg_check_modules(PC_CZMQ "czmq")
endif(NOT PC_CZMQ_FOUND)
if (PC_CZMQ_FOUND)
# some libraries install the headers is a subdirectory of the include dir
# returned by pkg-config, so use a wildcard match to improve chances of finding
# headers and SOs.
set(PC_CZMQ_INCLUDE_HINTS ${PC_CZMQ_INCLUDE_DIRS} ${PC_CZMQ_INCLUDE_DIRS}/*)
set(PC_CZMQ_LIBRARY_HINTS ${PC_CZMQ_LIBRARY_DIRS} ${PC_CZMQ_LIBRARY_DIRS}/*)
endif(PC_CZMQ_FOUND)
include(FindPkgConfig)
pkg_check_modules(PC_CZMQ "libczmq")
if (NOT PC_CZMQ_FOUND)
pkg_check_modules(PC_CZMQ "czmq")
endif (NOT PC_CZMQ_FOUND)
if (PC_CZMQ_FOUND)
# some libraries install the headers is a subdirectory of the include dir
# returned by pkg-config, so use a wildcard match to improve chances of finding
# headers and SOs.
set(PC_CZMQ_INCLUDE_HINTS ${PC_CZMQ_INCLUDE_DIRS} ${PC_CZMQ_INCLUDE_DIRS}/*)
set(PC_CZMQ_LIBRARY_HINTS ${PC_CZMQ_LIBRARY_DIRS} ${PC_CZMQ_LIBRARY_DIRS}/*)
endif(PC_CZMQ_FOUND)
endif (NOT MSVC)

find_path(
Expand All @@ -31,11 +31,15 @@ find_library(
)

include(FindPackageHandleStandardArgs)

find_package_handle_standard_args(
CZMQ
REQUIRED_VARS CZMQ_LIBRARIES CZMQ_INCLUDE_DIRS
CZMQ
REQUIRED_VARS CZMQ_LIBRARIES CZMQ_INCLUDE_DIRS
)
mark_as_advanced(
CZMQ_FOUND
CZMQ_LIBRARIES CZMQ_INCLUDE_DIRS
)
mark_as_advanced(CZMQ_FOUND CZMQ_LIBRARIES CZMQ_INCLUDE_DIRS)

################################################################################
# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
Expand Down
34 changes: 19 additions & 15 deletions FindLibsodium.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@
################################################################################

if (NOT MSVC)
include(FindPkgConfig)
pkg_check_modules(PC_LIBSODIUM "libsodium")
if (NOT PC_LIBSODIUM_FOUND)
pkg_check_modules(PC_LIBSODIUM "sodium")
endif(NOT PC_LIBSODIUM_FOUND)
if (PC_LIBSODIUM_FOUND)
# some libraries install the headers is a subdirectory of the include dir
# returned by pkg-config, so use a wildcard match to improve chances of finding
# headers and SOs.
set(PC_LIBSODIUM_INCLUDE_HINTS ${PC_LIBSODIUM_INCLUDE_DIRS} ${PC_LIBSODIUM_INCLUDE_DIRS}/*)
set(PC_LIBSODIUM_LIBRARY_HINTS ${PC_LIBSODIUM_LIBRARY_DIRS} ${PC_LIBSODIUM_LIBRARY_DIRS}/*)
endif(PC_LIBSODIUM_FOUND)
include(FindPkgConfig)
pkg_check_modules(PC_LIBSODIUM "libsodium")
if (NOT PC_LIBSODIUM_FOUND)
pkg_check_modules(PC_LIBSODIUM "sodium")
endif (NOT PC_LIBSODIUM_FOUND)
if (PC_LIBSODIUM_FOUND)
# some libraries install the headers is a subdirectory of the include dir
# returned by pkg-config, so use a wildcard match to improve chances of finding
# headers and SOs.
set(PC_LIBSODIUM_INCLUDE_HINTS ${PC_LIBSODIUM_INCLUDE_DIRS} ${PC_LIBSODIUM_INCLUDE_DIRS}/*)
set(PC_LIBSODIUM_LIBRARY_HINTS ${PC_LIBSODIUM_LIBRARY_DIRS} ${PC_LIBSODIUM_LIBRARY_DIRS}/*)
endif(PC_LIBSODIUM_FOUND)
endif (NOT MSVC)

find_path(
Expand All @@ -31,11 +31,15 @@ find_library(
)

include(FindPackageHandleStandardArgs)

find_package_handle_standard_args(
LIBSODIUM
REQUIRED_VARS LIBSODIUM_LIBRARIES LIBSODIUM_INCLUDE_DIRS
LIBSODIUM
REQUIRED_VARS LIBSODIUM_LIBRARIES LIBSODIUM_INCLUDE_DIRS
)
mark_as_advanced(
LIBSODIUM_FOUND
LIBSODIUM_LIBRARIES LIBSODIUM_INCLUDE_DIRS
)
mark_as_advanced(LIBSODIUM_FOUND LIBSODIUM_LIBRARIES LIBSODIUM_INCLUDE_DIRS)

################################################################################
# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
Expand Down
Loading

0 comments on commit b1e0244

Please sign in to comment.