diff --git a/macbuild/ReadMe.md b/macbuild/ReadMe.md
index 8d86c7245..2e7516f12 100644
--- a/macbuild/ReadMe.md
+++ b/macbuild/ReadMe.md
@@ -1,15 +1,16 @@
-Relevant KLayout version: 0.29.4
+Relevant KLayout version: 0.29.7
Author: Kazzz-S
-Last modified: 2024-07-10
+Last modified: 2024-09-23
# 1. Introduction
-This directory **`macbuild`** contains various files required for building KLayout (http://www.klayout.de/) version 0.29.0 or later for different 64-bit macOS, including:
-* Monterey (12.x) : the primary development environment
+This directory **`macbuild`** contains various files required for building KLayout (http://www.klayout.de/) version 0.29.7 or later for different 64-bit macOS, including:
+* Sonoma (14.x) : the primary development environment
* Ventura (13.x) : experimental
-* Sonoma (14.x) : -- ditto --
+* Sequoia (15.x) : -- ditto --
Building KLayout for the previous operating systems listed below has been discontinued.
-Pre-built DMG packages are also not provided.
+Pre-built DMG packages are also not provided.
+* Monterey (12.7.6; the build is still possible, but Homebrew stopped supporting this OS in September 2024)
* Big Sur (11.7.10)
* Catalina (10.15.7)
* Mojave (10.14)
@@ -17,8 +18,9 @@ Pre-built DMG packages are also not provided.
* Sierra (10.12)
* El Capitan (10.11)
-Throughout this document, the primary target machine is **Intel x86_64** with **macOS Monterey**.
+Throughout this document, the primary target machine is **Intel x86_64** with **macOS Sonoma**.
All Apple (M1|M2|M3) chips are still untested, as the author does not own an (M1|M2|M3) Mac.
+However, some kind volunteers told me they successfully built on an Apple silicon machine.
# 2. Qt Frameworks
@@ -41,8 +43,9 @@ If you have installed Anaconda3 under $HOME/opt/anaconda3/, make a symbolic link
/Applications/anaconda3/ ---> $HOME/opt/anaconda3/
```
-The migration work to "Qt6" is ongoing. You can try to use it; however, you will encounter some build and runtime errors.
-If you use **Homebrew** to build KLayout >= 0.29.0, you need "Qt6" to address [the compilation issue](https://github.com/KLayout/klayout/issues/1599).
+The migration work to "Qt6" is ongoing. You can try to use it; however, you might encounter some build and runtime errors.
+If you use **Homebrew** to build KLayout >= 0.29.0, you need "Qt6" to address [the compilation issue](https://github.com/KLayout/klayout/issues/1599).
+I have also tried migrating to "Python 3.12.x" (earlier, Python 3.11.x) in this version.
# 3. Script language support: Ruby and Python
@@ -65,62 +68,62 @@ You need to have the followings:
The operating system type is detected automatically.
```
----------------------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------------------
<< Usage of 'build4mac.py' >>
- for building KLayout 0.29.0 or later on different Apple macOS platforms.
+ for building KLayout 0.29.7 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 ] : case-insensitive type=['Qt5MacPorts', 'Qt5Brew', 'Qt5Ana3', | qt5macports
- : 'Qt6MacPorts', 'Qt6Brew'] |
- : 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 (*) |
- : (*) migration to Qt6 is ongoing |
- [-r|--ruby ] : case-insensitive type=['nil', 'Sys', 'MP33', 'HB33', 'Ana3'] | sys
- : nil: don't bind Ruby |
- : Sys: use [Sonoma|Ventura|Monterey]-bundled Ruby 2.6 |
- : MP33: use Ruby 3.3 from MacPorts |
- : HB33: use Ruby 3.3 from Homebrew |
- : Ana3: use Ruby 3.2 from Anaconda3 |
- [-p|--python ] : case-insensitive type=['nil', 'Sys', 'MP311', 'HB311', 'Ana3', | sys
- : 'MP39', 'HB39', 'HBAuto'] |
- : nil: don't bind Python |
- : Sys: use [Sonoma|Ventura|Monterey]-bundled Python 3.9 |
- : MP311: use Python 3.11 from MacPorts |
- : HB311: use Python 3.11 from Homebrew |
- : Ana3: use Python 3.11 from Anaconda3 |
- : MP39: use Python 3.9 from MacPorts (+) |
- : HB39: use Python 3.9 from Homebrew (+) |
- : (+) for the backward compatibility tests |
- : HBAuto: use the latest Python 3.x auto-detected from Homebrew |
- [-P|--buildPymod] : build and deploy Pymod (*.whl) for LW-*.dmg | disabled
- [-n|--noqtbinding] : don't create Qt bindings for ruby scripts | disabled
- [-u|--noqtuitools] : don't include uitools in Qt binding | disabled
- [-g|--nolibgit2] : don't include libgit2 for Git package support | disabled
- [-m|--make ] : option passed to 'make' | '--jobs=4'
- [-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 Qt's 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
------------------------------------------------------------------------------------------+---------------
+ option & argument : descriptions (refer to 'macbuild/build4mac_env.py' for details) | default value
+ ----------------------------------------------------------------------------------------+---------------
+ [-q|--qt ] : case-insensitive type=['Qt5MacPorts', 'Qt5Brew', 'Qt5Ana3', | qt5macports
+ : 'Qt6MacPorts', 'Qt6Brew'] |
+ : 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 (*) |
+ : (*) migration to Qt6 is ongoing |
+ [-r|--ruby ] : case-insensitive type=['nil', 'Sys', 'MP33', 'HB33', 'Ana3'] | sys
+ : nil: don't bind Ruby |
+ : Sys: use [Sequoia|Sonoma|Ventura|Monterey]-bundled Ruby 2.6 |
+ : MP33: use Ruby 3.3 from MacPorts |
+ : HB33: use Ruby 3.3 from Homebrew |
+ : Ana3: use Ruby 3.2 from Anaconda3 |
+ [-p|--python ] : case-insensitive type=['nil', 'Sys', 'MP312', 'HB312', 'Ana3', | sys
+ : 'MP311', 'HB311', 'HBAuto'] |
+ : nil: don't bind Python |
+ : Sys: use [Sequoia|Sonoma|Ventura|Monterey]-bundled Python 3.9 |
+ : MP312: use Python 3.12 from MacPorts |
+ : HB312: use Python 3.12 from Homebrew |
+ : Ana3: use Python 3.12 from Anaconda3 |
+ : MP311: use Python 3.11 from MacPorts |
+ : 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] : don't create Qt bindings for ruby scripts | disabled
+ [-u|--noqtuitools] : don't include uitools in Qt binding | disabled
+ [-g|--nolibgit2] : don't include libgit2 for Git package support | disabled
+ [-m|--make ] : option passed to 'make' | '--jobs=4'
+ [-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 Qt's 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
+-------------------------------------------------------------------------------------------+---------------
```
# 6. Use-cases
-In this section, the actual file and directory names are those obtained on macOS Monterey.
+In this section, the actual file and directory names are those obtained on macOS Sonoma.
On different OS, those names differ accordingly.
### 6A. Standard build using the OS-bundled Ruby and Python with MacPorts Qt5
@@ -138,7 +141,7 @@ Confirm that you have:
```
As of this writing, the provided Python version is `3.9.6`.
-1. Invoke **`build4mac.py`** with the following options: **((Notes))** These options are the default values for Monterey, Ventura, and Sonoma.
+1. Invoke **`build4mac.py`** with the following options: **((Notes))** These options are the default values for Sonoma, Ventura, and Sequioa.
```
$ cd /where/'build.sh'/exists
$ ./build4mac.py -q qt5macports -r sys -p sys
@@ -151,27 +154,27 @@ $ ./build4mac.py -q qt5macports -r sys -p sys
$ ./build4mac.py -q qt5macports -r sys -p sys -y
```
The application bundle **`klayout.app`** is located under:
- **`ST-qt5MP.pkg.macos-Monterey-release-RsysPsys`** directory, where
+ **`ST-qt5MP.pkg.macos-Sonoma-release-RsysPsys`** directory, where
* "ST-" means this is a standard package.
* "qt5MP" means that Qt5 from MacPorts is used.
* "RsysPsys" means that Ruby is 2.6 provided by OS; Python is 3.9 provided by OS.
4. Copy/move the generated application bundle **`klayout.app`** to your **`/Applications`** directory for installation.
-### 6B. Fully MacPorts-flavored build with MacPorts Ruby 3.3 and MacPorts Python 3.11
-0. Install MacPorts, then install Qt5, Ruby 3.3, Python 3.11, and libgit2 by
+### 6B. Fully MacPorts-flavored build with MacPorts Ruby 3.3 and MacPorts Python 3.12
+0. Install MacPorts, then install Qt5, Ruby 3.3, Python 3.12, and libgit2 by
```
$ sudo port install coreutils
$ sudo port install findutils
$ sudo port install qt5
$ sudo port install ruby33
-$ sudo port install python311
-$ sudo port install py311-pip
+$ sudo port install python312
+$ sudo port install py312-pip
$ sudo port install libgit2
```
1. Invoke **`build4mac.py`** with the following options:
```
$ cd /where/'build.sh'/exists
-$ ./build4mac.py -q qt5macports -r mp33 -p mp311
+$ ./build4mac.py -q qt5macports -r mp33 -p mp312
```
2. Confirm successful build (it will take about one hour, depending on your machine spec).
3. Rerun **`build4mac.py`** with the same options used in 1. PLUS "-Y" to deploy executables and libraries under **`klayout.app`** bundle.
@@ -179,49 +182,56 @@ $ ./build4mac.py -q qt5macports -r mp33 -p mp311
If you use `--buildPymod` option in Step-1 and Step-3, the KLayout Standalone Python Package (\*.whl) will be built and deployed under **klayout.app/Contents/pymod-dist/**.
```
-$ ./build4mac.py -q qt5macports -r mp33 -p mp311 -Y
+$ ./build4mac.py -q qt5macports -r mp33 -p mp312 -Y
```
The application bundle **`klayout.app`** is located under:
- **`LW-qt5MP.pkg.macos-Monterey-release-Rmp33Pmp311`** directory, where
+ **`LW-qt5MP.pkg.macos-Sonoma-release-Rmp33Pmp312`** directory, where
* "LW-" means this is a lightweight package.
* "qt5MP" means that Qt5 from MacPorts is used.
-* "Rmp33Pmp311" means that Ruby is 3.3 from MacPorts; Python is 3.11 from MacPorts.
+* "Rmp33Pmp312" means that Ruby is 3.3 from MacPorts; Python is 3.12 from MacPorts.
4. Copy/move the generated application bundle **`klayout.app`** to your **`/Applications`** directory for installation.
-### 6C. Fully Homebrew-flavored build with Homebrew Ruby 3.3 and Homebrew Python 3.11
+### 6C. Fully Homebrew-flavored build with Homebrew Ruby 3.3 and Homebrew Python 3.12
> [!IMPORTANT]
> To build KLayout >= 0.29.0, you need "Qt6" >= 6.7.0 to address [the compilation issue](https://github.com/KLayout/klayout/issues/1599).
-0. Install Homebrew, then install Qt6, Ruby 3.3, Python 3.11, and libgit2 by
+0. Install Homebrew, then install Qt6, Ruby 3.3, Python 3.12, and libgit2 by
```
$ brew install qt@6
$ brew install ruby@3.3
-$ brew install python@3.11
+$ brew install python@3.12
$ brew install libgit2
$ cd /where/'build.sh'/exists
$ cd macbuild
-$ ./python3HB.py -v 3.11
+$ ./python3HB.py -v 3.12
```
1. Invoke **`build4mac.py`** with the following options:
```
$ cd /where/'build.sh'/exists
-$ ./build4mac.py -q qt6brew -r hb33 -p hb311
+$ ./build4mac.py -q qt6brew -r hb33 -p hb312
```
2. Confirm successful build (it will take about one hour, depending on your machine spec).
3. Rerun **`build4mac.py`** with the same options used in 1. PLUS "-Y" to deploy executables and libraries under **`klayout.app`** bundle.
The buddy command-line tools (strm*) will also be deployed under **klayout.app/Contents/Buddy/** in this step.
- If you use `--buildPymod` option in Step-1 and Step-3, the KLayout Standalone Python Package (\*.whl) will be built and deployed under **klayout.app/Contents/pymod-dist/**.
```
-$ ./build4mac.py -q qt6brew -r hb33 -p hb311 -Y
+$ ./build4mac.py -q qt6brew -r hb33 -p hb312 -Y
```
The application bundle **`klayout.app`** is located under:
- **`LW-qt6Brew.pkg.macos-Monterey-release-Rhb33Phb311`** directory, where
+ **`LW-qt6Brew.pkg.macos-Sonoma-release-Rhb33Phb312`** directory, where
* "LW-" means this is a lightweight package.
* "qt6Brew" means that Qt6 from Homebrew is used.
-* "Rhb33Phb311" means that Ruby is 3.3 from Homebrew; Python is 3.11 from Homebrew.
+* "Rhb33Phb312" means that Ruby is 3.3 from Homebrew; Python is 3.12 from Homebrew.
4. Copy/move the generated application bundle **`klayout.app`** to your **`/Applications`** directory for installation.
+> [!WARNING]
+> We can no longer use the legacy **pip** command with Homebew Python@3.12, and we will get,
+> ```
+> error: externally-managed-environment
+> ```
+> To avoid this error, use a virtual environment, as Homebrew suggests.
+> See `HomebrewUser-ReadMeFirst.txt` in `Resources/script-bundle-B.zip` for details.
+
### 6D. Partially Homebrew-flavored build with System Ruby and Homebrew Python 3.11
> [!IMPORTANT]
> To build KLayout >= 0.29.0, you need "Qt6" >= 6.7.0 to address [the compilation issue](https://github.com/KLayout/klayout/issues/1599).
@@ -248,7 +258,7 @@ $ ./build4mac.py -q qt6brew -r sys -p hb311
$ ./build4mac.py -q qt6brew -r sys -p hb311 -y
```
The application bundle **`klayout.app`** is located under:
- **`HW-qt6Brew.pkg.macos-Monterey-release-RsysPhb311`** directory, where
+ **`HW-qt6Brew.pkg.macos-Sonoma-release-RsysPhb311`** directory, where
* "HW-" means this is a heavyweight package because both Qt6 and Python Frameworks are deployed.
* "qt6Brew" means that Qt6 from Homebrew is used.
* "RsysPhb311" means that Ruby is OS-bundled; Python is 3.11 from Homebrew.
@@ -290,17 +300,17 @@ $ ./build4mac.py -q qt5macports -r sys -p hb311
$ ./build4mac.py -q qt5macports -r sys -p hb311 -y
```
The application bundle **`klayout.app`** is located under:
- **`HW-qt5MP.pkg.macos-Monterey-release-RsysPhb311`** directory, where
+ **`HW-qt5MP.pkg.macos-Sonoma-release-RsysPhb311`** directory, where
* "HW-" means this is a heavyweight package because both Qt5 and Python Frameworks are deployed.
* "qt5MP" means that Qt5 from MacPorts is used.
* "RsysPhb311" means that Ruby is OS-bundled; Python is 3.11 from Homebrew.
4. Copy/move the generated application bundle **`klayout.app`** to your **`/Applications`** directory for installation.
-### 6F. Fully Anaconda3-flavored build with Anaconda3 Ruby 3.2 and Anaconda3 Python 3.11
-0. Install Anaconda3 (Anaconda3-2023.09-0-MacOSX-x86_64.pkg), then install Ruby 3.2 and libgit2 by
+### 6F. Fully Anaconda3-flavored build with Anaconda3 Ruby 3.2 and Anaconda3 Python 3.12
+0. Install Anaconda3 (Anaconda3-2024.06-1-MacOSX-x86_64.pkg), then install Ruby 3.2 and libgit2 by
```
$ conda install ruby=3.2.2
-$ conda install -c conda-forge libgit2
+$ conda install libgit2=1.6.4
```
1. Invoke **`build4mac.py`** with the following options:
@@ -317,10 +327,10 @@ $ ./build4mac.py -q qt5ana3 -r ana3 -p ana3
$ ./build4mac.py -q qt5ana3 -r ana3 -p ana3 -Y
```
The application bundle **`klayout.app`** is located under:
- **`LW-qt5Ana3.pkg.macos-Monterey-release-Rana3Pana3`** directory, where
+ **`LW-qt5Ana3.pkg.macos-Sonoma-release-Rana3Pana3`** directory, where
* "LW-" means this is a lightweight package.
* "qt5Ana3" means that Qt5 from Anaconda3 is used.
-* "Rana3Pana3" means that Ruby (3.2) is from Anaconda3; Python (3.11) is from Anaconda3.
+* "Rana3Pana3" means that Ruby (3.2) is from Anaconda3; Python (3.12) is from Anaconda3.
4. Copy/move the generated application bundle **`klayout.app`** to your **`/Applications`** directory for installation.
5. You may have to set the `PYTHONHOME` environment variable like:
```
@@ -328,7 +338,7 @@ export PYTHONHOME=$HOME/opt/anaconda3
```
### 6G. Other combinations
-Logically, several module combinations other than 6B through 6E are possible, including `nil` choice.
+Logically, several module combinations other than 6A through 6F are possible, including `nil` choice.
The resultant package directory name will begin with **`EX-`** (exceptional) if you choose such a combination.
### 6H. Using the git-based Salt Package Manager through a proxy server
@@ -375,7 +385,7 @@ If required, you can use the `-x ` option to skip some erroneous tests.
# 8. Making a DMG installer
You can make a DMG installer using another Python script **`makeDMG4mac.py`**.
-This script requires a directory generated by **`build4mac.py`** with the [-y|-Y] option (refer to 6B through 6E).
+This script requires a directory generated by **`build4mac.py`** with the [-y|-Y] option (refer to 6A through 6F).
1. Make a symbolic link (if it does not exist) from the parent directory (where **`build.sh`** exists) to **`makeDMG4mac.py`**, that is,
```
@@ -384,11 +394,11 @@ makeDMG4mac.py -> macbuild/makeDMG4mac.py
2. Invoke **`makeDMG4mac.py`** with -p and -m options, for example,
```
$ cd /where/'build.sh'/exists
-$ ./makeDMG4mac.py -p LW-qt5MP.pkg.macos-Monterey-release-Rmp33Pmp311 -m
+$ ./makeDMG4mac.py -p LW-qt5MP.pkg.macos-Sonoma-release-Rmp33Pmp312 -m
```
This command will generate the two files below:
-* **`LW-klayout-0.29.0-macOS-Monterey-1-qt5MP-Rmp33Pmp311.dmg`** ---(1) the main DMG file
-* **`LW-klayout-0.29.0-macOS-Monterey-1-qt5MP-Rmp33Pmp311.dmg.md5`** ---(2) MD5-value text file
+* **`LW-klayout-0.29.7-macOS-Sonoma-1-qt5MP-Rmp33Pmp312.dmg`** ---(1) the main DMG file
+* **`LW-klayout-0.29.7-macOS-Sonoma-1-qt5MP-Rmp33Pmp312.dmg.md5`** ---(2) MD5-value text file
# Known issues
Because we assume some specific versions of non-OS-standard Ruby and Python, updating Homebrew, MacPorts, or Anaconda3 may cause build- and link errors.
diff --git a/macbuild/Resources/KLayoutDMG-BackQt5.logoist b/macbuild/Resources/KLayoutDMG-BackQt5.logoist
index ece5f072a..be777d933 100644
Binary files a/macbuild/Resources/KLayoutDMG-BackQt5.logoist and b/macbuild/Resources/KLayoutDMG-BackQt5.logoist differ
diff --git a/macbuild/Resources/KLayoutDMG-BackQt5.png b/macbuild/Resources/KLayoutDMG-BackQt5.png
index deed96a58..a20fc5400 100644
Binary files a/macbuild/Resources/KLayoutDMG-BackQt5.png and b/macbuild/Resources/KLayoutDMG-BackQt5.png differ
diff --git a/macbuild/Resources/KLayoutDMG-BackQt6.logoist b/macbuild/Resources/KLayoutDMG-BackQt6.logoist
index efd151db3..4b4e09704 100644
Binary files a/macbuild/Resources/KLayoutDMG-BackQt6.logoist and b/macbuild/Resources/KLayoutDMG-BackQt6.logoist differ
diff --git a/macbuild/Resources/KLayoutDMG-BackQt6.png b/macbuild/Resources/KLayoutDMG-BackQt6.png
index 3f22d12c7..3e01aa504 100644
Binary files a/macbuild/Resources/KLayoutDMG-BackQt6.png and b/macbuild/Resources/KLayoutDMG-BackQt6.png differ
diff --git a/macbuild/Resources/script-bundle-A.zip b/macbuild/Resources/script-bundle-A.zip
index 588acdfbf..8fe31e938 100644
Binary files a/macbuild/Resources/script-bundle-A.zip and b/macbuild/Resources/script-bundle-A.zip differ
diff --git a/macbuild/Resources/script-bundle-B.zip b/macbuild/Resources/script-bundle-B.zip
index af2b51641..15db23403 100644
Binary files a/macbuild/Resources/script-bundle-B.zip and b/macbuild/Resources/script-bundle-B.zip differ
diff --git a/macbuild/Resources/script-bundle-H.zip b/macbuild/Resources/script-bundle-H.zip
index 8b8a95cde..40ecf395c 100644
Binary files a/macbuild/Resources/script-bundle-H.zip and b/macbuild/Resources/script-bundle-H.zip differ
diff --git a/macbuild/Resources/script-bundle-P.zip b/macbuild/Resources/script-bundle-P.zip
index bfe12a8e5..a07c44ac9 100644
Binary files a/macbuild/Resources/script-bundle-P.zip and b/macbuild/Resources/script-bundle-P.zip differ
diff --git a/macbuild/Resources/script-bundle-S.zip b/macbuild/Resources/script-bundle-S.zip
index 2d61ebbfd..319b45b55 100644
Binary files a/macbuild/Resources/script-bundle-S.zip and b/macbuild/Resources/script-bundle-S.zip differ
diff --git a/macbuild/build4mac.py b/macbuild/build4mac.py
index b0e6075d2..ca279c34f 100755
--- a/macbuild/build4mac.py
+++ b/macbuild/build4mac.py
@@ -5,7 +5,7 @@
# File: "macbuild/build4mac.py"
#
# The top Python script for building KLayout (http://www.klayout.de/index.php)
-# version 0.29.0 or later on different Apple Mac OSX platforms.
+# version 0.29.7 or later on different Apple Mac OSX platforms.
#===============================================================================
import sys
import os
@@ -34,7 +34,7 @@
# @return (usage, moduleset)-tuple
#-------------------------------------------------------------------------------
def GenerateUsage(platform):
- if platform.upper() in [ "SONOMA", "VENTURA", "MONTEREY" ]: # with Xcode [13.1 .. ]
+ if platform.upper() in [ "SEQUOIA", "SONOMA", "VENTURA", "MONTEREY" ]: # with Xcode [13.1 .. ]
myQt56 = "qt5macports"
myRuby = "sys"
myPython = "sys"
@@ -43,58 +43,58 @@ def GenerateUsage(platform):
raise Exception( "! Too obsolete platform <%s>" % platform )
usage = "\n"
- usage += "---------------------------------------------------------------------------------------------------------\n"
+ usage += "-----------------------------------------------------------------------------------------------------------\n"
usage += "<< Usage of 'build4mac.py' >>\n"
- usage += " for building KLayout 0.29.0 or later on different Apple macOS platforms.\n"
+ usage += " for building KLayout 0.29.7 or later on different Apple macOS platforms.\n"
usage += "\n"
usage += "$ [python] ./build4mac.py\n"
- usage += " option & argument : descriptions (refer to 'macbuild/build4mac_env.py' for details)| default value\n"
- usage += " --------------------------------------------------------------------------------------+---------------\n"
- usage += " [-q|--qt ] : case-insensitive type=['Qt5MacPorts', 'Qt5Brew', 'Qt5Ana3', | %s\n" % myQt56
- usage += " : 'Qt6MacPorts', 'Qt6Brew'] |\n"
- usage += " : Qt5MacPorts: use Qt5 from MacPorts |\n"
- usage += " : Qt5Brew: use Qt5 from Homebrew |\n"
- usage += " : Qt5Ana3: use Qt5 from Anaconda3 |\n"
- usage += " : Qt6MacPorts: use Qt6 from MacPorts (*) |\n"
- usage += " : Qt6Brew: use Qt6 from Homebrew (*) |\n"
- usage += " : (*) migration to Qt6 is ongoing |\n"
- usage += " [-r|--ruby ] : case-insensitive type=['nil', 'Sys', 'MP33', 'HB33', 'Ana3'] | %s\n" % myRuby
- usage += " : nil: don't bind Ruby |\n"
- usage += " : Sys: use [Sonoma|Ventura|Monterey]-bundled Ruby 2.6 |\n"
- usage += " : MP33: use Ruby 3.3 from MacPorts |\n"
- usage += " : HB33: use Ruby 3.3 from Homebrew |\n"
- usage += " : Ana3: use Ruby 3.2 from Anaconda3 |\n"
- usage += " [-p|--python ] : case-insensitive type=['nil', 'Sys', 'MP311', 'HB311', 'Ana3', | %s\n" % myPython
- usage += " : 'MP39', 'HB39', 'HBAuto'] |\n"
- usage += " : nil: don't bind Python |\n"
- usage += " : Sys: use [Sonoma|Ventura|Monterey]-bundled Python 3.9 |\n"
- usage += " : MP311: use Python 3.11 from MacPorts |\n"
- usage += " : HB311: use Python 3.11 from Homebrew |\n"
- usage += " : Ana3: use Python 3.11 from Anaconda3 |\n"
- usage += " : MP39: use Python 3.9 from MacPorts (+) |\n"
- usage += " : HB39: use Python 3.9 from Homebrew (+) |\n"
- usage += " : (+) for the backward compatibility tests |\n"
- usage += " : HBAuto: use the latest Python 3.x auto-detected from Homebrew |\n"
- usage += " [-P|--buildPymod] : build and deploy Pymod (*.whl) for LW-*.dmg | disabled\n"
- usage += " [-n|--noqtbinding] : don't create Qt bindings for ruby scripts | disabled\n"
- usage += " [-u|--noqtuitools] : don't include uitools in Qt binding | disabled\n"
- usage += " [-g|--nolibgit2] : don't include libgit2 for Git package support | disabled\n"
- usage += " [-m|--make ] : option passed to 'make' | '--jobs=4'\n"
- usage += " [-d|--debug] : enable debug mode build; AddressSanitizer (ASAN) is linked | disabled\n"
- usage += " [-c|--checkcom] : check command-line and exit without building | disabled\n"
- usage += " [-y|--deploy] : deploy executables and dylibs, including Qt's Frameworks | disabled\n"
- usage += " [-Y|--DEPLOY] : deploy executables and dylibs for those who built KLayout | disabled\n"
- usage += " : from the source code and use the tools in the same machine |\n"
- usage += " : ! After confirmation of the successful build of 'klayout.app', |\n"
- usage += " : rerun this script with BOTH: |\n"
- usage += " : 1) the same options used for building AND |\n"
- usage += " : 2) <-y|--deploy> OR <-Y|--DEPLOY> |\n"
- usage += " : optionally with [-v|--verbose <0-3>] |\n"
- usage += " [-v|--verbose <0-3>] : verbose level of `macdeployqt' (effective with -y only) | 1\n"
- usage += " : 0 = no output, 1 = error/warning (default), |\n"
- usage += " : 2 = normal, 3 = debug |\n"
- usage += " [-?|--?] : print this usage and exit; in zsh, quote like '-?' or '--?' | disabled\n"
- usage += "-----------------------------------------------------------------------------------------+---------------\n"
+ usage += " option & argument : descriptions (refer to 'macbuild/build4mac_env.py' for details) | default value\n"
+ usage += " ----------------------------------------------------------------------------------------+---------------\n"
+ usage += " [-q|--qt ] : case-insensitive type=['Qt5MacPorts', 'Qt5Brew', 'Qt5Ana3', | %s\n" % myQt56
+ usage += " : 'Qt6MacPorts', 'Qt6Brew'] |\n"
+ usage += " : Qt5MacPorts: use Qt5 from MacPorts |\n"
+ usage += " : Qt5Brew: use Qt5 from Homebrew |\n"
+ usage += " : Qt5Ana3: use Qt5 from Anaconda3 |\n"
+ usage += " : Qt6MacPorts: use Qt6 from MacPorts (*) |\n"
+ usage += " : Qt6Brew: use Qt6 from Homebrew (*) |\n"
+ usage += " : (*) migration to Qt6 is ongoing |\n"
+ usage += " [-r|--ruby ] : case-insensitive type=['nil', 'Sys', 'MP33', 'HB33', 'Ana3'] | %s\n" % myRuby
+ usage += " : nil: don't bind Ruby |\n"
+ usage += " : Sys: use [Sequoia|Sonoma|Ventura|Monterey]-bundled Ruby 2.6 |\n"
+ usage += " : MP33: use Ruby 3.3 from MacPorts |\n"
+ usage += " : HB33: use Ruby 3.3 from Homebrew |\n"
+ usage += " : Ana3: use Ruby 3.2 from Anaconda3 |\n"
+ usage += " [-p|--python ] : case-insensitive type=['nil', 'Sys', 'MP312', 'HB312', 'Ana3', | %s\n" % myPython
+ usage += " : 'MP311', 'HB311', 'HBAuto'] |\n"
+ usage += " : nil: don't bind Python |\n"
+ usage += " : Sys: use [Sequoia|Sonoma|Ventura|Monterey]-bundled Python 3.9 |\n"
+ usage += " : MP312: use Python 3.12 from MacPorts |\n"
+ usage += " : HB312: use Python 3.12 from Homebrew |\n"
+ usage += " : Ana3: use Python 3.12 from Anaconda3 |\n"
+ usage += " : MP311: use Python 3.11 from MacPorts |\n"
+ usage += " : HB311: use Python 3.11 from Homebrew (+) |\n"
+ usage += " : (+) required to provide the legacy pip in HW-*.dmg |\n"
+ usage += " : HBAuto: use the latest Python 3.x auto-detected from Homebrew |\n"
+ usage += " [-P|--buildPymod] : build and deploy Pymod (*.whl) for LW-*.dmg | disabled\n"
+ usage += " [-n|--noqtbinding] : don't create Qt bindings for ruby scripts | disabled\n"
+ usage += " [-u|--noqtuitools] : don't include uitools in Qt binding | disabled\n"
+ usage += " [-g|--nolibgit2] : don't include libgit2 for Git package support | disabled\n"
+ usage += " [-m|--make ] : option passed to 'make' | '--jobs=4'\n"
+ usage += " [-d|--debug] : enable debug mode build; AddressSanitizer (ASAN) is linked | disabled\n"
+ usage += " [-c|--checkcom] : check command-line and exit without building | disabled\n"
+ usage += " [-y|--deploy] : deploy executables and dylibs, including Qt's Frameworks | disabled\n"
+ usage += " [-Y|--DEPLOY] : deploy executables and dylibs for those who built KLayout | disabled\n"
+ usage += " : from the source code and use the tools in the same machine |\n"
+ usage += " : ! After confirmation of the successful build of 'klayout.app', |\n"
+ usage += " : rerun this script with BOTH: |\n"
+ usage += " : 1) the same options used for building AND |\n"
+ usage += " : 2) <-y|--deploy> OR <-Y|--DEPLOY> |\n"
+ usage += " : optionally with [-v|--verbose <0-3>] |\n"
+ usage += " [-v|--verbose <0-3>] : verbose level of `macdeployqt' (effective with -y only) | 1\n"
+ usage += " : 0 = no output, 1 = error/warning (default), |\n"
+ usage += " : 2 = normal, 3 = debug |\n"
+ usage += " [-?|--?] : print this usage and exit; in zsh, quote like '-?' or '--?' | disabled\n"
+ usage += "-------------------------------------------------------------------------------------------+---------------\n"
return (usage, moduleset)
#-------------------------------------------------------------------------------
@@ -117,7 +117,9 @@ def Get_Default_Config():
# Dropped [ElCapitan - BigSur] (2023-10-24).
# See 415b5aa2efca04928f1148a69e77efd5d76f8c1d for the previous states.
#----------------------------------------------------------------------------
- if release == 23:
+ if release == 24:
+ Platform = "Sequoia"
+ elif release == 23:
Platform = "Sonoma"
elif release == 22:
Platform = "Ventura"
@@ -131,7 +133,8 @@ def Get_Default_Config():
sys.exit(1)
if not Machine == "x86_64":
- if Machine == "arm64" and Platform in ["Sonoma", "Ventura", "Monterey"]: # with an Apple Silicon Chip
+ # with an Apple Silicon Chip?
+ if Machine == "arm64" and Platform in ["Sequoia", "Sonoma", "Ventura", "Monterey"]:
print("")
print( "### Your Mac equips an Apple Silicon Chip ###" )
print( " Setting QMAKE_APPLE_DEVICE_ARCHS=arm64\n")
@@ -149,7 +152,11 @@ def Get_Default_Config():
ToolDebug = list()
# Set the default modules
- if Platform == "Sonoma":
+ if Platform == "Sequoia":
+ ModuleQt = "Qt5MacPorts"
+ ModuleRuby = "Sys"
+ ModulePython = "Sys"
+ elif Platform == "Sonoma":
ModuleQt = "Qt5MacPorts"
ModuleRuby = "Sys"
ModulePython = "Sys"
@@ -179,8 +186,7 @@ def Get_Default_Config():
PackagePrefix = ""
DeployVerbose = 1
Version = GetKLayoutVersionFrom( "./version.sh" )
- HBPythonIs39 = False # because ModulePython == "Python311Brew" by default
- OSPython3FW = None # system Python3 frameworks in [ None, MontereyPy3FW, VenturaPy3FW, SonomaPy3FW ]
+ OSPython3FW = None # system Python3 frameworks in [ None, MontereyPy3FW, VenturaPy3FW, SonomaPy3FW, SequoiaPy3FW ]
EmbedQt = False
EmbedPython3 = False
@@ -207,8 +213,7 @@ def Get_Default_Config():
config['Version'] = Version # KLayout's version
config['ModuleSet'] = ModuleSet # (Qt, Ruby, Python)-tuple
config['ToolDebug'] = ToolDebug # debug level list for this tool
- config['HBPythonIs39'] = HBPythonIs39 # True if the Homebrew Python version <= 3.9
- config['OSPython3FW'] = OSPython3FW # system Python3 frameworks in [ None, MontereyPy3FW, VenturaPy3FW, SonomaPy3FW ]
+ config['OSPython3FW'] = OSPython3FW # system Python3 frameworks in [ None, MontereyPy3FW, VenturaPy3FW, SonomaPy3FW, SequoiaPy3FW ]
config['EmbedQt'] = EmbedQt # True if Qt is embedded
config['EmbedPython3'] = EmbedPython3 # True if Python3 is embedded
# auxiliary variables on platform
@@ -252,7 +257,6 @@ def Parse_CLI_Args(config):
DeployVerbose = config['DeployVerbose']
ModuleSet = config['ModuleSet']
ToolDebug = config['ToolDebug']
- HBPythonIs39 = config['HBPythonIs39']
OSPython3FW = config['OSPython3FW']
EmbedQt = config['EmbedQt']
EmbedPython3 = config['EmbedPython3']
@@ -271,7 +275,7 @@ def Parse_CLI_Args(config):
p.add_option( '-p', '--python',
dest='type_python',
- help="Python type=['nil', 'Sys', 'MP311', 'HB311', 'Ana3', 'MP39', 'HB39', 'HBAuto']" )
+ help="Python type=['nil', 'Sys', 'MP312', 'HB312', 'Ana3', 'MP311', 'HB311', 'HBAuto']" )
p.add_option( '-P', '--buildPymod',
action='store_true',
@@ -340,7 +344,7 @@ def Parse_CLI_Args(config):
default=False,
help='check usage' )
- if Platform.upper() in [ "SONOMA", "VENTURA", "MONTEREY" ]: # with Xcode [13.1 .. ]
+ if Platform.upper() in [ "SEQUOIA", "SONOMA", "VENTURA", "MONTEREY" ]: # with Xcode [13.1 .. ]
p.set_defaults( type_qt = "qt5macports",
type_ruby = "sys",
type_python = "sys",
@@ -413,7 +417,9 @@ def Parse_CLI_Args(config):
if choiceRuby == "nil":
ModuleRuby = 'nil'
elif choiceRuby == "Sys":
- if Platform == "Sonoma":
+ if Platform == "Sequoia":
+ ModuleRuby = 'RubySequoia'
+ elif Platform == "Sonoma":
ModuleRuby = 'RubySonoma'
elif Platform == "Ventura":
ModuleRuby = 'RubyVentura'
@@ -439,11 +445,11 @@ def Parse_CLI_Args(config):
candidates = dict()
candidates['NIL'] = 'nil'
candidates['SYS'] = 'Sys'
+ candidates['MP312'] = 'MP312'
+ candidates['HB312'] = 'HB312'
+ candidates['ANA3'] = 'Ana3'
candidates['MP311'] = 'MP311'
candidates['HB311'] = 'HB311'
- candidates['ANA3'] = 'Ana3'
- candidates['MP39'] = 'MP39'
- candidates['HB39'] = 'HB39'
candidates['HBAUTO'] = 'HBAuto'
try:
choicePython = candidates[ opt.type_python.upper() ]
@@ -454,49 +460,38 @@ def Parse_CLI_Args(config):
ModulePython = ''
if choicePython == "nil":
ModulePython = 'nil'
- HBPythonIs39 = None
OSPython3FW = None
elif choicePython == "Sys":
- if Platform == "Sonoma":
+ if Platform == "Sequoia":
+ ModulePython = 'PythonSequoia'
+ OSPython3FW = SequoiaPy3FW
+ elif Platform == "Sonoma":
ModulePython = 'PythonSonoma'
- HBPythonIs39 = None
OSPython3FW = SonomaPy3FW
elif Platform == "Ventura":
ModulePython = 'PythonVentura'
- HBPythonIs39 = None
OSPython3FW = VenturaPy3FW
elif Platform == "Monterey":
ModulePython = 'PythonMonterey'
- HBPythonIs39 = None
OSPython3FW = MontereyPy3FW
- elif choicePython == "MP311":
- ModulePython = 'Python311MacPorts'
- HBPythonIs39 = None
+ elif choicePython == "MP312":
+ ModulePython = 'Python312MacPorts'
OSPython3FW = None
NonOSStdLang = True
- elif choicePython == "HB311":
- ModulePython = 'Python311Brew'
- HBPythonIs39 = False
+ elif choicePython == "HB312":
+ ModulePython = 'Python312Brew'
OSPython3FW = None
NonOSStdLang = True
elif choicePython == "Ana3":
ModulePython = 'PythonAnaconda3'
- HBPythonIs39 = None
- OSPython3FW = None
- NonOSStdLang = True
- elif choicePython == "MP39":
- ModulePython = 'Python39MacPorts'
- HBPythonIs39 = None
OSPython3FW = None
NonOSStdLang = True
- elif choicePython == "HB39":
- ModulePython = 'Python39Brew'
- HBPythonIs39 = True
+ elif choicePython == "HB311":
+ ModulePython = 'Python311Brew'
OSPython3FW = None
NonOSStdLang = True
elif choicePython == "HBAuto":
ModulePython = 'PythonAutoBrew'
- HBPythonIs39 = (HBPythonAutoVersion == "3.9")
OSPython3FW = None
NonOSStdLang = True
if ModulePython == '':
@@ -566,14 +561,13 @@ def Parse_CLI_Args(config):
PackagePrefix = "ST-"
EmbedQt = True
message += "a standard (ST-) package including Qt[5|6] and using OS-bundled Ruby and Python..."
- elif ModulePython in ['Python311Brew', 'Python39Brew', 'PythonAutoBrew']:
+ elif ModulePython in ['Python311Brew', 'PythonAutoBrew']:
PackagePrefix = "HW-"
EmbedQt = True
EmbedPython3 = True
- message += "a heavyweight (HW-) package including Qt[5|6] and Python3.[11|9] from Homebrew..."
+ message += "a heavyweight (HW-) package including Qt[5|6] and Python3.[11] from Homebrew..."
okHWdmg = (ModulePython == 'Python311Brew') or \
- (ModulePython == 'Python39Brew') or \
- (ModulePython == 'PythonAutoBrew' and HBPythonAutoVersion in ["3.11", "3.9"] )
+ (ModulePython == 'PythonAutoBrew' and HBPythonAutoVersion in ["3.11"] )
else:
PackagePrefix = "EX-"
message += "a package with exceptional (EX-) combinations of different modules..."
@@ -583,7 +577,7 @@ def Parse_CLI_Args(config):
if not okHWdmg:
print( "!!! HW-dmg package assumes the two conditions:" )
print( " (1) either Qt5 or Qt6 from MacPorts or Homebrew (Anaconda3 is not a candidate)" )
- print( " (2) either python@3.11 or python@3.9 from Homebrew" )
+ print( " (2) python@3.11 from Homebrew" )
sys.exit(1)
if CheckComOnly:
sys.exit(0)
@@ -610,7 +604,6 @@ def Parse_CLI_Args(config):
config['DeployVerbose'] = DeployVerbose
config['ModuleSet'] = ModuleSet
config['ToolDebug'] = ToolDebug
- config['HBPythonIs39'] = HBPythonIs39
config['OSPython3FW'] = OSPython3FW
config['EmbedQt'] = EmbedQt
config['EmbedPython3'] = EmbedPython3
@@ -688,7 +681,7 @@ def Get_Build_Parameters(config):
parameters['qt_lib_root'] = Qt56Dictionary[ModuleQt]['libdir']
# (E) rpath
- if OSPython3FW in [ MontereyPy3FW, VenturaPy3FW, SonomaPy3FW ]:
+ if OSPython3FW in [ MontereyPy3FW, VenturaPy3FW, SonomaPy3FW, SequoiaPy3FW ]:
parameters['rpath'] = OSPython3FW
else:
parameters['rpath'] = "@executable_path/../Frameworks"
@@ -736,10 +729,10 @@ def Get_Build_Parameters(config):
# (L) Extra parameters needed for
# will be built if:
# BuildPymodWhl = True
- # Platform = [ 'Sonoma', 'Ventura', 'Monterey']
+ # Platform = [ 'Sequoia', 'Sonoma', 'Ventura', 'Monterey']
# ModuleRuby = [ 'Ruby33MacPorts', 'Ruby33Brew', 'RubyAnaconda3' ]
- # ModulePython = [ 'Python311MacPorts', 'Python39MacPorts',
- # 'Python311Brew', Python39Brew', 'PythonAutoBrew',
+ # ModulePython = [ 'Python312MacPorts', 'Python311MacPorts',
+ # 'Python311Brew',
# 'PythonAnaconda3' ]
parameters['BuildPymodWhl'] = BuildPymodWhl
parameters['Platform'] = Platform
@@ -747,11 +740,11 @@ def Get_Build_Parameters(config):
parameters['ModulePython'] = ModulePython
PymodDistDir = dict()
- if Platform in [ 'Sonoma', 'Ventura', 'Monterey' ]:
+ if Platform in [ 'Sequoia', 'Sonoma', 'Ventura', 'Monterey' ]:
if ModuleRuby in [ 'Ruby33MacPorts', 'Ruby33Brew', 'RubyAnaconda3' ]:
- if ModulePython in [ 'Python311MacPorts', 'Python39MacPorts' ]:
+ if ModulePython in [ 'Python312MacPorts', 'Python311MacPorts' ]:
PymodDistDir[ModulePython] = 'dist-MP3-%s' % ModuleQt
- elif ModulePython in [ 'Python311Brew', 'Python39Brew', 'PythonAutoBrew' ]:
+ elif ModulePython in [ 'Python311Brew' ]:
PymodDistDir[ModulePython] = 'dist-HB3-%s' % ModuleQt
elif ModulePython in [ 'PythonAnaconda3' ]:
PymodDistDir[ModulePython] = 'dist-ana3-%s' % ModuleQt
@@ -770,10 +763,10 @@ def Build_pymod_wheel(parameters):
#-----------------------------------------------------------------------------------------------------------
# [1] will be built if:
# BuildPymodWhl = True
- # Platform = [ 'Sonoma', 'Ventura', 'Monterey']
+ # Platform = [ 'Sequoia', 'Sonoma', 'Ventura', 'Monterey']
# ModuleRuby = [ 'Ruby33MacPorts', 'Ruby33Brew', 'RubyAnaconda3' ]
- # ModulePython = [ 'Python311MacPorts', 'Python39MacPorts',
- # 'Python311Brew', Python39Brew', 'PythonAutoBrew',
+ # ModulePython = [ 'Python312MacPorts', 'Python311MacPorts',
+ # 'Python311Brew',
# 'PythonAnaconda3' ]
#-----------------------------------------------------------------------------------------------------------
BuildPymodWhl = parameters['BuildPymodWhl']
@@ -782,12 +775,13 @@ def Build_pymod_wheel(parameters):
ModulePython = parameters['ModulePython']
if not BuildPymodWhl:
return 0
- if not Platform in [ 'Sonoma', 'Ventura', 'Monterey' ]:
+ if not Platform in [ 'Sequoia', 'Sonoma', 'Ventura', 'Monterey' ]:
return 0
elif not ModuleRuby in [ 'Ruby33MacPorts', 'Ruby33Brew', 'RubyAnaconda3' ]:
return 0
- elif not ModulePython in [ 'Python311MacPorts', 'Python39MacPorts', 'PythonAnaconda3', \
- 'Python311Brew', 'Python39Brew', 'PythonAutoBrew' ]:
+ elif not ModulePython in [ 'Python312MacPorts', 'Python311MacPorts', \
+ 'Python311Brew', \
+ 'PythonAnaconda3' ]:
return 0
#--------------------------------------------------------------------
@@ -929,7 +923,7 @@ def Build_pymod_wheel(parameters):
# Refer to: https://github.com/Kazzz-S/klayout/issues/49#issuecomment-1432154118
# https://pypi.org/project/delocate/
#---------------------------------------------------------------------------------------------------------
- cmd3_args = glob.glob( "dist/*.whl" ) # like ['dist/klayout-0.29.0-cp311-cp311-macosx_12_0_x86_64.whl']
+ cmd3_args = glob.glob( "dist/*.whl" ) # like ['dist/klayout-0.29.7-cp312-cp312-macosx_12_0_x86_64.whl']
if len(cmd3_args) == 1:
command3 = "time"
command3 += " \\\n %s \\\n" % deloc_cmd
@@ -959,13 +953,13 @@ def Build_pymod_wheel(parameters):
#------------------------------------------------------------------------
# [5-C] Forcibly change the wheel file name for anaconda3
# Ref. https://github.com/Kazzz-S/klayout/issues/53
- # original: klayout-0.29.0-cp311-cp311-macosx_12_0_x86_64.whl
+ # original: klayout-0.29.7-cp312-cp312-macosx_12_0_x86_64.whl
# |
# V
- # new: klayout-0.29.0-cp311-cp311-macosx_10_9_x86_64.whl
+ # new: klayout-0.29.7-cp312-cp312-macosx_10_9_x86_64.whl
#------------------------------------------------------------------------
if whlTarget == "ana3":
- wheels = glob.glob( "dist/*.whl" ) # like ['dist/klayout-0.29.0-cp311-cp311-macosx_12_0_x86_64.whl']
+ wheels = glob.glob( "dist/*.whl" ) # like ['dist/klayout-0.29.7-cp312-cp312-macosx_12_0_x86_64.whl']
if not len(wheels) == 1:
print( "", file=sys.stderr )
print( "-------------------------------------------------------------", file=sys.stderr )
@@ -1225,7 +1219,6 @@ def Deploy_Binaries_For_Bundle(config, parameters):
ModuleRuby = config['ModuleRuby']
ModulePython = config['ModulePython']
ToolDebug = config['ToolDebug']
- HBPythonIs39 = config['HBPythonIs39']
EmbedQt = config['EmbedQt']
EmbedPython3 = config['EmbedPython3']
@@ -1601,8 +1594,8 @@ def Deploy_Binaries_For_Bundle(config, parameters):
regQt = re.compile(patQt)
# (4) Python frameworks (only for Homebrew) # in the case of Intel Mac...
- libPy3_1 = "%s/" % HBPython311FrameworkPath # /usr/local/opt/python@3.11/Frameworks/Python.framework/
- libPy3_2 = "%s/" % HBPython39FrameworkPath # /usr/local/opt/python@3.9/Frameworks/Python.framework/
+ libPy3_1 = "%s/" % HBPython312FrameworkPath # /usr/local/opt/python@3.12/Frameworks/Python.framework/
+ libPy3_2 = "%s/" % HBPython311FrameworkPath # /usr/local/opt/python@3.11/Frameworks/Python.framework/
patPy3 = r'^(%s|%s)(.+)' % (libPy3_1, libPy3_2)
regPy3 = re.compile(patPy3)
@@ -1837,56 +1830,50 @@ def Deploy_Binaries_For_Bundle(config, parameters):
return 1
#-----------------------------------------------------------------------------------------------
- # [9] Special deployment of Python3.8 or newer from Homebrew
- # To use Python3.8 from Homebrew on Catalina...
- # in "/usr/local/opt/python@3.8/lib/"
+ # [9] Special deployment of Python3.11 from Homebrew
+ # To use Python3.1 from Homebrew on Sonoma...
+ # in "/usr/local/opt/python@3.11/lib/"
# Python.framework -> ../Frameworks/Python.framework/ <=== this symbolic was needed
# pkgconfig/
#
# Use the "python3HB.py" tool to make different symbolic links [*] including the above one.
- # Catalina0{kazzz-s} lib (1)% pwd
- # /usr/local/opt/python@3.8/lib
- # Catalina0{kazzz-s} lib (2)% ll
+ # Sonoma{kazzz-s} lib (1)% pwd
+ # /usr/local/opt/python@3.11/lib
+ # Sonoma{kazzz-s} lib (2)% ll
# total 0
- # drwxr-xr-x 4 kazzz-s admin 128 12 16 21:40 .
- # drwxr-xr-x 13 kazzz-s admin 416 12 12 23:08 ..
- # [*] lrwxr-xr-x 1 kazzz-s admin 31 12 16 21:40 Python.framework -> ../Frameworks/Python.framework/
- # drwxr-xr-x 4 kazzz-s admin 128 12 12 23:08 pkgconfig
+ # drwxr-xr-x 4 kazzz-s admin 128 9 21 23:03 .
+ # drwxr-xr-x 14 kazzz-s admin 448 9 21 18:33 ..
+ # [*] lrwxr-xr-x 1 kazzz-s admin 31 9 21 23:03 Python.framework -> ../Frameworks/Python.framework/
+ # drwxr-xr-x 4 kazzz-s admin 128 9 7 10:03 pkgconfig
#
- # Catalina0{kazzz-s} Python.framework (3)% pwd
- # /usr/local/opt/python@3.8/Frameworks/Python.framework/Versions
- # Catalina0{kazzz-s} Versions (4)% ll
+ # Sonoma{kazzz-s} Python.framework (3)% pwd
+ # /usr/local/opt/python@3.11/Frameworks/Python.framework/Versions
+ # Sonoma{kazzz-s} Versions (4)% ll
# total 0
- # drwxr-xr-x 4 kazzz-s admin 128 12 16 21:40 .
- # drwxr-xr-x 6 kazzz-s admin 192 12 16 21:40 ..
- # drwxr-xr-x 9 kazzz-s admin 288 12 12 23:08 3.8
- # [*] lrwxr-xr-x 1 kazzz-s admin 4 12 16 21:40 Current -> 3.8/
+ # drwxr-xr-x 4 kazzz-s admin 128 9 21 23:03 .
+ # drwxr-xr-x 6 kazzz-s admin 192 9 21 23:03 ..
+ # drwxr-xr-x 9 kazzz-s admin 288 9 7 10:03 3.11
+ # [*] lrwxr-xr-x 1 kazzz-s admin 5 9 21 23:03 Current -> 3.11/
#
- # Catalina0{kazzz-s} Python.framework (5)% pwd
- # /usr/local/opt/python@3.8/Frameworks/Python.framework
- # Catalina0{kazzz-s} Python.framework (6)% ll
+ # Sonoma{kazzz-s} Python.framework (5)% pwd
+ # /usr/local/opt/python@3.11/Frameworks/Python.framework
+ # Sonoma{kazzz-s} Python.framework (6)% ll
# total 0
- # drwxr-xr-x 6 kazzz-s admin 192 12 16 21:40 .
- # drwxr-xr-x 3 kazzz-s admin 96 12 12 23:07 ..
- # [*] lrwxr-xr-x 1 kazzz-s admin 25 12 16 21:40 Headers -> Versions/Current/Headers/
- # [*] lrwxr-xr-x 1 kazzz-s admin 23 12 16 21:40 Python -> Versions/Current/Python
- # [*] lrwxr-xr-x 1 kazzz-s admin 27 12 16 21:40 Resources -> Versions/Current/Resources/
- # drwxr-xr-x 4 kazzz-s admin 128 12 16 21:40 Versions
+ # drwxr-xr-x 6 kazzz-s admin 192 9 21 23:03 .
+ # drwxr-xr-x 3 kazzz-s admin 96 9 7 10:03 ..
+ # [*] lrwxr-xr-x 1 kazzz-s admin 25 9 21 23:03 Headers -> Versions/Current/Headers/
+ # [*] lrwxr-xr-x 1 kazzz-s admin 23 9 21 23:03 Python -> Versions/Current/Python
+ # [*] lrwxr-xr-x 1 kazzz-s admin 27 9 21 23:03 Resources -> Versions/Current/Resources/
+ # drwxr-xr-x 4 kazzz-s admin 128 9 21 23:03 Versions
#-----------------------------------------------------------------------------------------------
deploymentPython311HB = (ModulePython == 'Python311Brew')
- deploymentPython39HB = (ModulePython == 'Python39Brew')
deploymentPythonAutoHB = (ModulePython == 'PythonAutoBrew')
- if (deploymentPython311HB or deploymentPython39HB or deploymentPythonAutoHB) and NonOSStdLang:
+ if (deploymentPython311HB or deploymentPythonAutoHB) and NonOSStdLang:
# from build4mac_util import WalkFrameworkPaths, PerformChanges
# from build4mac_util import Change_Python_LibPath_RelativeToAbsolute, DumpDependencyDic
-
if deploymentPython311HB:
HBPythonFrameworkPath = HBPython311FrameworkPath
- pythonHBVer = "3.11" # 'pinned' to this version as of KLayout version 0.28.12 (2020-10-27)
- elif deploymentPython39HB:
- HBPythonFrameworkPath = HBPython39FrameworkPath
- pythonHBVer = "3.9" # 'pinned' to this version as of KLayout version 0.28.2 (2023-01-02)
- # More specifically, "3.9.17" as of KLayout version 0.28.12 (2023-09-dd)
+ pythonHBVer = "3.11" # required to provide the legacy pip in HW-*.dmg
elif deploymentPythonAutoHB:
HBPythonFrameworkPath = HBPythonAutoFrameworkPath
pythonHBVer = HBPythonAutoVersion
@@ -1936,15 +1923,12 @@ def Deploy_Binaries_For_Bundle(config, parameters):
print( msg % command, file=sys.stderr )
sys.exit(1)
- if HBPythonIs39 == None or HBPythonIs39 == True:
- shutil.copy2( sourceDir2 + "/start-console.py", targetDirM )
- else:
- ret = Generate_Start_Console_Py( sourceDir2 + "/template-start-console.py",
- pythonHBVer,
- targetDirM + "/start-console.py" )
- if ret == False:
- print( "! Generate_Start_Console_Py() failed", file=sys.stderr )
- return 1
+ ret = Generate_Start_Console_Py( sourceDir2 + "/template-start-console.py",
+ pythonHBVer,
+ targetDirM + "/start-console.py" )
+ if ret == False:
+ print( "! Generate_Start_Console_Py() failed", file=sys.stderr )
+ return 1
shutil.copy2( sourceDir2 + "/klayout_console", targetDirM )
os.chmod( targetDirM + "/start-console.py", 0o0755 )
@@ -1995,11 +1979,11 @@ def Deploy_Binaries_For_Bundle(config, parameters):
# xz 5.4.4 General-purpose data compression with high compression ratio
#---------------------------------------------------------------------------------------------------
# https://formulae.brew.sh/formula/python@3.11
- # as of 2023-10-24, python@3.11 depends on:
- # mpdecimal 2.5.1 Library for decimal floating point arithmetic
- # openssl@3 3.1.3 Cryptography and SSL/TLS Toolkit
- # sqlite 3.43.2 Command-line interface for SQLite
- # xz 5.4.4 General-purpose data compression with high compression ratio
+ # as of 2024-09-21, python@3.11 depends on:
+ # mpdecimal 4.0.0 Library for decimal floating point arithmetic
+ # openssl@3 3.3.2 Cryptography and SSL/TLS Toolkit
+ # sqlite 3.46.1 Command-line interface for SQLite
+ # xz 5.6.2 General-purpose data compression with high compression ratio
#---------------------------------------------------------------------------------------------------
print( " [9.2.4] Patching [mpdecimal, openssl@3, sqlite, xz(, gdbm, readline)]" )
if 924 in ToolDebug:
@@ -2130,6 +2114,7 @@ def Deploy_Binaries_For_Bundle(config, parameters):
# However, newer versions of Python deprecate the distutils.cfg file and the distutils module itself.
# Ref. https://github.com/Homebrew/homebrew-core/issues/76621
#----------------------------------------------------------------------------------------------------
+ """
if deploymentPython39HB or (HBPythonAutoVersion == "3.9"): # Python == 3.9
print( deploymentPython39HB, HBPythonAutoVersion )
print( " [9.5.1] Patching distutils/" )
@@ -2157,14 +2142,14 @@ def Deploy_Binaries_For_Bundle(config, parameters):
if re.match('prefix=', line) is not None:
continue
file.write(line)
-
- elif deploymentPython311HB or (HBPythonAutoVersion == "3.11"): # Python == 3.11
+ """
+ if deploymentPython311HB or (HBPythonAutoVersion == "3.11"): # Python == 3.11
# The above 'distutils.cfg' file does not exist in the distutils/ directory of Python 3.11.
# Use a different technique.
print( " [9.5.2] In the Python3.11 environment, use an alternative method of patching distutils/" )
print( " See Contents/MacOS/start-console.py in /Applications/klayout.app/" )
- else: # other than ["3.11", "3.9"]; "3.12" <= Python is yet to be tested
- print( "!!! HW-dmg package assumes either python@3.11 or python@3.9" )
+ else: # other than ["3.11"]
+ print( "!!! HW-dmg package assumes python@3.11" )
print( "!!! 'distutils' has been deprecated in 3.12 <= Python" )
print("")
os.chdir(ProjectDir)
diff --git a/macbuild/build4mac_env.py b/macbuild/build4mac_env.py
index 6436b11cc..f1e3e9b74 100755
--- a/macbuild/build4mac_env.py
+++ b/macbuild/build4mac_env.py
@@ -6,7 +6,7 @@
#
# Here are dictionaries of ...
# different modules for building KLayout (http://www.klayout.de/index.php)
-# version 0.29.0 or later on different Apple Mac OSX platforms.
+# version 0.29.7 or later on different Apple Mac OSX platforms.
#
# This file is imported by 'build4mac.py' script.
#===============================================================================
@@ -129,7 +129,7 @@
# for the previous states.
#-----------------------------------------------------
RubyNil = [ 'nil' ]
-RubySys = [ 'RubyMonterey', 'RubyVentura', 'RubySonoma' ]
+RubySys = [ 'RubyMonterey', 'RubyVentura', 'RubySonoma', 'RubySequoia' ]
RubyExt = [ 'Ruby33MacPorts', 'Ruby33Brew', 'RubyAnaconda3' ]
Rubies = RubyNil + RubySys + RubyExt
@@ -178,11 +178,21 @@
'lib': '%s/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/libruby.tbd' % SonomaXcSDK
}
+# Bundled with Sequoia (15.x)
+# [Key Type Name] = 'Sys'
+SequoiaXcSDK = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"
+SequoiaCLTSDK = "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk"
+RubySequoia = { 'exe': '/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby',
+ 'inc': '%s/System/Library/Frameworks/Ruby.framework/Headers' % SequoiaXcSDK,
+ 'inc2': '%s/System/Library/Frameworks/Ruby.framework/Headers/ruby' % SequoiaXcSDK,
+ 'lib': '%s/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/libruby.tbd' % SequoiaXcSDK
+ }
+
# Ruby 3.3 from MacPorts (https://www.macports.org/)
# install with 'sudo port install ruby33'
# [Key Type Name] = 'MP33'
Ruby33MacPorts = { 'exe': '/opt/local/bin/ruby3.3',
- 'inc': '/opt/local/include/ruby-3.3.4',
+ 'inc': '/opt/local/include/ruby-3.3.5',
'lib': '/opt/local/lib/libruby.3.3.dylib'
}
@@ -209,6 +219,7 @@
'RubyMonterey' : RubyMonterey,
'RubyVentura' : RubyVentura,
'RubySonoma' : RubySonoma,
+ 'RubySequoia' : RubySequoia,
'Ruby33MacPorts': Ruby33MacPorts,
'Ruby33Brew' : Ruby33Brew,
'RubyAnaconda3' : RubyAnaconda3
@@ -223,10 +234,10 @@
# for the previous states.
#-----------------------------------------------------
PythonNil = [ 'nil' ]
-PythonSys = [ 'PythonMonterey', 'PythonVentura', 'PythonSonoma' ]
-PythonExt = [ 'Python39MacPorts', 'Python39Brew' ]
-PythonExt += [ 'Python311MacPorts', 'Python311Brew' ]
-PythonExt += [ 'PythonAnaconda3', 'PythonAutoBrew' ]
+PythonSys = [ 'PythonMonterey', 'PythonVentura', 'PythonSonoma', 'PythonSequoia' ]
+PythonExt = [ 'Python311MacPorts', 'Python312MacPorts' ]
+PythonExt += [ 'Python311Brew', 'Python312Brew', 'PythonAutoBrew' ]
+PythonExt += [ 'PythonAnaconda3' ]
Pythons = PythonNil + PythonSys + PythonExt
#-----------------------------------------------------
@@ -259,13 +270,14 @@
'lib': '%s/Python3.framework/Versions/3.9/lib/libpython3.9.dylib' % SonomaPy3FW
}
-# Python 3.9 from MacPorts (https://www.macports.org/)
-# install with 'sudo port install python39'
-# [Key Type Name] = 'MP39'
-Python39MacPorts = { 'exe': '/opt/local/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9',
- 'inc': '/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9',
- 'lib': '/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/libpython3.9.dylib'
- }
+# Bundled with Sequoia (15.x)
+# [Key Type Name] = 'Sys'
+SequoiaPy3FWXc = "/Applications/Xcode.app/Contents/Developer/Library/Frameworks"
+SequoiaPy3FW = "/Library/Developer/CommandLineTools/Library/Frameworks"
+PythonSequoia = { 'exe': '%s/Python3.framework/Versions/3.9/bin/python3.9' % SequoiaPy3FW,
+ 'inc': '%s/Python3.framework/Versions/3.9/include/python3.9' % SequoiaPy3FW,
+ 'lib': '%s/Python3.framework/Versions/3.9/lib/libpython3.9.dylib' % SequoiaPy3FW
+ }
# Python 3.11 from MacPorts (https://www.macports.org/)
# install with 'sudo port install python311'
@@ -275,13 +287,12 @@
'lib': '/opt/local/Library/Frameworks/Python.framework/Versions/3.11/lib/libpython3.11.dylib'
}
-# Python 3.9 from Homebrew
-# install with 'brew install python@3.9'
-# [Key Type Name] = 'HB39'
-HBPython39FrameworkPath = '%s/opt/python@3.9/Frameworks/Python.framework' % DefaultHomebrewRoot
-Python39Brew = { 'exe': '%s/Versions/3.9/bin/python3.9' % HBPython39FrameworkPath,
- 'inc': '%s/Versions/3.9/include/python3.9' % HBPython39FrameworkPath,
- 'lib': '%s/Versions/3.9/lib/libpython3.9.dylib' % HBPython39FrameworkPath
+# Python 3.12 from MacPorts (https://www.macports.org/)
+# install with 'sudo port install python312'
+# [Key Type Name] = 'MP312'
+Python312MacPorts = { 'exe': '/opt/local/Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12',
+ 'inc': '/opt/local/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12',
+ 'lib': '/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/libpython3.12.dylib'
}
# Python 3.11 from Homebrew
@@ -293,19 +304,28 @@
'lib': '%s/Versions/3.11/lib/libpython3.11.dylib' % HBPython311FrameworkPath
}
-# Python 3.11 bundled with anaconda3 installed under /Applications/anaconda3/
+# Python 3.12 from Homebrew
+# install with 'brew install python@3.12'
+# [Key Type Name] = 'HB312'
+HBPython312FrameworkPath = '%s/opt/python@3.12/Frameworks/Python.framework' % DefaultHomebrewRoot
+Python312Brew = { 'exe': '%s/Versions/3.12/bin/python3.12' % HBPython312FrameworkPath,
+ 'inc': '%s/Versions/3.12/include/python3.12' % HBPython312FrameworkPath,
+ 'lib': '%s/Versions/3.12/lib/libpython3.12.dylib' % HBPython312FrameworkPath
+ }
+
+# Python 3.12 bundled with anaconda3 installed under /Applications/anaconda3/
# The standard installation deploys the tool under $HOME/opt/anaconda3/.
# If so, you need to make a symbolic link: /Applications/anaconda3 ---> $HOME/opt/anaconda3/
# [Key Type Name] = 'Ana3'
-PythonAnaconda3 = { 'exe': '/Applications/anaconda3/bin/python3.11',
- 'inc': '/Applications/anaconda3/include/python3.11',
- 'lib': '/Applications/anaconda3/lib/libpython3.11.dylib'
+PythonAnaconda3 = { 'exe': '/Applications/anaconda3/bin/python3.12',
+ 'inc': '/Applications/anaconda3/include/python3.12',
+ 'lib': '/Applications/anaconda3/lib/libpython3.12.dylib'
}
# Latest Python from Homebrew
# install with 'brew install python'
# There can be multiple candidates such as: (python, python3, python@3, python@3.8, python@3.9,
-# python@3.10, python@3.11, python@3.12, python@3.13 )
+# python@3.10, python@3.12, python@3.12, python@3.13 )
# Hard to tell which is going to be available to the user. Picking the last one.
# [Key Type Name] = 'HBAuto'
HBPythonAutoFrameworkPath = ""
@@ -330,19 +350,19 @@
'lib': glob.glob( "%s/%s/lib/*.dylib" % ( HBAutoFrameworkVersionPath, HBPythonAutoVersion ) )[0]
}
"""
- # when I have [python3, python@3, python@3.8, python@3.9, python@3.10, python@3.11]
+ # when I have [python3, python@3, python@3.11, python@3.12]
print(HBPythonAutoFrameworkPath)
print(HBAutoFrameworkVersionPath)
print(HBPythonAutoVersion)
print(PythonAutoBrew)
quit()
- /usr/local/opt/python@3.11/Frameworks/Python.framework
- /usr/local/opt/python@3.11/Frameworks/Python.framework/Versions
- 3.11
- { 'exe': '/usr/local/opt/python@3.11/Frameworks/Python.framework/Versions/3.11/bin/python3.11',
- 'inc': '/usr/local/opt/python@3.11/Frameworks/Python.framework/Versions/3.11/include/python3.11',
- 'lib': '/usr/local/opt/python@3.11/Frameworks/Python.framework/Versions/3.11/lib/libpython3.11.dylib'
+ /usr/local/opt/python@3.12/Frameworks/Python.framework
+ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions
+ 3.12
+ { 'exe': '/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/bin/python3.12',
+ 'inc': '/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12',
+ 'lib': '/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/lib/libpython3.12.dylib'
}
"""
except Exception as e:
@@ -357,11 +377,12 @@
'PythonMonterey' : PythonMonterey,
'PythonVentura' : PythonVentura,
'PythonSonoma' : PythonSonoma,
- 'Python39MacPorts' : Python39MacPorts,
+ 'PythonSequoia' : PythonSequoia,
+ 'Python312MacPorts': Python312MacPorts,
+ 'Python312Brew' : Python312Brew,
+ 'PythonAnaconda3' : PythonAnaconda3,
'Python311MacPorts': Python311MacPorts,
- 'Python39Brew' : Python39Brew,
- 'Python311Brew' : Python311Brew,
- 'PythonAnaconda3' : PythonAnaconda3
+ 'Python311Brew' : Python311Brew
}
if _have_Homebrew_Python:
PythonDictionary['PythonAutoBrew'] = PythonAutoBrew
diff --git a/macbuild/build4mac_util.py b/macbuild/build4mac_util.py
index 87980982b..34193510c 100755
--- a/macbuild/build4mac_util.py
+++ b/macbuild/build4mac_util.py
@@ -6,7 +6,7 @@
#
# Here are utility functions and classes ...
# for building KLayout (http://www.klayout.de/index.php)
-# version 0.29.0 or later on different Apple Mac OSX platforms.
+# version 0.29.7 or later on different Apple Mac OSX platforms.
#
# This file is imported by 'build4mac.py' script.
#========================================================================================
diff --git a/macbuild/macQAT.py b/macbuild/macQAT.py
index 0dc26e24d..97ccd563a 100755
--- a/macbuild/macQAT.py
+++ b/macbuild/macQAT.py
@@ -5,8 +5,8 @@
# File: "macbuild/macQAT.py"
#
# The top Python script to run "ut_runner" after building KLayout
-# (http://www.klayout.de/index.php) version 0.29.0 or later on different Apple
-# ßMac OSX platforms.
+# (http://www.klayout.de/index.php) version 0.29.7 or later on different
+# Apple Mac OSX platforms.
#
# This script must be copied to a "*.macQAT/" directory to run.
#===============================================================================
diff --git a/macbuild/macQAT.sh b/macbuild/macQAT.sh
index e88c059da..5f1e5eb90 100755
--- a/macbuild/macQAT.sh
+++ b/macbuild/macQAT.sh
@@ -4,8 +4,8 @@
# File: "macbuild/macQAT.sh"
#
# The top Bash script to run "ut_runner" after building KLayout
-# (http://www.klayout.de/index.php) version 0.25.17 or later on different Apple
-# Mac OSX platforms.
+# (http://www.klayout.de/index.php) version 0.29.7 or later on different
+# Apple Mac OSX platforms.
#
# This script must be copied to a "*.macQAT/" directory to run.
#===============================================================================
diff --git a/macbuild/macQAT2.sh b/macbuild/macQAT2.sh
index 59f9e4d83..42f0763fd 100755
--- a/macbuild/macQAT2.sh
+++ b/macbuild/macQAT2.sh
@@ -4,8 +4,8 @@
# File: "macbuild/macQAT2.sh"
#
# The top Bash script to run "ut_runner" after building KLayout
-# (http://www.klayout.de/index.php) version 0.28.17 or later on different Apple
-# Mac OSX platforms.
+# (http://www.klayout.de/index.php) version 0.29.7 or later on different
+# Apple Mac OSX platforms.
#
# This script must be copied to a directory that can be found in $PATH.
#===============================================================================
diff --git a/macbuild/makeDMG4mac.py b/macbuild/makeDMG4mac.py
index cedfe3de1..5f6475184 100755
--- a/macbuild/makeDMG4mac.py
+++ b/macbuild/makeDMG4mac.py
@@ -78,7 +78,7 @@ def SetGlobals():
Usage = "\n"
Usage += "---------------------------------------------------------------------------------------------------------\n"
Usage += "<< Usage of 'makeDMG4mac.py' >>\n"
- Usage += " for making a DMG file of KLayout 0.29.0 or later on different Apple macOS platforms.\n"
+ Usage += " for making a DMG file of KLayout 0.29.7 or later on different Apple macOS platforms.\n"
Usage += "\n"
Usage += "$ [python] ./makeDMG4mac.py\n"
Usage += " option & argument : descriptions | default value\n"
@@ -106,7 +106,11 @@ def SetGlobals():
release = int( Release.split(".")[0] ) # take the first of ['21', '0', '0']
LatestOS = ""
- if release == 23:
+ if release == 24:
+ GenOSName = "macOS"
+ Platform = "Sequoia"
+ LatestOS = Platform
+ elif release == 23:
GenOSName = "macOS"
Platform = "Sonoma"
LatestOS = Platform
@@ -126,7 +130,8 @@ def SetGlobals():
sys.exit(1)
if not Machine == "x86_64":
- if Machine == "arm64" and Platform in ["Sonoma", "Ventura", "Monterey"]: # with an Apple Silicon Chip
+ # with an Apple Silicon Chip?
+ if Machine == "arm64" and Platform in ["Sequoia", "Sonoma", "Ventura", "Monterey"]:
print("")
print( "### Your Mac equips an Apple Silicon Chip ###" )
print("")
@@ -213,17 +218,17 @@ def SetGlobals():
## To check the contents of the package directory
#
# The package directory name should look like:
-# * ST-qt5MP.pkg.macos-Monterey-release-RsysPsys
-# * LW-qt5Ana3.pkg.macos-Monterey-release-Rana3Pana3
-# * LW-qt6Brew.pkg.macos-Monterey-release-Rhb33Phb311 --- (1)
-# * LW-qt5MP.pkg.macos-Monterey-release-Rmp33Pmp311
-# * HW-qt6Brew.pkg.macos-Monterey-release-RsysPhb311
+# * ST-qt5MP.pkg.macos-Sonoma-release-RsysPsys
+# * LW-qt5Ana3.pkg.macos-Sonoma-release-Rana3Pana3
+# * LW-qt6Brew.pkg.macos-Sonoma-release-Rhb33Phb312 --- (1)
+# * LW-qt5MP.pkg.macos-Sonoma-release-Rmp33Pmp312
+# * HW-qt6Brew.pkg.macos-Sonoma-release-RsysPhb311
#
-# * ST-qt6MP.pkg.macos-Monterey-release-RsysPsys
-# * LW-qt6MP.pkg.macos-Monterey-release-Rmp33Pmp311
+# * ST-qt6MP.pkg.macos-Sonoma-release-RsysPsys
+# * LW-qt6MP.pkg.macos-Sonoma-release-Rmp33Pmp312
#
# Generated DMG will be, for example,
-# (1) ---> LW-klayout-0.29.0-macOS-Monterey-1-qt6Brew-Rhb33Phb311.dmg
+# (1) ---> LW-klayout-0.29.7-macOS-Sonoma-1-qt6Brew-Rhb33Phb312.dmg
#
# @return on success, positive integer in [MB] that tells approx. occupied disc space;
# on failure, -1
@@ -263,15 +268,15 @@ def CheckPkgDirectory():
#-----------------------------------------------------------------------------------------------
# [2] Identify (Qt, Ruby, Python) from PkgDir
- # * ST-qt5MP.pkg.macos-Monterey-release-RsysPsys
- # * LW-qt5Ana3.pkg.macos-Monterey-release-Rana3Pana3
- # * LW-qt6Brew.pkg.macos-Monterey-release-Rhb33Phb311
- # * LW-qt5MP.pkg.macos-Monterey-release-Rmp33Pmp311
- # * HW-qt6Brew.pkg.macos-Monterey-release-RsysPhb311
- # * EX-qt5MP.pkg.macos-Monterey-release-Rhb33Pmp311
+ # * ST-qt5MP.pkg.macos-Sonoma-release-RsysPsys
+ # * LW-qt5Ana3.pkg.macos-Sonoma-release-Rana3Pana3
+ # * LW-qt6Brew.pkg.macos-Sonoma-release-Rhb33Phb312
+ # * LW-qt5MP.pkg.macos-Sonoma-release-Rmp33Pmp312
+ # * HW-qt6Brew.pkg.macos-Sonoma-release-RsysPhb311
+ # * EX-qt5MP.pkg.macos-Sonoma-release-Rhb33Pmp312
#
- # * ST-qt6MP.pkg.macos-Monterey-release-RsysPsys
- # * LW-qt6MP.pkg.macos-Monterey-release-Rmp33Pmp311
+ # * ST-qt6MP.pkg.macos-Sonoma-release-RsysPsys
+ # * LW-qt6MP.pkg.macos-Sonoma-release-Rmp33Pmp312
#-----------------------------------------------------------------------------------------------
# 0 1 2 3 4 5 6 7
patQRP = u'(ST|LW|HW|EX)([-])([qt5|qt6][0-9A-Za-z]+)([.]pkg[.])([A-Za-z]+[-][A-Za-z]+[-])(release|debug)([-])([0-9A-Za-z]+)'
@@ -314,12 +319,12 @@ def CheckPkgDirectory():
LatestOSMacPorts = Platform == LatestOS
LatestOSMacPorts &= PackagePrefix == "LW"
LatestOSMacPorts &= QtIdentification in [ "qt5MP", "qt6MP" ]
- LatestOSMacPorts &= RubyPythonID in [ "Rmp33Pmp311", "Rmp33Pmp39" ]
+ LatestOSMacPorts &= RubyPythonID in [ "Rmp33Pmp312", "Rmp33Pmp311" ]
LatestOSHomebrew = Platform == LatestOS
LatestOSHomebrew &= PackagePrefix == "LW"
LatestOSHomebrew &= QtIdentification in [ "qt5Brew", "qt6Brew", "qt5MP", "qt6MP" ] # "qt[5|6]MP" are the alternatives
- LatestOSHomebrew &= RubyPythonID in [ "Rhb33Phb311", "Rhb33Phb39", "Rhb33Phbauto" ]
+ LatestOSHomebrew &= RubyPythonID in [ "Rhb33Phb312", "Rhb33Phb311", "Rhb33Phbauto" ]
LatestOSAnaconda3 = Platform == LatestOS
LatestOSAnaconda3 &= PackagePrefix == "LW"
@@ -329,7 +334,7 @@ def CheckPkgDirectory():
LatestOSHomebrewH = Platform == LatestOS
LatestOSHomebrewH &= PackagePrefix == "HW"
LatestOSHomebrewH &= QtIdentification in [ "qt5Brew", "qt6Brew", "qt5MP", "qt6MP" ] # "qt[5|6]MP" are the alternatives
- LatestOSHomebrewH &= RubyPythonID in [ "RsysPhb311", "RsysPhb39", "RsysPhbauto" ] # Sys-Homebrew hybrid
+ LatestOSHomebrewH &= RubyPythonID in [ "RsysPhb311", "RsysPhbauto" ] # Sys-Homebrew hybrid
if LatestOSSys:
mydic = DicStdLightHeavyW["std"]
diff --git a/macbuild/nightlyBuild.py b/macbuild/nightlyBuild.py
index 79c27c486..c55a297e2 100755
--- a/macbuild/nightlyBuild.py
+++ b/macbuild/nightlyBuild.py
@@ -30,14 +30,16 @@
#
# @return matching platform name on success; "" on failure
#------------------------------------------------------------------------------
-def Test_My_Platform( platforms=[ 'Monterey', 'Ventura', 'Sonoma' ] ):
+def Test_My_Platform( platforms=[ 'Monterey', 'Ventura', 'Sonoma', 'Sequoia'] ):
(System, Node, Release, MacVersion, Machine, Processor) = platform.uname()
if not System == "Darwin":
return ""
release = int( Release.split(".")[0] ) # take the first of ['21', '0', '0']
- if release == 23:
+ if release == 24:
+ Platform = "Sequoia"
+ elif release == 23:
Platform = "Sonoma"
elif release == 22:
Platform = "Ventura"
@@ -99,15 +101,15 @@ def Get_Build_Options( targetDic, platform ):
buildOp[(qtVer, "std", "d")] = [ '-q', '%sMacPorts' % qtType, '-r', 'sys', '-p', 'sys', '--debug' ]
logfile[(qtVer, "std", "d")] = "%sMP.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "debug", "RsysPsys")
elif target == "ports":
- buildOp[(qtVer, "ports", "r")] = [ '-q', '%sMacPorts' % qtType, '-r', 'MP33', '-p', 'MP311' ]
- logfile[(qtVer, "ports", "r")] = "%sMP.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "release", "Rmp33Pmp311")
- buildOp[(qtVer, "ports", "d")] = [ '-q', '%sMacPorts' % qtType, '-r', 'MP33', '-p', 'MP311', '--debug' ]
- logfile[(qtVer, "ports", "d")] = "%sMP.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "debug", "Rmp33Pmp311")
+ buildOp[(qtVer, "ports", "r")] = [ '-q', '%sMacPorts' % qtType, '-r', 'MP33', '-p', 'MP312' ]
+ logfile[(qtVer, "ports", "r")] = "%sMP.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "release", "Rmp33Pmp312")
+ buildOp[(qtVer, "ports", "d")] = [ '-q', '%sMacPorts' % qtType, '-r', 'MP33', '-p', 'MP312', '--debug' ]
+ logfile[(qtVer, "ports", "d")] = "%sMP.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "debug", "Rmp33Pmp312")
elif target == "brew":
- buildOp[(qtVer, "brew", "r")] = [ '-q', '%sBrew' % qtType, '-r', 'HB33', '-p', 'HB311' ]
- logfile[(qtVer, "brew", "r")] = "%sBrew.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "release", "Rhb33Phb311")
- buildOp[(qtVer, "brew", "d")] = [ '-q', '%sBrew' % qtType, '-r', 'HB33', '-p', 'HB311', '--debug' ]
- logfile[(qtVer, "brew", "d")] = "%sBrew.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "debug", "Rhb33Phb311")
+ buildOp[(qtVer, "brew", "r")] = [ '-q', '%sBrew' % qtType, '-r', 'HB33', '-p', 'HB312' ]
+ logfile[(qtVer, "brew", "r")] = "%sBrew.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "release", "Rhb33Phb312")
+ buildOp[(qtVer, "brew", "d")] = [ '-q', '%sBrew' % qtType, '-r', 'HB33', '-p', 'HB312', '--debug' ]
+ logfile[(qtVer, "brew", "d")] = "%sBrew.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "debug", "Rhb33Phb312")
elif target == "brewHW":
buildOp[(qtVer, "brewHW", "r")] = [ '-q', '%sBrew' % qtType, '-r', 'sys', '-p', 'HB311' ]
logfile[(qtVer, "brewHW", "r")] = "%sBrew.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "release", "RsysPhb311")
@@ -129,10 +131,10 @@ def Get_Build_Options( targetDic, platform ):
buildOp[(qtVer, "brewAHW", "d")] = [ '-q', '%sBrew' % qtType, '-r', 'sys', '-p', 'HBAuto', '--debug' ]
logfile[(qtVer, "brewAHW", "d")] = "%sBrew.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "debug", "RsysPhbauto")
elif target == "pbrew":
- buildOp[(qtVer, "pbrew", "r")] = [ '-q', '%sMacPorts' % qtType, '-r', 'HB33', '-p', 'HB311' ]
- logfile[(qtVer, "pbrew", "r")] = "%sMP.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "release", "Rhb33Phb311")
- buildOp[(qtVer, "pbrew", "d")] = [ '-q', '%sMacPorts' % qtType, '-r', 'HB33', '-p', 'HB311', '--debug' ]
- logfile[(qtVer, "pbrew", "d")] = "%sMP.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "debug", "Rhb33Phb311")
+ buildOp[(qtVer, "pbrew", "r")] = [ '-q', '%sMacPorts' % qtType, '-r', 'HB33', '-p', 'HB312' ]
+ logfile[(qtVer, "pbrew", "r")] = "%sMP.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "release", "Rhb33Phb312")
+ buildOp[(qtVer, "pbrew", "d")] = [ '-q', '%sMacPorts' % qtType, '-r', 'HB33', '-p', 'HB312', '--debug' ]
+ logfile[(qtVer, "pbrew", "d")] = "%sMP.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "debug", "Rhb33Phb312")
elif target == "pbrewHW":
buildOp[(qtVer, "pbrewHW", "r")] = [ '-q', '%sMacPorts' % qtType, '-r', 'sys', '-p', 'HB311' ]
logfile[(qtVer, "pbrewHW", "r")] = "%sMP.build.macos-%s-%s-%s.log" % (qtType.lower(), platform, "release", "RsysPhb311")
@@ -141,9 +143,9 @@ def Get_Build_Options( targetDic, platform ):
if WithPymod:
buildOp[(qtVer, "ports", "r")] = buildOp[(qtVer, "ports", "r")] + ['--buildPymod']
- buildOp[(qtVer, "brew", "r")] = buildOp[(qtVer, "brew", "r")] + ['--buildPymod']
+ buildOp[(qtVer, "brew", "r")] = buildOp[(qtVer, "brew", "r")]
buildOp[(qtVer, "ana3", "r")] = buildOp[(qtVer, "ana3", "r")] + ['--buildPymod']
- buildOp[(qtVer, "pbrew", "r")] = buildOp[(qtVer, "pbrew", "r")] + ['--buildPymod']
+ buildOp[(qtVer, "pbrew", "r")] = buildOp[(qtVer, "pbrew", "r")]
buildOp[(qtVer, "ports", "d")] = buildOp[(qtVer, "ports", "d")]
buildOp[(qtVer, "brew", "d")] = buildOp[(qtVer, "brew", "d")]
@@ -175,11 +177,11 @@ def Get_QAT_Directory( targetDic, platform ):
dirQAT[(qtVer, "std", "r")] = '%sMP.build.macos-%s-release-RsysPsys.macQAT' % (qtType.lower(), platform)
dirQAT[(qtVer, "std", "d")] = '%sMP.build.macos-%s-debug-RsysPsys.macQAT' % (qtType.lower(), platform)
elif target == "ports":
- dirQAT[(qtVer, "ports", "r")] = '%sMP.build.macos-%s-release-Rmp33Pmp311.macQAT' % (qtType.lower(), platform)
- dirQAT[(qtVer, "ports", "d")] = '%sMP.build.macos-%s-debug-Rmp33Pmp311.macQAT' % (qtType.lower(), platform)
+ dirQAT[(qtVer, "ports", "r")] = '%sMP.build.macos-%s-release-Rmp33Pmp312.macQAT' % (qtType.lower(), platform)
+ dirQAT[(qtVer, "ports", "d")] = '%sMP.build.macos-%s-debug-Rmp33Pmp312.macQAT' % (qtType.lower(), platform)
elif target == "brew":
- dirQAT[(qtVer, "brew", "r")] = '%sBrew.build.macos-%s-release-Rhb33Phb311.macQAT' % (qtType.lower(), platform)
- dirQAT[(qtVer, "brew", "d")] = '%sBrew.build.macos-%s-debug-Rhb33Phb311.macQAT' % (qtType.lower(), platform)
+ dirQAT[(qtVer, "brew", "r")] = '%sBrew.build.macos-%s-release-Rhb33Phb312.macQAT' % (qtType.lower(), platform)
+ dirQAT[(qtVer, "brew", "d")] = '%sBrew.build.macos-%s-debug-Rhb33Phb312.macQAT' % (qtType.lower(), platform)
elif target == "brewHW":
dirQAT[(qtVer, "brewHW", "r")] = '%sBrew.build.macos-%s-release-RsysPhb311.macQAT' % (qtType.lower(), platform)
dirQAT[(qtVer, "brewHW", "d")] = '%sBrew.build.macos-%s-debug-RsysPhb311.macQAT' % (qtType.lower(), platform)
@@ -193,8 +195,8 @@ def Get_QAT_Directory( targetDic, platform ):
dirQAT[(qtVer, "brewAHW", "r")] = '%sBrew.build.macos-%s-release-RsysPhbauto.macQAT' % (qtType.lower(), platform)
dirQAT[(qtVer, "brewAHW", "d")] = '%sBrew.build.macos-%s-debug-RsysPhbauto.macQAT' % (qtType.lower(), platform)
elif target == "pbrew":
- dirQAT[(qtVer, "pbrew", "r")] = '%sMP.build.macos-%s-release-Rhb33Phb311.macQAT' % (qtType.lower(), platform)
- dirQAT[(qtVer, "pbrew", "d")] = '%sMP.build.macos-%s-debug-Rhb33Phb311.macQAT' % (qtType.lower(), platform)
+ dirQAT[(qtVer, "pbrew", "r")] = '%sMP.build.macos-%s-release-Rhb33Phb312.macQAT' % (qtType.lower(), platform)
+ dirQAT[(qtVer, "pbrew", "d")] = '%sMP.build.macos-%s-debug-Rhb33Phb312.macQAT' % (qtType.lower(), platform)
elif target == "pbrewHW":
dirQAT[(qtVer, "pbrewHW", "r")] = '%sMP.build.macos-%s-release-RsysPhb311.macQAT' % (qtType.lower(), platform)
dirQAT[(qtVer, "pbrewHW", "d")] = '%sMP.build.macos-%s-debug-RsysPhb311.macQAT' % (qtType.lower(), platform)
@@ -233,14 +235,14 @@ def Get_Package_Options( targetDic, platform, srlDMG, makeflag ):
packOp[(qtVer, "std", "d")] = [ '-p', 'ST-%sMP.pkg.macos-%s-debug-RsysPsys' % (qtType.lower(), platform),
'-s', '%d' % srlDMG, '%s' % flag ]
elif target == "ports":
- packOp[(qtVer, "ports", "r")] = [ '-p', 'LW-%sMP.pkg.macos-%s-release-Rmp33Pmp311' % (qtType.lower(), platform),
+ packOp[(qtVer, "ports", "r")] = [ '-p', 'LW-%sMP.pkg.macos-%s-release-Rmp33Pmp312' % (qtType.lower(), platform),
'-s', '%d' % srlDMG, '%s' % flag ]
- packOp[(qtVer, "ports", "d")] = [ '-p', 'LW-%sMP.pkg.macos-%s-debug-Rmp33Pmp311' % (qtType.lower(), platform),
+ packOp[(qtVer, "ports", "d")] = [ '-p', 'LW-%sMP.pkg.macos-%s-debug-Rmp33Pmp312' % (qtType.lower(), platform),
'-s', '%d' % srlDMG, '%s' % flag ]
elif target == "brew":
- packOp[(qtVer, "brew", "r")] = [ '-p', 'LW-%sBrew.pkg.macos-%s-release-Rhb33Phb311' % (qtType.lower(), platform),
+ packOp[(qtVer, "brew", "r")] = [ '-p', 'LW-%sBrew.pkg.macos-%s-release-Rhb33Phb312' % (qtType.lower(), platform),
'-s', '%d' % srlDMG, '%s' % flag ]
- packOp[(qtVer, "brew", "d")] = [ '-p', 'LW-%sBrew.pkg.macos-%s-debug-Rhb33Phb311' % (qtType.lower(), platform),
+ packOp[(qtVer, "brew", "d")] = [ '-p', 'LW-%sBrew.pkg.macos-%s-debug-Rhb33Phb312' % (qtType.lower(), platform),
'-s', '%d' % srlDMG, '%s' % flag ]
elif target == "brewHW":
packOp[(qtVer, "brewHW", "r")] = [ '-p', 'HW-%sBrew.pkg.macos-%s-release-RsysPhb311' % (qtType.lower(), platform),
@@ -263,9 +265,9 @@ def Get_Package_Options( targetDic, platform, srlDMG, makeflag ):
packOp[(qtVer, "brewAHW", "d")] = [ '-p', 'HW-%sBrew.pkg.macos-%s-debug-RsysPhbauto' % (qtType.lower(), platform),
'-s', '%d' % srlDMG, '%s' % flag ]
elif target == "pbrew":
- packOp[(qtVer, "pbrew", "r")] = [ '-p', 'LW-%sMP.pkg.macos-%s-release-Rhb33Phb311' % (qtType.lower(), platform),
+ packOp[(qtVer, "pbrew", "r")] = [ '-p', 'LW-%sMP.pkg.macos-%s-release-Rhb33Phb312' % (qtType.lower(), platform),
'-s', '%d' % srlDMG, '%s' % flag ]
- packOp[(qtVer, "pbrew", "d")] = [ '-p', 'LW-%sMP.pkg.macos-%s-debug-Rhb33Phb311' % (qtType.lower(), platform),
+ packOp[(qtVer, "pbrew", "d")] = [ '-p', 'LW-%sMP.pkg.macos-%s-debug-Rhb33Phb312' % (qtType.lower(), platform),
'-s', '%d' % srlDMG, '%s' % flag ]
elif target == "pbrewHW":
packOp[(qtVer, "pbrewHW", "r")] = [ '-p', 'HW-%sMP.pkg.macos-%s-release-RsysPhb311' % (qtType.lower(), platform),
@@ -294,8 +296,8 @@ def Parse_CommandLine_Arguments():
global DryRun # True for dry-run
platform = Test_My_Platform()
- if platform in [ "Sonoma", "Ventura", "Monterey" ]:
- targetopt = "0,1,2,3,4"
+ if platform in [ "Sequoia", "Sonoma", "Ventura", "Monterey" ]:
+ targetopt = "0,1,2,13,4"
else:
targetopt = ""
@@ -303,7 +305,7 @@ def Parse_CommandLine_Arguments():
Usage += "----------------------------------------------------------------------------------------------------------\n"
Usage += " nightlyBuild.py [EXPERIMENTAL]\n"
Usage += " << To execute the jobs for making KLayout's DMGs for\n"
- Usage += " macOS Monterey, Ventura, or Sonoma >>\n"
+ Usage += " macOS Monterey, Ventura, Sonoma, or Sequoia >>\n"
Usage += "\n"
Usage += "$ [python] nightlyBuild.py\n"
Usage += " option & argument : comment on option if any | default value\n"
@@ -337,7 +339,7 @@ def Parse_CommandLine_Arguments():
Usage += " (3) $ ./nightlyBuild.py --test |\n"
Usage += " (4) $ ./nightlyBuild.py --check (confirm the QA Test results) |\n"
Usage += " (5) $ ./nightlyBuild.py --makedmg 1 |\n"
- Usage += " (6) $ ./nightlyBuild.py --upload '0.29.0' |\n"
+ Usage += " (6) $ ./nightlyBuild.py --upload '0.29.7' |\n"
Usage += " (7) $ ./nightlyBuild.py --cleandmg 1 |\n"
Usage += "-----------------------------------------------------------------------------+----------------------------\n"
@@ -421,9 +423,9 @@ def Parse_CommandLine_Arguments():
print(Usage)
quit()
- myPlatform = Test_My_Platform( [ 'Monterey', 'Ventura', 'Sonoma' ] )
+ myPlatform = Test_My_Platform( [ 'Monterey', 'Ventura', 'Sonoma', 'Sequoia' ] )
if myPlatform == "":
- print( "! Current platform is not [ 'Monterey', 'Ventura', 'Sonoma' ]" )
+ print( "! Current platform is not [ 'Monterey', 'Ventura', 'Sonoma', 'Sequoia' ]" )
print(Usage)
quit()