]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Allow to link the tools/bindings against the static version of the libraries
authorMichael Schroeder <mls@suse.de>
Thu, 20 Mar 2025 10:06:01 +0000 (11:06 +0100)
committerMichael Schroeder <mls@suse.de>
Thu, 20 Mar 2025 10:06:01 +0000 (11:06 +0100)
This is only relevant if both the static and dynamic versions are
built.

CMakeLists.txt
bindings/CMakeLists.txt
bindings/lua/CMakeLists.txt
bindings/perl/CMakeLists.txt
bindings/python/CMakeLists.txt
bindings/python3/CMakeLists.txt
bindings/ruby/CMakeLists.txt
bindings/tcl/CMakeLists.txt
tools/CMakeLists.txt

index bd189eac42b13d8e61d9fd95d2b2aa20b29e7a52..5ba5ed51b14b7fb2dc37537510dd92ec2cdc2541 100644 (file)
@@ -43,6 +43,9 @@ OPTION (WITH_SYSTEM_ZCHUNK "Use system zchunk library?" OFF)
 OPTION (WITH_LIBXML2  "Build with libxml2 instead of libexpat?" OFF)
 OPTION (WITHOUT_COOKIEOPEN "Disable the use of stdio cookie opens?" OFF)
 
+OPTION (ENABLE_STATIC_TOOLS "Link the tools against the static version of the libraries?" OFF)
+OPTION (ENABLE_STATIC_BINDINGS "Link the bindings against the static version of the libraries?" OFF)
+
 include (GNUInstallDirs)
 message (STATUS "Libraries will be installed in ${CMAKE_INSTALL_FULL_LIBDIR}")
 message (STATUS "Header files will be installed in ${CMAKE_INSTALL_FULL_INCLUDEDIR}")
index 4889a4c66537ec275585e9e4f21b9c7b13b329fe..420dbd45173a0b90cdb36f280748a91053d9e71b 100644 (file)
@@ -1,3 +1,10 @@
+
+IF (ENABLE_STATIC AND NOT DISABLE_SHARED AND ENABLE_STATIC_BINDINGS)
+    SET (LIBSOLV_BINDINGS_LIBRARIES libsolvext_static libsolv_static)
+ELSE (ENABLE_STATIC AND NOT DISABLE_SHARED AND ENABLE_STATIC_BINDINGS)
+    SET (LIBSOLV_BINDINGS_LIBRARIES libsolvext libsolv)
+ENDIF (ENABLE_STATIC AND NOT DISABLE_SHARED AND ENABLE_STATIC_BINDINGS)
+
 SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
 
 FIND_PACKAGE (SWIG)
index b42df2144ae4be8c0fff9af7f53bf38dd69fedfc..8d5bbe3e9fb74442356e9172366504b8e0690875 100644 (file)
@@ -16,6 +16,6 @@ MESSAGE (STATUS "Lua installation dir: ${LUA_INSTALL_DIR}")
 
 ADD_LIBRARY (bindings_lua SHARED solv_lua.c)
 SET_TARGET_PROPERTIES (bindings_lua PROPERTIES PREFIX "" OUTPUT_NAME "solv" INSTALL_NAME_DIR "${LUA_INSTALL_DIR}")
