annotate CMakeLists.txt @ 141:08416c57f077

sexpr: implement a simple REPL for the sexpr APIs It turns out this little utility is really helpful when it comes to finding bugs. Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Mon, 10 Apr 2017 16:51:25 -0400
parents aa39202a5963
children 2350f0436f22
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
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
26 enable_testing()
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
27
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
28 add_definitions(
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
29 -D__EXTENSIONS__
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
30 -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
31 -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
32 -D_GNU_SOURCE
0
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
33 )
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
34
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
35 add_compile_options(
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
36 -Wall
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
37 -O2
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
38 -g
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
39 -std=gnu99
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
40 -fno-omit-frame-pointer
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
41 $<$<C_COMPILER_ID:gcc>:-fno-inline-small-functions>
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
42 $<$<C_COMPILER_ID:gcc>:-fno-inline-functions-called-once>
ad8577f2345a Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
43 )
1
d5e68b231e18 atomic: define a type checking atomic ops
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
44
25
3cb979d08023 config: support for build-time feature checks
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 24
diff changeset
45 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
46
3cb979d08023 config: support for build-time feature checks
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 24
diff changeset
47 include(cmake/config.cmake)
23
f7acc20835d4 cmake support for mapfiles
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 19
diff changeset
48 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
49 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
50 include(cmake/paths.cmake)
23
f7acc20835d4 cmake support for mapfiles
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 19
diff changeset
51
38
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
52 # handle missing libumem
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
53 if(NOT UMEM_FOUND)
140
aa39202a5963 mem: add a slab allocator API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 137
diff changeset
54 set(UMEM_LIBRARY)
aa39202a5963 mem: add a slab allocator API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 137
diff changeset
55 set(UMEM_INCLUDE_DIR)
aa39202a5963 mem: add a slab allocator API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 137
diff changeset
56 set(UMEM_EXTRA_SOURCE)
38
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
57 else()
140
aa39202a5963 mem: add a slab allocator API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 137
diff changeset
58 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
59 endif()
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
60
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
61 find_package(BISON)
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
62 find_package(FLEX)
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
63
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
64 include_directories(
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
65 include
38
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
66 ${UMEM_INCLUDE_DIR}
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
67 )
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
68
62
97874539130d cmake: #include "foo.h" should check the source directory as well
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 61
diff changeset
69 # 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
70 add_compile_options(
97874539130d cmake: #include "foo.h" should check the source directory as well
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 61
diff changeset
71 -iquote ${CMAKE_CURRENT_SOURCE_DIR}
97874539130d cmake: #include "foo.h" should check the source directory as well
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 61
diff changeset
72 )
97874539130d cmake: #include "foo.h" should check the source directory as well
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 61
diff changeset
73
61
49acba50f6fc cmake: output generated bison and flex files in the binary dir
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 49
diff changeset
74 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
75 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
76 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
77 COMPILE_FLAGS "-P sexpr_reader_")
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
78 ADD_FLEX_BISON_DEPENDENCY(sexpr sexpr)
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
79
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
80 add_library(jeffpc SHARED
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
81 error.c
44
905e9ad459a0 hexdump: hexdump a buffer with or without a trailing \0
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 43
diff changeset
82 hexdump.c
19
017a4abcfe3d init: add a single initialize-the-library function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 15
diff changeset
83 init.c
14
33b45c955db2 io: safe file reading & writing functions
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 13
diff changeset
84 io.c
79
449d56767f49 padding: add a function for padding checking
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 65
diff changeset
85 padding.c
32
118d3438c86b rand: introduce random number generation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 29
diff changeset
86 rand.c
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
87 sexpr.c
114
73b4164d2811 sexpr: implement basic expression evaluation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 104
diff changeset
88 sexpr_eval.c
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
89 ${FLEX_sexpr_OUTPUTS} ${BISON_sexpr_OUTPUTS}
140
aa39202a5963 mem: add a slab allocator API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 137
diff changeset
90 slab.c
88
7cbfcbcc3580 sock: make it easy to make client TCP/IP connections
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 84
diff changeset
91 sock.c
6
4317d47b267f str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 4
diff changeset
92 str.c
103
021cf8b91cb3 synch: use functions instead of macros for pthread wrappers
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 95
diff changeset
93 synch.c
130
9a156f1dcd0e taskq: implement a simple fixed-size thread pool
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 114
diff changeset
94 taskq.c
42
13e339c56f8a uuid: implement UUID {generate,compare,clear}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 38
diff changeset
95 uuid.c
8
083d11258db6 val: a generic typed value structure
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
96 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
97 version.c
38
90f182a38741 fakeumem: include internal fall-back to missing libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 34
diff changeset
98 ${UMEM_EXTRA_SOURCE}
6
4317d47b267f str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 4
diff changeset
99 )
4317d47b267f str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 4
diff changeset
100
4317d47b267f str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 4
diff changeset
101 target_link_libraries(jeffpc
26
20bf88cb42eb config: check for presence of libumem
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 25
diff changeset
102 ${UMEM_LIBRARY}
104
b1b1531f60d4 link against libpthread
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 103
diff changeset
103 pthread
42
13e339c56f8a uuid: implement UUID {generate,compare,clear}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 38
diff changeset
104 uuid
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
105 )
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
106
24
678c6a03bfa9 apply a version mapfile to the produced shared object
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 23
diff changeset
107 target_apply_mapfile(jeffpc mapfile-vers)
678c6a03bfa9 apply a version mapfile to the produced shared object
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 23
diff changeset
108
64
a0728e64316c cmake: let the user specify the location of the library
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 63
diff changeset
109 install(TARGETS jeffpc DESTINATION ${CMAKE_INSTALL_LIBDIR}
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
110 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
111 install(FILES include/jeffpc/atomic.h
4
49bec073c6e4 error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
112 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
113 include/jeffpc/hexdump.h
10
9c2519c32502 int: string to integer conversion routines
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 8
diff changeset
114 include/jeffpc/int.h
14
33b45c955db2 io: safe file reading & writing functions
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 13
diff changeset
115 include/jeffpc/io.h
19
017a4abcfe3d init: add a single initialize-the-library function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 15
diff changeset
116 include/jeffpc/jeffpc.h
140
aa39202a5963 mem: add a slab allocator API
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 137
diff changeset
117 include/jeffpc/mem.h
79
449d56767f49 padding: add a function for padding checking
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 65
diff changeset
118 include/jeffpc/padding.h
32
118d3438c86b rand: introduce random number generation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 29
diff changeset
119 include/jeffpc/rand.h
2
1ef6d9d92cfa refcnt: define a generic ref count type & macros
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 1
diff changeset
120 include/jeffpc/refcnt.h
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
121 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
122 include/jeffpc/sock.h
6
4317d47b267f str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 4
diff changeset
123 include/jeffpc/str.h
65
a3bd464bf68f cmake: install synch.h
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 64
diff changeset
124 include/jeffpc/synch.h
130
9a156f1dcd0e taskq: implement a simple fixed-size thread pool
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 114
diff changeset
125 include/jeffpc/taskq.h
33
7fb711200ed7 thread: wrap pthread_{create,join,self}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 32
diff changeset
126 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
127 include/jeffpc/time.h
81
67f676c44e79 types: introduce ARRAY_LEN
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 80
diff changeset
128 include/jeffpc/types.h
42
13e339c56f8a uuid: implement UUID {generate,compare,clear}
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 38
diff changeset
129 include/jeffpc/uuid.h
8
083d11258db6 val: a generic typed value structure
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
130 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
131 include/jeffpc/version.h
63
bd61c4d5d281 cmake: install the config header file properly
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 62
diff changeset
132 ${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
133 DESTINATION include/jeffpc
d5e68b231e18 atomic: define a type checking atomic ops
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
134 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
135
137
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
136 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
137
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
138 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
139 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
140 -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
141 -DBINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
142 -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
143 )
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
144
2943c4b289f1 version: add a jeffpc_version symbol with the hg version info
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 130
diff changeset
145 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
146
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
147 #
141
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
148 # REPL executable
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
149 #
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
150
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
151 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
152 repl.c
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
153 )
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
154
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
155 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
156 tecla
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
157 jeffpc
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
158 )
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
159
08416c57f077 sexpr: implement a simple REPL for the sexpr APIs
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 140
diff changeset
160 #
15
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
161 # Test related executables
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
162 #
c8bd88e39c07 sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
163
47
7447b2d42ad7 cmake: move all the test related macros into a separate file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 44
diff changeset
164 build_test_bin(sexpr_parser)
81
67f676c44e79 types: introduce ARRAY_LEN
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 80
diff changeset
165 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
166 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
167 build_test_bin_and_run(bswap)
80
38272429d302 hexdump: add a test checking both hexdump and hexdumpz
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 79
diff changeset
168 build_test_bin_and_run(hexdump)
79
449d56767f49 padding: add a function for padding checking
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 65
diff changeset
169 build_test_bin_and_run(padding)
114
73b4164d2811 sexpr: implement basic expression evaluation
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 104
diff changeset
170 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
171 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
172
13
99352ce825b8 tests: add basic infrastructure for ctest-based testing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 10
diff changeset
173 add_subdirectory(tests)