diff --git a/macbuild/ReadMe.md b/macbuild/ReadMe.md index 4a8da914d..f3b727f97 100644 --- a/macbuild/ReadMe.md +++ b/macbuild/ReadMe.md @@ -1,6 +1,6 @@ -Relevant KLayout version: 0.29.0
+Relevant KLayout version: 0.29.1
Author: Kazzz-S
-Last modified: 2024-03-27
+Last modified: 2024-05-01
# 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: @@ -188,8 +188,10 @@ $ ./build4mac.py -q qt5macports -r mp33 -p mp311 -Y 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 -> [!IMPORTANT] -> To build KLayout >= 0.29.0, you need "Qt6" to address [the compilation issue](https://github.com/KLayout/klayout/issues/1599). +> [!CAUTION] +> To build KLayout >= 0.29.0, you need "Qt6" to address [the compilation issue](https://github.com/KLayout/klayout/issues/1599).
+> However, the current KLayout is not compliant with the latest Qt6.7.0, so you will get another compilation error.
+> Therefore, this section will be disabled for the time being. 0. Install Homebrew, then install Qt6, Ruby 3.3, Python 3.11, and libgit2 by ``` @@ -222,13 +224,10 @@ $ ./build4mac.py -q qt6brew -r hb33 -p hb311 -Y 4. Copy/move the generated application bundle **`klayout.app`** to your **`/Applications`** directory for installation. ### 6D. Partially Homebrew-flavored build with System Ruby and Homebrew Python 3.11 -> [!IMPORTANT] -> To build KLayout >= 0.29.0, you need "Qt6" to address [the compilation issue](https://github.com/KLayout/klayout/issues/1599). - > [!CAUTION] -> Homebrew Qt6.6.2 seems buggy. More precisely, it does not perfectly deploy the required Qt frameworks. -> If you plan to distribute an HW*.dmg package, consider using Qt6.4.x from MacPorts. -> That is, substitute `qt6brew` with `qt6macports` in the following command lines. +> To build KLayout >= 0.29.0, you need "Qt6" to address [the compilation issue](https://github.com/KLayout/klayout/issues/1599).
+> However, the current KLayout is not compliant with the latest Qt6.7.0, so you will get another compilation error.
+> Therefore, this section will be disabled for the time being. 0. Install Homebrew, then install Qt6, Python 3.11, and libgit2 by ``` @@ -261,7 +260,46 @@ $ ./build4mac.py -q qt6brew -r sys -p hb311 -y > So far, the deployment of Homebrew Ruby is not supported.
> Therefore, if you intend to use the "-y" option for deployment, you need to use the "-r sys" option for building. -### 6E. Fully Anaconda3-flavored build with Anaconda3 Ruby 3.2 and Anaconda3 Python 3.11 +### 6E. Heterogeneous combination of MacPorts Qt5, System Ruby, and Homebrew Python 3.11 +> [!IMPORTANT] +> This is a practical solution for building an HW*.dmg package. + +0. Install MacPorts, then install Qt5 and libgit2 by +``` +$ sudo port install coreutils +$ sudo port install findutils +$ sudo port install qt5 +$ sudo port install libgit2 +``` + +Then, install Homebrew, then install Python 3.11 by +``` +$ brew install python@3.11 +$ cd /where/'build.sh'/exists +$ cd macbuild +$ ./python3HB.py -v 3.11 +``` + +1. Invoke **`build4mac.py`** with the following options: +``` +$ cd /where/'build.sh'/exists +$ ./build4mac.py -q qt5macports -r sys -p hb311 +``` +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.
+ +``` +$ ./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-" 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 ``` $ conda install ruby=3.2.2 @@ -292,11 +330,11 @@ $ ./build4mac.py -q qt5ana3 -r ana3 -p ana3 -Y export PYTHONHOME=$HOME/opt/anaconda3 ``` -### 6F. Other combinations +### 6G. Other combinations Logically, several module combinations other than 6B through 6E are possible, including `nil` choice.
The resultant package directory name will begin with **`EX-`** (exceptional) if you choose such a combination. -### 6G. Using the git-based Salt Package Manager through a proxy server +### 6H. Using the git-based Salt Package Manager through a proxy server If you use the git-based Salt Package Manager through a proxy server, you need to set the `KLAYOUT_GIT_HTTP_PROXY` environment variable. For example, ``` $ export KLAYOUT_GIT_HTTP_PROXY="http://111.222.333.444:5678" diff --git a/macbuild/Resources/script-bundle-H.zip b/macbuild/Resources/script-bundle-H.zip index 4db6f545d..b645939dd 100644 Binary files a/macbuild/Resources/script-bundle-H.zip and b/macbuild/Resources/script-bundle-H.zip differ diff --git a/macbuild/build4mac_env.py b/macbuild/build4mac_env.py index c7d6f2e1f..a1f6ce69d 100755 --- a/macbuild/build4mac_env.py +++ b/macbuild/build4mac_env.py @@ -182,7 +182,7 @@ RubySonoma = { 'exe': '/System/Library/Frameworks/Ruby.framework/Versions/ # install with 'sudo port install ruby33' # [Key Type Name] = 'MP33' Ruby33MacPorts = { 'exe': '/opt/local/bin/ruby3.3', - 'inc': '/opt/local/include/ruby-3.3.0', + 'inc': '/opt/local/include/ruby-3.3.1', 'lib': '/opt/local/lib/libruby.3.3.dylib' }