-TARGET_LINK_LIBRARIES (bindings_lua libsolvext libsolv ${LUA_LIBRARY} ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (bindings_lua ${LIBSOLV_BINDINGS_LIBRARIES} ${LUA_LIBRARY} ${SYSTEM_LIBRARIES})
 INSTALL (TARGETS bindings_lua LIBRARY DESTINATION ${LUA_INSTALL_DIR})
 
index 49a3902b9f8b705ca896cf538bcb2b2afa088454..b57fd9cca7a9dcf22ec1496451a03832b093ee14 100644 (file)
@@ -31,7 +31,7 @@ INCLUDE_DIRECTORIES (${PERL_INCLUDE_PATH} ${PERL_CORE_DIR})
 ADD_LIBRARY (bindings_perl MODULE solv_perl.c)
 SET_TARGET_PROPERTIES (bindings_perl PROPERTIES PREFIX "" OUTPUT_NAME "solv")
 SET_TARGET_PROPERTIES (bindings_perl PROPERTIES LINK_FLAGS "${PERL_CCLDFLAGS}")
-TARGET_LINK_LIBRARIES (bindings_perl libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (bindings_perl ${LIBSOLV_BINDINGS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 INSTALL (TARGETS bindings_perl LIBRARY DESTINATION ${PERL_INSTALL_DIR})
 INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/solv.pm DESTINATION ${PERL_INSTALL_DIR})
index 186be4195c439d40aeb7fb7e47377d9a7227a46f..4bd0fae8e46c44121bb899214d5f977d434b581d 100644 (file)
@@ -39,7 +39,7 @@ INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH})
 
 ADD_LIBRARY (bindings_python MODULE solv_python.c)
 SET_TARGET_PROPERTIES (bindings_python PROPERTIES PREFIX "" OUTPUT_NAME "_solv")
-TARGET_LINK_LIBRARIES (bindings_python libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (bindings_python ${LIBSOLV_BINDINGS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 INSTALL (TARGETS bindings_python LIBRARY DESTINATION ${PYTHON_INSTALL_DIR})
 INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/solv.py DESTINATION ${PYTHON_INSTALL_DIR})
index 021a47f7ba268c03f4200b64e7242f0a942de649..e2da68452335159fc9c18d651ae98b4c54ba5bba 100644 (file)
@@ -32,7 +32,7 @@ INCLUDE_DIRECTORIES (${PYTHON3_INCLUDE_DIR})
 
 ADD_LIBRARY (bindings_python3 SHARED solv_python.c)
 SET_TARGET_PROPERTIES (bindings_python3 PROPERTIES PREFIX "" OUTPUT_NAME "_solv")
-TARGET_LINK_LIBRARIES (bindings_python3 libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (bindings_python3 ${LIBSOLV_BINDINGS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 INSTALL (TARGETS bindings_python3 LIBRARY DESTINATION ${PYTHON3_INSTALL_DIR})
 INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/solv.py DESTINATION ${PYTHON3_INSTALL_DIR})
index 6c3bd50d79a433ed55e11ec29d892739b1c45400..b065fd4aa26c4f6680c89d7e56fb7b85b5571545 100644 (file)
@@ -21,6 +21,6 @@ INCLUDE_DIRECTORIES (${RUBY_INCLUDE_PATH})
 
 ADD_LIBRARY (bindings_ruby MODULE solv_ruby.c)
 SET_TARGET_PROPERTIES (bindings_ruby PROPERTIES PREFIX "" OUTPUT_NAME "solv")
-TARGET_LINK_LIBRARIES (bindings_ruby libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (bindings_ruby ${LIBSOLV_BINDINGS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 INSTALL (TARGETS bindings_ruby LIBRARY DESTINATION ${RUBY_INSTALL_DIR})
index 932cf75d4aa798d060783608c30a79e8cd511a38..de4cb5a092b2a879caf214ed9f27d06664231a5f 100644 (file)
@@ -23,7 +23,7 @@ INCLUDE_DIRECTORIES (${TCL_INCLUDE_PATH})
 
 ADD_LIBRARY (bindings_tcl SHARED solv_tcl.c)
 SET_TARGET_PROPERTIES (bindings_tcl PROPERTIES PREFIX "" OUTPUT_NAME "solv-${VERSION}" INSTALL_NAME_DIR "${TCL_INSTALL_DIR}")
-TARGET_LINK_LIBRARIES (bindings_tcl libsolvext libsolv ${TCL_LIBRARY} ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (bindings_tcl ${LIBSOLV_BINDINGS_LIBRARIES} ${TCL_LIBRARY} ${SYSTEM_LIBRARIES})
 INSTALL (TARGETS bindings_tcl LIBRARY DESTINATION ${TCL_INSTALL_DIR})
 
 ADD_CUSTOM_COMMAND (
index dd0477a578b25382d1482ee1a022d9e5285f2172..4b3548abca35e1280e91e076bec750c253560361 100644 (file)
 
 ADD_LIBRARY (toolstuff STATIC common_write.c)
 
+IF (ENABLE_STATIC AND NOT DISABLE_SHARED AND ENABLE_STATIC_TOOLS)
+    SET (LIBSOLV_TOOLS_LIBRARY libsolv_static)
+    SET (LIBSOLV_TOOLS_LIBRARIES libsolvext_static libsolv_static)
+ELSE (ENABLE_STATIC AND NOT DISABLE_SHARED AND ENABLE_STATIC_TOOLS)
+    SET (LIBSOLV_TOOLS_LIBRARY libsolv)
+    SET (LIBSOLV_TOOLS_LIBRARIES libsolvext libsolv)
+ENDIF (ENABLE_STATIC AND NOT DISABLE_SHARED AND ENABLE_STATIC_TOOLS)
+
 IF (WIN32)
     INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/win32/)
-ENDIF ()
+ENDIF (WIN32)
 
 SET (tools_list testsolv mergesolv dumpsolv installcheck testsolv)
 
+ADD_EXECUTABLE (dumpsolv dumpsolv.c )
+TARGET_LINK_LIBRARIES (dumpsolv ${LIBSOLV_TOOLS_LIBRARY})
+
 IF (ENABLE_RPMDB)
 ADD_EXECUTABLE (rpmdb2solv rpmdb2solv.c)
-TARGET_LINK_LIBRARIES (rpmdb2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (rpmdb2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 ADD_EXECUTABLE (findfileconflicts findfileconflicts.c)
-TARGET_LINK_LIBRARIES (findfileconflicts libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (findfileconflicts ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 SET (tools_list ${tools_list} rpmdb2solv)
 ENDIF (ENABLE_RPMDB)
 
 IF (ENABLE_RPMPKG)
 ADD_EXECUTABLE (rpms2solv rpms2solv.c)
-TARGET_LINK_LIBRARIES (rpms2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (rpms2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 SET (tools_list ${tools_list} rpms2solv)
 ENDIF (ENABLE_RPMPKG)
 
 IF (ENABLE_RPMMD)
 ADD_EXECUTABLE (repomdxml2solv repomdxml2solv.c)
-TARGET_LINK_LIBRARIES (repomdxml2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (repomdxml2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 ADD_EXECUTABLE (rpmmd2solv rpmmd2solv.c)
-TARGET_LINK_LIBRARIES (rpmmd2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (rpmmd2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 ADD_EXECUTABLE (updateinfoxml2solv updateinfoxml2solv.c)
-TARGET_LINK_LIBRARIES (updateinfoxml2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (updateinfoxml2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 ADD_EXECUTABLE (deltainfoxml2solv deltainfoxml2solv.c)
-TARGET_LINK_LIBRARIES (deltainfoxml2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (deltainfoxml2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 SET (tools_list ${tools_list} repomdxml2solv rpmmd2solv updateinfoxml2solv deltainfoxml2solv)
 ENDIF (ENABLE_RPMMD)
 
 IF (ENABLE_HELIXREPO)
 ADD_EXECUTABLE (helix2solv helix2solv.c)
-TARGET_LINK_LIBRARIES (helix2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (helix2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 SET (tools_list ${tools_list} helix2solv)
 ENDIF (ENABLE_HELIXREPO)
 
 IF (ENABLE_SUSEREPO)
 ADD_EXECUTABLE (susetags2solv susetags2solv.c)
-TARGET_LINK_LIBRARIES (susetags2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (susetags2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 SET (tools_list ${tools_list} susetags2solv)
 ENDIF (ENABLE_SUSEREPO)
 
 IF (ENABLE_COMPS)
 ADD_EXECUTABLE (comps2solv comps2solv.c)
-TARGET_LINK_LIBRARIES (comps2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (comps2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 SET (tools_list ${tools_list} comps2solv)
 ENDIF (ENABLE_COMPS)
 
 IF (ENABLE_DEBIAN)
 ADD_EXECUTABLE (deb2solv deb2solv.c)
-TARGET_LINK_LIBRARIES (deb2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (deb2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 SET (tools_list ${tools_list} deb2solv)
 ENDIF (ENABLE_DEBIAN)
 
 IF (ENABLE_MDKREPO)
 ADD_EXECUTABLE (mdk2solv mdk2solv.c)
-TARGET_LINK_LIBRARIES (mdk2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (mdk2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 SET (tools_list ${tools_list} mdk2solv)
 ENDIF (ENABLE_MDKREPO)
 
 IF (ENABLE_ARCHREPO)
 ADD_EXECUTABLE (archpkgs2solv archpkgs2solv.c)
-TARGET_LINK_LIBRARIES (archpkgs2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (archpkgs2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 ADD_EXECUTABLE (archrepo2solv archrepo2solv.c)
-TARGET_LINK_LIBRARIES (archrepo2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (archrepo2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 SET (tools_list ${tools_list} archpkgs2solv archrepo2solv)
 ENDIF (ENABLE_ARCHREPO)
 
 IF (ENABLE_APK)
 ADD_EXECUTABLE (apk2solv apk2solv.c)
-TARGET_LINK_LIBRARIES (apk2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (apk2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 SET (tools_list ${tools_list} apk2solv)
 ENDIF (ENABLE_APK)
 
 IF (ENABLE_CUDFREPO)
 ADD_EXECUTABLE (cudftest cudftest.c)
-TARGET_LINK_LIBRARIES (cudftest libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (cudftest ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 ENDIF (ENABLE_CUDFREPO)
 
 ADD_EXECUTABLE (installcheck installcheck.c)
-TARGET_LINK_LIBRARIES (installcheck libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (installcheck ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 IF (ENABLE_APPDATA)
 ADD_EXECUTABLE (appdata2solv appdata2solv.c)
-TARGET_LINK_LIBRARIES (appdata2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (appdata2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 SET (tools_list ${tools_list} appdata2solv)
 ENDIF (ENABLE_APPDATA)
 
 IF (ENABLE_CONDA)
 ADD_EXECUTABLE (conda2solv conda2solv.c)
-TARGET_LINK_LIBRARIES (conda2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (conda2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 SET (tools_list ${tools_list} conda2solv)
 ENDIF (ENABLE_CONDA)
 
 IF (NOT WIN32)
 ADD_EXECUTABLE (repo2solv repo2solv.c )
-TARGET_LINK_LIBRARIES (repo2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (repo2solv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 SET(tools_list ${tools_list} repo2solv)
 ENDIF (NOT WIN32)
 
-ADD_EXECUTABLE (dumpsolv dumpsolv.c )
-TARGET_LINK_LIBRARIES (dumpsolv libsolv)
-
 ADD_EXECUTABLE (mergesolv mergesolv.c )
-TARGET_LINK_LIBRARIES (mergesolv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (mergesolv toolstuff ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 ADD_EXECUTABLE (testsolv testsolv.c)
-TARGET_LINK_LIBRARIES (testsolv libsolvext libsolv ${SYSTEM_LIBRARIES})
+TARGET_LINK_LIBRARIES (testsolv ${LIBSOLV_TOOLS_LIBRARIES} ${SYSTEM_LIBRARIES})
 
 INSTALL (TARGETS ${tools_list} DESTINATION ${CMAKE_INSTALL_BINDIR})