From 65d030a97db03f8467e35e1fe597a6450ca6a5c9 Mon Sep 17 00:00:00 2001 From: Kazunari Sekigawa Date: Fri, 27 Nov 2020 07:00:12 +0900 Subject: [PATCH] Update of the build system for macOS for 0.26.9 (#686) * * Updated the build system for Mac * Catalina env. uses Python 3.8 in MacPorts, Homebrew, and Anaconda3. * Use Ruby 2.7 in MacPorts. * Test build for macOS "Big Sur" (11.0) on Intel Mac "Catalina" (10.15.7). * Updated the build system for macOS, including the future support for Big Sur (11.0) --- macbuild/ReadMe.md | 63 +- macbuild/Resources/KLayoutDMG-Back.logoist | Bin 199143 -> 201406 bytes macbuild/Resources/KLayoutDMG-Back.png | Bin 208552 -> 209759 bytes macbuild/Resources/script-bundle-P.zip | Bin 4396838 -> 4396838 bytes macbuild/build4mac.py | 519 ++++----- macbuild/build4mac_env.py | 127 ++- macbuild/macQAT.py | 358 +++--- macbuild/macQAT.sh | 66 +- macbuild/makeDMG4mac.py | 1185 ++++++++++---------- macbuild/nightyCatalina.py | 602 ++++++---- 10 files changed, 1594 insertions(+), 1326 deletions(-) diff --git a/macbuild/ReadMe.md b/macbuild/ReadMe.md index 09344755b..c23589f7b 100644 --- a/macbuild/ReadMe.md +++ b/macbuild/ReadMe.md @@ -1,27 +1,28 @@ -Relevant KLayout version: 0.26.7 +Relevant KLayout version: 0.26.9 # 1. Introduction -This directory **`macbuild`** contains different files required for building KLayout (http://www.klayout.de/) version 0.26.1 or later for different 64-bit Mac OSXs including: +This directory **`macbuild`** contains different files required for building KLayout (http://www.klayout.de/) version 0.26.1 or later for different 64-bit Mac OSXs, including: * El Capitan (10.11) * Sierra (10.12) * High Sierra (10.13) * Mojave (10.14) -* Catalina (10.15) +* Catalina (10.15) : the primary development environment +* Big Sur (11.0) : under development for the future support # 2. Qt5 Frameworks -By default, Qt frameworks are "Qt5" from MacPorts (https://www.macports.org/) which is usually located under: +By default, the Qt framework is "Qt5" from MacPorts (https://www.macports.org/), which is usually located under: ``` /opt/local/libexec/qt5/ ``` -Alternatively, you can use "Qt5" from Homebrew (https://brew.sh/) which is usually located under: +Alternatively, you can use "Qt5" from Homebrew (https://brew.sh/), which is usually located under: ``` /usr/local/opt/qt/ ``` OR -"Qt5" from Anaconda3 (https://www.anaconda.com/) which is usually located under: +"Qt5" from Anaconda3 (https://www.anaconda.com/), which is usually located under: ``` $HOME/opt/anaconda3/pkgs/qt-{version} ``` @@ -41,9 +42,9 @@ $ /usr/bin/ruby -v $ /usr/bin/python --version Python 2.7.16 ``` -Even in the latest OS as of today (December 2019), Python 3.x is not bundled with the OS, and this is the main reason why users want non-OS-standard script language support. +Even in the latest OS (11.0 Big Sur) as of today (November 2020), Python 3.x is not bundled with the OS, which is why users want non-OS-standard script language support. -To meet such a requirement, the build script **`build4mac.py`** provides several possible combinations of Qt5, Ruy and Python module.
+To meet such a requirement, the build script **`build4mac.py`** provides several possible combinations of Qt5, Ruy, and Python module.
Some typical use cases are described in Section 6. # 4. Prerequisites @@ -66,22 +67,24 @@ $ [python] ./build4mac.py : Qt5MacPorts: use Qt5 from MacPorts | : Qt5Brew: use Qt5 from Homebrew | : Qt5Ana3: use Qt5 from Anaconda3 | - [-r|--ruby ] : case-insensitive type=['nil', 'Sys', 'MP26', 'HB27', 'Ana3'] | sys + [-r|--ruby ] : case-insensitive type=['nil', 'Sys', 'MP27', 'HB27', 'Ana3'] | sys : nil: don't bind Ruby | : Sys: use OS-bundled Ruby [2.0 - 2.6] depending on OS | - : MP26: use Ruby 2.6 from MacPorts | + : MP27: use Ruby 2.7 from MacPorts | : HB27: use Ruby 2.7 from Homebrew | : Ana3: use Ruby 2.5 from Anaconda3 | - [-p|--python ] : case-insensitive type=['nil', 'Sys', 'MP38', 'HB38', 'Ana3'] | sys + [-p|--python ] : case-insensitive type=['nil', 'Sys', 'MP38', 'HB38', 'Ana3', | sys + : 'HBAuto'] | : nil: don't bind Python | - : Sys: use OS-bundled Python 2.7 [ElCapitan -- Catalina] | + : Sys: use OS-bundled Python 2.7 [ElCapitan -- BigSur] | : MP38: use Python 3.8 from MacPorts | : HB38: use Python 3.8 from Homebrew | - : Ana3: use Python 3.8 from Anaconda3 | + : Ana3: use Python 3.7 from Anaconda3 | + : HBAuto: use the latest Python 3.x auto-detected from Homebrew | [-n|--noqtbinding] : don't create Qt bindings for ruby scripts | disabled [-m|--make