Skip to content

Commit c2ea84e

Browse files
hmenkemojca
authored andcommitted
Add CMake support and submodule for zlib
1 parent c451e60 commit c2ea84e

File tree

4 files changed

+153
-0
lines changed

4 files changed

+153
-0
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "zlib"]
2+
path = zlib
3+
url = git://github.com/madler/zlib.git

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
3+
add_subdirectory(zlib)
4+
add_subdirectory(src)
5+
6+
enable_testing()

src/CMakeLists.txt

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
3+
project(pplib
4+
LANGUAGES C)
5+
set(VERSION 1.0.5)
6+
7+
set(CMAKE_C_STANDARD 99)
8+
9+
add_library(pplib_utils STATIC
10+
util/utilplat.h
11+
util/utilcryptdef.h
12+
util/utildecl.h
13+
#
14+
util/utilcrypt.c
15+
util/utilcrypt.h
16+
util/utiliof.c
17+
util/utiliof.h
18+
util/utillog.c
19+
util/utillog.h
20+
util/utilmd5.c
21+
util/utilmd5.h
22+
util/utilmem.c
23+
util/utilmem.h
24+
util/utilnumber.c
25+
util/utilnumber.h
26+
util/utilsha.c
27+
util/utilsha.h
28+
)
29+
30+
target_include_directories(pplib_utils PUBLIC
31+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/util>
32+
)
33+
34+
target_link_libraries(pplib_utils
35+
PUBLIC
36+
m
37+
zlib
38+
)
39+
40+
add_library(pplib_filters STATIC
41+
util/utilbasexx.c
42+
util/utilbasexx.h
43+
util/utilflate.c
44+
util/utilflate.h
45+
util/utilfpred.c
46+
util/utilfpred.h
47+
util/utillzw.c
48+
util/utillzw.h
49+
)
50+
51+
target_include_directories(pplib_filters PUBLIC
52+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/util>
53+
)
54+
55+
target_link_libraries(pplib_filters
56+
PUBLIC
57+
m
58+
zlib
59+
)
60+
61+
add_library(pplib
62+
ppapi.h
63+
ppconf.h
64+
pplib.h
65+
#
66+
pparray.c
67+
pparray.h
68+
ppcrypt.c
69+
ppcrypt.h
70+
ppdict.c
71+
ppdict.h
72+
ppfilter.h
73+
ppheap.c
74+
ppheap.h
75+
ppload.c
76+
ppload.h
77+
ppstream.c
78+
ppstream.h
79+
ppxref.c
80+
ppxref.h
81+
)
82+
83+
target_include_directories(pplib PUBLIC
84+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/util>
85+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
86+
)
87+
88+
target_link_libraries(pplib
89+
PRIVATE
90+
pplib_filters
91+
pplib_utils
92+
)
93+
94+
target_include_directories(pplib
95+
PRIVATE
96+
util
97+
)
98+
99+
if (MSVC)
100+
set(warning_flags /W4 /WX)
101+
else (MSVC)
102+
set(warning_flags
103+
-Wall
104+
-Wextra
105+
-Wcast-align
106+
-Wcast-qual
107+
-Wdeclaration-after-statement
108+
-Wnested-externs
109+
-Wno-unknown-pragmas
110+
-Wpointer-arith
111+
-Wwrite-strings
112+
)
113+
endif (MSVC)
114+
115+
foreach(target pplib_utils pplib_filters pplib)
116+
target_compile_options(${target} PRIVATE ${warning_flags})
117+
endforeach()
118+
119+
set_target_properties(pplib
120+
PROPERTIES
121+
PUBLIC_HEADER "ppapi.h;ppconf.h;pplib.h"
122+
)
123+
124+
add_library(pplib::pplib ALIAS pplib)
125+
126+
install(TARGETS pplib
127+
EXPORT pplib
128+
DESTINATION lib
129+
)
130+
131+
enable_testing()
132+
133+
list(APPEND tests pptest1 pptest2 pptest3)
134+
135+
foreach(_test IN LISTS tests)
136+
add_executable(${_test} ${_test}.c)
137+
target_link_libraries(${_test} PRIVATE pplib)
138+
139+
add_test(
140+
NAME pplib.${_test}
141+
COMMAND $<TARGET_FILE:${_test}>
142+
)
143+
endforeach()

zlib

Submodule zlib added at cacf7f1

0 commit comments

Comments
 (0)