Add ENABLE_COMPLEX_DEPS flag
[platform/upstream/libsolv.git] / ext / CMakeLists.txt
1 SET (libsolvext_SRCS
2     solv_xfopen.c testcase.c repo_testcase.c)
3
4 SET (libsolvext_HEADERS
5     tools_util.h solv_xfopen.h testcase.h)
6
7 IF (ENABLE_RPMDB OR ENABLE_RPMPKG)
8     SET (libsolvext_SRCS ${libsolvext_SRCS}
9         pool_fileconflicts.c repo_rpmdb.c)
10     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
11         pool_fileconflicts.h repo_rpmdb.h)
12 ENDIF (ENABLE_RPMDB OR ENABLE_RPMPKG)
13
14 IF (ENABLE_PUBKEY)
15     SET (libsolvext_SRCS ${libsolvext_SRCS}
16         repo_pubkey.c)
17     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
18         repo_pubkey.h)
19 ENDIF (ENABLE_PUBKEY)
20
21 IF (ENABLE_PGPVRFY)
22     SET (libsolvext_SRCS ${libsolvext_SRCS}
23         solv_pgpvrfy.c)
24     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
25         solv_pgpvrfy.h)
26 ENDIF (ENABLE_PGPVRFY)
27
28 IF (ENABLE_RPMMD)
29     SET (libsolvext_SRCS ${libsolvext_SRCS}
30         repo_repomdxml.c repo_rpmmd.c
31         repo_deltainfoxml.c repo_updateinfoxml.c)
32     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
33         repo_repomdxml.h repo_rpmmd.h
34         repo_deltainfoxml.h repo_updateinfoxml.h)
35 ENDIF (ENABLE_RPMMD)
36
37 IF (ENABLE_SUSEREPO)
38     SET (libsolvext_SRCS ${libsolvext_SRCS}
39         repo_content.c repo_products.c repo_releasefile_products.c
40         repo_susetags.c repo_zyppdb.c)
41     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
42         repo_content.h repo_products.h repo_releasefile_products.h
43         repo_susetags.h repo_zyppdb.h)
44 ENDIF (ENABLE_SUSEREPO)
45
46 # old cmake does not support parenthetical expressions...
47 IF (ENABLE_COMPLEX_DEPS)
48 IF (ENABLE_SUSEREPO OR ENABLE_RPMMD OR ENABLE_RPMDB OR ENABLE_RPMPKG)
49     SET (libsolvext_SRCS ${libsolvext_SRCS}
50         pool_parserpmrichdep.c)
51     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
52         pool_parserpmrichdep.h)
53 ENDIF (ENABLE_SUSEREPO OR ENABLE_RPMMD OR ENABLE_RPMDB OR ENABLE_RPMPKG)
54 ENDIF (ENABLE_COMPLEX_DEPS)
55
56 IF (SUSE)
57     SET (libsolvext_SRCS ${libsolvext_SRCS}
58         repo_autopattern.c)
59     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
60         repo_autopattern.h)
61 ENDIF (SUSE)
62
63 IF (ENABLE_COMPS)
64     SET (libsolvext_SRCS ${libsolvext_SRCS}
65         repo_comps.c)
66     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
67         repo_comps.h)
68 ENDIF (ENABLE_COMPS)
69
70 IF (ENABLE_DEBIAN)
71     SET (libsolvext_SRCS ${libsolvext_SRCS}
72         repo_deb.c)
73     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
74         repo_deb.h)
75 ENDIF (ENABLE_DEBIAN)
76
77 IF (ENABLE_HELIXREPO)
78     SET (libsolvext_SRCS ${libsolvext_SRCS}
79         repo_helix.c)
80     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
81         repo_helix.h)
82 ENDIF (ENABLE_HELIXREPO)
83
84 IF (ENABLE_MDKREPO)
85     SET (libsolvext_SRCS ${libsolvext_SRCS}
86         repo_mdk.c)
87     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
88         repo_mdk.h)
89 ENDIF (ENABLE_MDKREPO)
90
91 IF (ENABLE_ARCHREPO)
92     SET (libsolvext_SRCS ${libsolvext_SRCS}
93         repo_arch.c)
94     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
95         repo_arch.h)
96 ENDIF (ENABLE_ARCHREPO)
97
98 IF (ENABLE_CUDFREPO)
99     SET (libsolvext_SRCS ${libsolvext_SRCS}
100         repo_cudf.c)
101     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
102         repo_cudf.h)
103 ENDIF (ENABLE_CUDFREPO)
104
105 IF (ENABLE_HAIKU)
106     enable_language(CXX)
107     SET (libsolvext_SRCS ${libsolvext_SRCS}
108         repo_haiku.cpp)
109     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
110         repo_haiku.h)
111 ENDIF (ENABLE_HAIKU)
112
113 IF (ENABLE_APPDATA)
114     SET (libsolvext_SRCS ${libsolvext_SRCS}
115         repo_appdata.c)
116     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
117         repo_appdata.h)
118 ENDIF (ENABLE_APPDATA)
119
120 IF (ENABLE_CONDA)
121     SET (libsolvext_SRCS ${libsolvext_SRCS}
122         repo_conda.c)
123     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
124         repo_conda.h)
125 ENDIF (ENABLE_CONDA)
126
127 IF (ENABLE_RPMMD OR ENABLE_SUSEREPO)
128     SET (libsolvext_SRCS ${libsolvext_SRCS}
129         repodata_diskusage.c)
130 ENDIF (ENABLE_RPMMD OR ENABLE_SUSEREPO)
131
132 IF (ENABLE_RPMMD OR ENABLE_SUSEREPO OR ENABLE_APPDATA OR ENABLE_COMPS OR ENABLE_HELIXREPO OR ENABLE_MDKREPO)
133     SET (libsolvext_SRCS ${libsolvext_SRCS}
134         solv_xmlparser.c)
135 ENDIF (ENABLE_RPMMD OR ENABLE_SUSEREPO OR ENABLE_APPDATA OR ENABLE_COMPS OR ENABLE_HELIXREPO OR ENABLE_MDKREPO)
136
137 IF (ENABLE_CONDA)
138     SET (libsolvext_SRCS ${libsolvext_SRCS}
139         solv_jsonparser.c)
140 ENDIF (ENABLE_CONDA)
141
142 IF (ENABLE_ZCHUNK_COMPRESSION)
143     SET (libsolvext_SRCS ${libsolvext_SRCS}
144         solv_zchunk.c)
145 ENDIF (ENABLE_ZCHUNK_COMPRESSION)
146
147 IF (NOT MSVC)
148 SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
149 ENDIF (NOT MSVC)
150 IF (HAVE_LINKER_VERSION_SCRIPT)
151 SET (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LINK_FLAGS} -Wl,--version-script=${CMAKE_SOURCE_DIR}/ext/libsolvext.ver")
152 ENDIF (HAVE_LINKER_VERSION_SCRIPT)
153
154 IF (DISABLE_SHARED)
155 ADD_LIBRARY (libsolvext STATIC ${libsolvext_SRCS})
156 ELSE (DISABLE_SHARED)
157 ADD_LIBRARY (libsolvext SHARED ${libsolvext_SRCS})
158 TARGET_LINK_LIBRARIES(libsolvext libsolv ${SYSTEM_LIBRARIES})
159 ENDIF (DISABLE_SHARED)
160
161 IF (WIN32)
162   INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/win32/)
163 ENDIF ()
164
165 SET_TARGET_PROPERTIES(libsolvext PROPERTIES OUTPUT_NAME "solvext")
166 SET_TARGET_PROPERTIES(libsolvext PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION})
167
168 INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv")
169 INSTALL (TARGETS libsolvext LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
170
171 IF (ENABLE_STATIC AND NOT DISABLE_SHARED)
172 ADD_LIBRARY (libsolvext_static STATIC ${libsolvext_SRCS})
173 SET_TARGET_PROPERTIES(libsolvext_static PROPERTIES OUTPUT_NAME "solvext")
174 SET_TARGET_PROPERTIES(libsolvext_static PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION})
175 INSTALL (TARGETS libsolvext_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
176 ENDIF (ENABLE_STATIC AND NOT DISABLE_SHARED)