Mercurial > libjeffpc
annotate CMakeLists.txt @ 24:678c6a03bfa9
apply a version mapfile to the produced shared object
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Mon, 28 Mar 2016 11:31:52 -0400 |
parents | f7acc20835d4 |
children | 3cb979d08023 |
rev | line source |
---|---|
0
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
1 # |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
2 # Copyright (c) 2016 Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
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) |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
24 |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
25 enable_testing() |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
26 |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
27 add_definitions( |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
28 -D__EXTENSIONS__ |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
29 -D_REENTRANT |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
30 ) |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
31 |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
32 add_compile_options( |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
33 -Wall |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
34 -O2 |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
35 -g |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
36 -std=gnu99 |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
37 -fno-omit-frame-pointer |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
38 $<$<C_COMPILER_ID:gcc>:-fno-inline-small-functions> |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
39 $<$<C_COMPILER_ID:gcc>:-fno-inline-functions-called-once> |
ad8577f2345a
Basic cmake file & ignore file
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
40 ) |
1
d5e68b231e18
atomic: define a type checking atomic ops
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
0
diff
changeset
|
41 |
23
f7acc20835d4
cmake support for mapfiles
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
19
diff
changeset
|
42 include(cmake/mapfile.cmake) |
f7acc20835d4
cmake support for mapfiles
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
19
diff
changeset
|
43 |
15
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
44 find_package(BISON) |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
45 find_package(FLEX) |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
46 |
4
49bec073c6e4
error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
2
diff
changeset
|
47 include_directories( |
49bec073c6e4
error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
2
diff
changeset
|
48 include |
49bec073c6e4
error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
2
diff
changeset
|
49 ) |
49bec073c6e4
error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
2
diff
changeset
|
50 |
15
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
51 BISON_TARGET(sexpr sexpr.y sexpr.tab.c COMPILE_FLAGS "-p sexpr_reader_") |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
52 FLEX_TARGET(sexpr sexpr.l sexpr.lex.c COMPILE_FLAGS "-P sexpr_reader_") |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
53 ADD_FLEX_BISON_DEPENDENCY(sexpr sexpr) |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
54 |
4
49bec073c6e4
error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
2
diff
changeset
|
55 add_library(jeffpc SHARED |
49bec073c6e4
error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
2
diff
changeset
|
56 error.c |
19
017a4abcfe3d
init: add a single initialize-the-library function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
15
diff
changeset
|
57 init.c |
14
33b45c955db2
io: safe file reading & writing functions
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
58 io.c |
15
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
59 sexpr.c |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
60 ${FLEX_sexpr_OUTPUTS} ${BISON_sexpr_OUTPUTS} |
6
4317d47b267f
str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
4
diff
changeset
|
61 str.c |
8
083d11258db6
val: a generic typed value structure
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
6
diff
changeset
|
62 val.c |
6
4317d47b267f
str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
4
diff
changeset
|
63 ) |
4317d47b267f
str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
4
diff
changeset
|
64 |
4317d47b267f
str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
4
diff
changeset
|
65 target_link_libraries(jeffpc |
4317d47b267f
str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
4
diff
changeset
|
66 umem |
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 |
24
678c6a03bfa9
apply a version mapfile to the produced shared object
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
23
diff
changeset
|
69 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
|
70 |
4
49bec073c6e4
error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
2
diff
changeset
|
71 install(TARGETS jeffpc DESTINATION lib |
49bec073c6e4
error: define assertion macros and a syslogging mechanism
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
2
diff
changeset
|
72 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
|
73 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
|
74 include/jeffpc/error.h |
10
9c2519c32502
int: string to integer conversion routines
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
8
diff
changeset
|
75 include/jeffpc/int.h |
14
33b45c955db2
io: safe file reading & writing functions
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
76 include/jeffpc/io.h |
19
017a4abcfe3d
init: add a single initialize-the-library function
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
15
diff
changeset
|
77 include/jeffpc/jeffpc.h |
2
1ef6d9d92cfa
refcnt: define a generic ref count type & macros
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
1
diff
changeset
|
78 include/jeffpc/refcnt.h |
15
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
79 include/jeffpc/sexpr.h |
6
4317d47b267f
str: a reference counted string
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
4
diff
changeset
|
80 include/jeffpc/str.h |
8
083d11258db6
val: a generic typed value structure
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
6
diff
changeset
|
81 include/jeffpc/val.h |
1
d5e68b231e18
atomic: define a type checking atomic ops
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
0
diff
changeset
|
82 DESTINATION include/jeffpc |
d5e68b231e18
atomic: define a type checking atomic ops
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
0
diff
changeset
|
83 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
|
84 |
99352ce825b8
tests: add basic infrastructure for ctest-based testing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
10
diff
changeset
|
85 function(simple_c_test type section bin data) |
99352ce825b8
tests: add basic infrastructure for ctest-based testing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
10
diff
changeset
|
86 add_test(NAME "${type}:${section}:${data}" |
99352ce825b8
tests: add basic infrastructure for ctest-based testing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
10
diff
changeset
|
87 COMMAND "${CMAKE_BINARY_DIR}/test_${bin}" |
99352ce825b8
tests: add basic infrastructure for ctest-based testing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
10
diff
changeset
|
88 "${CMAKE_CURRENT_SOURCE_DIR}/${data}" |
99352ce825b8
tests: add basic infrastructure for ctest-based testing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
10
diff
changeset
|
89 ) |
99352ce825b8
tests: add basic infrastructure for ctest-based testing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
10
diff
changeset
|
90 endfunction() |
99352ce825b8
tests: add basic infrastructure for ctest-based testing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
10
diff
changeset
|
91 |
15
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
92 # |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
93 # Test related executables |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
94 # |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
95 |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
96 add_executable(test_sexpr_parser |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
97 test_sexpr_parser.c |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
98 ) |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
99 |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
100 target_link_libraries(test_sexpr_parser |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
101 jeffpc |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
102 ) |
c8bd88e39c07
sexpr: S-expression parsing and manipulation code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
14
diff
changeset
|
103 |
13
99352ce825b8
tests: add basic infrastructure for ctest-based testing
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
10
diff
changeset
|
104 add_subdirectory(tests) |