久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

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) 手冊 展開完整講解 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) 手冊包括歸檔類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)建完成手冊原文明確提示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)試輸出手冊明確指出它主要面向 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) 手冊中的版本記錄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) 手冊通過 include 引入。4.1 版本信息cpack -version[json-v1] [file] cpack --version[json-v1] [file]打印程序名與版本橫幅后退出。若指定json-v1則輸出 JSON 格式的擴(kuò)展版本信息包含 CMake 及其依賴組件的版本JSON 輸出格式有機(jī)器可讀的 schema 描述見 version-schema.json??蛇x參數(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的手冊條目CMake 3.28 起不再局限于命令名--help-full [file]打印全部幫助手冊--help-manual man [file]打印指定手冊如cpack --help-manual cpack-generators--help-manual-list [file]列出所有可查詢的手冊名稱--help-command cmd [file]打印單個(gè)命令的幫助如cpack --help-command install--help-command-list/--help-commands列出命令 / 打印 cmake-commands 手冊--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) 手冊一個(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) 命令行手冊本文的主體依據(jù)cpack-generators(7) 生成器手冊全部生成器清單CPack 模塊文檔include(CPack)的用法、目標(biāo)與通用變量cmake-presets(7) 手冊 與 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
返回資訊列表
亚洲综合图片在线| 日韩人妻有码免费视频| 殴美大黄片| 91老司机在线视频免费观看| 9精品久久久久| 制服诱惑亚洲一区二区三区在线观看| 狠狠色伊人亚洲综合网站色| 桃色人妻在线视频| 色踪合AV| 国产欧美成人精品| 成人AV素股で擦久久| 亚洲熟女精品| 久久香蕉国产线看观看亚洲女人 | 久久粉色| 激情四射五月天| 五月色综合| 人妻少妇被猛烈进入中| 久啪视频| 久久东京热久久| 少妇第一页| 四虎影视在线| 久久综合18p| 丝袜美腿制服人妻二区中文字幕 | yazhououmeizongya| 国产精品小视频一区二区三区| 女同女同恋久久级三级| 天天干天天操天天操夜夜操天天操| 伊人精品国产| 裸体美女久久久| 美女9118禁| 毛片电影一区二区三区| 果冻传媒A片麻豆熟妇人妻| 国产女生在线| 人妻熟女一区二区三区视频| 日韩人妻资源网| 欧成人精品H无码| 久9视频| 少妇色综合| 强奸乱伦大香蕉网| 欧美精品系列| 蜜臀AV成人精品蜜臀AV久久| 亚洲欧洲精品视频发布| 91美女视频。| 日日黄色三级网站| 人看人人摸人人操| 黄色成年| 亚洲情色一区综合| 草莓精品视频在线免费观看| 蜜臀在线看片| 网友自拍第1页| 啪啪视频mP4| 国产精品分类在线观看| 亚州色图片在线色| 亚洲 中文 女同| 久久精品午夜国产亚洲AV无码| 亚洲精品国产精品乱码不卡| 欧美性爱系列| 看全色黄大色大片免费视频| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 亚洲图片视频小说| 久操免费视频| 色吧91| 色九色久| 视频一区二区免费在线| 亚洲暴力强奸AV| 亚洲 欧美 偷拍 唯美| 国产精品嫩草影院午夜两性 | 欧美精品另类人妖xxxx| 亚洲瓯美色图| 福利五区| 97欧美在线| 黄片qw| 免费精品无码一级毛片牛牛影视| 亚洲图片日本AⅤ欧美在线| 人人干人人操人人爱| 亚洲AV无码秘 蜜桃臀国精产品| 人妻91少妇| 欧美亚洲情色| 国产极品精品美女视频| 思思性爱| 97亚洲国产影视| 日韩99神马视频片| 五十路人妻在线| 另类av天堂| 久久久久久久六六| 九九九九精品视频| 欧美老妇曰批的视频| 日韩无码三级影院| 噜噜噜狠狠色综合| 五月天开心网| 人妻丰满熟妇一区二区三| 91无码人妻精品一区二区三区蜜桃 | 国产风韵犹存熟妇三区| 禁止观看美女黄| 亚洲欧美中文日韩视频中国语| 91精品无码久久久久久久 | 最新一二三区视频| 日韩三级一区| 极品极品色影院| 乱伦a片视频| 97视频在线免费观看| 久久天堂网| 日韩精品操少妇| 中文伊人大香蕉视频| 亚洲一本色道中文无码aV天美| 欧美视频一| 伊人网高清| 国产超碰欧美| 欧美写真视频一区| 久热最新在线杭州| 女人天堂av在线播放| 四虎精品亚洲| 欧美日韩亚洲电影| 曰本91情色| 极品内射| 国产妇女精品视频青青草| AV一二区| 久久嫩草国产成人一区| 精品国产少妇高潮视频| 精品无码欧美三级| yw尤物av无码点击进入麻豆| 中文字幕天堂在线| 影音先锋每日最新资源在线观看 | 99热官网| 刺激性视频黄页| 日韩精品国产精品五码一区二区| 韩国一级婬片A片AAAAA| 操逼操操操91| 丁香激情五月天| 开心激情婷婷| 人人天天欧洲| 精品射1999| 曰本精品久久久| 九九热超碰97亚洲最新香蕉| 美女的肌被草喷水视频| 国内操逼视频二区| 久久精品六区| 欧美在线播放| 99re热有精品视频国产| 园内精品自拍视频在线播放| 婷婷去俺也去六月色| 日逼国产| 婷婷啪啪| 九九九综合精品| 日日干夜夜操视频h| 麻豆久久久一区二区| 日韩欧美麻豆大片| 91欧美丨精品丨入口| 91影视亚洲| 欧美综合区| 日日爽夜夜爽| 蜜臀在线网站| 天天插夜夜操| 久久久久骚| 欧美国产操逼| 日本道不卡| 黑人免费福利视频| 蜜桃av综合网发布| 国产精品3| 精品久| 久热在线精品免费观看| 国产后入清纯| 91精品国产综合久久久蜜臀| 久久国产乱子伦精品免费女人| 国产精品在线一区二区| 超碰 另类 欧美 | 8050午夜少妇无码| 大JI巴好深好爽又大又粗视频| 啊啊啊不要啊啊受不了了视频在线| JIZZJIZZ国产精品喷水| 综合国产影视三级| 天天噜| 性爱视频久久| 九九久久国产精品| 97精品一区二区视频| 国产91久久九九免费精品无码| 精品一区二区三区蜜桃臀赵总 | 91天天| 成人国产精品三级A片| 亚洲国产剧情少妇激情| 欧美精品黑人猛交高潮| 亚洲色图超碰在线| 99精品九九九九九九| 欧美黄片欧美黄片xxx| 亚洲 欧美 91| 2020久久免费视频| 在线黄页看毛片| av橘色网站| 国产熟女完整版中字| 精品久久久久瑟瑟| 最新av中文字幕高清| 碰人碰碰人人开房人肉| 99热 按摩 日韩| 97WW精品| 国产在线76页| 97超碰69| 青青草白白色| 亚洲永久AV无码精品秋霞| 日本久操视频| 日韩人体偷拍| 欧美日韩少妇色情| 女人的天堂大香蕉网| 亚洲春色激情小说| 五月天婷婷欧美三区| 日欧操屄视频| 亚洲免费看片| 人人喜人人妻| 欧美亚男人的天堂| 熟妇熟女一区二三区| 精品人妻一区二区乱码一区二区| 91男人天堂网| 麻豆国产尤物AV| 91蜜桃婷婷狠狠久久综合9色| 99re超碰| 中日韩免费看男女操逼大全| 清纯唯美亚洲综合| 青草成人免费视频一com| 曰本特级特黄特色黄色A级网站高清在线免费看 | 久久婷综合| 亚洲欧美日韩精品久久久一区二区 | 精品人妻一区二区三区日产乱码| 成人怡红院| 狼人狠干| 日逼逼免费看| 亚洲人成网www| 亚洲天堂男人在线| 97午夜剧场日韩| 美女啊啊啊啊啊啊啊| 亚洲日韩AV视色| 综合影院亚洲| 久久精品视频28| 在线黄色污污网站| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 性爱AV天堂| 久久久久78| 亚洲九九视频在线观看| 丰满人妻一区二区三区色-百度| 欧美天天综合网| 男人的天堂午夜av| 亚洲综合成人网| 婷婷久久综合| 欧洲亚洲人妻无码中字久久三区四区| 人人九九精| 熟妇人妻丰满久久久久久久无码| 伊人热综合| 国产精品爽爽v| 久久性爱大全| 色欲人妻一区二区在线| 校园春色美腿丝袜 | 免费观看成人www精品视频| 久久国产逼| 无码日韩网站| AV丝袜少妇| 97欧美色| 日本十八禁免费看污网站| 五月丁香社区婷婷日韩欧美精品影院 | 婷婷激情丁香| 强奸乱伦AV网址| 影音先锋国产精品| 成人精品一区二区三区| 日韩成人性日韩成人性爱视频在线免费观看 | 亚洲āv网址在线观看| 国产性久久久| 久久久久日本视| 啊啊啊好疼| 精品人妻中文字幕高清| 探花激情视频| 97公开久久| 久久久久久九| 黄色av一区二区在线| 欧美色图天堂网m| 啊啊啊慢点| 亚洲国产麻豆一区二区三区 | 免费日韩黄片| 久久亚州高清| 久操免费在线| 亚洲第一页色| 日日不卡av| 久久99午夜精品一区人妻| 亚洲一区二区三区麻豆传媒| 欲色综合| 日韩啪啪网| 国产吹潮女在线观看| 亚洲国产成人精品999| 国产成人亚洲精品自产在线| 97爱爱官网| 99国产精品视频尤物| 欧美少妇一区二区三区| 操国产高清| 99操99| 久久久久婷婷精品av电影| 波多野42部无码喷潮在线观看 | 99日视频在线免费| www.色婷婷色综合| 麻豆一区二区三区在线看| 51一区二区三区| 亚热日本熟女| 日韩欧美中文日韩欧美色| 2000亚洲男人天堂| 视频在线观看免费一区二区三区| 99日免费视频中文字幕| 日韩精品 视频一区二区| 91丝袜在线视频| 久久透逼视频| 美女丝袜激情小说| 日本高清一区二区在线| 91丝袜美女视频| AV色天香在线| 手机在线A片| 在线中文AV| 91天堂色男人的天堂| 精品人妻一区二区蜜桃视频| 五月婷色| 9久在线视频只有精品| 中文字幕乱码人妻一区二区三区,99精品 | 免费黄色片子| 色噜噜国产精品视频一区二区| 人妻熟女一区在| 天天干18禁| 亚洲。日韩。欧美| 日本三级网页| 少妇激情一区二区三区视频| AV九九| 九九九热| 蜜臀久久精品久久久久视频| 91美女丝袜诱惑视频| 午夜福利合集| 用力操死我| 国产亚洲日韩在线三区黑人| 大逼色网站| 亚洲男人的天堂V| 国产aⅴ无码片毛片一级网站| 四虎精品永久在线观看| 国产四虎在线| 色婷婷导航| 国产成人拍国产亚洲精品| 激情人妻另类| 精品女人999| 免费一级精品啪啪视频| 在线不欧美| 日韩少妇无吗| 日日夜夜干| 九九综合久久中文字幕| 伊香蕉综合久久久久久久噜噜噜 | 干b网| 夜夜高潮夜夜爽高清视频一 | 日本精品第一视频在'| 亚洲在饯| 一本大道久| 91撸色网 玖玖网 欧美| 美日韩成人| 成人无遮挡毛片免费看| 94色色电影网| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 高清无码学生妹高潮| 91色鬼| 探花精品视频| 偷窥自拍A片| 午夜激情成人在线观看| 久久产精品一区二区三区电影| 激情四射婷婷六月天| 青青草吊丝| 亚洲激情综合| 色综合久| 综合色色网| 色在线综合| 国产视频人人网| 97视频播放| 精品一区99999| 国产高清不卡视频| 欧美狠狠弄| 欧美大码在线视频| 久久超碰久| 日日干日日| 激情九月婷婷| 亚洲色欲天天人妻无码系列专区| 99精品成人免费看| 亚洲一区二区三区四区视频| 最新国产亚洲精品精品国产亚洲综合 | 日日操天天操| 欧美日韩国产在线| 久久久中文| 国产做?爰片久久毛片?片美国| 日韩熟女乱伦中出| 亚洲图片日本AⅤ欧美在线| 亚洲日韩人妻中文字幕一区| 老司机福利青青草| 国产综合色精品在线观看| 伊人91| 97久久国产精品女不卡| 免费视频一二三区| 人妻精品免费一二三区| 国产99久久99热这里只有精品15| 18禁超污无遮挡无码免费网| 人人摸人人叼| 九九AV| 色97| 91性生活久久久| 99re8免费高清在线| 国产青视频| 欧洲精品久久| 无码二级三级| 97爱| 人人操人人搞人人草| 色欲无码人妻日韩欧美精品| 天天草天天干天天日| 亚洲性爱无码乱伦av| 韩国黄片aaaa| 国产18精品亚洲精品| 国产AV高清AV无码| 大鸡巴久久久| 蜜臀无码一区二区| 久久久久久九| 亚洲综合另类| 秋霞影音一区二区三区| 天天欧美色| 玖玖资源中文字幕制服丝袜| 久久这里只| 手机午夜电影神马久久| 国产农村一一级特黄毛片| 天天天天干| 嗯嗯啊啊亚欧精品| 91视频综合在线| 熟妇女伦乱视频| 国产精品一区二区亚洲人成毛片| 精品成人亚洲午夜电影| 久久久久久国产无码精品| 亚洲综合小说另类图欧美视频激情小说色五月天| 99热这里只有精| av线电影| 熟妇综合一区二区三区| 国产成人精品日本亚洲语言| Av色五月| 日日骚一区二区三区| 黄片视频观看| 婷婷亚洲天堂| 人伦四五区| 日本人妻中文字幕精品| 99啪啪| 后入福利视频| 欧美日产国产在线成人第一区| 99激情视频| 999 久久久| 放黄片放3级黄片没穿衣服| 鸡巴插逼视频| 99精品网站| 亚洲高清综合网| 日本女优在线视频福利| 97色视频在线| av亚欧| 五月丁香啪啪啪| 加勒比性爱成人在线| 男女猛烈无遮掩视频免费软件| 色色五月丁香| 亚洲交换| 久久AV无码网址| 啊啊啊啊操死我了| 国产精品4p在线观看| 亚洲黑丝在线| 97国产|免费| 日韩中文字幕精品一区在线| 久久久久久亚洲精品不卡人乳 | 91精品久久久久久77777| 久久久久国产精品人妻aⅴ天堂| 亚洲精品国产无码高清| 97视频7| 午夜福利国产欧美日韩夜夜| 人人摸人人干| 亚洲欧洲日本精品中文a∨| 免费精品人妻一区二区三| 玖玖蜜臀资源网| 欧美夜夜草视频| 啊啊啊啊啊啊在线看| 啊啊啊想要| 国产精品视频精品一二| 精品九九国产无码| 国产精品 午夜福利| 啪啪性爱免费视频| aaa淫乱视频| 欧美日韩不卡a片| 91欧美性| 久久伊人五月天| 欧美亚洲手机在线| 伊人97色天使| 18啪啪手机免费性爱| 目产99999久久999| 乱伦熟女区| 国产精品9999| 97超碰天天爱天天爱| AV在线性爱| 亚洲九九视频在线观看| 99啪啪| 欧美一级在线观看成人| 一本一首道人妻少妇免费久久| 天天爽天天操啊啊啊| 欧美黑人猛交春色影视大全| 久久丁香久草综合网| 精品美女少妇一区二区三区| 亚洲一区二区精品福利| 酒色综合网| 欧美精品91| 无码人妻丰满热妇又大又粗| 另类小说欧美激情校园春色| 黑人中出21连凳花野真衣| 国产精品一区午夜福利| 日本媚薬中文字幕在线| 91色图片| 无码国产精品午夜不卡(| 日B操| 亚洲久草AV色图| 国产人妻精品久久久一区二区三区| 免费成人在线观看91| nuu12国产麻豆精品| 久久大香蕉手机高清视频| 色官网色综合| 一起草高清无码| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 黄色AV影视| www.大香| 亚洲阿v天堂在线| 亚洲国产蜜臀系列在线观看| 91丨国产丨白浆| 日韩国产乱子伦App| 99中文字幕| 香蕉av一区二区三区| 超AV色女| 五月综合视频| 综合欧美日韩在线观看| 精品亚洲成人免费在线| 另类小说欧美激情校园春色| 久欲AV| 麻豆天美制片厂网站视频| 麻豆这里只有精品| 国产精品嫩草影院免费| 日本天天吊| 日韩黄色一区二区三区| 欧美黄色大片在线观看 | 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 99在线无码精品秘 入口黑人 | 亚洲精品一二三四区| 亚洲欧美经典一区二区| 成人免费福利网站国产| 精品国产无码中文| 国产精品精品系列在线观看| 亚洲 欧美 色图| 骚日日av| 亚洲欧美综合网| 人人操人人精品影片| 人妻少妇精品久久久| 色天使大香蕉| 精品久久久久黄少妇| 久久一二区四| 91色鬼| 欧美专利1区2区3区4区5区免费| 国产一级片| 女人高潮大叫一级毛片| 精品一区二区成人动漫| av天堂手机版追回| 亚洲日韩成人性爱视频| 福利在线黄片| 动漫爆乳3D奶水一区在线观看| 亚洲av无线观看| 乱伦日本色图AⅤ| 在线强奷到舒服的无码视频 | 色天天野狼综合社区| 亚洲日本大香蕉1| 欧美综合色| 日韩性色| 搡老熟女免费视频 | 欧美顶级黄色大片免费| 视频分类 国内精品| 国产a级午夜毛片| 成人丁香五月| 99久久这里只有精品| 青青草吊丝| 久久久性爱视频| 岛国在线国产| 永久免费发布性爱网| 中文字幕精品一区二区精| 风流老熟女一区二区三区l| 黄色片大香蕉| 天天欧美色| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 五月天精品| 丰满少妇一区二区三区四区观看| 欧美中字二区| 怡春院久久| 天天干天天操天天操夜夜操天天操 | 国产成人网站在线观看| 99久久久无码| 欧美人人天天网| 色爱亚洲| 乱伦1色页| 激情综合五月| 情侣操 逼视频99| 99久在线精品99re8蜜桃| 51国产午夜精品视频| 人人妻人人狠人人| 欧美美女啪啪视频| 91亚.色| 日本爽爽爽爽爽爽免费视频| 日韩AV无码中文一区二区| 另类综合另类| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 最新av在线| 日韩欧美女求操每天更新| 国产成人超碰在线| 婷婷五月综合在线| 麻豆 亚洲 97| 国产激情视频一区区三区| 日韩AV无码中文一区二区| 91网站18在线观看| 伊人久大| 一区二区三区探花在线观看| 9/A片 | www.五月天| 男女日B国产| 99久久婷婷国产综合| 亚洲第一色页夜| 午夜国产成人福利视频| 麻豆熟妇乱妇熟色A片在线看| 2017,超碰| 亚洲 欧美 色图| 伊人网综合在线视频| 亚洲国产精品久久久久久久久久| 亚洲综合夜色| 国产成人精品必看| AV一二区| 超碰91在线| 色吧五月| 精品国产乱码久久久久久日本公司| 岛国免费视频在线| 北京专精特新企业招聘信息| 天天天干977| 亚洲无码久久久久久久| 亚洲无限观看| 日本性爰一道本| 日本丝袜美腿人妻九九| av网站免费看| 午夜天天碰综合视频| 亚洲天堂资源网| 激情综合五月天| 2017,超碰| 亚洲中文字幕av| 久久久久极品| 在线性黄高清免费视频| 屁股久久久久久久久| 黄色av网站在线播放| 884t在线| 做爱A级亚欧| 久久国语| 国语对白在线播放视频| nuu12国产麻豆精品| 入口操逼网站| 超碰色大香蕉| 欧美亚性天堂| 毛片一区二区| 99热免费精品| 国产精品呦一区二区三区| 亚洲天天影视色综合| 黄色av片三级三级三级免费看| 欧美最大综合网| 精品亚洲国产成人AV制服丝袜| 精品人妻一区二区蜜桃视频| 色婷婷丁香五月| 五十路熟女人妻一区二区在线观看| 欧美综合骚| 国产女人高潮视频| 尤物av网站免费在线播放| 天美一二三在线观看Av| 国产大学生口爆吞精合集| 骚货 中文字幕 av| 夜夜操二区| 一个国产在线综合网站| 最新9久久久9免费视频| 色一情一乱一乱一区91Av| 中文字幕一区二区视频在线观看| 三上制服丝AV| 欧美性爱一级操| 97超碰欧美中文字幕| 色狠人在线99| 牛黄色久午久| 欧美欧美啪啪视频| 亚洲drav色图| 玖玖综合.com| 淫荡熟女乱伦网| 久久婷婷成人综合色怡春院| 久偷拍| 在线精品福利免费播放| 亚洲国产成人精品女人久久久| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚 | 夜夜欧美 | 日产操逼| chaopen97久久| 91 国产丝袜在线放观看 | 欧美性Fer办公室秘书| 999狠狠综合| 国产欧美岛国精品一区| 91亚洲高清| 女上位精品在线| 亚洲一区二区三区麻豆传媒| 超碰在线国产| 亚洲91在线播放影院| 人妻少妇精品| 97人妻人人躁人人玩人人| 国产夜夜操| 丁香五月天激情| 狠狠操夜夜| 99人妻碰碰碰久久久久禁片| 性感美女91影视| 亚热日本熟女| 国产嫩草精品A88AV在线| 欧美日韩99| 久久久久久久亚洲Av无码| 人妻天天爽天天爽三区| 91高清欧美| 丝袜天堂网| 日韩电影天堂视频二区三区| 久久久久久久久999| 老鸭窝日丰县女人| 久久99草| 啊啊啊不要啊啊受不了了视频在线| 色噜噜狠狠色综合日日| 岛园激情| 日韩美女操b| 天天谢天天干| 国产一区二区成人av在线播放| 国产视频第二页| www.久久超碰| 亚州精品人妻一二三区| 天天干夜夜肏| 伊人久久亚洲色欲综合网站| 最新av在线| 大香蕉宅男伊人| 久久AV无码1区2区3区| 天天干一区二区| 久久国产精品91| 午夜精品99久久久久传媒| 亚洲男人天堂Av| 伊人亚洲国产一成人久久精品,久久| 欧美亚洲中文字幕| 亚洲精品精品一区二区| 欧美极度丰满熟妇hd| 欧美视频边做饭边橾| 黄片无码在线制服| 欧美久久伊人| 99操逼| 久久女人一区二区三区| 女色视频社区| 熟妇一区二区三区| 撸撸成人在线视频| 青草视频人妻在线观看| 国产精品在线一区二区| 高清孕妇孕交 交孕妇| 97网站在线观看| 欧美 色 亚洲| 欧美综合自拍| 岛国片在线视频网站| 老熟女乱子伦中文字幕一区二区| 91高清无码下载| 欧美很很操视频| 校园春色制服丝袜中文字亚洲| 超碰 97国产熟女| 欧美另类自拍 | 伊人久操| 夜夜肏2021| 久久99手机免费视频| 97热视频在线观看| 男女啊啊啊啊啊| 免费人成毛片乱码| 在线欧美69V免费观看视频| 蜜桃无码AV一区二区| 欧美另类色图片| 玖玖资源中文字幕制服丝袜| 大干人妻| 丁香婷婷五月| 国产综合网站在线播放| 91狠| 夜夜骑操视频| 久久久久久久97| 国产AV色黄看到爽| 亚洲色啪| 久久超碰大香蕉| 国产白丝网站| 啊啊啊好湿久久| 亚洲性少妇| 97干97色| 91小视频| 一区二区三区日韩欧美| www.成人无码| 国模私拍一区二区三区神乳| 欧美日韩操逼嗦吊| 日本99一区二区| 东北女人高潮视频| 亚洲精品国产专区在线观看| 中文字幕日韩综合| 久久久熟女一区| 日本成熟少妇A∨网站| 久久露脸国产老熟女| 另类av天堂| 亚洲资源站| 午夜黄色免费在线观看| 人妻人人澡人人爽人人| 久久久一区二区三区四区五区| 乱欲一区二区| 麻豆AV短剧| 亚洲一区二区在线观看91| 久精品无码av一区二免费国产在线观看| 91蜜臀在线久久久久| 婷婷10月天青娱乐| 这里只有精品视频在线观看麻豆| 欧亚乱色熟一区二区三四区| 91黄站| 操逼网站视频漫画国产| 欧美国产一区二区三区麻豆传媒| 97爱综合| 夜夜爽77777| 97精品一区二区视频在线观看| 日韩Va亚洲va欧美Ⅴa久久| 人人操天天爽| 国产精品电影大全| av中文字幕在线熟女| 超碰99在线| 狠狠色丁香| 97色欧洲| 久久xxxx| 精品人妻一区二区三区不卡断| 操逼视频免费日韩无码| 日本精品久久久久久久| 国产女人与拘做受视频免费| 日本一天色道久久久精品视频| 欧美精品精品一区二区| 自拍盗摄一区| 97精品一区二区视频| 超碰在线974| 国产精品一二三区18| 91网站18在线观看| 老女人综合网| 国内精品不卡无毒99999| 亚洲av青草久久一区二区| 亚洲有薄码区日本系列中文字幕| 麻豆91熟妇人妻中文字幕茄子| 色婷婷丁香五月天| 九九热精品| 大香蕉手机在线视频| 中文字幕97| 天天摸夜夜摸| 国产一区二区在线播放量| 婷婷五月天无码| 少妇高潮特黄A片| 久射吧| 久久麻豆一区二区| 亚洲成人激情小说视频| 偷拍超碰| 成人性爱美曰韩| 亚洲精品蜜桃久久久| 亚洲欧洲另类| 69视频入口| 精品性爱久久视频| 国产做?爰片久久毛片?片美国| 91精品丝袜久久久久久| 97超碰69| 成人一级性爱| 亚洲性综合11| 青青操97| 日欧亚洲二三区大片不卡| 素人伊尹大香蕉免费下载视频| 这里只有精品视频| 国产精品久久aV| 校园春色宗合网| www久久久| 天天爽夜夜爽夜夜爽精| 久久久国产护士丝袜美腿一| 亚洲激情网一二三四区| 欧洲亚洲国产综合在线| 欧美亚洲韩国视频十五区 | 美女网站黄页| 一道本久久棕合爱| 男人的天堂午夜av| 日韩91网| 韩国女主播青草在线| 乱伦熟女区| 无码人妻一区二区三区色欲aⅴ| 欧亚日韩综合精品国产| 一色网男人的天堂| 国语精品内射在线观看| 国产99热| 亚洲九九爱| 99精品丰满人妻无| 亚洲砖码砖专无区2023| 亚洲国产美女久久久久| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 强上我不卡卡| 色人久久| 国产熟女乱论| 亚洲一区中文精品| 99久久99九九99九九九| 中文字幕女同在线| 97网址www| 91粉嫩萝控精品福利网站_精品影音先锋国 | 老熟女综合网| 日产123区精品免费观看| 精品视频日日夜夜| 日韩中文字幕二区| 久久av成人无码免费| 五月天婷婷在线看| 欧美 亚洲| 国产精品对白自产拍| 亚熟hd视频在线| 99爱久久视频频| 丁香五月天啪啪| 人妻日日干| 中文日本免费高清| 欧美亚洲自拍另类人妻| 青青五月天| 人妻天天爽夜夜爽2| 青青草乱入乱欲视频在线观看| 九九视品黄色| 男人天堂2012| 91九色首页| 国产精品一区二区黄片| 日韩欧美午夜视频在线| 欧美日韩不卡a片| 狠狠色伊人亚洲综合网站色| 久久久新亚洲AV| 日韩9区| 日韩91网站| 久久久久久久久久久久97| 欧美高潮| 久久偷偷色综合蜜桃| 天天综合网AV91| 精品乱码久久久久| 亚洲情色在线| 人妻社区男人天堂| 久久久久久久久久久久黄色 | 好看的久久不射无码影视影院| 国产综合久久久鬼色| 操美女人妻| 97se综合网| 久久伊人青青草| 黄资源| 1024午夜激情男人的天堂| 色香伊人| 亚洲在线综合| 欧美亚洲特P| 色妺妺AⅤ| 夜夜爽夜夜爽| 97无码视频在线播放| 99国产精品人妻人伦| 激情五月天网站| 国产不卡精品91| 欧美色997| 久久久禁| 少妇精品久久久八区九区| 91蜜桃传媒精品久久久一区二区| 岛国天天午夜影院传媒网| 91在线观看,天天综合| 9118禁| 亚洲春色欧美激情自拍| AV和黑人在线播放| 探花一区在线| 6080yy午夜理论三级一区二区三区无码 | 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 男人天堂日日夜夜| 亚州国产成人精品女人久久| 夜夜春夜夜操| 夜夜嗨视频| 八戒午夜福利理论片| 国产亚州高清国产拍精| 天天爽天天爽| 久久中文色图| 91久久久久| 日本一区二区不卡| 国产成年免费大片黄在线观看| 一区二区三区视频在线观看免费| 开心激情站| 日日黄色三级网站| 四虎av在线| 人妻干天天| 激情色色| 嗯嗯,好大,好爽,好骚| 久久久999国产精品| 亚洲欧洲日本精品中文a∨| 国模少妇一区二区三区| 青青草亚洲一区| 日韩无码服务区| 69av一区二区三区| 亚洲综合成人网| 国产精品网站www| 日本大香蕉综合网| 黄片免费看的| 99热综合在线| 97网站在线观看 | 人妻天天操天天爽视频免费| 欧美一品道| 欧美欧美啪啪视频| 大香蕉人妻| 亚洲熟久久| 无码高清操逼| 日本久久99| 日产123区精品免费观看| 91综合色噜噜| 99久视频| 91男人天堂网| 青草草免费网站av| 97色冈| 嗯嗯不要视频| 国产小视频91| 伊人久久蜜月| 国产三级资源在线观看| 老鸭窝亚洲毛片| 亚洲高清91| 国模精品一区二区三区苹果色戒 | 一二三四视频中文字幕在线看| 激情文学网伊人| 正宗无毛一线天嫩逼| 国产www色在线观看| 乱老熟女一区二区三区| 欧美一级A一级a爱片久久| 日本色色网| 国产2.3.4区| 老司机射| 亚洲黄色视频在线观看视频| 色性欧美| 欧美AB在线| 五月天社区| 亚洲欧美97| 久久99综合| 东北女人性交| 日本污ww视频网站| 懂色av中文字幕| 欧美强奸一区二区诱惑| 国产视频第2页| 中文字幕日韩人妻视频一区二区三区| 夜夜狠狠躁日日躁色视频| 亚洲天堂五月天国产| 国产视频一区二区三区久久亚洲天堂| 色欲av国内精品久久久久久| 亚洲午夜免费狠狠干| 狼人狠干| 日韩欧美亚洲国产日韩| 97视频在线免费观看| 国产日本熟女顶级一区二区三区视频| 99热这里只有精品18| 国语人妻精彩刺激| 亚洲av噜噜噜噜噜噜| 亚洲国产综合久久久性感熟妇| 欧美色女人| 欧美五区| 国产精品美女久久久久AⅤ国产馆| 十八禁黄色成人网站观看| 大黄片做爱的大的| 成人天天爽| 最新国产精品久久精品| 91精品丝袜久久久久久| 青青草原人妻| 五月婷婷丁香六月丁香| 久草精品一区 | 加勒比大香蕉视频在线| 日韩欧美加勒比| 欧美少妇第一页| 丁香六月激情| 亚洲影视高清第一页| 99热只有| 岛国免费视频在线| 亭亭在线资源| 狠狠爱综合网| 视频一区二区免费在线| 综合天天网| 不卡啪啪视频| 加勒比伊人| 久久同城AV| 99热这里只有精品99| 成年人网站在线免费观看| 中文字幕人乱码中文字的预防方法| 久久久久久AⅤ无码免费肉站 | 国内毛片国产专区二| 欧美成人精品欧美一级乱黄一区二…| 美女露胸露尿口| 久久国产乱子伦精品免费女人| 超碰偷拍| 青青草吊丝| 欧美特大黄一级片片免费| 啊啊啊想要| 国产精品久久久久久9999| 夂久色| 在线国产福利网址导航| 久久99国产精品| 黑人与人妻| 裸体美女国产免费久久久网站| 伊人精品久久网站| 中文字幕激情小说| 亚洲美女色图| 欧美色图天堂在线| 久草视频在线视频在线视频在线观看| 无码聚合| 天天综合精品| 亚洲最新a在线观看| 91中文字幕| 免看60秒涩涩视频| 欧美日韩理论一区| 欧美A√综合网 | 国产免a费看黄片在线| 亚洲人妻日日日| 欧美一区二区三区黄色影视| 大香蕉伊利av| 成人在线视频网| 亚洲欧美综合区自拍另类| 91超碰在线| 97超级久久| 日本精品九九九| 超碰在线人妻不卡| 国产精品交换一区二区| 国产精品自在自拍视频| 欧美大波激情xxxx| 97超碰香蕉| 亚洲综人网| 97超碰总站| 西西美女视频网| 91在线视频免费中出| 99re视频在线观看这里只有精品| 蜜乳AV一区二区三区四| 少妇一区二区三区精选| 综合久久少妇中文字幕| 凌辱美少妇久久aV| 国产美女91| 色综合 加勒比| 乱码人妻一区二区三区| 欧美少妇性乱| 97色97好| 吉川爱美98堂在线| 日韩紧密久久| juliaann精品熟女一区| 天美传媒一二三区永久网站| 在线另类| 亚洲无码色| 五月丁香| 在线观看一卡二卡| 午夜天堂精品久久久久91| 欧美日韩99| 婷婷五月在线视频| 亚洲.欧美.丝袜.中文.综合| 99精品在线观看| 亚洲宅男天堂| 97超碰jingpin| 久久a久久| 日本淫色网| 国产精品乱码久久久久久久久久久久| 狼人综合婷婷激情四射 | JIZZJIZZ国产精品喷水| 1769一区二区| 色一色综合网| 五月丁香激情综合| 大香交伊人网| 精品无码久久久| 蜜伊人色综合97| 97 九色| www.av不卡中文字幕| 人妖欧美一区二区| 91成人无码|