libpng是一个用于读取、写入 PNG (Portable Network Graphics) 文件格式的开源软件库,有了上一篇笔记作为基础,构建起来也非常简单。还是在源代码的根目录中创建一个build文件夹,执行如下关键指令:
# 配置CMake
cmake .. -G "$Generator" -A x64 `
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
-DCMAKE_PREFIX_PATH="$InstallDir" `
-DCMAKE_INSTALL_PREFIX="$InstallDir" `
-DPNG_TESTS=OFF `
-DPNG_STATIC=OFF `
# 构建阶段,指定构建类型
cmake --build . --config RelWithDebInfo
# 安装阶段,指定构建类型和安装目标
cmake --build . --config RelWithDebInfo --target install
$Generator
在上篇笔记中说过是生成器,例如"Visual Studio 16 2019"。- CMAKE_BUILD_TYPE是设置构建的类型,这里使用的是RelWithDebInfo,也就是Release带调试信息的类型。
- CMAKE_PREFIX_PATH是一个非常关键的CMake变量,用于指定CMake查找依赖项、库、包等的优先搜索路径。它可以是一个以分号分隔的目录列表,CMake在这些目录中查找外部依赖项,这里使用的是安装目录。libpng是需要依赖于zlib进行构建的,而在上一篇笔记中我们已经在这个目录中安装了zlib,那么只要将这个变量指定这个目录,CMake进行构建的时候就会自动找到zlib的依赖项,从而简化我们的配置过程。如下图所示:
- PNG_TESTS和PNG_STATIC是libpng提供的构建选项,将它们都设置成OFF,表示不用构建测试程序,也不同构建静态库。