Skip to content

Commit ba937e2

Browse files
committed
Merge pull request #68 from hintjens/master
Problem: packaging is out of date
2 parents 52d9f5d + 86bcbbe commit ba937e2

File tree

130 files changed

+7651
-478
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+7651
-478
lines changed

.gitignore

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,40 @@
1+
# Own created files
2+
src/.cache
3+
src/filemq.lst
4+
src/fmq_selftest
5+
src/fmq_sha.lst
6+
src/mymusic
7+
src/testit
8+
src/track
9+
110
# Object files
211
*.o
12+
*.so
313
*.ko
4-
*.obj
5-
*.elf
6-
7-
# Precompiled Headers
8-
*.gch
9-
*.pch
14+
*.pyc
1015

1116
# Libraries
1217
*.lib
1318
*.a
1419
*.la
15-
*.lo
1620
*.pc
21+
*.dll.a
1722

1823
# Shared objects (inc. Windows DLLs)
1924
*.dll
20-
*.so
2125
*.so.*
2226
*.dylib
27+
*.lo
2328

2429
# Executables
25-
filemq_selftest
26-
filemq_server
27-
filemq_client
30+
src/filemq_selftest
31+
src/filemq_server
32+
src/filemq_client
33+
src/filemq_selftest
2834
*.exe
2935
*.out
3036
*.app
31-
*.i*86
32-
*.x86_64
33-
*.hex
37+
core
3438

