亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

CMake 打包工具 cpack(1) 完全指南:命令選項(xiàng)、工作流程與源碼級(jí)解析

CMake 打包工具 cpack(1) 完全指南:命令選項(xiàng)、工作流程與源碼級(jí)解析 構(gòu)建工具開發(fā)工具CLI【免費(fèi)下載鏈接】CMakeMirror of CMake upstream repository項(xiàng)目地址https://gitcode.com/gh_mirrors/cm/CMake點(diǎn)擊查看免費(fèi)下載導(dǎo)讀cpack 是 CMake 自帶的打包程序負(fù)責(zé)把已經(jīng)構(gòu)建好的項(xiàng)目產(chǎn)物生成多種格式的安裝程序與源碼包。本文基于 cpack(1) 手冊(cè) 展開完整講解 cpack 的每一條命令行選項(xiàng)-G、-C、-D、-P、-R、-B、preset 系列等結(jié)合倉庫內(nèi) cpack 主程序源碼 說明各選項(xiàng)在底層的真實(shí)處理邏輯并給出從include(CPack)到最終產(chǎn)出安裝包的完整實(shí)戰(zhàn)流程。讀完本文你將掌握 cpack 的調(diào)用方式、配置文件的驅(qū)動(dòng)機(jī)制、generator 的選取規(guī)則以及 package preset 的進(jìn)階用法。一、cpack 是什么CMake 的打包驅(qū)動(dòng)器cpack 是 CMake 生態(tài)中的獨(dú)立可執(zhí)行程序用于生成二進(jìn)制安裝程序與源碼包支持多種格式。其命令行概要Synopsis非常簡單cpack [options]與cmake相比cpack 只負(fù)責(zé)打包這一件事它不負(fù)責(zé)編譯只負(fù)責(zé)把已經(jīng)安裝到臨時(shí)目錄中的文件收集起來交給對(duì)應(yīng)的打包后端處理。在 cpack 主程序源碼 中程序自身的定位描述就是cpack - Packaging driver provided by CMake.從源碼結(jié)構(gòu)看cpack 的頂層邏輯可以概括為三步見 cpack.cxx解析命令行參數(shù)參數(shù)表定義在 cpack.cxx 的 arguments 數(shù)組讀取并執(zhí)行 CPack 配置文件默認(rèn)是當(dāng)前目錄下的CPackConfig.cmake遍歷CPACK_GENERATOR指定的 generator 列表逐個(gè)實(shí)例化生成器并調(diào)用DoPackage()產(chǎn)出包對(duì)應(yīng)代碼段。1.1 Generator打包格式的后端對(duì)于每一種安裝包格式cpack 都有一個(gè)專門的后端稱之為generator生成器。一個(gè) generator 負(fù)責(zé)生成打包工具所需的輸入文件并調(diào)用具體的打包工具如 NSIS、RPM、dpkg-deb 等完成封裝。需要特別注意這里的package generator與 cmake 命令的makefile generator如 Unix Makefiles、Ninja完全是兩回事不要混淆。前者決定產(chǎn)出什么格式的安裝包后者決定用什么構(gòu)建系統(tǒng)來編譯。倉庫中支持的全部 generator 清單見 cpack-generators(7) 手冊(cè)包括歸檔類archive含 TGZ、ZIP 等變體Debian / RedHat 系列deb、rpm、freebsd、cygwinmacOSdmg、bundle、productbuild、packagemakerWindowsnsis、wix、innosetup、nuget移動(dòng)端apkAndroid通用 AppImageappimage外部擴(kuò)展點(diǎn)external詳見 external generator 文檔運(yùn)行cpack --help會(huì)打印當(dāng)前目標(biāo)平臺(tái)上可用的 generator 列表該列表在源碼中由 makeGeneratorDocs 函數(shù) 從cmCPackGeneratorFactory動(dòng)態(tài)收集生成。1.2 配置文件驅(qū)動(dòng)機(jī)制cpack 由一份用 CMake 語言編寫的配置文件驅(qū)動(dòng)。默認(rèn)情況下它讀取當(dāng)前工作目錄下的CPackConfig.cmake也可以使用--config選項(xiàng)指定其他文件。在標(biāo)準(zhǔn) CMake 工作流中只要項(xiàng)目的CMakeLists.txt中include(CPack)cmake 配置階段就會(huì)自動(dòng)生成CPackConfig.cmake與CPackSourceConfig.cmake兩份文件見 CPack 模塊文檔文件實(shí)際寫入位置在 CPack.cmake 源碼末尾include(CPack)這兩份文件分別用于CPackConfig.cmake驅(qū)動(dòng)二進(jìn)制安裝包的生成CPackSourceConfig.cmake驅(qū)動(dòng)源碼包的生成配合cpack -G TGZ --config CPackSourceConfig.cmake使用。cpack 的配置讀取邏輯在源碼中有明確體現(xiàn)cpack.cxx 對(duì)應(yīng)代碼若未顯式指定--config程序會(huì)把配置文件路徑拼接為當(dāng)前工作目錄/CPackConfig.cmake如果該文件存在則通過ReadListFile執(zhí)行若顯式指定了路徑但文件不存在則直接報(bào)錯(cuò)退出。1.3 關(guān)于配置文件中的必填項(xiàng)在執(zhí)行DoPackage()之前cpack 會(huì)對(duì)配置做一系列完整性校驗(yàn)cpack.cxx 中的校驗(yàn)邏輯CPACK_PACKAGE_NAME必須已定義否則報(bào)CPack project name not specified版本信息必須齊全要么定義CPACK_PACKAGE_VERSION要么同時(shí)定義CPACK_PACKAGE_VERSION_MAJOR、CPACK_PACKAGE_VERSION_MINOR、CPACK_PACKAGE_VERSION_PATCH必須通過CPACK_INSTALL_CMAKE_PROJECTS、CPACK_INSTALL_COMMANDS、CPACK_INSTALL_SCRIPT或CPACK_INSTALLED_DIRECTORIES之一告訴 cpack 從哪里收集要打包的文件否則報(bào)Please specify build tree of the project...。若版本只給了 MAJOR/MINOR/PATCH 三段cpack 會(huì)在源碼中自動(dòng)拼接出CPACK_PACKAGE_VERSION見 cpack.cxx 的版本合成代碼。二、選項(xiàng)總覽與逐項(xiàng)詳解cpack 的選項(xiàng)分為兩類打包控制選項(xiàng)決定打包行為與幫助/版本選項(xiàng)用于查閱文檔。下表先給出打包控制選項(xiàng)的完整清單選項(xiàng)作用對(duì)應(yīng) CMake 變量-G generators指定要使用的 generator 列表CPACK_GENERATOR-C configurations指定要打包的構(gòu)建配置如 Debug/ReleaseCPACK_BUILD_CONFIG-D varvalue覆蓋/定義任意 CPack 變量任意變量--config configFile指定配置文件—默認(rèn)CPackConfig.cmake-V, --verbose詳細(xì)輸出—--debug調(diào)試輸出面向 cpack 自身開發(fā)者—--trace/--trace-expand底層腳本跟蹤模式—-P packageName覆蓋包名CPACK_PACKAGE_NAME-R packageVersion覆蓋版本號(hào)CPACK_PACKAGE_VERSION-B packageDirectory指定打包工作目錄CPACK_PACKAGE_DIRECTORY--vendor vendorName覆蓋廠商名CPACK_PACKAGE_VENDOR--preset preset使用 package preset—--presets-file file從指定文件讀取 presets—--list-presets[defined]列出可用 package presets—該選項(xiàng)清單與 cpack 主程序源碼中的 cmDocumentationOptions 數(shù)組 一一對(duì)應(yīng)。下面逐項(xiàng)深入。2.1-G generators選擇打包格式generators是一個(gè)分號(hào)分隔的 generator 名稱列表。cpack 會(huì)按順序遍歷該列表根據(jù)CPackConfig.cmake中的配置為每個(gè) generator 分別產(chǎn)出一個(gè)安裝包。# 同時(shí)產(chǎn)出 TGZ 歸檔和 DEB 包 cpack -G TGZ;DEB如果命令行沒有給出-G則回退使用CPackConfig.cmake中CPACK_GENERATOR變量指定的列表。從源碼看命令行-G的值最終通過AddDefinition(CPACK_GENERATOR, ...)覆蓋配置值cpack.cxx 對(duì)應(yīng)代碼。一個(gè)重要的執(zhí)行細(xì)節(jié)源自 CPack 模塊文檔在CMakeLists.txt中CPACK_GENERATOR是一個(gè)列表但在CPACK_PROJECT_CONFIG_FILE中它被重置為當(dāng)前正在打包的那一個(gè) generator 名稱的字符串。cpack 的迭代流程是執(zhí)行CPackConfig.cmake讀取-G或CPACK_GENERATOR得到 generator 列表對(duì)每個(gè) generator將CPACK_GENERATOR重置為當(dāng)前這一個(gè)的名稱若配置了CPACK_PROJECT_CONFIG_FILE則按生成器逐次 include 它可用于編寫僅針對(duì)某個(gè) generator的特化邏輯調(diào)用該 generator 的DoPackage()產(chǎn)出包。# 單生成器用法示例只打一個(gè) DEB cpack -G DEB2.2-C configurations指定要打包的構(gòu)建配置configurations同樣是分號(hào)分隔的列表例如Debug、Release。當(dāng)項(xiàng)目使用多配置生成器multi-configuration generator如 Xcode 或 Visual Studio 系列時(shí)構(gòu)建目錄里會(huì)同時(shí)存在多個(gè)配置的輸出。此時(shí)必須用-C告訴 cpack 把哪個(gè)配置的產(chǎn)物打進(jìn)包里# Visual Studio 多配置構(gòu)建后只打包 Release 產(chǎn)物 cpack -C Release # 同時(shí)打包 Debug 與 Release cpack -C Debug;Release注意-C只負(fù)責(zé)選取哪些配置的產(chǎn)物用戶有責(zé)任確保這些配置在此之前已經(jīng)構(gòu)建完成手冊(cè)原文明確提示The user is responsible for ensuring that the configuration(s) listed have already been built before invoking cpack。底層實(shí)現(xiàn)中該選項(xiàng)被寫入CPACK_BUILD_CONFIG變量cpack.cxx 對(duì)應(yīng)代碼供配置文件與生成器讀取。2.3-D varvalue直接定義 CPack 變量-D可以在命令行直接設(shè)置任意 CPack 變量且會(huì)覆蓋配置文件中同名變量的值cpack -D CPACK_PACKAGE_CONTACTdevexample.com -G TGZ自 CMake 4.0 起還支持不帶空格的單參數(shù)形式-Dvarvaluecpack -DCPACK_PACKAGE_CONTACTdevexample.com -G TGZ在源碼中-D的解析邏輯非常直白cpack.cxx 的 -D 解析代碼它會(huì)在參數(shù)中查找第一個(gè)把左側(cè)作為鍵、右側(cè)作為值存入definitions映射若找不到則直接報(bào)錯(cuò)提示必須以KEYVALUE形式書寫。所有-D收集完畢后會(huì)在配置文件執(zhí)行之后統(tǒng)一通過AddDefinition寫回對(duì)應(yīng)代碼因此能覆蓋配置文件中設(shè)定的同名變量。2.4--config configFile指定配置文件默認(rèn)情況下 cpack 使用當(dāng)前目錄下的CPackConfig.cmake。當(dāng)需要打源碼包、或想復(fù)用另一套打包配置時(shí)可用--config顯式指定# 使用 CMake 生成的源碼包配置 cpack -G TGZ --config CPackSourceConfig.cmakeCPackSourceConfig.cmake正是由include(CPack)生成的第二份配置文件見 CPack 模塊文檔。2.5-V, --verbose詳細(xì)輸出開啟詳細(xì)輸出便于展示打包工具如 NSIS、rpmbuild 等執(zhí)行時(shí)的更多細(xì)節(jié)適合項(xiàng)目開發(fā)者排查打包問題cpack -V源碼中-V與--verbose共用同一個(gè)回調(diào)效果是設(shè)置日志對(duì)象的 verbose 標(biāo)志并打印Enable Verbosecpack.cxx 對(duì)應(yīng)代碼。cpack 的日志系統(tǒng)還定義了統(tǒng)一的前綴日志前綴設(shè)置CPack Error:、CPack Warning:、CPack:、CPack Verbose:方便在終端中快速定位不同級(jí)別的輸出。2.6--debug調(diào)試模式--debug提供更底層的調(diào)試輸出手冊(cè)明確指出它主要面向 cpack 自身的開發(fā)者普通項(xiàng)目開發(fā)者一般用不到。其底層行為是打開日志對(duì)象的 debug 開關(guān)cpack.cxx 對(duì)應(yīng)代碼例如-D解析時(shí)會(huì)打印Set CPack variable: key to value這類調(diào)試信息cpack.cxx 的調(diào)試日志。2.7--trace/--trace-expand腳本跟蹤這兩個(gè)選項(xiàng)把 cpack 執(zhí)行配置文件時(shí)底層運(yùn)行的 CMake 腳本置于跟蹤模式--trace普通跟蹤--trace-expand展開式跟蹤會(huì)同時(shí)打印變量展開后的結(jié)果對(duì)排查配置腳本中的變量求值問題非常有用。源碼中二者都會(huì)調(diào)用state-SetTrace(true)后者額外設(shè)置SetTraceExpand(true)cpack.cxx 對(duì)應(yīng)代碼并且該狀態(tài)會(huì)傳遞給實(shí)例化的 generatorcpack.cxx 中的傳遞邏輯。2.8-P packageName覆蓋包名覆蓋/定義CPACK_PACKAGE_NAME變量配置文件中對(duì)該變量的任何設(shè)置都會(huì)被忽略cpack -P myapp -G TGZ底層通過AddDefinition(CPACK_PACKAGE_NAME, ...)覆蓋cpack.cxx 對(duì)應(yīng)代碼。2.9-R packageVersion覆蓋版本號(hào)覆蓋/定義CPACK_PACKAGE_VERSION。它會(huì)覆蓋配置文件中的設(shè)置也會(huì)覆蓋由CPACK_PACKAGE_VERSION_MAJOR/MINOR/PATCH自動(dòng)拼接出的版本號(hào)cpack -R 1.2.3 -G TGZ底層同樣以AddDefinition覆蓋實(shí)現(xiàn)cpack.cxx 對(duì)應(yīng)代碼。2.10-B packageDirectory指定打包輸出目錄覆蓋/定義CPACK_PACKAGE_DIRECTORY控制 cpack 進(jìn)行打包工作的目錄。最終安裝包默認(rèn)產(chǎn)出在該目錄下同時(shí) cpack 會(huì)在此目錄內(nèi)創(chuàng)建_CPack_Packages子目錄作為打包過程的工作區(qū)cpack -B /tmp/pkgout -G TGZ # 產(chǎn)出/tmp/pkgout/myapp-1.2.3-Linux.tar.gz # 工作區(qū)/tmp/pkgout/_CPack_Packages/值得注意的優(yōu)先級(jí)規(guī)則來自 CPack 模塊文檔 與 cpack.cxx 源碼命令行-B優(yōu)先級(jí)最高其次看配置文件中是否設(shè)置CPACK_PACKAGE_DIRECTORY源碼會(huì)調(diào)用CollapseFullPath把它轉(zhuǎn)為絕對(duì)路徑兩者都未設(shè)置時(shí)默認(rèn)使用當(dāng)前工作目錄。2.11--vendor vendorName覆蓋廠商名覆蓋/定義CPACK_PACKAGE_VENDORcpack --vendor Example Corp -G TGZ底層通過AddDefinition(CPACK_PACKAGE_VENDOR, ...)實(shí)現(xiàn)cpack.cxx 對(duì)應(yīng)代碼。三、package preset用 JSON 聲明打包參數(shù)從 CMake 3.23 引入packagePresets開始參見 cmake-presets(7) 手冊(cè)中的版本記錄cpack 也支持通過 preset 聲明打包選項(xiàng)將配置、構(gòu)建、測試、打包統(tǒng)一到一份 JSON 文件中。3.1--preset preset/--presetpreset按名稱使用某個(gè) package preset。項(xiàng)目二進(jìn)制目錄會(huì)從該 preset 的configurePreset鍵對(duì)應(yīng)的 configure preset自動(dòng)推斷因此打包會(huì)在與配置/構(gòu)建相同的binaryDir下執(zhí)行cpack --preset package-release版本行為變更CMake 4.4如果同時(shí)指定了--presets-file則CMakePresets.json與CMakeUserPresets.json都不再要求必須存在否則它們必須存在于源碼樹頂層。舊版本中這是嚴(yán)格強(qiáng)制的要求。3.2--presets-file file/--presets-filefileCMake 4.4 新增從指定的文件讀取 presets路徑可以是絕對(duì)路徑或相對(duì)于當(dāng)前工作目錄的路徑。一旦指定--presets-fileCMakePresets.json與CMakeUserPresets.json中定義的 presets 將被忽略cpack --presets-file ./my-presets.json --preset release源碼中該選項(xiàng)會(huì)把文件路徑歸一化后存入 preset 參數(shù)對(duì)象cpack.cxx 的 presetFileLambda隨后預(yù)設(shè)讀取邏輯cpack.cxx 的預(yù)設(shè)讀取代碼會(huì)根據(jù)該路徑加載預(yù)設(shè)圖。3.3--list-presets[defined]列出可用的 package presets不帶參數(shù)列出當(dāng)前可用的availablepackage presets帶defined列出所有非隱藏的已定義 package presets包括當(dāng)前不可用的預(yù)設(shè)及其不可用原因。# 列出可用預(yù)設(shè) cpack --list-presets # 列出全部已定義預(yù)設(shè)含不可用者及原因 cpack --list-presetsdefined版本說明defined值支持為 CMake 4.5 新增CMake 4.4 起若指定了--presets-file則只列出該文件中的預(yù)設(shè)。源碼中該選項(xiàng)由 presetsArgs.SetListPresets 處理非法值會(huì)提示 The only supported value is defined。3.4 package preset 的字段詳解packagePresets數(shù)組中的每個(gè)元素是一個(gè) JSON 對(duì)象核心字段如下完整定義見 packagePresets-properties.rst字段類型說明namestring必填機(jī)器可讀名稱用于cpack --preset name同一目錄下不得與 CMakePresets.json/CMakeUserPresets.json 中其他 package preset 重名hiddenbool隱藏預(yù)設(shè)不能直接通過--preset使用且允許不指定合法的configurePreset通常作為被inherits引用的基類inheritsstring / string[]繼承自其他預(yù)設(shè)除name、hidden、inherits、description、displayName外全部字段默認(rèn)繼承并可覆蓋多個(gè)來源沖突時(shí)靠前的預(yù)設(shè)優(yōu)先conditionobject條件表達(dá)式滿足條件才可使用該預(yù)設(shè)vendormap廠商擴(kuò)展信息CMake 只校驗(yàn)其是否為 map不解釋內(nèi)容displayName/descriptionstring人類可讀名稱與描述environmentmap設(shè)置環(huán)境變量支持宏展開$env{NAME}、$penv{NAME}等可相互引用但不能形成環(huán)configurePresetstring關(guān)聯(lián)的 configure preset 名稱二進(jìn)制目錄由它推斷inheritConfigureEnvironmentbool默認(rèn) true為 true 時(shí)繼承關(guān)聯(lián) configure preset 的環(huán)境變量generatorsstring[]cpack 要使用的 generator 列表等價(jià)于-Gconfigurationsstring[]要打包的構(gòu)建配置列表等價(jià)于-Cvariablesmap傳給 cpack 的變量等價(jià)于-D參數(shù)configFilestring使用的配置文件等價(jià)于--configoutputobject輸出選項(xiàng)含outputName、packageDirectory等鍵packageNamestring包名注意因?qū)崿F(xiàn)問題該字段目前不影響最終包文件名文檔建議暫不使用packageVersionstring包版本同樣因?qū)崿F(xiàn)問題暫不影響最終包文件名文檔建議暫不使用packageDirectorystring放置包文件的目錄vendorNamestring廠商名稱一個(gè)典型的CMakePresets.json示例{ version: 6, configurePresets: [ { name: dev, binaryDir: ${sourceDir}/build/dev, generator: Ninja } ], packagePresets: [ { name: package-deb, displayName: Build Debian package, configurePreset: dev, generators: [DEB], configurations: [Release], variables: { CPACK_PACKAGE_CONTACT: devexample.com } }, { name: package-tgz, inherits: package-deb, generators: [TGZ] } ] }對(duì)應(yīng)命令cpack --preset package-deb cpack --preset package-tgz在源碼層面preset 的處理流程cpack.cxx 的預(yù)設(shè)處理段依次完成讀取預(yù)設(shè)文件 → 列出/解析目標(biāo)預(yù)設(shè) → 校驗(yàn)預(yù)設(shè)中的 generator 是否在當(dāng)前平臺(tái)可用 → 查找關(guān)聯(lián)的 configure preset 并切換到其binaryDir→ 注入預(yù)設(shè)環(huán)境變量 → 把預(yù)設(shè)中的generators、configurations、variables、configFile、packageName、packageVersion、packageDirectory、vendorName等逐一合并到對(duì)應(yīng)命令行參數(shù)命令行顯式給出的參數(shù)優(yōu)先預(yù)設(shè)只在不沖突時(shí)生效。四、幫助與版本選項(xiàng)cpack 沿用了 CMake 家族統(tǒng)一的文檔查詢體系這些選項(xiàng)定義在 OPTIONS_HELP.rst由 cpack(1) 手冊(cè)通過 include 引入。4.1 版本信息cpack -version[json-v1] [file] cpack --version[json-v1] [file]打印程序名與版本橫幅后退出。若指定json-v1則輸出 JSON 格式的擴(kuò)展版本信息包含 CMake 及其依賴組件的版本JSON 輸出格式有機(jī)器可讀的 schema 描述見 version-schema.json。可選參數(shù)file可將輸出寫入指定文件。4.2 幫助信息選項(xiàng)作用-h, -H, --help, -help, -usage, /?打印基本用法與選項(xiàng)說明后退出--help keyword [file]打印某個(gè) CMake 關(guān)鍵字property、variable、command、policy、generator 或 module的手冊(cè)條目CMake 3.28 起不再局限于命令名--help-full [file]打印全部幫助手冊(cè)--help-manual man [file]打印指定手冊(cè)如cpack --help-manual cpack-generators--help-manual-list [file]列出所有可查詢的手冊(cè)名稱--help-command cmd [file]打印單個(gè)命令的幫助如cpack --help-command install--help-command-list/--help-commands列出命令 / 打印 cmake-commands 手冊(cè)--help-module mod/--help-module-list/--help-modules模塊級(jí)幫助--help-policy cmp/--help-policy-list/--help-policies策略級(jí)幫助--help-property prop/--help-property-list/--help-properties屬性級(jí)幫助--help-variable var/--help-variable-list/--help-variables變量級(jí)幫助這些選項(xiàng)中的file均可選用于把輸出重定向到文件。在源碼中幫助模式通過doc.CheckOptions(argc, argv, -G)判定cpack.cxx 對(duì)應(yīng)代碼并且零參數(shù)直接運(yùn)行與零參數(shù)打印幫助被刻意區(qū)分直接運(yùn)行cpack不帶任何參數(shù)會(huì)嘗試讀取當(dāng)前目錄的CPackConfig.cmake執(zhí)行打包而不是打印幫助源碼注釋明確指出這一設(shè)計(jì)見 cpack.cxx 注釋。五、標(biāo)準(zhǔn)打包工作流從 CMakeLists.txt 到安裝包綜合 CPack 模塊文檔 與 cpack(1) 手冊(cè)一個(gè)完整的打包流程如下步驟 1在項(xiàng)目中啟用 CPack# CMakeLists.txt項(xiàng)目根目錄 cmake_minimum_required(VERSION 3.16) project(MyApp VERSION 1.2.3) # ... 定義目標(biāo)、install() 規(guī)則 ... include(CPack)install()命令的DESTINATION必須是相對(duì)路徑否則安裝文件會(huì)被 CPack 忽略CPack 模塊文檔明確說明。步驟 2配置項(xiàng)目cmake -S . -B build配置結(jié)束后構(gòu)建目錄中會(huì)生成CPackConfig.cmake與CPackSourceConfig.cmake。步驟 3構(gòu)建cmake --build build步驟 4打包# 方式一直接調(diào)用 cpack cpack --config build/CPackConfig.cmake # 方式二利用 include(CPack) 生成的 package 目標(biāo) cmake --build build --target package對(duì)于 Makefile / Ninja / Xcode 生成器include(CPack)會(huì)額外生成名為package的構(gòu)建目標(biāo)因此也可以直接make package或ninja packageVisual Studio 生成器則生成大寫目標(biāo)PACKAGECPack 模塊文檔。Makefile 與 Ninja 生成器還會(huì)生成package_source目標(biāo)用于打源碼包CPack 模塊文檔。步驟 5一次產(chǎn)出多種格式# 同時(shí)產(chǎn)出 TGZ 與 DEB在 Linux 上 cpack --config build/CPackConfig.cmake -G TGZ;DEB # 或通過 -D 覆蓋配置 cpack -D CPACK_GENERATORTGZ;DEB --config build/CPackConfig.cmake源碼包c(diǎn)pack -G TGZ --config build/CPackSourceConfig.cmake源碼包會(huì)包含項(xiàng)目目錄中的全部源文件除非通過CPACK_SOURCE_IGNORE_FILES排除CPack 模塊文檔。六、常見變量速查與 -D / -P / -R / -B 的對(duì)應(yīng)關(guān)系命令行選項(xiàng)本質(zhì)上都是對(duì) CPack 變量的快捷覆蓋CPack 模塊文檔的通用變量章節(jié)命令行選項(xiàng)對(duì)應(yīng)變量默認(rèn)值說明-PCPACK_PACKAGE_NAME未指定時(shí)取項(xiàng)目名--vendorCPACK_PACKAGE_VENDOR默認(rèn)Humanity-BCPACK_PACKAGE_DIRECTORY默認(rèn)當(dāng)前工作目錄-RCPACK_PACKAGE_VERSION可由 MAJOR/MINOR/PATCH 三段拼接—CPACK_PACKAGE_FILE_NAME默認(rèn)${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}—CPACK_PACKAGE_DESCRIPTION_SUMMARY默認(rèn)取CMAKE_PROJECT_DESCRIPTION—CPACK_PACKAGE_HOMEPAGE_URL默認(rèn)取project()中的主頁 URL—CPACK_PACKAGE_CHECKSUMCMake 3.7 起支持生成校驗(yàn)和文件4.2 起支持算法列表因此-D CPACK_PACKAGE_VENDORxxx與--vendor xxx在效果上是等價(jià)的-D是最通用的萬能覆蓋口。七、源碼視角cpack 主程序是如何工作的cpack 的入口位于 Source/CPack/cpack.cxx 的main函數(shù)其關(guān)鍵鏈路可歸納為初始化處理命令行編碼、初始化 libuv、定位 CMake 資源、創(chuàng)建日志對(duì)象并設(shè)置CPack Error:等輸出前綴cpack.cxx 初始化段參數(shù)解析將所有命令行參數(shù)與預(yù)定義的arguments表逐一匹配未知的-開頭參數(shù)會(huì)報(bào)Unknown argument:并給出最接近的候選建議Did you mean: ...?見 cpack.cxx 參數(shù)匹配邏輯preset 處理若出現(xiàn)--preset/--presets-file/--list-presets則讀取、解析并合并預(yù)設(shè)cpack.cxx 預(yù)設(shè)處理段配置文件加載確定配置文件路徑默認(rèn)當(dāng)前目錄CPackConfig.cmake并執(zhí)行之同時(shí)加載CMakeDetermineSystem.cmake等系統(tǒng)探測腳本使配置文件中可正常使用FIND_XXX()命令cpack.cxx 配置加載段變量覆蓋依次把-G、-P、-R、--vendor、-B、-D收集到的值寫回全局 Makefile 定義cpack.cxx 變量寫入段迭代生成遍歷 generator 列表逐一校驗(yàn)包名/版本/安裝信息實(shí)例化生成器并調(diào)用DoPackage()任一環(huán)節(jié)失敗即返回非零退出碼cpack.cxx 生成段。倉庫還提供了對(duì)應(yīng)的回歸測試?yán)?Tests/RunCMake/CPack/ 通過set(CPACK_GENERATOR ${GENERATOR_TYPE})驅(qū)動(dòng)不同生成器類型的打包測試其中的PRE_POST_SCRIPTS測試pre.cmake、post.cmake驗(yàn)證了打包前后腳本在執(zhí)行時(shí)能正確讀取CPACK_GENERATOR上下文可作為研究 cpack 行為的參考起點(diǎn)。八、使用建議與注意事項(xiàng)多配置項(xiàng)目必須用-CXcode / Visual Studio 生成的構(gòu)建目錄含多個(gè)配置的產(chǎn)物缺了-C可能導(dǎo)致包內(nèi)缺少可執(zhí)行文件-D是萬能覆蓋任何 CPack 變量都可-D覆蓋但注意-D的鍵值必須帶否則報(bào)錯(cuò)優(yōu)先用 preset 固化流程把 generator、配置、變量寫進(jìn)CMakePresets.json的packagePresets配合--preset一鍵打包可避免命令行越寫越長-B與_CPack_Packages打包中間文件會(huì)留在-B指定的目錄下CI 中注意清理或復(fù)用該工作區(qū)CPACK_PROJECT_CONFIG_FILE是按 generator 逐個(gè) include 的若某個(gè)設(shè)置只想作用于 DEB 而不作用于 RPM應(yīng)放在該文件中并判斷CPACK_GENERATOR的當(dāng)前值CPack 模塊文檔。參考資料cpack(1) 命令行手冊(cè)本文的主體依據(jù)cpack-generators(7) 生成器手冊(cè)全部生成器清單CPack 模塊文檔include(CPack)的用法、目標(biāo)與通用變量cmake-presets(7) 手冊(cè) 與 packagePresets 屬性定義package preset 完整字段cpack 主程序源碼命令行解析與打包主流程cpack 回歸測試生成器級(jí)打包行為驗(yàn)證贊分享構(gòu)建工具開發(fā)工具CLI【免費(fèi)下載鏈接】CMakeMirror of CMake upstream repository項(xiàng)目地址https://gitcode.com/gh_mirrors/cm/CMake點(diǎn)擊查看免費(fèi)下載相關(guān)推薦CMake打包工具CPack完全指南生成DEB/RPM/MSI安裝包全流程CMake打包工具CPack完全指南生成DEB/RPM/MSI安裝包全流程 你是否還在為跨平臺(tái)軟件打包而煩惱從Linux的DEB/RPM到Windows的M構(gòu)建工具開發(fā)工具CLICMake CPack 生成器全景指南17 大打包后端選型、配置與源碼剖析CMake CPack 生成器全景指南17 大打包后端選型、配置與源碼剖析 CPack 是 CMake 的打包工具它把 install 命令收集到的安裝產(chǎn)物構(gòu)建工具開發(fā)工具CLICPack Archive 生成器完全指南用 CMake 打遍 7z/tar/zip 全格式安裝包與源碼包CPack Archive 生成器完全指南用 CMake 打遍 7z/tar/zip 全格式安裝包與源碼包 CPack 的 Archive 生成器Archi構(gòu)建工具開發(fā)工具CLI上一篇gh_mirrors/gumr/gumroad性能監(jiān)控NewRelic與APM工具應(yīng)用下一篇NocoBase部署實(shí)戰(zhàn)指南三套企業(yè)級(jí)安裝方案詳解創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品亚洲国产成人av网站| 一区二区偷拍拍视频| 日韩射图| 欧洲一区二区三区四区在线观看| 97久精品| 一区二区视频在线播放| 黄色免费一级在线毛片| 69丨亚洲丨精品丨入口免费播放| 91黑丝美女| 强奸乱亚洲| 九九热国产| 一本大道久| 神马久久网| 一本道综合色图| 午夜一级免费毛片| 97碰| 久久老熟女| 91久久18禁| 日韩一区二区精品视频| 成年女人18级毛片毛片免费观看| 在线视频日韩欧美国产| 在线综合 亚洲 欧美中文字幕| 天天摸夜夜操视频| 美腿色图| 欧美最婬乱婬爆婬性视频| 一本一道vs波多野结衣| 国产日韩精品无码去免费专区国产| 国产三级多多影院2022国产AA一级毛片无码 | 黄色成品网站| 超91综合网| 99久久婷婷| 成人性爱电影网| 亚洲国产精品9999在线观看| 干我久操| 国产午夜精品理论片一二三区区| 青草一区二区| 9丨久久九九九| 97在线视频免费看| 精人妻无码一区二区三区伊人直播 | 人人超碰在线观看黄| 天天综合~91入口| 日本国产欧美高清在线| 婷婷五月天网| 亚洲最大91网| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 大香蕉123| 婷婷五月天影院| www.丁香五月| 美女露胸露屁股| 青娱乐av在线| 自拍丝袜美腿人妻| 今日头条成人一区二区三区四虎精品| 丝袜无码a片| 91欧美另类| 蜜乳av一区二区三区四区不卡| 五月天加勒比啪| 久草草一二三四区久久| 人人摸人人添人人操| 男人天堂网手机版婷婷| 人人扣人人操| 欧美激情欧美精品| 91爽啪| 爱射综合| 中文字幕人乱码中文字的预防方法 | 九九九综合精品| 亚洲欧美精品一区天堂久久 | 97超碰欧美手机在线| 在线观看午夜婷婷久久久久清性观看| 人妻熟妇久草在线| 久久成人东京热人妻| 国色综合天| 国产又黄又爽| 操逼片国产| 成人a大片在线观看| 在线无码视频| 一起草AV| 热久日综合| 熟妇无码视频三区| 免费黄色片。| 超碰免费人人| 欧洲一区二区三区免费| 九九九成人| 亚洲国产精品成人久久蜜臀| 色情乱伦AV| 边做饭边操逼逼| 操逼日批| 色色色网站| 人人超碰在线观看黄| 超碰午夜| 亚洲乱码精品一区二区| 久久国产视频性吧| 激情黄色五月天| 91网站18| 嫩草一区二区在线观看| 国产精品天美传媒| 97资源站国产精品| 高清国产性猛交xxxx乱大交| 九九九久千久久激情蜜桃在线看 | 97超碰欧美中文字幕| 久久久新亚洲AV| 久久精品色欧美aⅴ一区二区| 95人妻爽爽人人做人人澡| 久久97资源 网| 97chaopengongkai| 五月激情小说| 外国91| 美女午夜福利免费视频| 亚洲色9| 久区视频| 久久男人精品| 操屄不卡视频| 内射卯月麻衣| 亚洲囯产精品女人久久久| 日韩三四五区| 欧美色图91| 久久久 国产精品| 一区二区精品更新提醒| 久久久一区二区三区三州| 天天干天天做| 久久久久久十| 国产一区二区视频在线播放| www欧美91| 国产精品制服丝袜清纯唯美| 欧美 亚洲 另类 综合| 亚州综合色| 大香蕉碰| 亚洲第2页| 亚洲精品97中文字幕| 1人人看人人摸人人操| 免费看污网站| 日韩av不卡在线看| 久久久久密臀视频| 色网在线视频观看免费| 啊啊啊啊啊啊啊啊啊啊在线观看| 蜜乳中文字幕a在线| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 久九九九九九九热| 国产午夜在线观看| 欧美 亚洲 制服 精品| 亚洲 图片 欧美 色图| 久久精品国产亚洲av水密被窝| 大香网站| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 久久肏大逼| 2026国产精品视频| 国产 v乱码一区二| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 热热色国产一二区AV| 欧美丰满少妇xx高潮| 天操老女人| 日韩欧美大力操| 欧洲精品久久| 97在线精品| 国产麻豆91欧美一区二区久久婷婷国产精品| 爱av免费| 超碰97护士| 国产有码一区| 尤物一级在线免费观看| 99精品在线| 中文字幕精品一区二区精品| 三级激情网站| 大香蕉99re| 天无日色综合| 精品性爱一二三区| 日日骚AV| 欧美成人国产精品| 九九热在线视频| 俺去啦俺来也久久综合| 中文字幕欧美日本乱码一线二线| 蜜桃久久久久久久| 狠狠色噜噜狠狠狠狠狠色综合久久| 欧美性爱一区| 五月综合视频| 久久精品中文字幕无码l| 久久αⅴ| 啊啊啊啊啊啊啊啊要喷了| 全免费a敌肛交毛片免费| 欧成人在线| 国产老熟女| WWW黄片COM| 国产无码三级视频在线观看| 91精品婷婷国产综合久久| 免费观看有码高清视频| 性色av网站| 久久亚洲国产成人| 日夜伊人网| 国产精品乱码久久久久久| 亚洲天堂区| 国产啊v在线免费播放| 欧美色老汉| AV一二区| 亚洲人人操| blacked精品一区国产| 偷拍盗拍亚洲色图图片| 96精品一区| 久久人人爽爽爽人久久久| 国产成人99久久亚洲综合| 日本伦理一区二区| 2020中文字幕| 91Chinese在线| 性videos欧美熟妇hdx| 亚洲中文字幕av| 久久国产对白激情浪潮| 精品人妻二区三区| 人人天天欧洲| 激情五月综合网| AV乱伦专区| 国产熟女无套内射| 92久久| 日本五区不卡| 精人妻一区二区三区| 国产一区二区三区,在线观看观看| 色色激情五月天| 国产成人精品亚洲日本| 综合激情婷婷| 夜夜嗨一区二区| 狠狠欧美| 日韩99999色| 91 手机在线播放 绯色| 欧美色偷拍 | 色色福利| 性做久久久久久免费观看软件| 午夜无遮挡男女啪啪视频| 日韩欧美久久婷婷网站| 亚州五月| 久久久91| 最新亚洲黄色免费电影| 淫荡网址| 久久超碰国产一区二区三区| 91AV入口| 欧美黄色大香蕉一区二区| 美中日韩无码| 97色婷| 综合色色婷婷| 97色97好| 欧美日韩人妻少妇 一区二区三区| 久插综合| 欧美女同在线| 亚洲人综合19| 欧美日韩精品青青| 精品999一区二区| 日韩猛交| 亚洲色图尤物视频| 8050午夜少妇无码| 精品久久久久9999| 亚洲成人妻日韩在线| 大干人妻| 成全动漫视频观看免费下载| 乱论91| www…国产操逼| 欧美亚洲日韩人妻在线观看| 婷婷激情五月| 天天操天天射青青草| 日韩AV一区二区三区三州三州| 极品久久久久久久久久久久久久| 加勒比综合a∨| 成人小电影网站tex| 自拍内地三级在线观看| 色婷五月| 久9爱经典视频| 999精品乱码| 五月天我淫我色av| 黄片在线免费在线观看| 亚州久久9| 精品制服美女中文一区二区三区| 91夜色| 男人高清无码一区二区| 啊啊啊啊视频免费| 美女爽爽爽刺痛洞洞| 久久三区四区| 自拍视频一区在线观看| 超碰碰碰碰| 岛国小电影| 欧美激情一| 香蕉欧美| 99精品欧美一区二区三区桃色| 日韩黄片视频试看| 亚洲AO在线| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 色爱综合网| 东北女人的毛片| 97久操| 久久69精品久久久久久久| 婷婷色婷婷| 亚洲综合射| 日韩性爱小视频| 日韩性爱视频免费在线| 中文字幕精品乱码| 五十路六十路七十路熟婆| 五月婷婷激情| 韩日欧亚a级| 一级特级aaaa毛片免费观看 | 丝袜 亚洲 偷拍| 色妇91| 久久久久久久久久va| 青青草中文-久久青草精品一区二区三| 欧美日韩大陆黑人少妇99| 欧美性色网| 色婷婷电影网| 久久久96精品| AV免费在线播放一区| 色九月综合| 国产精品久久久 | 大香蕉伊人75| 性爱av在线免费观看| 夜夜 中文视频rt| 日日操夜夜操天天操免费观看麻豆| 黄片www.| AV男人天堂网| 午夜黄色免费在线观看| 中文字幕一品色图| 夜夜草网站| 国产欧美后入| 久久人人看| 一起草av| 日比av无码| 日韩黄色一区二区三区| 四虎影视国产精品| 国产AV高清AV无码| 狠狠入| 中文字幕 国产区| 高清无码91| 激情视屏国产乱伦强奸| 97欧美日韩精品| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 亚洲男人天堂2| 色青青久久影视| 中日韩久久久免费看| 日欧操屄视频| 日本一区二区不卡| 欧美日韩亚洲高清不卡一区二区三区| 操逼无码操逼| 久久久久女教师免费一区| 国产成人精品日本视频| 好涩综合| 91伊人大香蕉| 婷婷日韩一区二区三区中文字幕在线| 亚洲?V高清一区二区三区尤物| 久久久久密| 国产精品黄色三级av| 欧美偷偷网| 国产精品视频精品一二| 操人人| 精人妻无码一区二区三区伊人直播| 成年人性爱日韩| 中文字幕1区2区| 日逼视频日本| 少妇大屁屁| 台湾佬激情综合| 亚洲综合另类小说色区亚洲成av人片在www| 亚精品无码毛片一区二区三区| 强免费黄色网址| 久久久久久人妻一区精品色欧美| 麻豆精品.欧美精品.日韩精品.| 亚洲91网站| 亚洲精品久久久久久久久豆丁网| 日韩一级片在线看| 夜夜影视四色| 国产亚洲福利第一页丝袜| 日韩熟女视频二区| 欧美午夜色妇色鬼| www.色婷婷| 欧美日韩国产中文精品字幕自在自线| 精品国产乱码久久久久久网站入口| 九九九九九九成人| 婷婷五月天激情网| 国产一区二区成人av在线播放| 欧美九一精品久久久熟妇| 九九热九九热| 久久丁香| 久9热| 影视综合无码少妇| 亚洲国产精品成人综合| 国产精品 视频| 亚洲情色欧美| 97色97干| 福利视频香蕉免费一区二区在线| 青草综合| AA级电影三区| 色综合天天| 亚洲福利影院一区久久| 亚洲综合69| 色情亚洲日本成人| 91超碰碰在线| 亚洲女人毛茸茸91| 色天天野狼综合社区| 天天影视网色欲色香| 国产情色在线| 骚鸭AV| 蜜桃天美传媒AV一区二区三区| 九九九久| 欧美加勒比| 蜜臀一区二区三区在线| 国产精品第一区第一页| 高潮毛片无遮挡高清免费| 99视频这有这里有精品| 欧美日韩国产三级黄色| 成人国产精品三级A片| 综合久久中文字幕综合日韩精品| 日本三级韩三级99久久| 青青草日本中文字幕 | 成人精品久久久午夜福利| 另类TS人妖一区二区三区 | 亚洲欧美精品久| #NAME?| 91岛国动作片| 婷婷丁香九月| 亚洲中文字幕av| 尻女朋友一夜| 欧美亚洲成人在线一区二区三区| 嫩草91| 91欧美在线| 国产精品爱欲| 青青国产精品在线| 精品少妇高潮久久| 偷拍亚洲视频一区二区三区四区| 亚洲欧美色图片| 丁香五月久久| 中文字幕在线观看视频www| 秋霞免费AV| 婷婷色五月激情| 啊啊啊不要嗯嗯在线观看| 亚洲日韩美国人妻| 国产超碰| 在线看免费无码AV天堂的| 麻豆2区1区天美| 亚洲91在线播放影院| 乱欲一区二区| 色五月网址| 看日韩美女二区三区免费操逼视频| 天天做天天爱天天爽| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 欧美熟妇操操视频| 色五月69夫妻| 亚热日本熟女| 福利五区| 亚州色图第三区| 日韩av女优在线免费一区| 无码人妻丰满熟妇奶水区毛片| 激情图片伦理国产一区二区日韩| 亚欧美综合网。| 亚洲中文sv| a片久久久久久久久久久久 | 国产少妇高潮| 免费99精品国产自在在线| 美女诱惑久久| 九九干| 91国产丝袜白虎| 日韩99神马视频播放片在线播放| 亚洲射综合网| 好爽要喷了| 大屁股人妻女教师撅着屁股| 人人操人人大香蕉| 中国小夫妻勾搭露脸淫荡对白| 久久噜| 婷婷av在线中文字幕| 久久婷色| 秋霞一区二区三区四区五区六区七区| 高清孕妇孕交 交孕妇| 日韩国产欧美伦理在线| 欧美大干日韩| 青娱乐休闲视频在线观看| 精品人妻一区| 很狠操| 操b网站亚洲无码| 天天超级碰碰碰| 亚洲综合20p| 激情五月天色播| 欧美操人视频| 五月丁香啪啪| 超碰美国| 欧美人妻精品| 色欲天天综合久久久无码网中文| 五月丁香| 欧美一级AAAAAAA| 亚洲第一页欧美| 国产色综合亚洲色综合吹潮| 伊人精品视频| 乱伦图av| 91欧美综合| 91爱综合| 中国国产精品一区视频| 美女91av| 91校园春色长篇| 偷拍 欧美 日韩| 麻豆 亚洲 97| 五月丁香| 色黄污美女啪啪啪免费网站| 亚洲无限观看| 插入综合网| 成人三一级一片aaa| 久久伊人影院| 欧美网站免费| 在线可观看的黄色网址| 97大色网| 无码高清操逼| 欧美日韩性爱视屏免费看了| 日韩黄色av中文字幕| A级毛片在线看免费| 精品久久久久久久| 日本性一区| 久久精品国产亚洲AV片多多| 蜜臀无码一区二区| 天天综合香 ld视频| 亚洲丝袜综合| 国产精品密臀网在线观看| 国产精品自产拍在线观看社区| 色在线视频导航| 日韩在线观看AV| 天天综合网1| 欧美成人精品一区二区三区| 欧美精品1区2区3区| 国产一区二区免费福利片| 一二三区视频在线观看| 五月天加勒比啪| 精品一久久久| 亚洲少妇色图自慰直播| 99中出在线| 偷窥自拍亚洲色图| 久热免费视频| 亚洲国产第一页综合视频| 久久这里只精品99re66图| 一本大道不卡一二三区| 中文字幕人妻资源在线| 日本阿v天堂在线观看| 亚洲爽图| 久久精品午夜国产亚洲AV无码| 免费成人自拍视频在线| 伊人国产成人av网站| 97亚洲欧美| 岛国免费视频在线| 小日子操bb在线看| 一级性爱视频免费观看| 97五月天| 天天艹天天日| 日本久久超碰| 亚洲第一页欧美| 四季AV一区二区凹凸精品小说| 中文字幕人妻丝袜乱一区三区| 国产成人亚洲精品无| 呦呦影院| 日韩无码三级影院| 欧美伦乱| 超碰在线观看av不卡| a一区二区三区乱码在线| 美女尤物人人操| 任你艹| 91网站18在线| 天天久久| 日韩一级片在线看| 亚洲色图20p| 欧美啪啪天堂| 岛国网址国产| 天天综合网在线| 九九九999久久久网站| 小视频国产| 激激五月| 激情欧美97| 欧美激情中文字幕另类小说| 国产天天骚| 亚洲另类天堂| 国产精品色色| 伊人视频| 欧美精品久久久久久久久88| 大香蕉 222| 国产精品久久久| 五月丁香久久| 欧美色网络| 中亚精品极乱| 蜜臀久久99精品久久久久久婷婷 | 2017大香蕉国产精品久久| 丁香九月激情| 久久av一级av少妇av高潮 | 成人日韩3| 久久久久久网址| 欧美性爱一区二区三区四区| 国模无码一区二区三区在线| 久久久久久久9| 天天日老熟妇| 欧美日韩青操| 99九九久久| 综合一区二区影视| 国产AV色黄看到爽| 少妇人妻在线| 蜜乳中文字幕a在线| 国产亚洲精品无码三区| 午夜福利在线合集| AV在线播放网址| 日本性爱网址| 国产日本久久免费精品| 97精彩视频网站| 欧美午夜视频| 人妻一区久久二区三区色播| 自拍偷拍2025在线观看| 男人高清无码一区二区| 性一级黄色录像片网站导航| 乱伦a片视频| 花野真衣| 日韩综合无码一区久久92| 在线强奷到舒服的无码视频| 丝袜狂射91| 色爱欲亚洲| 日本一区二区三区午夜观看| 区一二区日韩亚洲乱码av电影| 熟人人妻少妇精品久久| 日本女优在线视频福利| 欧美亚洲丝袜美女电影| 中文字幕欧美日韩三级| 91黑丝少妇| 亚欧洲一区二区视频| 91精品人妻电影| 好涩综合| 日本精品国产视频| 最近2019中文字幕国语免费版 | 久久免费精品视频免一| 9久热这里只有精品| 精品视频123区小说区| 国产精品嫩草久久久久| 2020中文字幕在线观看| 亚洲情色在线| 激情五月天婷婷| 亚洲AV成人无码一二三久久 | 天堂九九九九九九九九九| 中国一级αV| 国产第11页| 97中文天堂| 777AV电影| 草草电影院| 风月影院男女十八禁| 另类综合另类| 制服乱伦| 亚洲最大网站av| 日韩成人在线性爱视频| 春色91| 精品无码产区一区二| 精品.99999| 亚洲精品男人的天堂| 91快色色色色色| 亚洲av国产av综合av卡| 色五月AV| 高清孕妇孕交 交| 欧美桃色网| 午夜精品人妻二区三区| 东京热av男人的天堂| 蜜臀99999| 日本大香蕉| 色老汉色| 污污污8888| 亚码激情| 欧美日韩国产传媒在线精品| 性站| 久热久一区二区三区| 色婷婷综合久久久久中文一区二区| 日韩啪啪啪啪啪| 久久久蜜桃一区二区三区| 综合色图,成人综合网| 狠狠色综合网| 午夜久久一区二区无码中出| 国产九九久久久精品| 亚洲成人精品久久久| 亚洲综合贴图91| 久久久国产护士丝袜美腿一| 久久黄人人爽视频| 国产亚洲99久久精品熟| 久久久亚洲Av| 99热伊人| 黑丝日韩av丝袜av| 日本幼女18+| 97aiaiai| 97超碰碰碰| 91色人妻| 伊人久操| 国产欧美日韩臀| 超碰精品97| 欧洲综合无码| 久久综合久久综合人久久夜精品| 蜜臀一二三| 欧美色人| 蜜乳性色无码专日粉嫩骚逼AV| 91久久久久久| 91视频综合在线| 亚洲男人天堂网| 久久久久9999| 91av一区二区在线观看| 成人免费福利在线观看| 久热久操| 欧美亚洲色图另类国产| 欧美亚洲AN| 久久精品一区一起草| 熟女人妻精品一区二区视频| 黄色av片三级三级三级免费看| www.夜夜操| 大香蕉视频啪啪啪啪| 激情AV| 九久精品| 久久久免费懂色| 综合伊人激情| 大香网伊人久久综合网eew| 人人操人人93| 夜夜狠狠躁日日躁色视频| 亚洲熟女人妻中文字幕一区二区| 国内精品嫩模A∨私拍小视频| 久久久夜夜夜| 蜜桃久久综合视频| 久九色| 国产不卡精品91| 成人国产视频在线观看| 色性综合| 久久精品国产精品一区| 久久亚洲人妻| 狠狠色综合网| 婷婷色综合欧美日韩| 麻豆国产av网| 91天堂色男人的天堂| 老鸭窝成人| 九色婷婷| 成人小说另类在线| 91路www| 九色PORNY9l原创自拍| 老熟乱一区二区三区四区| 在线观看十八禁| 最新av网站在线观看| 中文字幕av片| 99re只有精品| 色综合久久久久| 中文字幕日韩专区精品系列 | 中美日韩毛片| 成人乱人伦一区二区| 97超级久久| 嫩草 人人网精品| 五月天婷婷激情| 亚洲AV秘无码一区..| 国产91 丝袜在线播放| 国产熟妇一区二区| 人人色97| 日韩在线观看中文字幕视频| 2023天天操夜夜操| 肉丝无码中文高清| 九一精品牛牛一区二区| 久久五月丁香| 激情综合婷婷| 一起草精品人妻| 日韩性爱免费视频在线网站| 自拍偷拍第26| 成人精品在线免费视频| 麻豆精品.欧美精品.日韩精品.| 美女91在线观看| 综合网欧| 五月天人妻综合| 极品白嫩美少妇在地板上位骑射淫水泛滥| 丁香九月婷婷| 国产强奸无码乱伦| 欧美日韩*字幕一区| 伊人九九九| 日韩欧美大片免费高清啪啪| 黄片免费日韩| 97超碰中文在线| 欧美日韩欧美| 色综合久久av| 人妻系列无码专区中文有码| 国语国产操逼伊人AV网| 久久久久9| 女优免费一区二区永久| 91女在线观看| 91爱看| 91网站18+| 亚洲综合影院| 99国产精品自在自在| 综合国产影视三级| 日本高清有码网址视频| 手机av天堂久久久久| 国产熟码AV| 国产AV毛片| 国产午夜福利合集| 亚洲综合另类| 国产精品免费视频不卡| 国产熟女少妇一区| 青草影院内射高潮| 九九九九免费| 久久超碰、| 亚洲交换| 一个色导综合| 91蜜臀熟女| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 免费超碰97在线观看| 顶级丝袜熟女一区二区三区| 日韩性爱视频免费在线| 精品久久久久黄少妇| 久久亚州大香蕉| 五月天久久久| 国产天天骚| 无码不卡亚洲成?人片| 五月天激情小说网| 啊啊啊久久| 人人操人人大香蕉| 精品一区二区三区四区外站| 一起草高清无码| 日日爽夜夜爽| 免费视频一二三区| 婷婷五月天激情四射| 国产1727欧美| 亚洲美女自拍偷拍视频| 中文字幕视频免费| 亚洲精品无码久久AV| 麻豆激情综合| 欧美另类综合久久| 99日视频在线免费| 性爱1区| 国产毛片毛片4p懂色| 蜜臀久久久99久久久久| 久99久视频| 欧美日韩在线小说 | 久久香蕉网| 另类专区加勒比| 日本精品不卡一二三区| 日韩精品亚洲一二三| 中亚精品极乱| 成人乱人伦一区二区| 国产AV天美传媒一区二区三区| 午夜精品视频777| 午夜爽爽爽| 少妇69中文| 激情综合网五月婷婷五月天| 美女91av| 高潮的A片激情扒开一区| 999 久久久| 91青视频| 欧美性爱97超碰| 亚洲乱熟女一区二区三区大香蕉| 三级日韩一区二区三区| 日韩精品 欧美激情| julia ann久久| 国产十八禁视频| 啊啊啊97视频| 中文字幕人妻色偷偷久久皮 | 一级二级三级黑人无码| 国产精品电影大全| 欧美热图99| 亚洲精品蜜桃久久久| 天天天堂影视日韩亚洲91| 久久AV无码1区2区3区| 亚洲男人的天堂V| 久久精品欧美一区蜜桃| 97干在线看| 97综合在线观看| 一区=区三区视频| 嗯啊啊啊轻点视频 | 快点操死我| 国产最新AV| 精品无人区麻豆乱码久久久| 啊啊啊好湿国产一二| 看黑人AV不卡| 九九九九九九成人| 啊啊啊啊啊啊啊啊啊啊在线观看| 大香伊人在线一区| 狠狠躁日日躁夜夜躁A| 茄子社区国产精品| AV色女综合| 啪啪视频免费在线观看| 午夜一级免费毛片| 日韩人成网站在线播放| 操逼操操操91| 波多野结衣AV无码一区| 亚洲图片欧美偷拍| 懂色AV一区二区三区| 日本肉体xxxx裸交| 久久怡红院| 激情欧美日韩女同久久| 精品人妻一区二区蜜桃视频| 蜜桃久久一区二区| 秋霞一级A片黄色视频| 91九色首页| 久久伊人青青草| 久久久久久久91| 国产黄色影片在线观看| 欧美性爱五月天| 天天情欲宗合网| 久久久精品91八戒| 超碰在线91| 国产91丝袜 在线播放| 日本色色视频网站| 久久久久久久久久久久久久久性生活视频 | 偷拍亚洲高清图片| 无码逼| 亚洲中文字幕乱码无码一区二区| 免费成人在线熟妇网| 国产精品com| 人妻熟女一区在| 色噜噜人妻av中文字幕| 奇米狠999| 久日91在线| 黄色人人| 亚洲激情色片| 午夜乱轮操逼视频免费看| 夜夜高潮夜夜爽| 欧美人与动性人交a| 午夜情侣自拍网站| 男人天堂网站| 91九久| 一道α片欧美| 午夜福利在线视频1000| 激情五月天插| 69久久久久久久久久久久久| 久久五十路熟女人妻| 精品久久大胆人体| 激情啪啪拍91| 中文有码9| 久久综合日韩亚洲欧美| 欧美性爱精品七区| 香蕉免费一区二区三区不读| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 人人看人人插| 亚洲精品欧美专业| 探花一区在线| 亚洲一区二区三区在线激情| 丁香婷婷色五月| 亚洲国产精品无码AV久久| 久久久免费高清中文视频| av无码av无码专区| 欧美影音在线| oumeisetu综合| 亚洲色图第四色| 日韩乱伦AⅤ| 五月丁香激情啪啪| 久久国产精品91| 日本天天人人狠狠在线日美女 | 亚州欧美另类| 成人欧美一区二区三区黑人一| 亚洲文学偷乱拍啪啪啪啪| 免费国产电影一区二区| 精品成人女人久久| 97这里都是精品| www.av在线视频| 特色a在线上| 国产精品在线网站| 亚洲中文字幕精品久久久久久直播| 99热这里只有精品18| 精品区9| 91精品人妻一区二区三区蜜桃| 国产激情视频在线观看| 丁香九月婷婷| 一牛影视久久久一区二区三区| 男人天堂导航| 天综合网| 免费作爱一级视频| 91人妻久久久久久久久久久久久| 99啪啪视频| 一区二区激情国产熟女| av黄图片在线观看| 日日橹狠狠爱欧美超碰| 国内毛片国产专区二| 久久中文字幕女同性恋一区| 国产日韩欧美三级片| 日韩电影免费网站麻豆视频| 日韩av女优在线免费一区| 亚洲牲交| 亚洲资源一区| 舔足天天操天天射| 久久久久少妇| 精品久久久久久中文字幕三区| 午夜激情成人在线观看| αⅴ天堂| 综合网色| 亚洲情色一区综合| 天天综合网1| 干b网| 国语av狠狠色丁香婷婷综合激情| 国产日韩精品suv| av网页一区二区三区| 国产AV高清AV无码| 伊人五月天青青草婷婷| 久久少妇人妻| 亚洲高清视频在线免费观看| 曰韩精品视频一区二区| 色婷婷综合网| 很很很很操| 日本不卡一二区| 精品成人动漫一区二区| 九月色婷婷| 超碰在线1234区| 日韩激情无码影院| 夜夜操狠狠操| 死我十八禁| 日韩操逼HD| 怡红院怡春院| 91精品国产一区三一| 国产乱码精品一区二区三区四川| 欧洲天天在线| 少妇熟女视频一区二区三区| 天天夜躁日日躁狠狠2002| 天天爱天天韩国日本牛牛牛牛| 神马久久啊啊| 又粗又长又爽在线观看| 国产精品经典一卡久久久 | 国产精品盗摄 偷窥盗摄| 丁香五月天激情| 后入人妻无码| 亚洲AV成人无码一区二区三区在线观看| 久久国产对白激情浪潮| 超碰在线人人射| 婷婷日韩一区二区三区中文字幕在线| 蜜桃午夜视频一区二区 | 国产浮力影院第1页| 91综合色噜噜| www.久久| 午夜男女爽爽爽在线视频| 国产色产精品在线观看| 易易A毛视频| 夜夜国自区| 欧美影音在线| 国产第二页| 日本一二区免费| 俺去啦俺来也久久综合| 亚洲男人的天堂网| 开心五月激情网| 日韩免费一级性爱视频| 久久內射| 亚洲黑丝在线| 乱伦av麻豆| 极品少妇久久久| 天综合网欧美| 熟女乱伦二区| 伊人加勒比| 男女激情中文字幕| 亚洲丝袜诱惑| 亚洲日韩美女中文字幕乱| 深夜操逼网| 日本不卡一区二区三区| 欧美日韩亚洲一区二区在线观看| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 日韩精品中文字幕二区| 久草成人| 蜜桃网熟妇| 日韩欧美丝袜诱惑| 蜜桃色色网站视频三区| 十八岁啪啪视频免费看| 一区二区三区国产在线播放 | 久久精品老司| 亚洲人人操| 欧美日本国产日韩激情视频| 成人小说另类在线| 97这里有精品| 99国内熟女露脸视频| 欧美高潮在线| 肥臀熟女福利视频一区二区| 午夜免费福利视频一区| 国产www色在线观看| 久久超碰国产一区二区三区| 女优大全 - 91n| 大鸡巴久久| 国产免费小视频| 欧美九九九| 久久久久久九| 日日骚中文字幕| 久久夜夜| 成人乱人伦一区二区| 精品中文字幕第一页| 日韩99精品视频综合区| av网站在线观看了| 国产自产自拍| 成人免费福利在线观看| 啊v视频在线观看| 色婷婷五月综合| 久久超碰爱| 青青草精品| 欧美玖玖爱免费玖玖| 情色大香蕉| 欧美18老人禁| 玖玖资源视频一区二区三区| 蜜桃传媒视频第一区入口在线看| 东北女人性交| A 天堂| 久久精品国产72国产精品福利| 亚洲精品三| 密臀在线免费观看| 2019亚洲男人天堂| 大香蕉78| 日韩欧美俄罗斯A片| 亚洲。日韩。欧美| 国产精品一区二区后入| 欧美性性性| 欧美性巨大╳╳╳╳╳高跟鞋| 婷婷操逼| 中文欧丝袜诱惑| 欧美综合网| 色狠狠综合噜一二三区| 骚妻少妇精品性色无码四色A V| 人人摸人人干人人拍97| 91中文字幕制服丝袜免费视频| 五月综合久久| 美欧色综合| 精品视频专区| 国产成年免费大片黄在线观看| 久草精品一区 | 99青青草国产视频| rivers-china.com| 26uuu性物| 日日夜夜草草草| 一级做a爰片性色毛片久久| 婷婷激情四射| 东京热99999| 一级AV性爱| 男人的天堂啪啪| 大香蕉日韩| 青青草中日韩在线| 天天综合影院91| 99精品免费| 青娱乐久久艹| 操逼逼一区视频| 91狠狠综合网| 91中文字幕在线观看| 1区2区3区中文字幕日韩| 色97| 影音先锋国产精品| 国产女人操逼视频| 涩涩涩综合| 秋霞网无码| 999久久久| 天天夜夜rb| 久久天堂网| 中文字幕人乱码中文字的预防方法 | 91女优在线观看| 日本九九久久99播| 色蜜AV| 97自拍视频在线| 久久久国产成人一区二区三区在线 | 九九色影院| 国产女生在线| 亚洲午夜福利在线影院| 涩涩这里只有精品视频| 成人无遮挡毛片免费看| 青青欧洲黑| 五月婷婷久久综合| 青青草一本道福利视频| 日本精品九九九| 劲爆欧美人妖三区91| 夜夜 中文视频rt| 欧美 牲| 神马久久69| 欧美激情久久久久| 欧美青青视频| 97国产伦理| 激情小说亚洲视频| 蜜屁Av| a一区二区三区乱码在线| 人人操 欧美| 精品国产Av无码久久久亚洲| 色综合国产在线观看| 91福利网在线观看| 亚洲无码国产探花在线观看| 国产女s强制榨精视频| 国产黄色在线播放观看| 国产日韩在线播放av| 国产99精品一区二区三区免费| 又粗又长又大国产不卡| 四虎永久在线精品免费网址 | 无码天天操| 双插在线| 国产福利影视| 99亚洲精品|