openSUSE:Libzypp 构建

跳转到:导航搜索
此页面解释了 libzypp 的构建过程和步骤。

构建 libzypp

版本:10.3+ ZYPP 仅以这种方式构建 10.3 代码库及更高版本


自 3.x 版本以来,libzypp 使用 cmake 进行构建。

如果您正在使用 factory,cmake 已经可用。对于发布版本,请查看此 构建服务 仓库。

cmake 默认在单独的目录中构建。这是一个好的做法。

如果您不使用 subversion 仓库,请将源代码作为压缩的 tar 文件获取,并在 /somewhere 中解压 zypp-3.x.x.tar.bz2 tarball

cd /somewhere; tar -jxpvf /downloads/zypp-3.x.x.tar.bz2

创建一个用于构建的目录,例如 /zypp-build

mkdir /zypp-build

进入构建目录

cd /zypp-build

运行 cmake /somewhere/libzypp-3.x.x,例如:

cmake -DCMAKE_INSTALL_PREFIX=/opt/zypp3 /somewhere/libzypp-3.x.x

默认情况下,cmake 会在构建树上使用 rpath 进行构建。这样,可执行文件在构建树内部可以正常工作。这会导致在安装时重新链接。使用 -DCMAKE_BUILD_WITH_INSTALL_RPATH=1 或 -DCMAKE_SKIP_RPATH=1 来完全跳过 rpath。

(您可能需要一些软件包,例如 popt-develrpm-develdbus-1-develdbus-1-glib-develhal-develdoxygengraphvizlibxml2-develboostboost-develgettext-develdejagnuzlib-devellibicuglib2-develreadline-develcurl-devele2fsprogs-devellibidn-developenssl-devellibsatsolver-devel。)


您将看到 cmake 配置构建

-- Libraries will be installed in /opt/zypp3/lib
-- rpm found: includes in /usr/include, library in /usr/lib/librpm.so
-- boost found: includes in /usr/include, library in /usr/lib
-- Found Gettext:
-- hal found: includes in /usr/include, library in /usr/lib/libhal.so
-- dbus found: includes in /usr/include/dbus-1.0, library in /usr/lib/libdbus-1.so
-- glib found: includes in /opt/gnome/include/glib-2.0, library in /opt/gnome/lib/libglib.so
-- glib found: includes in /opt/gnome/include/glib-2.0, library in /opt/gnome/lib/libglib.so
-- curl found: includes in /usr/include, library in /usr/lib/libcurl.so
-- libxml found: includes in /usr/include, library in /usr/lib/libxml2.so
-- sqlite found: includes in /usr/include, library in /usr/lib/libsqlite3.so
-- doxygen found: /usr/bin/doxygen
-- soname: 300.0.0
-- version: 3.0.0
-- Writing spec file...
-- Writing pkg-config file...
-- FindZypp.cmake will be installed in /opt/zypp3/share/cmake/Modules
-- Configuring done
-- Generating done
-- Build files have been written to: /build-zypp

运行 make

make

如果您想要完整的输出,您可以

make VERBOSE=1

测试套件

要运行 libzypp 的测试套件,请进入 zypp-build/tests 目录并执行

make
make test

翻译

进入 zypp-build/po 目录

make translations
make install

创建用于 mbuild、srcpackage 或构建服务的目录

停留在构建目录中

make srcpackage
make srcpackage 将检查您是否提交了所有文件。如果您想要从当前的本地源代码创建 rpm,请使用 make srcpackage_local

现在您将在 build/package 目录中找到 tarball、spec 和 changes 文件。



使用 cmake 开发基于 zypp 的程序

libzypp-devel 包含一个 FindZypp.cmake

使用

FIND_PACKAGE(Zypp REQUIRED)

在您的顶级 CMakeLists.txt 文件中,您将获得 ZYPP_INCLUDE_DIR 和 ZYPP_LIBRARY 变量。


使用 zypp 构建系统进行开发

阅读

参考资料

ZYPP 自定义构建系统变量

定义了以下附加变量

  • LIB_INSTALL_DIR

技巧和窍门

编译标志和定义

要为某些文件设置特殊的编译标志,请在 CMakeLists.txt 中添加以下内容,其中 ${files} 变量包含一个或多个源文件,${value} 变量包含任何值

SET_SOURCE_FILES_PROPERTIES( ${files} COMPILE_FLAGS -DSOMEDEFINE=\\"${value}\\" )

make uninstall?

请参阅 CMake FAQ