3539
# Man pages
3640
doc/*.1
@@ -44,6 +48,7 @@ doc/*.7
4448
*.trs
4549
Makefile
4650
Makefile.in
51+
!builds/openwrt/Makefile
4752
aclocal.m4
4853
autom4te.cache/
4954
config.log
@@ -58,8 +63,16 @@ src/stamp-h1
5863
src/test-suite.log
5964
src/.dirstamp
6065

61-
# qt-android build results
62-
builds/qt-android/prefix
66+
# CMake cache
67+
CMakeCache.txt
68+
CMakeFiles/
69+
CTestTestfile.cmake
70+
cmake_install.cmake
71+
install_manifest.txt
72+
Testing/
73+
74+
# Android build results
75+
builds/android/prefix
6376

6477
# Android - generated directories
6578
src/app/bin/
@@ -68,16 +81,8 @@ src/app/obj/
6881
src/app/local.properties
6982

7083
# Android -dependencies
71-
builds/android/libsodium
72-
builds/android/libzmq
73-
builds/android/czmq
74-
builds/android/e2fsprogs
75-
builds/android/zyre
7684
src/app/jni/output
7785

78-
# Additionals
86+
# Temporary files
7987
*.swp
80-
*.dirstamp
81-
*.xml.swp
82-
*.c.swp
83-
*.h.swp
88+
*~

CMakeLists.txt

Lines changed: 170 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,49 @@ enable_language(C)
1212
enable_testing()
1313

1414
set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
15-
set(BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
1615

1716
########################################################################
1817
# determine version
1918
########################################################################
2019
foreach(which MAJOR MINOR PATCH)
21-
file(STRINGS "${SOURCE_DIR}/include/filemq_library.h" FILEMQ_VERSION_STRING REGEX "#define FILEMQ_VERSION_${which}")
22-
string(REGEX MATCH "#define FILEMQ_VERSION_${which} ([0-9_]+)" FILEMQ_REGEX_MATCH "${FILEMQ_VERSION_STRING}")
20+
file(
21+
STRINGS
22+
"${SOURCE_DIR}/include/filemq_library.h"
23+
FILEMQ_VERSION_STRING REGEX
24+
"#define FILEMQ_VERSION_${which}"
25+
)
26+
string(
27+
REGEX MATCH
28+
"#define FILEMQ_VERSION_${which} ([0-9_]+)"
29+
FILEMQ_REGEX_MATCH
30+
"${FILEMQ_VERSION_STRING}"
31+
)
2332
if (NOT FILEMQ_REGEX_MATCH)
24-
message(FATAL_ERROR "failed to parse FILEMQ_VERSION_${which} from filemq.h")
33+
message(
34+
FATAL_ERROR
35+
"failed to parse FILEMQ_VERSION_${which} from filemq.h"
36+
)
2537
endif()
2638
set(FILEMQ_${which}_VERSION ${CMAKE_MATCH_1})
2739
endforeach(which)
2840

29-
set(FILEMQ_VERSION ${FILEMQ_MAJOR_VERSION}.${FILEMQ_MINOR_VERSION}.${FILEMQ_PATCH_VERSION})
41+
set(
42+
FILEMQ_VERSION
43+
${FILEMQ_MAJOR_VERSION}.${FILEMQ_MINOR_VERSION}.${FILEMQ_PATCH_VERSION}
44+
)
45+
46+
########################################################################
47+
# options
48+
########################################################################
49+
if (EXISTS ".git")
50+
OPTION (WITH_DRAFTS "Build and install draft classes and methods" ON)
51+
else ()
52+
OPTION (WITH_DRAFTS "Build and install draft classes and methods" OFF)
53+
endif ()
54+
55+
IF (WITH_DRAFTS)
56+
ADD_DEFINITIONS (-DWITH_DRAFTS)
57+
ENDIF (WITH_DRAFTS)
3058

3159
########################################################################
3260
# platform.h
@@ -45,22 +73,25 @@ if (NOT HAVE_NET_IF_H)
4573
CHECK_INCLUDE_FILE("net/if.h" HAVE_NET_IF_H)
4674
endif()
4775

48-
file(WRITE "${BINARY_DIR}/platform.h.in" "
76+
file(WRITE "${SOURCE_DIR}/src/platform.h.in" "
4977
#cmakedefine HAVE_LINUX_WIRELESS_H
5078
#cmakedefine HAVE_NET_IF_H
5179
#cmakedefine HAVE_NET_IF_MEDIA_H
5280
#cmakedefine HAVE_GETIFADDRS
5381
#cmakedefine HAVE_FREEIFADDRS
5482
")
5583

56-
configure_file("${BINARY_DIR}/platform.h.in" "${BINARY_DIR}/platform.h")
84+
configure_file("${SOURCE_DIR}/src/platform.h.in" "${SOURCE_DIR}/src/platform.h")
5785

5886
#The MSVC C compiler is too out of date,
5987
#so the sources have to be compiled as c++
6088
if (MSVC)
6189
enable_language(CXX)
6290
file(GLOB sources "${SOURCE_DIR}/src/*.c")
63-
set_source_files_properties(${sources} PROPERTIES LANGUAGE CXX)
91+
set_source_files_properties(
92+
${sources}
93+
PROPERTIES LANGUAGE CXX
94+
)
6495
set(MORE_LIBRARIES ws2_32 Rpcrt4 Iphlpapi)
6596
endif()
6697

@@ -75,50 +106,89 @@ if (CYGWIN)
75106
endif()
76107

77108
list(APPEND CMAKE_MODULE_PATH "${SOURCE_DIR}")
109+
set(OPTIONAL_LIBRARIES)
78110

79111
########################################################################
80-
# ZMQ dependency
112+
# LIBSODIUM dependency
81113
########################################################################
82-
find_package(ZeroMQ REQUIRED)
83-
include_directories(${ZEROMQ_INCLUDE_DIRS})
84-
list(APPEND MORE_LIBRARIES ${ZEROMQ_LIBRARIES})
114+
find_package(libsodium)
115+
IF (LIBSODIUM_FOUND)
116+
include_directories(${LIBSODIUM_INCLUDE_DIRS})
117+
list(APPEND MORE_LIBRARIES ${LIBSODIUM_LIBRARIES})
118+
add_definitions(-DHAVE_LIBSODIUM)
119+
list(APPEND OPTIONAL_LIBRARIES ${LIBSODIUM_LIBRARIES})
120+
ENDIF (LIBSODIUM_FOUND)
121+
122+
########################################################################
123+
# LIBZMQ dependency
124+
########################################################################
125+
find_package(libzmq REQUIRED)
126+
IF (LIBZMQ_FOUND)
127+
include_directories(${LIBZMQ_INCLUDE_DIRS})
128+
list(APPEND MORE_LIBRARIES ${LIBZMQ_LIBRARIES})
129+
ELSE (LIBZMQ_FOUND)
130+
message( FATAL_ERROR "libzmq not found." )
131+
ENDIF (LIBZMQ_FOUND)
85132

86133
########################################################################
87134
# CZMQ dependency
88135
########################################################################
89-
find_package(CZMQ REQUIRED)
90-
include_directories(${CZMQ_INCLUDE_DIRS})
91-
list(APPEND MORE_LIBRARIES ${CZMQ_LIBRARIES})
136+
find_package(czmq REQUIRED)
137+
IF (CZMQ_FOUND)
138+
include_directories(${CZMQ_INCLUDE_DIRS})
139+
list(APPEND MORE_LIBRARIES ${CZMQ_LIBRARIES})
140+
ELSE (CZMQ_FOUND)
141+
message( FATAL_ERROR "czmq not found." )
142+
ENDIF (CZMQ_FOUND)
92143

93144
########################################################################
94145
# includes
95146
########################################################################
96147
set (filemq_headers
97148
include/filemq_library.h
98149
include/filemq.h
150+
)
151+
152+
IF (WITH_DRAFTS)
153+
list(APPEND filemq_headers
99154
include/fmq_msg.h
100155
include/fmq_server.h
101156
include/fmq_client.h
102157
)
158+
ENDIF (WITH_DRAFTS)
159+
103160
source_group ("Header Files" FILES ${filemq_headers})
104161
install(FILES ${filemq_headers} DESTINATION include)
105162

106163
########################################################################
107164
# library
108165
########################################################################
109-
include_directories("${BINARY_DIR}" "${SOURCE_DIR}/include")
166+
include_directories("${SOURCE_DIR}/src" "${SOURCE_DIR}/include")
110167
set (filemq_sources
168+
)
169+
170+
IF (WITH_DRAFTS)
171+
list(APPEND filemq_sources
111172
src/fmq_msg.c
112173
src/fmq_server.c
113174
src/fmq_client.c
114175
)
115-
source_group ("Source Files" FILES ${filemq_sources})
176+
ENDIF (WITH_DRAFTS)
177+
178+
source_group("Source Files" FILES ${filemq_sources})
116179
if (NOT DEFINED BUILD_SHARED_LIBS)
117180
SET(BUILD_SHARED_LIBS ON)
118181
endif()
119182
add_library(filemq ${filemq_sources})
120-
set_target_properties(filemq PROPERTIES DEFINE_SYMBOL "LIBFILEMQ_EXPORTS")
121-
target_link_libraries(filemq ${ZEROMQ_LIBRARIES} ${MORE_LIBRARIES})
183+
set_target_properties(filemq
184+
PROPERTIES DEFINE_SYMBOL "LIBFILEMQ_EXPORTS"
185+
)
186+
set_target_properties(filemq
187+
PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${SOURCE_DIR}/src"
188+
)
189+
target_link_libraries(filemq
190+
${ZEROMQ_LIBRARIES} ${MORE_LIBRARIES}
191+
)
122192

123193
install(TARGETS filemq
124194
LIBRARY DESTINATION "lib${LIB_SUFFIX}" # .so file
@@ -134,22 +204,98 @@ set(prefix "${CMAKE_INSTALL_PREFIX}")
134204
set(exec_prefix "\${prefix}")
135205
set(libdir "\${prefix}/lib${LIB_SUFFIX}")
136206
set(includedir "\${prefix}/include")
207+
IF (WITH_DRAFTS)
208+
set(pkg_config_defines "-DWITH_DRAFTS=1")
209+
ELSE (WITH_DRAFTS)
210+
set(pkg_config_defines "")
211+
ENDIF (WITH_DRAFTS)
137212
configure_file(
138213
"${SOURCE_DIR}/src/libfilemq.pc.in"
139-
"${BINARY_DIR}/libfilemq.pc"
214+
"${SOURCE_DIR}/src/libfilemq.pc"
140215
@ONLY)
141216

142217
install(
143-
FILES "${BINARY_DIR}/libfilemq.pc"
218+
FILES "${SOURCE_DIR}/src/libfilemq.pc"
144219
DESTINATION "lib${LIB_SUFFIX}/pkgconfig"
145220
)
146221

222+
########################################################################
223+
# executables
224+
########################################################################
225+
add_executable(
226+
filemq_server
227+
"${SOURCE_DIR}/src/filemq_server.c"
228+
)
229+
target_link_libraries(
230+
filemq_server
231+
filemq
232+
${LIBZMQ_LIBRARIES}
233+
${CZMQ_LIBRARIES}
234+
${OPTIONAL_LIBRARIES}
235+
)
236+
set_target_properties(
237+
filemq_server
238+
PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src"
239+
)
240+
add_executable(
241+
filemq_client
242+
"${SOURCE_DIR}/src/filemq_client.c"
243+
)
244+
target_link_libraries(
245+
filemq_client
246+
filemq
247+
${LIBZMQ_LIBRARIES}
248+
${CZMQ_LIBRARIES}
249+
${OPTIONAL_LIBRARIES}
250+
)
251+
set_target_properties(
252+
filemq_client
253+
PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src"
254+
)
255+
add_executable(
256+
filemq_selftest
257+
"${SOURCE_DIR}/src/filemq_selftest.c"
258+
)
259+
target_link_libraries(
260+
filemq_selftest
261+
filemq
262+
${LIBZMQ_LIBRARIES}
263+
${CZMQ_LIBRARIES}
264+
${OPTIONAL_LIBRARIES}
265+
)
266+
set_target_properties(
267+
filemq_selftest
268+
PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src"
269+
)
270+
147271
########################################################################
148272
# tests
149273
########################################################################
150-
add_executable(filemq_selftest "${SOURCE_DIR}/src/filemq_selftest.c")
151-
target_link_libraries(filemq_selftest filemq ${ZEROMQ_LIBRARIES})
152-
add_test(filemq_selftest filemq_selftest)
274+
set(CLASSTEST_TIMEOUT 5 CACHE STRING "Timeout of the selftest of a class")
275+
set(TOTAL_TIMEOUT 20 CACHE STRING "Timout of the total testsuite")
276+
277+
set(TEST_CLASSES
278+
)
279+
280+
IF (WITH_DRAFTS)
281+
list(APPEND TEST_CLASSES
282+
fmq_msg
283+
fmq_server
284+
fmq_client
285+
)
286+
ENDIF (WITH_DRAFTS)
287+
288+
foreach(TEST_CLASS ${TEST_CLASSES})
289+
add_test(
290+
NAME ${TEST_CLASS}
291+
COMMAND filemq_selftest --continue --verbose --test ${TEST_CLASS}
292+
)
293+
set_tests_properties(
294+
${TEST_CLASS}
295+
PROPERTIES TIMEOUT ${CLASSTEST_TIMEOUT}
296+
)
297+
endforeach(TEST_CLASS)
298+
153299

154300
########################################################################
155301
# summary

0 commit comments

Comments
 (0)