annotate CMakeLists.txt @ 292:a693af78eeff

nvlist: CBOR (RFC 7049) encoding support Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Wed, 05 Jul 2017 23:45:44 +0300
parents 54d1ea17d64b
children 1f6ae020116d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
1 #
130
9a156f1dcd0e taskq: implement a simple fixed-size thread pool
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 114
diff changeset
2 # Copyright (c) 2016-2017 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
0
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
3 #
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
4 # Permission is hereby granted, free of charge, to any person obtaining a copy
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
5 # of this software and associated documentation files (the "Software"), to deal
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
6 # in the Software without restriction, including without limitation the rights
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
7 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
8 # copies of the Software, and to permit persons to whom the Software is
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
9 # furnished to do so, subject to the following conditions:
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
10 #
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
11 # The above copyright notice and this permission notice shall be included in
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
12 # all copies or substantial portions of the Software.
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
13 #
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
15 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
16 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
17 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
18 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
19 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
20 # SOFTWARE.
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
21 #
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
22
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
23 cmake_minimum_required(VERSION 2.8.12.2)
43
1cc160d0edb6 cmake: identify the project in the top-level CMakeLists.txt
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 42
diff changeset
24 project(libjeffpc)
0
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
25
269
95ffcd6cf21e libjeffpc 0.13-rc1
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 267
diff changeset
26 set(JEFFPC_VERSION 0.13-rc1)
187
f89655d2e205 cmake: keep version number in top-level CMakeLists.txt
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 183
diff changeset
27
0
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
28 enable_testing()
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
29
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
30 add_definitions(
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
31 -D__EXTENSIONS__
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
32 -D_REENTRANT
95
6939d2b1c8ab cmake: specify that we want POSIX 2001 standard with GNU extensions
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 88
diff changeset
33 -D_POSIX_C_SOURCE=200112L
6939d2b1c8ab cmake: specify that we want POSIX 2001 standard with GNU extensions
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 88
diff changeset
34 -D_GNU_SOURCE
0
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
35 )
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
36
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
37 add_compile_options(
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
38 -Wall
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
39 -O2
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
40 -g
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
41 -std=gnu99
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
42 -fno-omit-frame-pointer
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
43 $<$<C_COMPILER_ID:gcc>:-fno-inline-small-functions>
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
44 $<$<C_COMPILER_ID:gcc>:-fno-inline-functions-called-once>
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
45 )
1
d5e68b231e18 atomic: define a type checking atomic ops
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
46
25
3cb979d08023 config: support for build-time feature checks
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 24
diff changeset
47 set(CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
3cb979d08023 config: support for build-time feature checks
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 24
diff changeset
48
3cb979d08023 config: support for build-time feature checks
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 24
diff changeset
49 include(cmake/config.cmake)
23
f7acc20835d4 cmake support for mapfiles
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 19
diff changeset
50 include(cmake/mapfile.cmake)
47
7447b2d42ad7 cmake: move all the test related macros into a separate file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 44
diff changeset
51 include(cmake/test.cmake)
64
a0728e64316c cmake: let the user specify the location of the library
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 63
diff changeset
52 include(cmake/paths.cmake)
23
f7acc20835d4 cmake support for mapfiles
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 19
diff changeset
53
38
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
54 # handle missing libumem
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
55 if(NOT UMEM_FOUND)
205
2f75aad47c2e cmake: set UMEM_{LIBRARY,INCLUDE_DIR} to the empty string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 204
diff changeset
56 set(UMEM_LIBRARY "")
2f75aad47c2e cmake: set UMEM_{LIBRARY,INCLUDE_DIR} to the empty string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 204
diff changeset
57 set(UMEM_INCLUDE_DIR "")
140
aa39202a5963 mem: add a slab allocator API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 137
diff changeset
58 set(UMEM_EXTRA_SOURCE)
38
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
59 else()
140
aa39202a5963 mem: add a slab allocator API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 137
diff changeset
60 set(UMEM_EXTRA_SOURCE slab_umem.c)
38
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
61 endif()
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
62
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
63 find_package(BISON)
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
64 find_package(FLEX)
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
65
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
66 include_directories(
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
67 include
38
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
68 ${UMEM_INCLUDE_DIR}
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
69 )
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
70
62
97874539130d cmake: #include "foo.h" should check the source directory as well
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 61
diff changeset
71 # include the current source dir but only for: #include "foo.h"
97874539130d cmake: #include "foo.h" should check the source directory as well
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 61
diff changeset
72 add_compile_options(
179
bed61aae209f build: -iquote the current binary dir
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 178
diff changeset
73 -iquote${CMAKE_CURRENT_SOURCE_DIR}
bed61aae209f build: -iquote the current binary dir
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 178
diff changeset
74 -iquote${CMAKE_CURRENT_BINARY_DIR}
62
97874539130d cmake: #include "foo.h" should check the source directory as well
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 61
diff changeset
75 )
97874539130d cmake: #include "foo.h" should check the source directory as well
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 61
diff changeset
76
61
49acba50f6fc cmake: output generated bison and flex files in the binary dir
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 49
diff changeset
77 BISON_TARGET(sexpr sexpr.y ${CMAKE_CURRENT_BINARY_DIR}/sexpr.tab.c
49acba50f6fc cmake: output generated bison and flex files in the binary dir
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 49
diff changeset
78 COMPILE_FLAGS "-p sexpr_reader_")
49acba50f6fc cmake: output generated bison and flex files in the binary dir
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 49
diff changeset
79 FLEX_TARGET(sexpr sexpr.l ${CMAKE_CURRENT_BINARY_DIR}/sexpr.lex.c
49acba50f6fc cmake: output generated bison and flex files in the binary dir
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 49
diff changeset
80 COMPILE_FLAGS "-P sexpr_reader_")
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
81 ADD_FLEX_BISON_DEPENDENCY(sexpr sexpr)
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
82
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
83 add_library(jeffpc SHARED
204
910021f14024 array: a resizable C array
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 199
diff changeset
84 array.c
250
0e4e45813eb9 buffer: introduce a simple growing memory buffer API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 249
diff changeset
85 buffer.c
256
f82b45b662c9 buffer: use an ops vector to customize buffer behavior
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 250
diff changeset
86 buffer_const.c
f82b45b662c9 buffer: use an ops vector to customize buffer behavior
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 250
diff changeset
87 buffer_heap.c
f82b45b662c9 buffer: use an ops vector to customize buffer behavior
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 250
diff changeset
88 buffer_sink.c
207
103260f6b99c cstr: add strcpy_safe
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 205
diff changeset
89 cstr.c
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
90 error.c
44
905e9ad459a0 hexdump: hexdump a buffer with or without a trailing \0
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 43
diff changeset
91 hexdump.c
19
017a4abcfe3d init: add a single initialize-the-library function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 15
diff changeset
92 init.c
14
33b45c955db2 io: safe file reading & writing functions
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 13
diff changeset
93 io.c
182
a24cc2a751fc list: implement illumos-style linked list
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 181
diff changeset
94 list.c
262
89bf89fc814c nvlist: introduce a name-value list API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 258
diff changeset
95 nvl.c
274
c35b1f62bcac nvlist: value type conversion code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 273
diff changeset
96 nvl_convert.c
262
89bf89fc814c nvlist: introduce a name-value list API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 258
diff changeset
97 nvl_dump.c
292
a693af78eeff nvlist: CBOR (RFC 7049) encoding support
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 291
diff changeset
98 nvl_fmt_cbor.c
266
721dd53c3639 nvlist: JSON (RFC 7159) encoding support
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 265
diff changeset
99 nvl_fmt_json.c
265
6cc52ba25b46 nvlist: pack framework
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 262
diff changeset
100 nvl_pack.c
6cc52ba25b46 nvlist: pack framework
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 262
diff changeset
101 nvl_unpack.c
79
449d56767f49 padding: add a function for padding checking
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 65
diff changeset
102 padding.c
32
118d3438c86b rand: introduce random number generation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 29
diff changeset
103 rand.c
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
104 sexpr.c
114
73b4164d2811 sexpr: implement basic expression evaluation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 104
diff changeset
105 sexpr_eval.c
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
106 ${FLEX_sexpr_OUTPUTS} ${BISON_sexpr_OUTPUTS}
140
aa39202a5963 mem: add a slab allocator API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 137
diff changeset
107 slab.c
88
7cbfcbcc3580 sock: make it easy to make client TCP/IP connections
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 84
diff changeset
108 sock.c
6
4317d47b267f str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 4
diff changeset
109 str.c
103
021cf8b91cb3 synch: use functions instead of macros for pthread wrappers
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 95
diff changeset
110 synch.c
130
9a156f1dcd0e taskq: implement a simple fixed-size thread pool
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 114
diff changeset
111 taskq.c
42
13e339c56f8a uuid: implement UUID {generate,compare,clear}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 38
diff changeset
112 uuid.c
8
083d11258db6 val: a generic typed value structure
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
113 val.c
137
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
114 version.c
38
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
115 ${UMEM_EXTRA_SOURCE}
6
4317d47b267f str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 4
diff changeset
116 )
4317d47b267f str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 4
diff changeset
117
4317d47b267f str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 4
diff changeset
118 target_link_libraries(jeffpc
26
20bf88cb42eb config: check for presence of libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 25
diff changeset
119 ${UMEM_LIBRARY}
104
b1b1531f60d4 link against libpthread
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 103
diff changeset
120 pthread
42
13e339c56f8a uuid: implement UUID {generate,compare,clear}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 38
diff changeset
121 uuid
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
122 )
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
123
281
c0f44f4aa684 libjeffpc-comm
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 274
diff changeset
124 add_library(jeffpc-comm SHARED
286
45ebaa05bdd9 scgisvc: a SCGI service
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 282
diff changeset
125 scgisvc.c
282
4b52ab9eb514 socksvc: simple socket service
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 281
diff changeset
126 socksvc.c
281
c0f44f4aa684 libjeffpc-comm
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 274
diff changeset
127 )
c0f44f4aa684 libjeffpc-comm
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 274
diff changeset
128
c0f44f4aa684 libjeffpc-comm
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 274
diff changeset
129 target_link_libraries(jeffpc-comm
c0f44f4aa684 libjeffpc-comm
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 274
diff changeset
130 jeffpc
c0f44f4aa684 libjeffpc-comm
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 274
diff changeset
131 )
c0f44f4aa684 libjeffpc-comm
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 274
diff changeset
132
273
b7ecfc4c1e13 rename library mapfile to better reflect which library it belongs to
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 269
diff changeset
133 target_apply_mapfile(jeffpc jeffpc.mapfile-vers)
281
c0f44f4aa684 libjeffpc-comm
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 274
diff changeset
134 target_apply_mapfile(jeffpc-comm jeffpc-comm.mapfile-vers)
24
678c6a03bfa9 apply a version mapfile to the produced shared object
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 23
diff changeset
135
290
f09190e05813 cmake: install libjeffpc-comm.so
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 289
diff changeset
136 install(TARGETS jeffpc
f09190e05813 cmake: install libjeffpc-comm.so
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 289
diff changeset
137 jeffpc-comm
f09190e05813 cmake: install libjeffpc-comm.so
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 289
diff changeset
138 DESTINATION ${CMAKE_INSTALL_LIBDIR}
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
139 PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)
1
d5e68b231e18 atomic: define a type checking atomic ops
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
140 install(FILES include/jeffpc/atomic.h
250
0e4e45813eb9 buffer: introduce a simple growing memory buffer API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 249
diff changeset
141 include/jeffpc/buffer.h
207
103260f6b99c cstr: add strcpy_safe
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 205
diff changeset
142 include/jeffpc/cstr.h
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
143 include/jeffpc/error.h
44
905e9ad459a0 hexdump: hexdump a buffer with or without a trailing \0
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 43
diff changeset
144 include/jeffpc/hexdump.h
10
9c2519c32502 int: string to integer conversion routines
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 8
diff changeset
145 include/jeffpc/int.h
14
33b45c955db2 io: safe file reading & writing functions
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 13
diff changeset
146 include/jeffpc/io.h
19
017a4abcfe3d init: add a single initialize-the-library function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 15
diff changeset
147 include/jeffpc/jeffpc.h
181
df388ec51431 list: implement linux kernel-style linked list
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 179
diff changeset
148 include/jeffpc/list.h
140
aa39202a5963 mem: add a slab allocator API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 137
diff changeset
149 include/jeffpc/mem.h
262
89bf89fc814c nvlist: introduce a name-value list API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 258
diff changeset
150 include/jeffpc/nvl.h
79
449d56767f49 padding: add a function for padding checking
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 65
diff changeset
151 include/jeffpc/padding.h
32
118d3438c86b rand: introduce random number generation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 29
diff changeset
152 include/jeffpc/rand.h
2
1ef6d9d92cfa refcnt: define a generic ref count type & macros
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 1
diff changeset
153 include/jeffpc/refcnt.h
291
54d1ea17d64b scgi: move the SCGI header name definitions into a separate header file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 290
diff changeset
154 include/jeffpc/scgi.h
289
9a980c50a132 cmake: install scgisvc.h
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 286
diff changeset
155 include/jeffpc/scgisvc.h
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
156 include/jeffpc/sexpr.h
88
7cbfcbcc3580 sock: make it easy to make client TCP/IP connections
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 84
diff changeset
157 include/jeffpc/sock.h
282
4b52ab9eb514 socksvc: simple socket service
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 281
diff changeset
158 include/jeffpc/socksvc.h
6
4317d47b267f str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 4
diff changeset
159 include/jeffpc/str.h
65
a3bd464bf68f cmake: install synch.h
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 64
diff changeset
160 include/jeffpc/synch.h
130
9a156f1dcd0e taskq: implement a simple fixed-size thread pool
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 114
diff changeset
161 include/jeffpc/taskq.h
33
7fb711200ed7 thread: wrap pthread_{create,join,self}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 32
diff changeset
162 include/jeffpc/thread.h
29
91cd9c0ab45c time: add gettime() to return unix time in nanoseconds
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 26
diff changeset
163 include/jeffpc/time.h
81
67f676c44e79 types: introduce ARRAY_LEN
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 80
diff changeset
164 include/jeffpc/types.h
42
13e339c56f8a uuid: implement UUID {generate,compare,clear}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 38
diff changeset
165 include/jeffpc/uuid.h
8
083d11258db6 val: a generic typed value structure
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
166 include/jeffpc/val.h
137
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
167 include/jeffpc/version.h
63
bd61c4d5d281 cmake: install the config header file properly
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 62
diff changeset
168 ${CMAKE_CURRENT_BINARY_DIR}/include/jeffpc/config.h
1
d5e68b231e18 atomic: define a type checking atomic ops
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
169 DESTINATION include/jeffpc
d5e68b231e18 atomic: define a type checking atomic ops
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
170 PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)
13
99352ce825b8 tests: add basic infrastructure for ctest-based testing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 10
diff changeset
171
137
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
172 add_custom_target(revisiontag ALL)
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
173
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
174 add_custom_command(TARGET revisiontag
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
175 COMMAND ${CMAKE_COMMAND}
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
176 -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
177 -DBINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}
188
c71d879e18cd version: use the version from cmake files if needed
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 187
diff changeset
178 -DJEFFPC_VERSION=v${JEFFPC_VERSION}
137
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
179 -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/hg.cmake
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
180 )
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
181
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
182 add_dependencies(jeffpc revisiontag)
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
183
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
184 #
141
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
185 # REPL executable
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
186 #
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
187
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
188 add_executable(sexpr-repl EXCLUDE_FROM_ALL
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
189 repl.c
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
190 )
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
191
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
192 target_link_libraries(sexpr-repl
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
193 tecla
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
194 jeffpc
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
195 )
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
196
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
197 #
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
198 # Test related executables
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
199 #
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
200
47
7447b2d42ad7 cmake: move all the test related macros into a separate file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 44
diff changeset
201 build_test_bin(sexpr_parser)
81
67f676c44e79 types: introduce ARRAY_LEN
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 80
diff changeset
202 build_test_bin_and_run(array)
84
2dc995298f71 atomic: add single threaded tests to verify basic operation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 83
diff changeset
203 build_test_bin_and_run(atomic-single-thread)
83
0fae2209450c int: add tests for bswap_* functions
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 81
diff changeset
204 build_test_bin_and_run(bswap)
250
0e4e45813eb9 buffer: introduce a simple growing memory buffer API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 249
diff changeset
205 build_test_bin_and_run(buffer)
178
2350f0436f22 types: add container_of
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 141
diff changeset
206 build_test_bin_and_run(container_of)
234
e4fa504f4538 int: add functions to read unaligned big-endian ints
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 210
diff changeset
207 build_test_bin_and_run(endian)
249
cef63e0025b5 error: add a basic test for PTR_ERR/ERR_PTR/IS_ERR/ERR_CAST
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 234
diff changeset
208 build_test_bin_and_run(errno)
80
38272429d302 hexdump: add a test checking both hexdump and hexdumpz
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 79
diff changeset
209 build_test_bin_and_run(hexdump)
183
25dc3867980d list: add a rudimentary set of tests
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 182
diff changeset
210 build_test_bin_and_run(list)
262
89bf89fc814c nvlist: introduce a name-value list API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 258
diff changeset
211 build_test_bin_and_run(nvl)
267
3f9cf57cb431 nvlist: simple test to exercise nvlist packing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 266
diff changeset
212 build_test_bin_and_run(nvl_pack)
79
449d56767f49 padding: add a function for padding checking
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 65
diff changeset
213 build_test_bin_and_run(padding)
114
73b4164d2811 sexpr: implement basic expression evaluation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 104
diff changeset
214 build_test_bin_and_run(sexpr_eval)
137
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
215 build_test_bin_and_run(version)
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
216
13
99352ce825b8 tests: add basic infrastructure for ctest-based testing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 10
diff changeset
217 add_subdirectory(tests)