]>
Commit | Line | Data |
---|---|---|
5691f58d | 1 | PROJECT (libsolv C) |
b420bdb2 | 2 | |
a8a2de89 | 3 | CMAKE_MINIMUM_REQUIRED (VERSION 2.8.5) |
1129ccb9 | 4 | |
cb91a457 MS |
5 | OPTION (ENABLE_STATIC "Build a static version of the libraries?" OFF) |
6 | OPTION (DISABLE_SHARED "Do not build a shared version of the libraries?" OFF) | |
08b01f0a | 7 | |
cb91a457 MS |
8 | OPTION (ENABLE_PERL "Build the perl bindings?" OFF) |
9 | OPTION (ENABLE_PYTHON "Build the python bindings?" OFF) | |
10 | OPTION (ENABLE_RUBY "Build the ruby bindings?" OFF) | |
53e56af6 | 11 | OPTION (ENABLE_TCL "Build the Tcl bindings?" OFF) |
0d6e498a | 12 | OPTION (ENABLE_LUA "Build the lua bindings?" OFF) |
cb91a457 MS |
13 | |
14 | OPTION (USE_VENDORDIRS "Install the bindings in vendor directories?" OFF) | |
96d3ffea | 15 | |
50618d25 | 16 | OPTION (ENABLE_RPMDB "Build with rpm database support?" OFF) |
7173e5d6 | 17 | OPTION (ENABLE_RPMPKG "Build with rpm package support?" OFF) |
27c054b4 | 18 | OPTION (ENABLE_PUBKEY "Build with pubkey support?" OFF) |
d5597d3b | 19 | OPTION (ENABLE_RPMDB_BYRPMHEADER "Build with rpmdb Header support?" OFF) |
ae214a65 | 20 | OPTION (ENABLE_RPMDB_LIBRPM "Use librpm to access the rpm database?" OFF) |
0c493f90 | 21 | OPTION (ENABLE_RPMDB_BDB "Use BerkeleyDB to access the rpm database?" OFF) |
ae214a65 | 22 | OPTION (ENABLE_RPMPKG_LIBRPM "Use librpm to access rpm header information?" OFF) |
50618d25 MS |
23 | OPTION (ENABLE_RPMMD "Build with rpmmd repository support?" OFF) |
24 | OPTION (ENABLE_SUSEREPO "Build with suse repository support?" OFF) | |
0589bfb5 | 25 | OPTION (ENABLE_COMPS "Build with fedora comps support?" OFF) |
50618d25 MS |
26 | OPTION (ENABLE_HELIXREPO "Build with helix repository support?" OFF) |
27 | OPTION (ENABLE_DEBIAN "Build with debian database/repository support?" OFF) | |
e79529f1 | 28 | OPTION (ENABLE_MDKREPO "Build with mandriva/mageia repository support?" OFF) |
26e6c508 | 29 | OPTION (ENABLE_ARCHREPO "Build with archlinux repository support?" OFF) |
a4e2caae | 30 | OPTION (ENABLE_CUDFREPO "Build with cudf repository support?" OFF) |
724dc9ce | 31 | OPTION (ENABLE_HAIKU "Build with Haiku package support?" OFF) |
67d113f3 | 32 | OPTION (ENABLE_CONDA "Build with conda dependency support?" OFF) |
11a474d0 | 33 | OPTION (ENABLE_APPDATA "Build with AppStream appdata support?" OFF) |
50618d25 | 34 | |
d815d6f8 MS |
35 | OPTION (MULTI_SEMANTICS "Build with support for multiple distribution types?" OFF) |
36 | ||
5ec833a5 | 37 | OPTION (ENABLE_LZMA_COMPRESSION "Build with lzma/xz compression support?" OFF) |
a4e2caae | 38 | OPTION (ENABLE_BZIP2_COMPRESSION "Build with bzip2 compression support?" OFF) |
f51d048e | 39 | OPTION (ENABLE_ZSTD_COMPRESSION "Build with zstd compression support?" OFF) |
75d03059 | 40 | OPTION (ENABLE_ZCHUNK_COMPRESSION "Build with zchunk compression support?" OFF) |
9b413e2c | 41 | OPTION (WITH_SYSTEM_ZCHUNK "Use system zchunk library?" OFF) |
2af735a9 | 42 | OPTION (WITH_LIBXML2 "Build with libxml2 instead of libexpat?" OFF) |
a7bba727 | 43 | OPTION (WITHOUT_COOKIEOPEN "Disable the use of stdio cookie opens?" OFF) |
b5b61f9b | 44 | |
a8a2de89 IG |
45 | include (GNUInstallDirs) |
46 | message (STATUS "Libraries will be installed in ${CMAKE_INSTALL_FULL_LIBDIR}") | |
47 | message (STATUS "Header files will be installed in ${CMAKE_INSTALL_FULL_INCLUDEDIR}") | |
48 | message (STATUS "Binaries will be installed in ${CMAKE_INSTALL_FULL_BINDIR}") | |
49 | message (STATUS "Man pages will be installed in ${CMAKE_INSTALL_FULL_MANDIR}") | |
b420bdb2 | 50 | |
48eff378 | 51 | IF (NOT PKGCONFIG_INSTALL_DIR) |
a8a2de89 | 52 | SET (PKGCONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig) |
48eff378 | 53 | ENDIF (NOT PKGCONFIG_INSTALL_DIR) |
b420bdb2 DMV |
54 | #################################################################### |
55 | # CONFIGURATION # | |
56 | #################################################################### | |
57 | ||
58 | # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked | |
4cd5d62a | 59 | SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) |
1fc11eb2 | 60 | INSTALL( FILES ${CMAKE_MODULE_PATH}/FindLibSolv.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules ) |
b420bdb2 | 61 | |
29a33e8b WV |
62 | # for shared libraries on windows (DLLs), we just export all symbols for now |
63 | SET(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) | |
64 | ||
4cd5d62a | 65 | INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake) |
42bd996f | 66 | |
af1465a2 | 67 | SET (have_system x) |
64a8733d | 68 | |
4cd5d62a | 69 | IF (FEDORA) |
778f4cfb | 70 | MESSAGE(STATUS "Building for Fedora") |
4cd5d62a | 71 | ADD_DEFINITIONS (-DFEDORA) |
50618d25 MS |
72 | SET (ENABLE_RPMDB ON) |
73 | SET (ENABLE_RPMMD ON) | |
af1465a2 | 74 | SET (have_system ${have_system}x) |
4cd5d62a MS |
75 | ENDIF (FEDORA) |
76 | ||
77 | IF (DEBIAN) | |
78 | MESSAGE (STATUS "Building for Debian") | |
17ea16d7 | 79 | ADD_DEFINITIONS (-DDEBIAN) |
50618d25 | 80 | SET (ENABLE_DEBIAN ON) |
af1465a2 | 81 | SET (have_system ${have_system}x) |
4cd5d62a MS |
82 | ENDIF (DEBIAN) |
83 | ||
af1465a2 MS |
84 | IF (SUSE) |
85 | MESSAGE (STATUS "Building for SUSE") | |
86 | ADD_DEFINITIONS (-DSUSE) | |
87 | SET (ENABLE_RPMDB ON) | |
27c054b4 | 88 | SET (ENABLE_PUBKEY ON) |
d5597d3b | 89 | SET (ENABLE_RPMDB_BYRPMHEADER ON) |
af1465a2 MS |
90 | SET (ENABLE_RPMMD ON) |
91 | SET (ENABLE_SUSEREPO ON) | |
92 | SET (ENABLE_HELIXREPO ON) | |
e5fff4bc | 93 | SET (ENABLE_LINKED_PKGS ON) |
af1465a2 MS |
94 | SET (have_system ${have_system}x) |
95 | ENDIF (SUSE) | |
96 | ||
97 | IF (ARCHLINUX) | |
98 | MESSAGE (STATUS "Building for Archlinux") | |
99 | ADD_DEFINITIONS (-DARCHLINUX) | |
100 | SET (ENABLE_ARCHREPO ON) | |
101 | SET (have_system ${have_system}x) | |
102 | ENDIF (ARCHLINUX) | |
103 | ||
104 | IF (MANDRIVA) | |
502df30b | 105 | MESSAGE (STATUS "Building for Mandriva") |
af1465a2 MS |
106 | ADD_DEFINITIONS (-DMANDRIVA) |
107 | SET (ENABLE_MDKREPO ON) | |
22a78ba0 | 108 | SET (ENABLE_RPMDB ON) |
af1465a2 MS |
109 | SET (have_system ${have_system}x) |
110 | ENDIF (MANDRIVA) | |
111 | ||
502df30b MS |
112 | IF (MAGEIA) |
113 | MESSAGE (STATUS "Building for Mageia") | |
114 | ADD_DEFINITIONS (-DMAGEIA) | |
115 | SET (ENABLE_MDKREPO ON) | |
116 | SET (ENABLE_RPMDB ON) | |
87500158 | 117 | SET (ENABLE_RPMMD ON) |
502df30b MS |
118 | SET (ENABLE_LZMA_COMPRESSION ON) |
119 | SET (have_system ${have_system}x) | |
120 | ENDIF (MAGEIA) | |
121 | ||
724dc9ce IW |
122 | IF (HAIKU) |
123 | MESSAGE(STATUS "Building for Haiku") | |
124 | FIND_LIBRARY(HAIKU_BE_LIBRARY NAMES be) | |
125 | FIND_LIBRARY(HAIKU_NETWORK_LIBRARY NAMES network) | |
126 | FIND_LIBRARY(HAIKU_PACKAGE_LIBRARY NAMES package) | |
127 | SET (HAIKU_SYSTEM_LIBRARIES | |
128 | ${HAIKU_BE_LIBRARY} ${HAIKU_NETWORK_LIBRARY} ${HAIKU_PACKAGE_LIBRARY}) | |
129 | ADD_DEFINITIONS (-DHAIKU) | |
130 | SET (ENABLE_HAIKU ON) | |
131 | SET (have_system ${have_system}x) | |
132 | ENDIF (HAIKU) | |
133 | ||
1f0d893e WV |
134 | SET (CMAKE_MACOSX_RPATH ON) |
135 | ||
af1465a2 MS |
136 | IF (${have_system} STREQUAL x) |
137 | MESSAGE (STATUS "Building for no system") | |
af1465a2 MS |
138 | ENDIF (${have_system} STREQUAL x) |
139 | IF (${have_system} STRGREATER xx) | |
140 | MESSAGE (FATAL_ERROR "Can only compile for one system type.") | |
141 | ENDIF (${have_system} STRGREATER xx) | |
142 | ||
f92767aa | 143 | SET (ENABLE_ZLIB_COMPRESSION ON) |
787619e6 | 144 | IF (ENABLE_ARCHREPO OR ENABLE_DEBIAN) |
af1465a2 | 145 | SET (ENABLE_LZMA_COMPRESSION ON) |
787619e6 | 146 | ENDIF (ENABLE_ARCHREPO OR ENABLE_DEBIAN) |
af1465a2 | 147 | |
9b413e2c | 148 | IF (WITH_SYSTEM_ZCHUNK) |
b805f9c9 JD |
149 | SET (ENABLE_ZCHUNK_COMPRESSION ON) |
150 | FIND_PACKAGE(PkgConfig REQUIRED) | |
151 | PKG_CHECK_MODULES(ZCHUNK zck REQUIRED) | |
9b413e2c | 152 | ENDIF (WITH_SYSTEM_ZCHUNK) |
b805f9c9 | 153 | |
75d03059 MS |
154 | IF (ENABLE_ZCHUNK_COMPRESSION) |
155 | SET (ENABLE_ZSTD_COMPRESSION ON) | |
156 | ENDIF (ENABLE_ZCHUNK_COMPRESSION) | |
157 | ||
f92767aa | 158 | IF (ENABLE_RPMMD OR ENABLE_SUSEREPO OR ENABLE_APPDATA OR ENABLE_COMPS OR ENABLE_HELIXREPO OR ENABLE_MDKREPO) |
2af735a9 | 159 | IF (WITH_LIBXML2 ) |
b5b61f9b MS |
160 | FIND_PACKAGE (LibXml2 REQUIRED) |
161 | INCLUDE_DIRECTORIES (${LIBXML2_INCLUDE_DIR}) | |
2af735a9 | 162 | ELSE(WITH_LIBXML2 ) |
af1465a2 | 163 | FIND_PACKAGE (EXPAT REQUIRED) |
28e55607 | 164 | INCLUDE_DIRECTORIES (${EXPAT_INCLUDE_DIRS}) |
2af735a9 | 165 | ENDIF (WITH_LIBXML2 ) |
f92767aa MS |
166 | ENDIF (ENABLE_RPMMD OR ENABLE_SUSEREPO OR ENABLE_APPDATA OR ENABLE_COMPS OR ENABLE_HELIXREPO OR ENABLE_MDKREPO) |
167 | ||
168 | IF (ENABLE_ZLIB_COMPRESSION) | |
af1465a2 | 169 | FIND_PACKAGE (ZLIB REQUIRED) |
72547863 | 170 | INCLUDE_DIRECTORIES (${ZLIB_INCLUDE_DIRS}) |
f92767aa MS |
171 | ENDIF (ENABLE_ZLIB_COMPRESSION) |
172 | ||
af1465a2 MS |
173 | IF (ENABLE_LZMA_COMPRESSION) |
174 | FIND_PACKAGE (LZMA REQUIRED) | |
8126e23e | 175 | INCLUDE_DIRECTORIES (${LZMA_INCLUDE_DIR}) |
af1465a2 | 176 | ENDIF (ENABLE_LZMA_COMPRESSION) |
f92767aa | 177 | |
a4e2caae MS |
178 | IF (ENABLE_BZIP2_COMPRESSION) |
179 | FIND_PACKAGE (BZip2 REQUIRED) | |
8126e23e | 180 | INCLUDE_DIRECTORIES (${BZIP2_INCLUDE_DIRS}) |
a4e2caae | 181 | ENDIF (ENABLE_BZIP2_COMPRESSION) |
af1465a2 | 182 | |
f51d048e MS |
183 | IF (ENABLE_ZSTD_COMPRESSION) |
184 | FIND_LIBRARY (ZSTD_LIBRARY NAMES zstd) | |
02e93a56 WV |
185 | FIND_PATH (ZSTD_INCLUDE_DIRS zstd.h) |
186 | INCLUDE_DIRECTORIES (${ZSTD_INCLUDE_DIRS}) | |
f51d048e MS |
187 | ENDIF (ENABLE_ZSTD_COMPRESSION) |
188 | ||
4cd5d62a MS |
189 | IF (RPM5) |
190 | MESSAGE (STATUS "Enabling RPM 5 support") | |
191 | ADD_DEFINITIONS (-DRPM5) | |
50618d25 MS |
192 | SET (ENABLE_RPMDB ON) |
193 | SET (ENABLE_RPMMD ON) | |
4cd5d62a MS |
194 | FIND_PACKAGE (PkgConfig REQUIRED) |
195 | PKG_CHECK_MODULES (RPM REQUIRED rpm) | |
196 | INCLUDE_DIRECTORIES (${RPM_INCLUDE_DIRS}) | |
197 | ENDIF (RPM5) | |
198 | ||
67d113f3 MS |
199 | IF (ENABLE_CONDA) |
200 | SET (MULTI_SEMANTICS ON) | |
201 | ENDIF (ENABLE_CONDA) | |
202 | ||
50618d25 MS |
203 | IF (MULTI_SEMANTICS) |
204 | MESSAGE (STATUS "Enabling multi dist support") | |
50618d25 | 205 | ENDIF (MULTI_SEMANTICS) |
4cd5d62a | 206 | |
7173e5d6 MS |
207 | IF (ENABLE_RPMDB) |
208 | SET (ENABLE_RPMPKG ON) | |
209 | ENDIF (ENABLE_RPMDB) | |
210 | ||
dd3f9bb0 | 211 | INCLUDE (CheckIncludeFile) |
ae214a65 | 212 | IF (ENABLE_RPMDB OR ENABLE_RPMPKG_LIBRPM) |
f04f42cf DM |
213 | FIND_PATH (RPM_INCLUDE_DIR NAMES rpm/rpmio.h) |
214 | IF (RPM_INCLUDE_DIR) | |
215 | INCLUDE_DIRECTORIES (${RPM_INCLUDE_DIR}) | |
216 | SET (CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${RPM_INCLUDE_DIR}) | |
217 | ENDIF (RPM_INCLUDE_DIR) | |
218 | ||
50618d25 MS |
219 | FIND_LIBRARY (RPMDB_LIBRARY NAMES rpmdb) |
220 | ||
221 | IF (NOT RPMDB_LIBRARY) | |
222 | FIND_LIBRARY (RPMDB_LIBRARY NAMES rpm) | |
223 | ENDIF (NOT RPMDB_LIBRARY) | |
224 | ||
225 | FIND_LIBRARY (RPMIO_LIBRARY NAMES rpmio) | |
226 | IF (RPMIO_LIBRARY) | |
227 | SET(RPMDB_LIBRARY ${RPMIO_LIBRARY} ${RPMDB_LIBRARY}) | |
228 | ENDIF (RPMIO_LIBRARY) | |
229 | ||
230 | IF (RPM5) | |
231 | FIND_LIBRARY (RPMMISC_LIBRARY NAMES rpmmisc) | |
232 | IF (RPMMISC_LIBRARY) | |
233 | SET (RPMDB_LIBRARY ${RPMMISC_LIBRARY} ${RPMDB_LIBRARY}) | |
234 | ENDIF (RPMMISC_LIBRARY) | |
235 | ENDIF (RPM5) | |
236 | ||
0c493f90 MS |
237 | IF (ENABLE_RPMDB) |
238 | IF (NOT ENABLE_RPMDB_BDB) | |
239 | SET (ENABLE_RPMDB_LIBRPM ON) | |
240 | ENDIF (NOT ENABLE_RPMDB_BDB) | |
241 | ||
242 | # check if rpm contains a bundled berkeley db | |
243 | CHECK_INCLUDE_FILE(rpm/db.h HAVE_RPM_DB_H) | |
244 | IF (NOT ENABLE_RPMDB_LIBRPM) | |
245 | IF (NOT HAVE_RPM_DB_H) | |
246 | FIND_LIBRARY (DB_LIBRARY NAMES db) | |
247 | IF (DB_LIBRARY) | |
248 | SET (RPMDB_LIBRARY ${DB_LIBRARY} ${RPMDB_LIBRARY}) | |
249 | ENDIF (DB_LIBRARY) | |
250 | IF (DB_INCLUDE_DIR) | |
251 | INCLUDE_DIRECTORIES (${DB_INCLUDE_DIR}) | |
252 | ENDIF (DB_INCLUDE_DIR) | |
253 | ENDIF (NOT HAVE_RPM_DB_H) | |
254 | ENDIF (NOT ENABLE_RPMDB_LIBRPM) | |
255 | ENDIF (ENABLE_RPMDB) | |
256 | ||
bb4e122a | 257 | INCLUDE (CheckLibraryExists) |
e04f3016 MS |
258 | CHECK_LIBRARY_EXISTS(rpm rpmdbNextIteratorHeaderBlob "" HAVE_RPMDBNEXTITERATORHEADERBLOB) |
259 | CHECK_LIBRARY_EXISTS(rpm rpmdbFStat "" HAVE_RPMDBFSTAT) | |
ae214a65 | 260 | ENDIF (ENABLE_RPMDB OR ENABLE_RPMPKG_LIBRPM) |
4cd5d62a | 261 | |
27c054b4 | 262 | IF (ENABLE_PUBKEY) |
3e5c879f | 263 | SET (ENABLE_PGPVRFY ON) |
27c054b4 | 264 | ENDIF (ENABLE_PUBKEY) |
3e5c879f | 265 | |
4cd5d62a MS |
266 | INCLUDE (CheckFunctionExists) |
267 | INCLUDE (TestBigEndian) | |
268 | ||
269 | CHECK_FUNCTION_EXISTS (strchrnul HAVE_STRCHRNUL) | |
270 | CHECK_FUNCTION_EXISTS (fopencookie HAVE_FOPENCOOKIE) | |
271 | CHECK_FUNCTION_EXISTS (funopen HAVE_FUNOPEN) | |
272 | TEST_BIG_ENDIAN (WORDS_BIGENDIAN) | |
7ce30351 | 273 | |
1eb60cf9 | 274 | IF (${CMAKE_MAJOR_VERSION} GREATER 2) |
81362a2f CL |
275 | INCLUDE (CMakePushCheckState) |
276 | INCLUDE (CheckCCompilerFlag) | |
277 | MACRO (check_linker_flag FLAG VAR) | |
1eb60cf9 MS |
278 | CMAKE_PUSH_CHECK_STATE (RESET) |
279 | SET (CMAKE_REQUIRED_FLAGS "${FLAG}") | |
280 | CHECK_C_COMPILER_FLAG ("" "${VAR}") | |
281 | CMAKE_POP_CHECK_STATE () | |
81362a2f | 282 | ENDMACRO (check_linker_flag) |
1eb60cf9 MS |
283 | check_linker_flag("-Wl,--as-needed" HAVE_LINKER_AS_NEEDED) |
284 | check_linker_flag("-Wl,--version-script=${CMAKE_SOURCE_DIR}/src/libsolv.ver" HAVE_LINKER_VERSION_SCRIPT) | |
285 | ELSE (${CMAKE_MAJOR_VERSION} GREATER 2) | |
286 | SET (HAVE_LINKER_AS_NEEDED 1) | |
287 | SET (HAVE_LINKER_VERSION_SCRIPT 1) | |
288 | ENDIF (${CMAKE_MAJOR_VERSION} GREATER 2) | |
81362a2f | 289 | |
7ce30351 | 290 | # should create config.h with #cmakedefine instead... |
50618d25 | 291 | FOREACH (VAR HAVE_STRCHRNUL HAVE_FOPENCOOKIE HAVE_FUNOPEN WORDS_BIGENDIAN |
93ae0f79 | 292 | HAVE_RPM_DB_H HAVE_RPMDBNEXTITERATORHEADERBLOB HAVE_RPMDBFSTAT |
e04f3016 | 293 | WITH_LIBXML2 WITHOUT_COOKIEOPEN) |
b60acec2 MS |
294 | IF(${VAR}) |
295 | ADD_DEFINITIONS (-D${VAR}=1) | |
296 | SET (SWIG_FLAGS ${SWIG_FLAGS} -D${VAR}) | |
297 | ENDIF (${VAR}) | |
298 | ENDFOREACH (VAR) | |
299 | ||
300 | FOREACH (VAR | |
67d113f3 | 301 | ENABLE_LINKED_PKGS ENABLE_COMPLEX_DEPS MULTI_SEMANTICS ENABLE_CONDA) |
b60acec2 MS |
302 | IF(${VAR}) |
303 | ADD_DEFINITIONS (-D${VAR}=1) | |
304 | SET (SWIG_FLAGS ${SWIG_FLAGS} -D${VAR}) | |
305 | STRING(REPLACE ENABLE_ "" VARX ${VAR}) | |
306 | SET (LIBSOLV_FEATURE_${VARX} 1) | |
307 | ENDIF (${VAR}) | |
308 | ENDFOREACH (VAR) | |
309 | ||
310 | FOREACH (VAR | |
ae214a65 MS |
311 | ENABLE_RPMDB ENABLE_RPMPKG ENABLE_PUBKEY ENABLE_RPMMD |
312 | ENABLE_RPMPKG_LIBRPM ENABLE_RPMDB_LIBRPM ENABLE_RPMDB_BYRPMHEADER | |
f8eb63dc | 313 | ENABLE_SUSEREPO ENABLE_COMPS ENABLE_TESTCASE_HELIXREPO |
724dc9ce | 314 | ENABLE_HELIXREPO ENABLE_MDKREPO ENABLE_ARCHREPO ENABLE_DEBIAN ENABLE_HAIKU |
f92767aa | 315 | ENABLE_ZLIB_COMPRESSION ENABLE_LZMA_COMPRESSION ENABLE_BZIP2_COMPRESSION |
b805f9c9 | 316 | ENABLE_ZSTD_COMPRESSION ENABLE_ZCHUNK_COMPRESSION ENABLE_PGPVRFY ENABLE_APPDATA |
9b413e2c | 317 | WITH_SYSTEM_ZCHUNK) |
4cd5d62a MS |
318 | IF(${VAR}) |
319 | ADD_DEFINITIONS (-D${VAR}=1) | |
68fe521f | 320 | SET (SWIG_FLAGS ${SWIG_FLAGS} -D${VAR}) |
b60acec2 MS |
321 | STRING(REPLACE ENABLE_ "" VARX ${VAR}) |
322 | SET (LIBSOLVEXT_FEATURE_${VARX} 1) | |
4cd5d62a MS |
323 | ENDIF (${VAR}) |
324 | ENDFOREACH (VAR) | |
325 | ||
326 | SET (PACKAGE "libsolv") | |
327 | SET (VERSION "${LIBSOLV_MAJOR}.${LIBSOLV_MINOR}.${LIBSOLV_PATCH}") | |
328 | ||
329 | ADD_DEFINITIONS (-D_FILE_OFFSET_BITS=64) | |
0d6e498a | 330 | #ADD_DEFINITIONS (-D_TIME_BITS=64) |
09f29f70 | 331 | CONFIGURE_FILE (src/solvversion.h.in src/solvversion.h) |
4cd5d62a | 332 | |
1129ccb9 | 333 | SET (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Package dependency solver library") |
4cd5d62a MS |
334 | SET (CPACK_PACKAGE_VENDOR "SUSE") |
335 | SET (CPACK_PACKAGE_VERSION_MAJOR ${LIBSOLV_MAJOR}) | |
336 | SET (CPACK_PACKAGE_VERSION_MINOR ${LIBSOLV_MINOR}) | |
337 | SET (CPACK_PACKAGE_VERSION_PATCH ${LIBSOLV_PATCH}) | |
338 | SET (CPACK_GENERATOR "TBZ2") | |
339 | SET (CPACK_SOURCE_GENERATOR "TBZ2") | |
340 | SET (CPACK_SOURCE_PACKAGE_FILE_NAME "${PACKAGE}-${VERSION}") | |
341 | SET (CPACK_SOURCE_TOPLEVEL_TAG "Linux-Source:") | |
342 | SET (CPACK_TOPLEVEL_TAG "Linux-Source:") | |
b420bdb2 DMV |
343 | |
344 | # The following components are regex's to match anywhere (unless anchored) | |
345 | # in absolute path + filename to find files or directories to be excluded | |
346 | # from source tarball. | |
347 | SET (CPACK_SOURCE_IGNORE_FILES | |
b420bdb2 DMV |
348 | # temporary files |
349 | "\\\\.swp$" | |
350 | # backup files | |
351 | "~$" | |
352 | # eclipse files | |
353 | "\\\\.cdtproject$" | |
354 | "\\\\.cproject$" | |
355 | "\\\\.project$" | |
356 | "\\\\.settings/" | |
357 | # others | |
358 | "\\\\.#" | |
359 | "/#" | |
360 | "/build/" | |
361 | "/_build/" | |
362 | "/\\\\.git/" | |
363 | # used before | |
b420bdb2 DMV |
364 | "/\\\\.libs/" |
365 | "/\\\\.deps/" | |
366 | "\\\\.o$" | |
367 | "\\\\.lo$" | |
368 | "\\\\.la$" | |
7a5d7090 | 369 | "Makefile$" |
b420bdb2 | 370 | "Makefile\\\\.in$" |
35034712 | 371 | # cmake cache files |
52802470 | 372 | "DartConfiguration.tcl$" |
35034712 MS |
373 | "CMakeCache.txt" |
374 | "CMakeFiles" | |
7a5d7090 MS |
375 | "cmake_install.cmake$" |
376 | "CMakeLists.txt.auto$" | |
df429c13 | 377 | "CTestTestfile.cmake" |
7a5d7090 | 378 | "CPackConfig.cmake$" |
df429c13 | 379 | "CPackSourceConfig.cmake$" |
4cd5d62a | 380 | "libsolv.spec$" |
b420bdb2 DMV |
381 | ) |
382 | ||
383 | INCLUDE(CPack) | |
384 | ||
b420bdb2 DMV |
385 | #################################################################### |
386 | # INCLUDES # | |
387 | #################################################################### | |
388 | ||
389 | #SET (CMAKE_INCLUDE_DIRECTORIES_BEFORE ON) | |
4cd5d62a | 390 | INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/ext ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR}/src SYSTEM ) |
b420bdb2 DMV |
391 | |
392 | #################################################################### | |
393 | ||
1129ccb9 | 394 | MESSAGE (STATUS "Looking for modules in ${CMAKE_MODULE_PATH}") |
b420bdb2 | 395 | |
f2f77d9e WV |
396 | IF (MSVC) |
397 | set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4244 /wd4267") | |
398 | add_definitions(-D_CRT_SECURE_NO_WARNINGS) | |
399 | ELSE () | |
400 | set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") | |
401 | set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -O3") | |
402 | set (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS} -g -O3") | |
403 | set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -g3 -O0") | |
404 | ENDIF () | |
5f8d1263 | 405 | |
f92767aa MS |
406 | # set system libraries |
407 | SET (SYSTEM_LIBRARIES "") | |
408 | IF (ENABLE_RPMMD OR ENABLE_SUSEREPO OR ENABLE_APPDATA OR ENABLE_COMPS OR ENABLE_HELIXREPO OR ENABLE_MDKREPO) | |
2af735a9 | 409 | IF (WITH_LIBXML2 ) |
b5b61f9b | 410 | SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${LIBXML2_LIBRARIES}) |
2af735a9 | 411 | ELSE (WITH_LIBXML2 ) |
f92767aa | 412 | SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${EXPAT_LIBRARY}) |
2af735a9 | 413 | ENDIF (WITH_LIBXML2 ) |
b5b61f9b | 414 | |
f92767aa MS |
415 | ENDIF (ENABLE_RPMMD OR ENABLE_SUSEREPO OR ENABLE_APPDATA OR ENABLE_COMPS OR ENABLE_HELIXREPO OR ENABLE_MDKREPO) |
416 | IF (ENABLE_ZLIB_COMPRESSION) | |
417 | SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${ZLIB_LIBRARY}) | |
418 | ENDIF (ENABLE_ZLIB_COMPRESSION) | |
0956fe2d IW |
419 | IF (ENABLE_LZMA_COMPRESSION) |
420 | SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${LZMA_LIBRARY}) | |
421 | ENDIF (ENABLE_LZMA_COMPRESSION) | |
422 | IF (ENABLE_BZIP2_COMPRESSION) | |
423 | SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${BZIP2_LIBRARIES}) | |
424 | ENDIF (ENABLE_BZIP2_COMPRESSION) | |
f51d048e MS |
425 | IF (ENABLE_ZSTD_COMPRESSION) |
426 | SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${ZSTD_LIBRARY}) | |
427 | ENDIF (ENABLE_ZSTD_COMPRESSION) | |
9b413e2c | 428 | IF (WITH_SYSTEM_ZCHUNK) |
b805f9c9 | 429 | SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${ZCHUNK_LIBRARIES}) |
9b413e2c | 430 | ENDIF (WITH_SYSTEM_ZCHUNK) |
0956fe2d IW |
431 | IF (ENABLE_RPMDB) |
432 | SET (SYSTEM_LIBRARIES ${RPMDB_LIBRARY} ${SYSTEM_LIBRARIES}) | |
433 | ENDIF (ENABLE_RPMDB) | |
724dc9ce IW |
434 | IF (ENABLE_HAIKU) |
435 | SET (SYSTEM_LIBRARIES ${HAIKU_SYSTEM_LIBRARIES} ${SYSTEM_LIBRARIES}) | |
436 | ENDIF (ENABLE_HAIKU) | |
1eb60cf9 | 437 | IF (HAVE_LINKER_AS_NEEDED) |
8b25311c | 438 | SET (SYSTEM_LIBRARIES "-Wl,--as-needed" ${SYSTEM_LIBRARIES}) |
1eb60cf9 | 439 | ENDIF (HAVE_LINKER_AS_NEEDED) |
0956fe2d | 440 | |
4cd5d62a MS |
441 | ADD_SUBDIRECTORY (src) |
442 | ADD_SUBDIRECTORY (ext) | |
443 | ADD_SUBDIRECTORY (tools) | |
3b20f6de | 444 | IF (ENABLE_PERL OR ENABLE_PYTHON OR ENABLE_PYTHON3 OR ENABLE_RUBY OR ENABLE_TCL) |
96d3ffea | 445 | ADD_SUBDIRECTORY (bindings) |
3b20f6de | 446 | ENDIF (ENABLE_PERL OR ENABLE_PYTHON OR ENABLE_PYTHON3 OR ENABLE_RUBY OR ENABLE_TCL) |
4cd5d62a | 447 | ADD_SUBDIRECTORY (examples) |
5e4dfcf6 | 448 | ADD_SUBDIRECTORY (doc) |
b420bdb2 | 449 | |
530db1f4 | 450 | MESSAGE (STATUS "Version: ${VERSION}") |
b420bdb2 DMV |
451 | |
452 | #################################################################### | |
453 | # RPM SPEC # | |
454 | #################################################################### | |
455 | ||
4cd5d62a MS |
456 | MACRO (SPECFILE) |
457 | MESSAGE (STATUS "Writing spec file...") | |
458 | CONFIGURE_FILE (${CMAKE_SOURCE_DIR}/package/libsolv.spec.in ${CMAKE_BINARY_DIR}/package/libsolv.spec @ONLY) | |
459 | ENDMACRO (SPECFILE) | |
b420bdb2 | 460 | |
821bf059 | 461 | MACRO (PCFILE) |
ca4d3d67 | 462 | MESSAGE (STATUS "Writing pkg-config files...") |
821bf059 | 463 | CONFIGURE_FILE (${CMAKE_SOURCE_DIR}/libsolv.pc.in ${CMAKE_BINARY_DIR}/libsolv.pc @ONLY) |
48eff378 | 464 | INSTALL( FILES ${CMAKE_BINARY_DIR}/libsolv.pc DESTINATION ${PKGCONFIG_INSTALL_DIR} ) |
ca4d3d67 AC |
465 | CONFIGURE_FILE (${CMAKE_SOURCE_DIR}/libsolvext.pc.in ${CMAKE_BINARY_DIR}/libsolvext.pc @ONLY) |
466 | INSTALL( FILES ${CMAKE_BINARY_DIR}/libsolvext.pc DESTINATION ${PKGCONFIG_INSTALL_DIR} ) | |
821bf059 YK |
467 | ENDMACRO (PCFILE) |
468 | ||
4cd5d62a | 469 | SPECFILE () |
821bf059 | 470 | PCFILE () |
b420bdb2 | 471 | |
4cd5d62a | 472 | SET (AUTOBUILD_COMMAND |
b420bdb2 | 473 | COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/package/*.tar.bz2 |
df429c13 | 474 | COMMAND mkdir -p _CPack_Packages/${CPACK_TOPLEVEL_TAG} |
9e5e0ad8 MS |
475 | COMMAND ${CMAKE_MAKE_PROGRAM} package_source |
476 | COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package | |
477 | COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 | |
4cd5d62a | 478 | COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/package/libsolv.changes" "${CMAKE_BINARY_DIR}/package/libsolv.changes" |
b420bdb2 DMV |
479 | ) |
480 | ||
4cd5d62a | 481 | ADD_CUSTOM_TARGET (srcpackage |
b420bdb2 DMV |
482 | ${AUTOBUILD_COMMAND} |
483 | ) | |
484 | ||
5ca064bc MS |
485 | ADD_CUSTOM_TARGET (srcpackage_local |
486 | ${AUTOBUILD_COMMAND} | |
487 | ) | |
84891eea MS |
488 | |
489 | ENABLE_TESTING() | |
490 | ADD_SUBDIRECTORY (test) |