免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

KLayout macOS 源碼構(gòu)建完全指南:build4mac.py 從模塊組合、編譯部署到 QA 測(cè)試與 DMG 打包

KLayout macOS 源碼構(gòu)建完全指南:build4mac.py 從模塊組合、編譯部署到 QA 測(cè)試與 DMG 打包 硬件開發(fā)桌面應(yīng)用圖形學(xué)【免費(fèi)下載鏈接】klayoutKLayout Main Sources項(xiàng)目地址https://gitcode.com/gh_mirrors/kl/klayout點(diǎn)擊查看免費(fèi)下載本文以 KLayout 倉庫中macbuild目錄的官方構(gòu)建說明 macbuild/ReadMe.md 為主體完整覆蓋 KLayout 0.30.9 在 macOS 上的源碼構(gòu)建全流程如何選擇 Qt5/Qt6 與 Ruby/Python 模塊組合、如何調(diào)用build4mac.py完成編譯與部署、如何用macQAT.py運(yùn)行ut_runner單元 QA 測(cè)試、以及如何用makeDMG4mac.py制作可分發(fā)的 DMG 安裝包。讀完本文你能夠在一臺(tái) Intel x86_64 或 Apple Silicon 的 Mac 上獨(dú)立復(fù)現(xiàn) KLayout 的 macOS 原生構(gòu)建并理解輸出包目錄命名ST-/LW-/HW-/EX-背后的源碼級(jí)邏輯。1. 適用系統(tǒng)與構(gòu)建目標(biāo)macbuild目錄包含構(gòu)建 KLayout適用版本 0.30.9 及以上所需的全部 macOS 構(gòu)建文件。根據(jù) macbuild/ReadMe.md 的說明當(dāng)前支持的 macOS 版本為macOS 版本狀態(tài)Golden Gate (27.x)實(shí)驗(yàn)性在 M4 Mac Mini 上驗(yàn)證Tahoe (26.x)實(shí)驗(yàn)性在 M4 Mac Mini 上驗(yàn)證Sequoia (15.x)主開發(fā)環(huán)境Sonoma (14.x)實(shí)驗(yàn)性對(duì)更早的操作系統(tǒng)Ventura 13.7.8、Monterey 12.7.6、Big Sur 11.7.10、Catalina 10.15.7、Mojave 10.14、High Sierra 10.13、Sierra 10.12、El Capitan 10.11的構(gòu)建支持已經(jīng)停止也不再提供預(yù)構(gòu)建的 DMG 包。原文檔說明這些舊系統(tǒng)中 Ventura 與 Monterey 上構(gòu)建理論上仍可能成功但已不屬于官方維護(hù)范圍。這一點(diǎn)可以從源碼得到印證macbuild/build4mac.py 中的Get_Default_Config()通過platform.uname()解析 OS 主版本號(hào)并映射為平臺(tái)名27→GoldenGate、25→Tahoe、24→Sequoia、23→Sonoma、22→Ventura、21→Monterey而對(duì)非Darwin系統(tǒng)或未列出的發(fā)行版會(huì)直接打印錯(cuò)誤并sys.exit(1)。需要特別注意的架構(gòu)限制從源碼結(jié)構(gòu)看macbuild/build4mac.py 要求機(jī)器為x86_64若檢測(cè)到arm64Apple Silicon且平臺(tái)在支持列表中則會(huì)設(shè)置環(huán)境變量QMAKE_APPLE_DEVICE_ARCHSarm64以構(gòu)建原生 ARM64 版本。原文檔指出其主線目標(biāo)機(jī)器是Intel x86_64 macOS SequoiaApple Silicon 環(huán)境的詳細(xì)構(gòu)建流程雖然與 Intel Mac 基本相同但文檔未單獨(dú)展開。2. Qt 框架的選擇KLayout 的 macOS 構(gòu)建依賴 Qt 圖形框架。原文檔給出的三種來源默認(rèn)MacPorts 的 Qt5通常位于/opt/local/libexec/qt5/Homebrew 的 Qt6通常位于/usr/local/opt/qt6/Apple Silicon 上為/opt/homebrew/opt/qt6/Anaconda3 的 Qt6安裝配置稍復(fù)雜見第 7 節(jié) 6F 用例。macbuild/build4mac_env.py 是這些模塊路徑的集中定義文件。它為每個(gè) Qt 來源定義了qmake、macdeployqt與libdir三個(gè)關(guān)鍵路徑例如Qt5MacPorts { qmake : /opt/local/libexec/qt5/bin/qmake, deploy: /opt/local/libexec/qt5/bin/macdeployqt, libdir: /opt/local/libexec/qt5/lib } Qt6Brew { qmake : %s/opt/qt6/bin/qmake % DefaultHomebrewRoot, deploy: %s/opt/qt6/bin/macdeployqt % DefaultHomebrewRoot, libdir: %s/opt/qt6/lib % DefaultHomebrewRoot }其中 Homebrew 根目錄按架構(gòu)自動(dòng)區(qū)分x86_64機(jī)器取/usr/localarm64機(jī)器取/opt/homebrew見 macbuild/build4mac_env.py。對(duì)于 Anaconda3Qt5/Qt6 分別安裝在虛擬環(huán)境klayout-qt5/klayout-qt6下x86_64 位于/Applications/anaconda3/envs/arm64 位于/opt/anaconda3/envs/Qt6 環(huán)境使用qmake6與macdeployqt6可執(zhí)行文件。原文檔還給出兩點(diǎn)重要提示Qt6 遷移仍在進(jìn)行中可用但可能遇到構(gòu)建或運(yùn)行時(shí)錯(cuò)誤構(gòu)建 KLayout 0.29.0 且使用 Homebrew 環(huán)境時(shí)必須使用 Qt6 6.7.0以解決上游報(bào)告的一個(gè) Qt5 編譯問題原文檔引用了上游 issue #1599。3. 腳本語言支持Ruby 與 Python 的模塊組合KLayout 支持 Ruby 與 Python 兩種對(duì)象腳本語言構(gòu)建時(shí)通過build4mac.py的組合參數(shù)決定綁定哪種語言、以及語言解釋器來自哪個(gè)軟件包管理器。macbuild/build4mac_env.py 按以下維度組織字典Rubynil不綁定/Sys各 macOS 版本系統(tǒng)自帶的 Ruby 2.6解釋器位于/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby頭文件與libruby.tbd取自 Xcode SDK 或 Command Line Tools SDK/MP34MacPorts Ruby 3.4/opt/local/bin/ruby3.4/HB34Homebrew Ruby 3.4{Homebrew 根}/opt/ruby3.4/Ana3Anaconda3 環(huán)境內(nèi)的 Ruby 3.4Pythonnil/Sys系統(tǒng) Command Line Tools 自帶的 Python 3.9框架位于/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework//MP314、MP313MacPorts Python 3.14/3.13位于/opt/local/Library/Frameworks/Python.framework//HB314、HB313、HB311Homebrew 對(duì)應(yīng)版本/HBAuto自動(dòng)探測(cè) Homebrew 中最新的 Python 3.x/Ana3Anaconda3 環(huán)境內(nèi) Python。其中HBAuto的實(shí)現(xiàn)值得注意macbuild/build4mac_env.py 用正則掃描{Homebrew 根}/opt/python*/Frameworks/Python.framework按版本號(hào)排序取最大者若系統(tǒng)完全沒有 Homebrew Python會(huì)打印 WARNING 并禁用該選項(xiàng)。每個(gè)模塊字典統(tǒng)一包含exe解釋器、inc頭文件目錄、lib動(dòng)態(tài)庫三項(xiàng)供后續(xù) qmake/make 階段生成正確的編譯鏈接參數(shù)。4. 構(gòu)建前置條件按照原文檔第 4 節(jié)構(gòu)建前需要準(zhǔn)備與目標(biāo) macOS 匹配的最新 Xcode 與 Command Line ToolsMacPorts 的 Qt5或 Homebrew / Anaconda3 的 Qt6來自 MacPorts、Homebrew 或 Anaconda3 的libgit2可選MacPorts、Homebrew 或 Anaconda3 的 Ruby 與 Python 包。對(duì)于 Ruby/Python 的具體版本匹配要求原文檔要求參考 macbuild/build4mac_env.py 中各字典項(xiàng)注釋里列出的安裝命令如sudo port install ruby34、brew install python3.14、conda install -y --override-channels -c conda-forge ruby3.4.7等。5. build4mac.py 命令行選項(xiàng)詳解macbuild/build4mac.py 是 macOS 構(gòu)建的頂層 Python 腳本操作系統(tǒng)類型會(huì)被自動(dòng)檢測(cè)-q選項(xiàng)的默認(rèn)值按平臺(tái)生成GoldenGate/Tahoe/Sequoia/Sonoma 上默認(rèn)組合為qt5macportssyssys。完整選項(xiàng)表如下繼承自原文檔第 5 節(jié) Usage of build4mac.py for building KLayout 0.30.9 or later on different Apple macOS platforms. $ [python] ./build4mac.py option argument : descriptions (refer to macbuild/build4mac_env.py for details) | default value ------------------------------------------------------------------------------------------------------- [-q|--qt type] : case-insensitive type[Qt5MacPorts, Qt5Brew, Qt5Ana3, | qt5macports : Qt6MacPorts, Qt6Brew, Qt6Ana3] | : Qt5MacPorts: use Qt5 from MacPorts | : Qt5Brew: use Qt5 from Homebrew | : Qt5Ana3: use Qt5 from Anaconda3 | : Qt6MacPorts: use Qt6 from MacPorts (*) | : Qt6Brew: use Qt6 from Homebrew (*) | : Qt6Ana3: use Qt6 from Anaconda3 (*) | : (*) migration to Qt6 is ongoing | [-r|--ruby type] : case-insensitive type[nil, Sys, MP34, HB34, Ana3] | sys : nil: dont bind Ruby | : Sys: use [GoldenGate|Tahoe|Sequoia|Sonoma]-bundled Ruby 2.6 | : MP34: use Ruby 3.4 from MacPorts | : HB34: use Ruby 3.4 from Homebrew | : Ana3: use Ruby 3.4 from Anaconda3 | [-p|--python type] : case-insensitive type[nil, Sys, MP314, HB314, Ana3, | sys : MP313, HB313, | : HB311, HBAuto] | : nil: dont bind Python | : Sys: use [GoldenGate|Tahoe|Sequoia|Sonoma]-bundled Python 3.9 | : MP314: use Python 3.14 from MacPorts | : HB314: use Python 3.14 from Homebrew | : Ana3: use Python 3.14 from Anaconda3 | : MP313: use Python 3.13 from MacPorts | : HB313: use Python 3.13 from Homebrew | : HB311: use Python 3.11 from Homebrew () | : () required to provide the legacy pip in HW-*.dmg | : HBAuto: use the latest Python 3.x auto-detected from Homebrew | [-P|--buildPymod] : build and deploy Pymod (*.whl) for LW-*.dmg | disabled [-n|--noqtbinding] : dont create Qt bindings for ruby scripts | disabled [-u|--noqtuitools] : dont include uitools in Qt binding | disabled [-s|--no32bitcoord] : dont use short (32bit) coordinates; use long (64bit) instead | disabled [-g|--nolibgit2] : dont include libgit2 for Git package support | disabled [-m|--make option] : option passed to make | --jobs4 [-d|--debug] : enable debug mode build; AddressSanitizer (ASAN) is linked | disabled [-c|--checkcom] : check command-line and exit without building | disabled [-y|--deploy] : deploy executables and dylibs, including Qts Frameworks | disabled [-Y|--DEPLOY] : deploy executables and dylibs for those who built KLayout | disabled : from the source code and use the tools in the same machine | : ! After confirmation of the successful build of klayout.app, | : rerun this script with BOTH: | : 1) the same options used for building AND | : 2) -y|--deploy OR -Y|--DEPLOY | : optionally with [-v|--verbose 0-3] | [-v|--verbose 0-3] : verbose level of macdeployqt (effective with -y only) | 1 : 0 no output, 1 error/warning (default), | : 2 normal, 3 debug | [-?|--?] : print this usage and exit; in zsh, quote like -? or --? | disabled結(jié)合源碼可以補(bǔ)充幾點(diǎn)文檔未展開的實(shí)現(xiàn)細(xì)節(jié)選項(xiàng)解析-q/-r/-p的值經(jīng)大寫化后在候選字典中查找大小寫不敏感非法取值會(huì)打印錯(cuò)誤并終止見 macbuild/build4mac.py。-y與-Y互斥兩者同時(shí)傳入會(huì)報(bào)錯(cuò)退出-yfull deploy會(huì)內(nèi)嵌 Qt及視組合內(nèi)嵌 PythonFramework-Ypartial deploy只部署可執(zhí)行文件與 dylib不內(nèi)嵌 Qt[5|6]/Ruby/Python因此適用于在本機(jī)源碼構(gòu)建、本機(jī)直接使用的場(chǎng)景。版本號(hào)來源KLayout 版本從項(xiàng)目根目錄的version.sh讀取見 macbuild/build4mac.py 的GetKLayoutVersionFrom(./version.sh)最終參與包目錄命名。-m選項(xiàng)默認(rèn)--jobs4直接透?jìng)鹘omake-d開啟 debug 模式并鏈接 AddressSanitizer。輸出包目錄命名規(guī)則源碼級(jí)解釋構(gòu)建/部署完成后產(chǎn)物位于一個(gè)形如ST-qt5MP.pkg.macos-Sequoia-C32-release-RsysPsys的目錄。目錄名由 macbuild/build4mac.py 按模板%s%s.pkg.macos-%s-%s-%s-%s % (PackagePrefix, qt, Platform, coordSize, mode, ruby_python)生成各段含義目錄名片段含義ST-標(biāo)準(zhǔn)包standard內(nèi)嵌 Qt使用系統(tǒng)自帶 Ruby 2.6 與 Python 3.9LW-輕量包lightweight不內(nèi)嵌 Qt[5|6]、Ruby、Python可加--buildPymod附帶*.whlHW-重量包heavyweight內(nèi)嵌 Qt 與 Homebrew Python 3.11 的 FrameworksEX-特殊組合exceptional不落入上述三類的模塊組合qt5MP/qt5Brew/qt5Ana3/qt6MP/qt6Brew/qt6Ana3所用 Qt 來源Sequoia等macOS 平臺(tái)名C32/C64坐標(biāo)表示為 32 位整數(shù)默認(rèn)/ 64 位整數(shù)-s選項(xiàng)release/debug構(gòu)建模式-d選項(xiàng)RsysPsys等Ruby 與 Python 模塊標(biāo)識(shí)如Rmp34Pmp314、Rhb34Phb314、RsysPhb311、Rana3Pana3從源碼結(jié)構(gòu)看前綴的判定邏輯集中在 macbuild/build4mac.py-Y一律LW--y時(shí)若 Ruby 與 Python 均為系統(tǒng)自帶則為ST-EmbedQtTrue若 Python 為 Homebrew 3.11或 HBAuto 恰好解析到 3.11則為HW-EmbedQtTrue、EmbedPython3True其余為EX-且HW-包要求 Qt 來自 MacPorts 或 HomebrewAnaconda3 的 Qt 不允許內(nèi)嵌不滿足時(shí)直接退出。6. 實(shí)戰(zhàn)用例6A6H以下各用例中的實(shí)際文件名取自 macOS Sequoia 環(huán)境在不同 macOS 上平臺(tái)名等片段會(huì)相應(yīng)變化。所有構(gòu)建用例的共同流程為*安裝依賴 → 調(diào)用build4mac.py構(gòu)建約一小時(shí)→ 用相同構(gòu)建參數(shù)加-y/-Y重新運(yùn)行以部署klayout.app內(nèi)的可執(zhí)行文件與 dylibbuddy 命令行工具 strm一并部署到klayout.app/Contents/Buddy/→ 將klayout.app拷貝到/Applications**。6A. 標(biāo)準(zhǔn)構(gòu)建系統(tǒng)自帶 Ruby/Python MacPorts Qt5安裝 MacPorts 后安裝 Qt5 與 libgit2$ sudo port install coreutils $ sudo port install findutils $ sudo port install qt5 $ sudo port install libgit2確認(rèn)系統(tǒng)自帶 Python 存在/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/*原文檔說明撰寫時(shí)該 Python 版本為3.9.6與源碼字典PythonSequoia指向的Python3.framework/Versions/3.9一致。調(diào)用構(gòu)建腳本這些選項(xiàng)在 Tahoe/Sequoia/Sonoma 上即默認(rèn)值$ cd /where/build.sh/exists $ ./build4mac.py -q qt5macports -r sys -p sys確認(rèn)構(gòu)建成功約一小時(shí)取決于機(jī)器配置。用相同選項(xiàng)加-y重新運(yùn)行將可執(zhí)行文件與庫部署到klayout.app內(nèi)$ ./build4mac.py -q qt5macports -r sys -p sys -y產(chǎn)物位于ST-qt5MP.pkg.macos-Sequoia-C32-release-RsysPsys目錄ST-標(biāo)準(zhǔn)包qt5MPMacPorts Qt5C3232 位坐標(biāo)RsysPsys系統(tǒng) Ruby 2.6 系統(tǒng) Python 3.9。 4. 將生成的klayout.app拷貝/移動(dòng)到/Applications完成安裝。6B. 全 MacPorts 構(gòu)建MacPorts Ruby 3.4 MacPorts Python 3.14安裝依賴$ sudo port install coreutils $ sudo port install findutils $ sudo port install qt5 $ sudo port install ruby34 $ sudo port install python314 $ sudo port install py314-pip $ sudo port install libgit2構(gòu)建$ cd /where/build.sh/exists $ ./build4mac.py -q qt5macports -r mp34 -p mp314確認(rèn)構(gòu)建成功。相同選項(xiàng)加-Y重新運(yùn)行以部署$ ./build4mac.py -q qt5macports -r mp34 -p mp314 -Y若在步驟 1 與步驟 3 都使用--buildPymod選項(xiàng)KLayout 獨(dú)立 Python 包*.whl將被構(gòu)建并部署到klayout.app/Contents/pymod-dist/。產(chǎn)物位于LW-qt5MP.pkg.macos-Sequoia-C32-release-Rmp34Pmp314目錄LW-輕量包Rmp34Pmp314MacPorts Ruby 3.4 MacPorts Python 3.14。 4. 將klayout.app安裝到/Applications。6C. 全 Homebrew 構(gòu)建Homebrew Ruby 3.4 Homebrew Python 3.14注意構(gòu)建 KLayout 0.29.0 需要 Qt6 6.7.0以解決上游 Qt5 編譯問題issue #1599。安裝依賴并運(yùn)行 Homebrew Python 目錄結(jié)構(gòu)整理工具 macbuild/python3HB.py該工具在{Homebrew 根}/opt/pythonver/lib/下建立Python.framework - ../Frameworks/Python.framework/的標(biāo)準(zhǔn)化符號(hào)鏈接結(jié)構(gòu)支持-v 3.11/3.12/3.13/3.14$ brew install qt6 $ brew install ruby3.4 $ brew install python3.14 $ brew install libgit2 $ cd /where/build.sh/exists $ cd macbuild $ ./python3HB.py -v 3.14構(gòu)建$ cd /where/build.sh/exists $ ./build4mac.py -q qt6brew -r hb34 -p hb314確認(rèn)構(gòu)建成功。相同選項(xiàng)加-Y部署$ ./build4mac.py -q qt6brew -r hb34 -p hb314 -Y產(chǎn)物位于LW-qt6Brew.pkg.macos-Sequoia-C32-release-Rhb34Phb314目錄。 4. 將klayout.app安裝到/Applications。警告Homebrew Python 3.12 不再提供傳統(tǒng)pip命令直接使用會(huì)報(bào)error: externally-managed-environment。按照 Homebrew 的建議應(yīng)使用虛擬環(huán)境詳見Resources/script-bundle-B.zip內(nèi)的HomebrewUser-ReadMeFirst.txt。6D. 部分 Homebrew 構(gòu)建系統(tǒng) Ruby Homebrew Python 3.11注意構(gòu)建 KLayout 0.29.0 需要 Qt6 6.7.0同 6C 的原因。安裝依賴$ brew install qt6 $ brew install python3.11 $ brew install libgit2 $ cd /where/build.sh/exists $ cd macbuild $ ./python3HB.py -v 3.11構(gòu)建$ cd /where/build.sh/exists $ ./build4mac.py -q qt6brew -r sys -p hb311確認(rèn)構(gòu)建成功。相同選項(xiàng)加-y重新運(yùn)行將可執(zhí)行文件與庫含 Qt 與 Python 兩套 Frameworks部署到klayout.app內(nèi)strm* 工具同樣部署到klayout.app/Contents/Buddy/$ ./build4mac.py -q qt6brew -r sys -p hb311 -y產(chǎn)物位于HW-qt6Brew.pkg.macos-Sequoia-C32-release-RsysPhb311目錄HW-重量包因同時(shí)內(nèi)嵌 Qt6 與 Python FrameworksRsysPhb311系統(tǒng) Ruby Homebrew Python 3.11。 4. 將klayout.app安裝到/Applications。重要目前尚不支持部署 Homebrew Ruby。因此若計(jì)劃使用-y選項(xiàng)進(jìn)行完整部署構(gòu)建時(shí)必須使用-r sys。6E. 異構(gòu)組合MacPorts Qt5 系統(tǒng) Ruby Homebrew Python 3.11注意這是構(gòu)建常用 HW*.dmg 包的另一種實(shí)用方案。分別安裝兩套依賴# MacPorts 側(cè) $ sudo port install coreutils $ sudo port install findutils $ sudo port install qt5 $ sudo port install libgit2 # Homebrew 側(cè) $ brew install python3.11 $ cd /where/build.sh/exists $ cd macbuild $ ./python3HB.py -v 3.11構(gòu)建$ cd /where/build.sh/exists $ ./build4mac.py -q qt5macports -r sys -p hb311確認(rèn)構(gòu)建成功。相同選項(xiàng)加-y部署$ ./build4mac.py -q qt5macports -r sys -p hb311 -y產(chǎn)物位于HW-qt5MP.pkg.macos-Sequoia-C32-release-RsysPhb311目錄HW-重量包內(nèi)嵌 Qt5 與 Python Frameworks。 4. 將klayout.app安裝到/Applications。6F. 全 Anaconda3 構(gòu)建Anaconda3 Ruby 3.4 Anaconda3 Python 3.13若 Anaconda3 安裝在$HOME/opt/anaconda3/或其他位置需先建立符號(hào)鏈接/Applications/anaconda3/ - $HOME/opt/anaconda3/然后按下述步驟安裝以 Intel x86_64 的Anaconda3-2025.06-0-MacOSX-x86_64.pkg為例裝到/Applications后創(chuàng)建新虛擬環(huán)境1) Create a new env klayout-qt6 (with stable solver channels) switch solver to libmamba for faster/more stable resolves $ conda install -n base -y conda-libmamba-solver $ conda config --set solver libmamba Create the environment (on this x86_64 machine it will pull osx-64 builds) $ conda create -n klayout-qt6 python3.13 -y $ conda activate klayout-qt6 In this env only, prefer conda-forge strictly (to avoid mixing) $ conda config --env --add channels conda-forge $ conda config --env --add channels defaults $ conda config --env --set channel_priority strict 2) Install Qt6 (qt6-main and qt6-multimedia) only from conda-forge Qt6 core (builds that typically include Designer/UiTools) $ conda install -y --override-channels -c conda-forge qt6-main6.9.3 $ conda install -y --override-channels -c conda-forge qt6-multimedia6.9.3 3) Additionally, install Ruby and libgit2 only from conda-forge $ conda install -y --override-channels -c conda-forge ruby3.4.7 $ conda install -y --override-channels -c conda-forge libgit21.9.1上述 conda-forge 版本約束與 macbuild/build4mac_env.py 注釋中給出的推薦完全一致qt6-main6.9.3、qt6-multimedia6.9.3、ruby3.4.7、libgit21.9.1且腳本期望的解釋器路徑即環(huán)境內(nèi)的bin/python3.13與include/python3.13見 macbuild/build4mac_env.py 的PythonAnaconda3V6。構(gòu)建$ cd /where/build.sh/exists $ ./build4mac.py -q qt6ana3 -r ana3 -p ana3確認(rèn)構(gòu)建成功。相同選項(xiàng)加-Y部署若步驟 1 與 3 均使用--buildPymod*.whl將部署到klayout.app/Contents/pymod-dist/$ ./build4mac.py -q qt6ana3 -r ana3 -p ana3 -Y產(chǎn)物位于LW-qt6Ana3.pkg.macos-Sequoia-C32-release-Rana3Pana3目錄Rana3Pana3Anaconda3 Ruby 3.4 Anaconda3 Python 3.13。 4. 將klayout.app安裝到/Applications。 5. 由于解釋器位于 conda 虛擬環(huán)境中還需要?jiǎng)?chuàng)建一個(gè) Automator 包裝應(yīng)用Launcher來啟動(dòng) KLayout詳見Resources/script-bundle-A.zip內(nèi)的Anaconda3User-ReadMeFirst.txt。6G. 其他組合除 6A6F 之外邏輯上還可以選擇其他模塊組合包括nil。選擇這類非常規(guī)組合時(shí)產(chǎn)物目錄將以EX-exceptional為前綴——這與 macbuild/build4mac.py 中的PackagePrefix EX-分支吻合。6H. 通過代理服務(wù)器使用 git 版 Salt Package Manager如果通過代理服務(wù)器使用基于 git 的 Salt Package Manager需要設(shè)置KLAYOUT_GIT_HTTP_PROXY環(huán)境變量$ export KLAYOUT_GIT_HTTP_PROXYhttp://111.222.333.444:5678代理服務(wù)器的實(shí)際 IP 與端口請(qǐng)向系統(tǒng)管理員索取。原文檔強(qiáng)烈建議將此設(shè)置放入啟動(dòng)用的 service script bundle 中示例腳本*.app.Bash可在 macbuild/Resources/script-bundle-A.zip、macbuild/Resources/script-bundle-B.zip、macbuild/Resources/script-bundle-H.zip、macbuild/Resources/script-bundle-P.zip、macbuild/Resources/script-bundle-S.zip 中找到。7. QA 測(cè)試用 macQAT.py 驅(qū)動(dòng) ut_runner構(gòu)建完成后可選地進(jìn)行 QA 測(cè)試。macOS 環(huán)境下的 QA 工作目錄為[ST|LW|HB]-build_directory.macQAT目錄中隨附macQAT.py它是ut_runner可執(zhí)行文件的包裝腳本。操作步驟繼承自原文檔第 7 節(jié)進(jìn)入 QA 工作目錄cd [ST|LW|HB]-build_directory.macQAT打印ut_runner用法./macQAT.py -u僅啟動(dòng) KLayout 主 GUI 窗口./macQAT.py -k正常運(yùn)行ut_runner./macQAT.py -r如有需要可用-x test選項(xiàng)跳過個(gè)別出錯(cuò)測(cè)試可多次使用支持逗號(hào)分隔的測(cè)試名列表。從 macbuild/macQAT.py 源碼可以看出該包裝腳本的完整能力與工作原理環(huán)境變量注入ExportEnvVariablesmacbuild/macQAT.pyTESTSRC..測(cè)試源目錄、TESTTMPQATest_Git短SHA1_時(shí)間戳_目錄名測(cè)試臨時(shí)目錄在 Darwin 上另設(shè)置DYLD_LIBRARY_PATH指向.、db_plugins、lay_plugins、pymod、MallocNanoZone0以及一組ASAN_OPTIONS關(guān)閉 leak detection、symbolize 等這解釋了QA 所需的環(huán)境變量由macQAT.py設(shè)置這一說明-u實(shí)際執(zhí)行./ut_runner --help-all-k實(shí)際執(zhí)行./klayout.app/Contents/MacOS/klayout-r默認(rèn)繼續(xù)運(yùn)行對(duì)應(yīng)ut_runner的-c-s/--stop可切換為遇錯(cuò)即停運(yùn)行日志寫入QATest_*.log支持--dryrun僅打印命令行單元測(cè)試套件本身位于 src/unit_tests 與各模塊的unit_tests子目錄如 src/db/unit_testsut_runner由 src/klayout.pro 構(gòu)建體系生成。8. 制作 DMG 安裝包使用另一個(gè) Python 腳本 macbuild/makeDMG4mac.py 可以制作 DMG 安裝包。前提該目錄是 6A6F 中以-y/-Y選項(xiàng)運(yùn)行build4mac.py生成的產(chǎn)物目錄。若尚不存在從父目錄即build.sh所在目錄為腳本建立符號(hào)鏈接makeDMG4mac.py - macbuild/makeDMG4mac.py帶-p指定包目錄與-m制作壓縮 DMG選項(xiàng)調(diào)用$ cd /where/build.sh/exists $ ./makeDMG4mac.py -p LW-qt5MP.pkg.macos-Sequoia-C32-release-Rmp34Pmp314 -m該命令生成兩個(gè)文件LW-klayout-0.30.9-macOS-Sequoia-C32-1-qt5MP-Rmp34Pmp314.dmg—— 主 DMG 文件LW-klayout-0.30.9-macOS-Sequoia-C32-1-qt5MP-Rmp34Pmp314.dmg.md5—— MD5 值文本文件。DMG 文件名中的1是 DMG 序列號(hào)可通過-s|--serial修改默認(rèn) 1。從 macbuild/makeDMG4mac.py 的 usage 可知腳本還支持-c/--clean清理工作目錄與-m互斥、-b|--bundle強(qiáng)制指定 DMG 內(nèi)的 bundle 名、-u/--unsafe跳過部分檢查慎用、-t|--targetdmg指定輸出文件名其實(shí)現(xiàn)基于create-dmg的衍生工作DMG 背景圖與卷圖標(biāo)取自 macbuild/Resources 中的 PNG 與.icns資源AppleScript 模板為 macbuild/Resources/template-KLayoutDMG.applescript。9. 已知問題與維護(hù)要點(diǎn)原文檔Known issues一節(jié)指出由于構(gòu)建腳本假定了一些特定版本的非 OS 標(biāo)準(zhǔn) Ruby/Python更新 Homebrew、MacPorts 或 Anaconda3 后可能引發(fā)構(gòu)建與鏈接錯(cuò)誤此時(shí)需要相應(yīng)更新 macbuild/build4mac_env.py 中的字典內(nèi)容如 Ruby 3.4 的 include 目錄從ruby-3.4.0變?yōu)樾掳姹咎?hào)、libruby.3.4.dylib路徑變化、Homebrew Python 框架路徑等。換言之build4mac_env.py是版本錨點(diǎn)文件第三方軟件包管理器升級(jí)后應(yīng)優(yōu)先核對(duì)該文件各字典項(xiàng)與實(shí)際安裝路徑是否一致。此外結(jié)合源碼還可以得到兩條實(shí)用結(jié)論選擇nil/非系統(tǒng)語言組合時(shí)NonOSStdLang標(biāo)志會(huì)被置位-y完整部署的可用性取決于組合類型如 HW- 包強(qiáng)制要求 Homebrew python3.11見 macbuild/build4mac.py需要部署的 KLayout 可執(zhí)行文件清單klayout及 11 個(gè) buddy 工具strm2cif、strm2dxf、strm2gds、strm2gdstxt、strm2lstr、strm2mag、strm2oas、strm2txt、strmclip、strmcmp、strmrun、strmxor定義在 macbuild/build4mac_env.py 的KLayoutExecs與原文檔中buddy 命令行工具strm*部署到klayout.app/Contents/Buddy/的說明對(duì)應(yīng)。10. 小結(jié)KLayout 的 macOS 構(gòu)建體系圍繞三個(gè)腳本協(xié)作build4mac.py構(gòu)建與部署模塊組合由build4mac_env.py的字典驅(qū)動(dòng)、macQAT.pyut_runnerQA 包裝器、makeDMG4mac.pyDMG 打包輔以python3HB.py整理 Homebrew Python 的框架目錄結(jié)構(gòu)。默認(rèn)路徑是 MacPorts Qt5 系統(tǒng) Ruby 2.6 系統(tǒng) Python 3.9 的ST-標(biāo)準(zhǔn)包追求輕量分發(fā)可選LW-組合需要自帶解釋器分發(fā)的 HW*.dmg 則選擇 Homebrew python3.11 方案。對(duì)于 Qt6 或 Python 3.13/3.14 等新組合務(wù)必以 macbuild/build4mac_env.py 中字典項(xiàng)注釋標(biāo)注的 conda-forge/MacPorts/Homebrew 具體版本號(hào)為準(zhǔn)以規(guī)避軟件包管理器升級(jí)帶來的構(gòu)建鏈接問題。贊分享硬件開發(fā)桌面應(yīng)用圖形學(xué)【免費(fèi)下載鏈接】klayoutKLayout Main Sources項(xiàng)目地址https://gitcode.com/gh_mirrors/kl/klayout點(diǎn)擊查看免費(fèi)下載相關(guān)推薦3 步裝好 eSearch跨平臺(tái)屏幕截屏與離線 OCR 工具快速上手指南3 步裝好 eSearch跨平臺(tái)屏幕截屏與離線 OCR 工具快速上手指南 eSearch 是一款覆蓋 Windows、Linux 與 macOS 的跨平臺(tái)屏幕桌面應(yīng)用OCR屏幕錄制視頻處理圖像處理NuvioDesktop從源碼構(gòu)建到發(fā)布Gradle打包MSI、DMG、DEB與Flatpak完整部署指南NuvioDesktop從源碼構(gòu)建到發(fā)布Gradle打包MSI、DMG、DEB與Flatpak完整部署指南 NuvioDesktop 是一個(gè)免費(fèi)開源的跨平臺(tái)媒RStudio macOS 源碼構(gòu)建全指南依賴安裝、Universal 雙架構(gòu)編譯與 DMG 打包實(shí)戰(zhàn)RStudio macOS 源碼構(gòu)建全指南依賴安裝、Universal 雙架構(gòu)編譯與 DMG 打包實(shí)戰(zhàn) 本文是一份面向開發(fā)者的 RStudiomacOS 平開發(fā)工具后端創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩999| 99视频久久| 婷婷五月天激情小说| 人人操人人爽成人AV| 26uuu| 这里只有精品免费在线视频| 婷婷五月综合色中文字幕| 99色干| 色亚洲婷婷| 大香久久伊人网| 天天肏高清在线| 激情五月天激情小说| 五月天婷婷丁香花| 五月丁香六月婷| 99爱爱| 亚洲色色香蕉| 天天人人综合| 久9久9久9久9久9久9| 男妓跪趴把舌头伸进我的嘴巴| 日韩色久| 激情五月婷婷网| 91成人品| 激情99| 熟女人妻一区二区三区免费看| 人妻啪啪啪| 开心 五月 综合| 秋霞少妇毛片| 五月婷婷性爱视频| 9久热视频| 欧美成人网99网| 五月婷婷中字在线| 九九热只有这里精品| 色噜噜狠狠色综合日日| 色 免费网站视频| 伊人久久丁香狠狠婷婷综合香蕉| 777精品久无码人妻蜜桃| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 综合婷婷| 色色免费网站| 123草逼网| 五月婷婷欧美激情| 欧美激情-区二区三区| 丁香色五月婷婷17C| 另类图片五月激情| 亚洲人成网站999综合| 九月婷婷| 裸体做A爰片毛片A片免费| 婷婷中文无码| 色五月大香蕉| 色五月综合网| av大香蕉| 亚洲超碰在线| 亚洲视频一区| 久久久婷婷五月天| 精品久9| 中文中文在线| 玖玖爱伊人网| 狠狠色噜噜狠狠亚洲A∨| 午夜无码熟熟妇丰满人妻| 激情第四色| 99色婷婷| 日本婷婷五月天| 网色99| 99视频网址| 久久免片| 亚洲旡码| 九九热九九| 在线中文字幕视频| 天天做天天爱天天爽| 九九Av| 丁香激情网| 五月丁香六月激情综合| 欧美激情综合| 久在线88综合| 五月天婷婷丁香人人操91| 超碰啪啪网| 五月天婷婷青青草| 久久五月婷婷视频| 超碰操网| 五月丁香六月激情网| 亚洲综合丁香五月| 久久久精品人妻| 伊人深爱综合| 久久五月激情| 婷香五月| 亚洲人妻av伦理| 国产精产国品一二三在观看| 婷婷九九色| 亚洲影院婷婷色| 欧美性生交XXXXX无码小说| 中文字幕成人网站| 97香蕉人人在线观看| 九伊人网| 天天看片日日夜夜| 丁香成人五月天| 丁香婷婷月| 五月综合激情| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 99A级片| 免费AV播放| 播五月开心婷婷欧美综合| 欧美性色视频| 中文字幕丰满孑伦无码专区| 国产熟女大叫受不了| 色欲天天综合| 色婷婷在线视频综合| 开心深爱激情网| 五月婷婷六月天| 婷婷丁香五月网| 久久久久er热| 欧美日本99| www.超碰在线| 在线可以看的av网址| 亚洲婷婷五月天| 天天舔天天爽| 免费无码毛片一区二区A片| 天天日日| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 米奇影视五月天| 天天在线天天综合网色| 美女丁香五婷婷| 99re免费精品视频| 色色网站毛片| 天天久久人人| 久色大| www色色com| 精品九九久久| 日批在线看| 欧美综合123区| AV中文网| 深情六月婷婷综合久久| 日韩99视频| 蜜桃成语时李时珍 免费| www色五月| 97超碰免费超级在线观看| 色色色五月婷| 色女伊人| 精品人妻在线免费观看| 成人超碰AV| 26uuu成人网| 成人无码髙潮喷水A片| 丁香花操逼| 开心久久xxx色| 五月激情六月宗合| 丁香五月亚洲综合| 第五色色色婷婷| 成人短视频在线观看| 99久久天堂婷婷| 色婷网| 婷婷五月天激情网| 99热这里只有精品4| 五月天色色网站| 久久婷婷青青| 一根材五月婷成人| www.夜夜操| 五月丁香888| 99热这里只是精品| 亚洲色无码A片一区二区麻豆| 中美月韩免费A片| 六月狠狠综合| 97luluse| 五月激情综合美女久久| 日本不卡高字幕在线2019| 内射综合网| 五月婷婷在线综合| 国产又爽又猛又粗的视频A片| 久久久五月天网站| 人人干AV| 很很干天天干| 久久伦乱| 综合久久综合| 六月丁香久久| 天天插天天操| 超碰人人在线| 思思99热这里只有精品| 婷婷深爱五月天| WWW免费视频碰碰碰碰| 综合综合色色| 精品五月天| 成人av播放| 日韩在线观看亚洲| 另类综合激情| 五月婷婷片| 五月丁香六月激情综合| 色婷视频| 天天免费成年人视频| 九月丁香| 丁香婷婷性爱| 婷婷性爱无码视频| WWW.HENHENL.| 欧美性丁香色色五月天综合爱爱| 色综合伊人网| WWW五月天| 免费视频99| 9999综合99综合人| 色99在线视频| 婷婷五月天成人娱乐| 婷婷五月丁香五月| 日操夜撸| 中文字幕综合| 99热精品在线播放| 亚洲色婷婷五月| 99视频日韩| 婷婷五月丁香五月天| 亚洲操女| 日韩人妻无码精品| 婷婷AV丁香| 激情内射人妻1区2区3区| 夜夜夜夜做天天天做无码视频| 99干日日干| 99视频超级精品| 日本综合久久| 丁香五月婷婷色五月| 91玖玖| 五月色婷| 九久九精品| 逼里香不卡| 婷婷五月18永久免费网站| 一区二区乱码视频| 色五月激情综合网| 五月综合激情婷婷六月色窝| 丁香五月电影| 夜夜夜天天操| 亚洲国产网址| 久久多色| www.久久66| 日本三日本三级少妇三级66| 色婷婷电影网| 岛国AV网| 色色亚洲无码| 人人操人人爽成人AV| 亚洲最大视频| 深爱激情五月网| 99精品偷拍视频| 亚洲中文字幕av| 国产成人一区二区三区在线观看 | 99自拍视频在线观看| 婷婷激情蜜桃玖玖丁香| 色香久久| 91中文狠狠综合| 激情五月色综合| 五月五月婷婷| 婷婷色网| 久婷婷五月丁香在线观看| 色色五月婷婷久久| 亚洲 小说 欧美 激情 另类| 色999五月色| AV片一区在线观看| 成人婷99最新| 五月婷婷第四色| 色婷婷电影| 婷婷五月天VI| 韩国真做片在线观看| 91九色中文字幕女在线观看| 校园春色亚洲色| 另类激情首页| 亚洲精品性色| wwW天天干| 天天肏天天肏| 日本一道久久| 激情婷婷丁香| 婷丁五月| 99综合久久| 激情六月婷婷| 丁香五月婷婷五月天| 亚洲性爱99| 极品色丁香| 亚洲AV在线免费看| 九色91国产| 五月天久久综合婷婷丁香| 激情四射五月天偷偷看婷婷| 黄色成人AV在线| 538在线精品| 国语精品探花| 狠狠干五码| 亚洲色色五月| 开心五月激情| 亚洲性天天| 久久丁香五月| 亚洲电影中文字幕| 国产乱人偷精品人妻A片| 狠狠爱综合网| 女人天堂AV| wwxx日本| 色亚洲中文| 九九操操| 亚洲小视频免费播放| 色综合久久综合| 色婷婷影院| 色情久久久| 婷婷情色五月天| 五月丁香人妻| 丁香婷婷婷五月综合色情| 天堂无码人妻精品AV一区| 五月停亭六月,六月停亭的英语| 亚洲视频色婷婷| 五月婷婷综合精品| 91精品综合久久久久久五月丁香 | 天天色凹凸| 成人国产欧美大片一区| 日韩av一区二区在线/日产精品久久久 | 欧美美美女性色视频| 天天插夜夜爽| 六月婷婷影院| 99成人免费热视频| 色综合色综合色综合色综合| 99九九视频| 婷婷五月综合视频免费播放| 99九九中文字幕视频| 中文字幕丰满孑伦无码专区| 国产99久久久国产精品免费看| 久久99久久99久久99人受| 热99免费在线| 久久曰曰| 欧亚成人A片一区二区| 开心激情婷婷| 九九热最新视频| va亚洲中文在线| 色婷婷五月天视频在线| 人妻激情在线| 日日夜夜狠狠| 亚洲色啪| 五月婷婷香蕉视频| 大香蕉福利导航| 久操大香蕉| www.91婷婷| 丁香色成人| 久99热| 婷婷色五月天在线观看| 99精彩视频| 热久精品| 国产日比| 亚洲午夜av| 成人综合网站| 91操在线| 色色五月天婷婷| 五月天狠狠网站| 丁香香五月激情免费视频| 天天做天天爱天天摸| 激情五月丁香色婷婷| 色日本网| yellow视频在线观看91| 亚洲综合视频天天精品| 五月花亭亭| 精品无吗va视频免费观看| www.henhenl| 91九色国产| 99热日韩| 丁香五月瑟瑟| 五月激情网站| 天天爽综合| 激情五月天社区| 亚洲综合色色色| 日韩黄色影院| 91精品国产日韩91久久久久久国模| 色99视频| 久久色这里只有精品| 丁香婷婷五月六月久久| 9色在线| 日日做A爰片久久毛片A片英语| 精品香蕉99久久久久网站| 国产亚洲av片| 国产色婷婷亚洲| 久久精品亚洲一级牲爱综合 | 亚洲最大成人综合网720P| 激情五月瑟瑟| 综合色色婷婷| 久久五月天激情| 伊人久久大香蕉网| 色狠狠色综合| 伊人9999| 日本99久久| 九九色情网五月天| 精品婷婷五月视| 青草五月天| 亚洲黄色影视| 99ri国产精品| 九九国产视频| 日韩av在线免费观看| 99免费视频| 久久婷婷综合国产| 午夜做爱影院| 97久久综合网| 午夜美女人啪最红院| 色五月偷偷| 99丁香五月| 涩丁香91| 人妻中文字幕精品| 美女亚洲五月丁香| 亚洲av网站| 色婷小说| dingxiangtingtingliuyue| 亚洲成人免费在线| 4399人妻无码久久久| 五月天激情啪啪| 狠狠色丁香婷婷五月| 色色色热| www.99色| 婷婷激情欧美| 五月天激情国产综合婷婷| 97干欧美| 婷婷激情综合色五月久久91| Jh7Uf088VHafNm| 亚洲激情五月天| 亚洲第一精品成人999久久精品| 性综合网| 亚洲中文字幕av| 色婷婷五月天久久| 婷婷丁香久久| 丁香五月婷婷啪| 任你日视频| 色综合香蕉视频| 天天做天天要天天爽| 99热| 丁香五月婷婷天堂大香蕉| 日日狠狠久久偷偷四色综合免费| 99性爱视频| 婷婷五月综合婷婷| 任你草| 97色婷婷| 超碰资源在线| 中文字幕簧片| 天天弄天天操| 免费在线观看AV网站| 久久激情综合| 免费播放99性爱视频| 中文字幕 中文字幕明步| 亚洲无码播放| 国产无套精品一区二区| 丁香婷婷五月天校园春色| XX久久| 激情婷婷丁香五月| 丁香五月六月婷婷殴美综合| 色婷婷人人| 欧美日韩一区二区三区四区| 性爱激情久久| 狠狠高潮精品亚洲1| 激情国产五月| 天天噜噜| 97sese婷婷| 色五月xxx| 丁香六月啪| 狠狠综合久久| 99网| 洗浴中心操B视频| 色婷婷色综合| 天天日天天爽| 激情婷婷22月间| 99热色精品| 婷婷六月综合| 任你草| 婷婷欧美偷拍综合| 久久综合26p| 丁香五月天在线观看| 色五月大| 99热在线观看| 婷婷 月 丁香| 激情五月天色色网| 亚洲无AV在线中文字幕| 六月婷婷中文字幕| 中文在线成人| 天天做天天爱天天爽| 五月天色婷婷图片| 九九性爱网| 9+1视频网址| 丁香六月激情综合网| 免费观看全黄做爰的视频| 秋霞午夜理论| 99亚州综合精品成人网| 2w在线视频| 激情九色| 成人做爰高潮A片免费视频| 婷婷色网站| 国产视频福利| 无码少妇高潮喷水A片免费| 大香蕉婷婷五月天| 91AV婷婷| site:publishdd.com| 亚洲色色五月| 99热66| 婷婷射丁香| 啪啪一区| 91操在线| 亚洲熟妇AV乱码在线观看| 欧美激情综合色综合色| 激情婷婷九月| ..真实国产乱子伦对白在线_欧| 五月天网站亭亭| 超碰免费在线| 超碰妻人人| 婷婷五月丁香综合| 思思 热 99| 五月天无码| 丁香婷婷六月| 伊人色综合网| 六月丁香av| 五月香蕉婷婷| 激情AV| 91丨九色丨国产打屁股网站| 色色操| 91热网址| 亚洲日韩欧美综合VA| 99热永久在线观看| 婷婷色啪| 91.www综合| 日本一级一级一级一级| 亚洲人人操| 草婷婷在线| 五月天伊人综合| 丁香六月婷婷久久综合| 丁香婷婷久久| 六月婷婷久久| 五月欧美丁香在线观看| 五月好婷婷| 99惹| 激情综合女人网五月播播| 这里只有精品免费视频| 免费99情趣网视频| 99在线精品视频免费| 99热丁香| 色九九九九| 色五月色情| 激情图片亚洲| 玩熟女五十AV一二三区| 99ER热精品视频| 色婷婷国产精品综合在线观看| 激情播丁香| 99人人操人人操人人精| 综合激情在线观看| 97久久五月丁香婷婷| 5月丁香美女影院| 亚洲精品又粗又大又爽A片| 99热在线精品观看| 人妻操逼视频| 婷婷俺去也| 99精品视频在线观看| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 色五月婷婷久久爱| 99丁香五月婷| 狠狠色激情在线| 婷婷激情五月天网站| 99色综合| 婷婷丁香五月天哟啪| 亚洲成人在线免费| 99re最新地址视频| 激情小说五月天| 九九黄色网| 三级三久久线久久99久目本WW| 伦乱天堂| 久热视频A.| 99re思思热在线视频| 97色碰| 日日干五月天婷婷| 久久亚洲网| 五月天六月天| a在线观看| 日韩成人av在线| 99色婷婷| 天天婷婷天天| 天天操狠狠操| 色五月激情网| 五月婷婷色| 国产avapp 网| 五月天色丁香| 亚洲色欲欧美一区二区三区| 天天日狠狠| 色狠狠图片| 这里只有精品免费观看网占| 五月天开心网| 丁香五月播播| 少妇人妻偷人精品无码视频新浪 | 欧美色色色| 五月天婷婷激情| 丁香婷婷六月天| 黄色精品五月婷婷| 99九九在线视频| 日韩一级网站| 色色色国产| WWW,五月| 久久五月天综合| 五月婷婷co.m| 丁香六月激情综合| 伊人五月成人| 婷婷的色色五月天| 深情五月天| 五月丁香激情综合久久| 婷婷五月天激情小说| 亚洲激情综合网| 久草天堂| 亚洲亚洲人成综合网络| 99热精品无码| 成人片在线免费看| 激情五月瑟瑟| 国产9色在线/日韩| 无码AV免费精品一区二区三区| 伊人久久丁香五月91| 亚洲AVDVD| 99re热99| 丁香婷婷色五月天| 成人在线日韩欧美| 成人做爰高潮A片免费视频| 在线不卡的视频| 91精品久久久久| 99热免费网站| 久狠狠| 丁香五月天社区| 91高潮喷水久久久久久久久| 五月丁香网视频| 日日撸日日操| 思思热在线视频精品| www.99色在线| 五月婷丁香花| 久久久天天啊| 国产午夜成人免费看片无遮挡| 丁香五月婷婷99| 亚洲性图一区二区三区| 久久久性爱视频| A短视频免费在线观看| 激情操逼婷婷| 欧美噜噜免费观看| AV色婷婷| 殴美97色| 亚洲五月婷天天操| 99色综合| 五月天伊人综合| 天天干天天叉| 免费视频WWW在线观看网站| 亚洲无码11| 色色色国产| 在线看片av| 久久38视频| 久久这里只有精品久久| 另类 在线| 九九色色| 男人的天堂999| 婷婷大乡焦噜噜| 在线超碰免费| 午夜丁香六月婷| 丁香激情网| 99热在线极品极品| 婷婷丁香人妻| www激情| 色综合色色色色| 99热99干| 日本狠狠干| 色人久久| 久99热| 久99久视频免费观看| 丁香六月婷婷综合在线| 爱超碰性| 天天成人五月天| 站长推荐无码播放| 亚洲成人五月天| 丁香五月综合狠狠| 色婷婷在线视频综合| 另类小说五月天| 欧美色99| 日韩久久色| 4399在线观看免费毛片| 亚洲操B| 东北熟女视频99| 色丁香婷婷| 无码碰碰| 色五月激情婷婷| 97成人视频| 九九久久网| 怎么样可以看免费的一级av| 天天日天天做天天操| 无码四色色色| 日日干日日色| 亚洲亚洲人成综合网络| 婷婷丁香午夜综合影视| 怡红院AV亚洲一区二区三区H| 麻豆科斗777| 99婷婷| 国产 A片 自拍| 国产毛片精品一区二区色欲黄A片| 99久久a线观| 久99热| 激情五月天婷婷激情| 97操操| 亚洲精品操一操、噜一噜、摸一摸、爽 | 7超碰自拍| 91丨九色丨43老版熟女| 99网址在线看| 日本天天色| 色综合xx| 97碰91| 99色热| 99热在线爱| 无遮挡国产高潮视频免费观看| ,99视频久久| 国产又爽又猛又粗的视频A片| 另类综合国产| 婷婷丁香综合| 五月婷av| 五月丁香五月天现场视频| 日本在线观看aaa 99| 天天爱天天爽| 啪啪激情综合| 99在线精品免费视频| 婷婷精品性性性性性性性| 丁香五月最新网址| 婷婷五月天第三页| 另类国产区| 久热9| 日韩欧美四五区| 五月综合激情啪啪啪啪啪| 五月丁香六月欧美| 爆乳熟女一区二区三区爆乳| 天天日日夜夜| 丁香五月色欲| 综合色色婷婷| 不卡在线超碰| 91人人网| 第2色五月婷| 99精品九九| 成人va视频| 综合综合色色| 成人AV网站在线| 天天爱天天操| 99在线精品在线视频| 久久曰曰| 久久免费干| 丁香六月婷婷色XXXXX| 激情婷婷五月天在线观看| 欧美大肥婆大肥BBBBB| 五月天婷婷色综合| 综合狠狠伊人| 开心激情婷婷| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 五月婷婷综合潮喷| 天天插天天玩天天干| 伊人狼人干| 婷婷色六月| 日本婷婷色日| 日韩欧美五月丁综合| 综合激情在线观看| 三级毛片视频| 97色婷婷| 夜夜爽天天爽| 婷婷色成人| 天天噜天天插| 人人性久久| 123日本不卡在线| 天天综合色| 性天堂久久| 婷婷五月天日本无码| 婷婷在线观看五月天在线视频| 91xxxx九色| 久久5 9视频免费观看| 五月天色综合| 五月色网| 亚洲第一综合| 婷婷五月av| 色九月激情综合网| 九九综合视频在线观看| 91免费看片| 99热人人操人人操| 久久九九思思| 99热久久这里只有精品| 狠狠五月天| 婷婷无码视频| 丁香六月婷婷开心| 日韩精品一品二区三区的使用体验| 五月婷婷欲色| 亚洲五月天伊人| 99热日韩| 婷婷在线综合| 婷婷久久性爱| 日本3级片一区2区| 男人天堂AV在线一区二区| 九九中文色色| 碰碰人人人| 无人区码一码二码三码医生系列| 91久操| 亚洲色网络| 99热精品免费| 另类专区在线观看| 久久久久久人妻| 欧美久久婷婷| 激情五月天婷婷丁香| 五月色网| 色色操| 欧美日韩一区二区三区四区| 成人婷99最新| 九九热中文| 91操片| 玖玖综合网| 亚洲国产精品VA在线看黑人| 色情五月婷婷| 做爰丰满少妇1313| 91免费啪视频| 六月婷婷操逼| 九九综合色综合| 久久久潮喷-久久久九九-成人AV| www.久久色.com| 99九九热视频| 五月丁香久人妻中文| 久久99久久99精品免观看粉嫩| 好大好粗嗯啊-一级黄色大片免费观看-成人AV| 天天操天天插天天射| 色婷婷精品视频在线播放| 婷婷玖玖丁香| 丁香五月婷婷av| 亚洲成人综合在线| 丁香五月98| 婷婷五月天激情五月天网站| 综合九九| 亚洲最大在线| 另类小说五月天| 99久久婷婷精品视频| 婷婷六月丁综合| 九九精品亚洲| 国产VA播放| 五月天婷婷丁香视频| 亚洲欧州色情在线观看| 婷婷激情综合| 激情五月天色播| 五月婷婷啪啪啪啪| 丁香六月青青草| 九热视频在线精品15| av在线超清中文| 天天爽天天透天天爱| 五月天成人在线视频网站| 人妻人人操| 极品人妻VIDEOSSS人妻| 婷婷丁香综合在线| 无码碰碰| 亚洲av网址| 天天狠狠婷婷在线| 狠狠久综合| 色婷婷精品视频| 丁香五月成人| 婷婷酒色网| 国产在线黄色| 五月天婷婷色播| 天天干天天色综合| 天天爽天天干| 永久天堂日本| 91精品久久久久久久久久久久| 天天综合久久| 天天爽天天摸天天爱| 婷婷久久综合久| 91丨九色丨老熟女激情| 91色色色| 欧美VA在线观看| 性爱网五月天| www.wuyuetian啪啪| 免费97碰碰| 婷婷五月天激情综合| 五月久久婷婷成人网| 色噜噜狠狠色综无码久久合欧美| 久久丁香网| 久久久久妻| 天天激情站| 可以免费观看的AV| 日本三日本三级少妇三级66| Av狠狠色丁香婷| 五月婷婷丁香五月 | 五月天成人免费视频| 丁香六月综合激情| 色噜噜五月天| 久久66精品| 天天干一干| 九色成人AV在线| 久草婷婷| 激情综合网激情五月天| 五月婷婷婷色| 五月丁香狠狠爱| 五月婷av| 精品少妇人妻AV无码专区偷人| 亚洲成人AV在线播放| 激情影院内射| 操操自拍| 丁香色五月AV在线| 激情网开心网| 婷婷色情网| 亚洲欧洲中文日韩久久AV乱码| 婷婷色在线观看| 激情五月婷婷开心网| 四虎成人精品永久免费AV九九| 超碰免费人| 99热99网| 亚洲av综合网| 2022人人操人人看| 怡红院视频| 影音先锋91在线资源站| 视频综合网| 人妻久久人妻久久第一区| 1024国产在线| 色婷婷五月天天天天天天天天天| 久99视频| 性天堂久久| 五月天色婷婷综合| 日韩人人操| 26uuu欧美宗合| 天天干天天操天天爽| 九九干视频| 思思久日精品视频| 中文字幕丰满孑伦无码专区| 五月丁香啪啪综合| 五月丁香色综合| 久操人| 俺去也在线www色官网| 激情婷婷丁香| 国产婷婷色五月| www.99热| 五月天社区| 日本欧美在线| 婷婷情色五月天| 五月婷婷成人| 偷偷操99| 天天综合影院| 潮汕成人AV片在线| 色综合五月在线| 丁香五月花| AV美美午夜| 亚洲亚洲人成综合网络| 久久av电影| 亚洲乱码日产精品BD| 五月丁香 久久久| 午夜天堂一区人妻| 日本ww亚洲| 国产又爽又猛又粗的视频A片 | 五月婷婷在线网站| 久久se 综合网| 色婷婷五月天小说网| 教师性爱毛片| 激情性五月天免费小说视频| 91日婷婷在线| 色色色色网站| 7超碰自拍| 亭亭五月丁香五月天激情| 99这里是99在线视频| 久草热在线视频| 激情美女五月天| 五月丁香六月激情| 激情视频婷婷五月花| 久久综合99| 草AV9999| 五月天婷婷色综合| 99热精品免费| 激情婷婷丁香五月天| 色五月综合在线| 五月丁香久久综合| 婷婷在线网| 天干夜夜操| 九色91视频| 黄网在线播放| 婷婷五月丁香色情| 激情AV中文| 色情五月综合婷婷| 色五月激情问网站| 熟女人妻视频| 五月婷亚洲精品| 狠狠色97| 五月天色色色| 5月婷婷性视频| 超碰A V在线| 色亭亭五月天丁香综合AV - 百度 - 百度| 狠狠爱激情网| 久久ww| 五月丁香婷在线| 五月丁香婷婷综合视频| 深爱激情综合| 亚洲久热无码| 色碰干| 国产真人做爰视频免费| 色丁香影院| 婷婷99狠狠躁天天躁| 夜夜操加勒比| 2020日日干| 丁香婷婷射| 超碰9在| 成功精品影院| 深爱激情网五月天| 色婷婷婷婷| 久久激情综合| 超碰高清在线| 亚洲操逼网| 亚美欧色影院| 日日日,com| 亚洲国产另类av| 玖玖婷婷五月天| 密乳视频| 超碰超碰在线| 五月美女婷婷风骚| 99久久婷婷国产综合精品草原| www激情网| 色月九九| 婷婷WWW久久| 桃色五月天| 99色色色色| 久色成人| 中文字幕九九九九| 操日本99| 日本九九九九| 久久视频婷婷| 91黄址| 六月丁香啪| 超碰久热| 激情视频网址| 五月丁香六月婷婷开心网| 婷婷丁香人妻天久久| 99九九中文字幕视频| 无码激情AAAAA片-区区| 91在线日| 日日干日日| 成年人99热| 九玖视频这里只有精品| 玖玖激情五月天| 69天堂99| 91丨九色丨43老版熟女| 思思热高清在线观看| 综合xx网| 五月婷婷激情综合| 色色五月婷婷久久| 久久丁香网| 久色精品| 综合网色| 99操久久| 色日本综合| 久久久精品色色色| 五月天成人伊人| 五月香蕉综合| 亚洲色碰| 色九月丁香婷婷蜜桃在线观看| 五月天激情小说| 中文字幕在线资源| 99.色| 日本婷婷综合精品| 婷婷在线播放av| 色综合丁香婷婷| 五月婷婷狠狠久久| 超碰99成人在线| 草草色情综合网| 666555。COm毛片| 亚洲色久| 天天色天天操天天射| 9久久精品| 丁香六月狠狠干| 五月婷婷激情综合视频| 色婷婷影音| 99这里只有免费的精品| 三区激情四射av| 狠狠色噜噜狠狠色噜噜噜999| 9999热在线观看| 丁香六月欧美| 九一牛视频探花| 国内9l视频自拍老熟女九色| www.夜夜爱.com| 91日在线视频| 男女啪啪视频久 9| 丁香激情综合| 黄色片avv| 色都都狠狠色都都色综合色| 人人操碰| 91碰操| 色婷婷激情五月天| 色色激情五月| 亚洲精品影视| 久久五月天婷婷| 五月婷丁香| 五月丁香婷婷爱激情综合网| 亚洲激情淫网| 久99视频| 色综合久久五月| 五月丁香婷婷综合在线| 九九热在线亚洲免费视频| 九九免费视频在线| 妻久久久久| 天天操夜夜爽| 丁香五月另类小说| 色播五月婷婷| 91超碰在线观看| 深爱激情六月天| 成人精品一区日本无码网| 欧美搡BBBBB摔BBBBB| 国产肥白大熟妇BBBB视频| 丁香婷婷五月激情四射网| 婷婷丁香六月天激情四射网| 大香久久综合网| 就爱日五月天| 97色视频网| 99男人天堂| 久9精品视频| 天天做天天爱天天搞| 亚洲第一色色色色| 狠狠五月天婷婷激情网。| 99在线精品免费视频| 激情亚洲婷婷六月| 天天综合网在线| 久久精品视频99| 操碰97| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 久久久久9999| 超碰97在线观看免费| 五月婷婷丁香六月| 97视频久久| www.91有码.com| 日本成人噜噜噜| 97人人干| 婷婷视频在线碰| 狠狠操狠狠色| 91婷婷在线观看| 丁香六月狠狠| 成人五月天视频播放| 精品久久9| 国产精品扒开腿做爽爽爽A片唱戏| 97啪啪| 成人做爰高潮A片免费视频| 9热久久| 九九色热| 99人人操人人摸| AAA久久久| 熟女少妇内射日韩亚洲| www.97干视频| 亚洲第一色色色色| www.色婷婷| 欧美久热| 操日本三片99| 婷婷大美在线| 六月婷婷色| 国产精品久久久久久久久久| www.一起草av| WWW夜夜| 婷婷综合五月激情| 丁香六月婷婷综合欧美| 99精品在线观看| 操逼电影免费看| ay2区| 激情六月天婷婷| 亚洲成av人影院| 日本WWW九九九| 天天干天天干天天干天天干天天干天天干天天 | 91在线视频综合| 亚洲另类婷婷五月综合| h亚洲| 中国无码av| 婷婷五月香蕉| 天天插,天天射| 久久久激情| 熟女网站久久| 六月丁香影院| 99在线免费观看| 青青草Avb在线| 婷婷色色播五月天| 伊人久久五月天| 激情婷婷丁香| 亚洲熟女色| 婷婷五月天综合小说网| 噼里啪啦完整版中文在线观看| 狠狠色丁香久久| 这里只有精品免费观看网占| 色婷婷亚洲婷婷| 色婷婷9| 婷婷五月天色| www.狠狠操| 亚洲成人高清在线| 色婷婷丁香五月天| 国产精品18久久久| 激情五月丁香五月| 精品久久这里热66| 久久91久久精品久久| 婷婷五月丁香综合激情小说| 91色在线/日韩| 五月天操逼激情| 天天做天天爱天天日| 色碰碰| 五月丁香少妇| 午夜丁香五月天综合| 91色性感五月婷婷丁香| 色综合夜夜| 五月天婷婷视频| 美女精品一级不卡视频| 开心激情婷婷| 91丨九色丨国产打屁股网站| 蜜桃婷婷丁香| 熟女人妻一区二区三区免费看| 婷婷色五月噜噜| 婷婷成人五月天成人文学小说| 中文中文在线| av婷婷丁香 六月| www.91操| 综合一区二区三区| 欧美激情综合色丁香婷婷五月天 | 五月激情婷婷丁香天堂| 青青久久五月天丁香婷婷| 九九一综合精品| 久久免费精彩视频| 人妻AV在线| 久久婷狠狠色| 操九色| 欧美五月婷婷| 91狠狠综合网| 97中文在线| 亚洲旡码| 久久综合中文字幕| 五月天大香蕉视频| 欧美群妇大交乱婬网| 久久五月丁香| 色情五月天小说| 99热这里只有精品中文字幕| AV在线观看网站| 91操操| 入口五月婷婷六月香| 久热无码| 天天做天天爰天天爽天天无遮挡| 婷婷丁香社区| 五月天激情婷婷五月天久久| 丁香五月花| 九九热短视频在线观看| 五月丁香六月停停停| 思思热AV| 色婷婷88| 六月丁香久久| 五月婷婷激情四季| 亚洲乱码日产精品BD在线观看| 中文aV网| 男人大jjc女人免费视频| 久热视频这里只有精品| 九九精品少妇| 五月丁香久久久久| 开心五月婷婷激情| 丁香婷婷激情| 色亚洲中文| 一本婷婷丁香久久 | 国产超碰在线| 五月天久久婷婷| 五月天婷婷丁香导航| 五月婷久久久| 99热综合| 热这里只有精| 色综合婷婷99| 天天日天天爽| 丁香五月婷婷啪| 成片免费观看视频大全| 99在线国| 色婷婷啪啪| 五月天婷婷激情小说电影| 国产裸舞福利资源在线视频| 亚洲超碰青涩| 九九無妻| 日本熟女视频一区二区| 国产XXXX搡XXXXX搡麻豆| 五月丁香六月婷婷在线观看| 六月婷婷综合久久| 色丁香五月婷婷| 婷婷5月九九| 97九色视频| 99爱在线视频| 免费观看欧美成人AA片爱我多深 | 黄网在线免费观| 成人色五婷婷| 激情小说五月天社区丁香| 男男野外做爰全过程69| 99精品免费视频| 99久久婷婷国产综合精品草原| 婷婷的五月天另类视频| 日本在线99| 另类五月婷婷| 丁香九色不卡aaa| 久久xxxx| 午夜丁香婷婷| 激情六月下句是什么|