diff --git a/macbuild/ReadMe.md b/macbuild/ReadMe.md index 38fa45edd..5a748d12b 100644 --- a/macbuild/ReadMe.md +++ b/macbuild/ReadMe.md @@ -1,9 +1,9 @@ -Relevant KLayout version: 0.28.3
+Relevant KLayout version: 0.28.4
Author: Kazzz-S
-Last modified: 2023-01-13
+Last modified: 2023-02-01
# 1. Introduction -This directory **`macbuild`** contains various files required for building KLayout (http://www.klayout.de/) version 0.28.3 or later for different 64-bit macOS, including: +This directory **`macbuild`** contains various files required for building KLayout (http://www.klayout.de/) version 0.28.4 or later for different 64-bit macOS, including: * Catalina (10.15.7) : the primary development environment * Big Sur (11.x) : experimental; Apple (M1|M2) chip is not tested since the author does not own an (M1|M2) Mac * Monterey (12.x) : -- ditto -- @@ -55,8 +55,8 @@ $ /usr/bin/python --version Python 2.7.16 ``` Note that this configuration for backward compatibility is possible only for macOS Catalina (10.15.7).
-In contrast, Homebrew's Ruby 3.1 and Python 3.9 are the default environment for Big Sur, Monterey, and Ventura.
-Since Python 2.7 is already deprecated, using MacPorts' or Homebrew's Ruby 3.1 and Python 3.9 are also recommended for Catalina. +In contrast, Homebrew's Ruby 3.2 and Python 3.9 are the default environment for Big Sur, Monterey, and Ventura.
+Since Python 2.7 is already deprecated, using MacPorts' or Homebrew's Ruby 3.2 and Python 3.9 are also recommended for Catalina. The build script **`build4mac.py`** provides several possible combinations of Qt5, Ruy, and Python modules to accommodate such a slightly complex environment.
Some typical use cases are described in Section 6. @@ -73,7 +73,7 @@ You need to have the followings: ``` --------------------------------------------------------------------------------------------------------- << Usage of 'build4mac.py' >> - for building KLayout 0.28.3 or later on different Apple macOS / Mac OSX platforms. + for building KLayout 0.28.4 or later on different Apple macOS / Mac OSX platforms. $ [python] ./build4mac.py option & argument : descriptions (refer to 'macbuild/build4mac_env.py' for details)| default value @@ -86,12 +86,15 @@ $ [python] ./build4mac.py : Qt6MacPorts: use Qt6 from MacPorts (*) | : Qt6Brew: use Qt6 from Homebrew (*) | : (*) migration to Qt6 is ongoing | - [-r|--ruby ] : case-insensitive type=['nil', 'Sys', 'MP31', 'HB31', 'Ana3'] | sys + [-r|--ruby ] : case-insensitive type=['nil', 'Sys', 'MP31', 'HB31', 'Ana3', | sys + : 'MP32', HB32'] | : nil: don't bind Ruby | : Sys: use OS-bundled Ruby [2.0 - 2.6] depending on OS | : MP31: use Ruby 3.1 from MacPorts | : HB31: use Ruby 3.1 from Homebrew | : Ana3: use Ruby 3.1 from Anaconda3 | + : MP32: use Ruby 3.2 from MacPorts | + : HB32: use Ruby 3.2 from Homebrew | [-p|--python ] : case-insensitive type=['nil', 'Sys', 'MP38', 'HB38', 'Ana3', | sys : 'MP39', HB39', 'HBAuto'] | : nil: don't bind Python | @@ -119,7 +122,7 @@ $ [python] ./build4mac.py [-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 | disabled + [-?|--?] : print this usage and exit; in zsh, quote like '-?' or '--?' | disabled -----------------------------------------------------------------------------------------+--------------- ``` @@ -127,7 +130,7 @@ $ [python] ./build4mac.py ``` --------------------------------------------------------------------------------------------------------- << Usage of 'build4mac.py' >> - for building KLayout 0.28.3 or later on different Apple macOS / Mac OSX platforms. + for building KLayout 0.28.4 or later on different Apple macOS / Mac OSX platforms. $ [python] ./build4mac.py option & argument : descriptions (refer to 'macbuild/build4mac_env.py' for details)| default value @@ -140,12 +143,15 @@ $ [python] ./build4mac.py : Qt6MacPorts: use Qt6 from MacPorts (*) | : Qt6Brew: use Qt6 from Homebrew (*) | : (*) migration to Qt6 is ongoing | - [-r|--ruby ] : case-insensitive type=['nil', 'Sys', 'MP31', 'HB31', 'Ana3'] | hb31 + [-r|--ruby ] : case-insensitive type=['nil', 'Sys', 'MP31', 'HB31', 'Ana3', | hb32 + : 'MP32', HB32'] | : nil: don't bind Ruby | : Sys: use OS-bundled Ruby [2.0 - 2.6] depending on OS | : MP31: use Ruby 3.1 from MacPorts | : HB31: use Ruby 3.1 from Homebrew | : Ana3: use Ruby 3.1 from Anaconda3 | + : MP32: use Ruby 3.2 from MacPorts | + : HB32: use Ruby 3.2 from Homebrew | [-p|--python ] : case-insensitive type=['nil', 'Sys', 'MP38', 'HB38', 'Ana3', | hb39 : 'MP39', HB39', 'HBAuto'] | : nil: don't bind Python | @@ -173,7 +179,7 @@ $ [python] ./build4mac.py [-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 | disabled + [-?|--?] : print this usage and exit; in zsh, quote like '-?' or '--?' | disabled -----------------------------------------------------------------------------------------+--------------- ``` @@ -212,20 +218,20 @@ Then the directory name will be **`LW-qt5MP.pkg.macos-Catalina-release-RsysPsys` #### If you build KLayout from the source code AND run it on the same machine, the "-Y" option is highly recommended. -### 6B. Fully MacPorts-flavored build with MacPorts Ruby 3.1 and MacPorts Python 3.9 -0. Install MacPorts, then install Qt5, Ruby 3.1, and Python 3.9 by +### 6B. Fully MacPorts-flavored build with MacPorts Ruby 3.2 and MacPorts Python 3.9 +0. Install MacPorts, then install Qt5, Ruby 3.2, and Python 3.9 by ``` $ sudo port install coreutils $ sudo port install findutils $ sudo port install qt5 -$ sudo port install ruby31 +$ sudo port install ruby32 $ sudo port install python39 $ sudo port install py39-pip ``` 1. Invoke **`build4mac.py`** with the following options: ``` $ cd /where/'build.sh'/exists -$ ./build4mac.py -q qt5macports -r mp31 -p mp39 +$ ./build4mac.py -q qt5macports -r mp32 -p mp39 ``` 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.
@@ -233,26 +239,26 @@ $ ./build4mac.py -q qt5macports -r mp31 -p mp39 If you use `--buildPymod` option in Step-1 and Step-3, the KLayout Python Module (\*.whl, \*.egg) will be built and deployed under **klayout.app/Contents/pymod-dist/**. ``` -$ ./build4mac.py -q qt5macports -r mp31 -p mp39 -Y +$ ./build4mac.py -q qt5macports -r mp32 -p mp39 -Y ``` The application bundle **`klayout.app`** is located under:
- **`LW-qt5MP.pkg.macos-Catalina-release-Rmp31Pmp39`** directory, where + **`LW-qt5MP.pkg.macos-Catalina-release-Rmp32Pmp39`** directory, where * "LW-" means this is a lightweight package. * "qt5MP" means that Qt5 from MacPorts is used. -* "Rmp31Pmp39" means that Ruby is 3.1 from MacPorts; Python is 3.9 from MacPorts. +* "Rmp32Pmp39" means that Ruby is 3.2 from MacPorts; Python is 3.9 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.1 and Homebrew Python 3.9 -0. Install Homebrew, then install Qt5, Ruby 3.1, and Python 3.9 by +### 6C. Fully Homebrew-flavored build with Homebrew Ruby 3.2 and Homebrew Python 3.9 +0. Install Homebrew, then install Qt5, Ruby 3.2, and Python 3.9 by ``` $ brew install qt@5 -$ brew install ruby@3.1 +$ brew install ruby@3.2 $ brew install python@3.9 ``` 1. Invoke **`build4mac.py`** with the following options: **((Notes))** These options are the default for Big Sur, Monterey, and Ventura. ``` $ cd /where/'build.sh'/exists -$ ./build4mac.py -q qt5brew -r hb31 -p hb39 +$ ./build4mac.py -q qt5brew -r hb32 -p hb39 ``` 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.
@@ -260,13 +266,13 @@ $ ./build4mac.py -q qt5brew -r hb31 -p hb39 If you use `--buildPymod` option in Step-1 and Step-3, the KLayout Python Module (\*.whl, \*.egg) will be built and deployed under **klayout.app/Contents/pymod-dist/**. ``` -$ ./build4mac.py -q qt5brew -r hb31 -p hb39 -Y +$ ./build4mac.py -q qt5brew -r hb32 -p hb39 -Y ``` The application bundle **`klayout.app`** is located under:
- **`LW-qt5Brew.pkg.macos-Catalina-release-Rhb31Phb39`** directory, where + **`LW-qt5Brew.pkg.macos-Catalina-release-Rhb32Phb39`** directory, where * "LW-" means this is a lightweight package. * "qt5Brew" means that Qt5 from Homebrew is used. -* "Rhb31Phb39" means that Ruby is 3.1 from Homebrew; Python is 3.9 from Homebrew. +* "Rhb32Phb39" means that Ruby is 3.2 from Homebrew; Python is 3.9 from Homebrew. 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.9 @@ -343,11 +349,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-Catalina-release-Rmp31Pmp39 -m +$ ./makeDMG4mac.py -p LW-qt5MP.pkg.macos-Catalina-release-Rmp32Pmp39 -m ``` This command will generate the two files below:
-* **`LW-klayout-0.28.3-macOS-Catalina-1-qt5MP-Rmp31Pmp39.dmg`** ---(1) the main DMG file -* **`LW-klayout-0.28.3-macOS-Catalina-1-qt5MP-Rmp31Pmp39.dmg.md5`** ---(2) MD5-value text file +* **`LW-klayout-0.28.4-macOS-Catalina-1-qt5MP-Rmp32Pmp39.dmg`** ---(1) the main DMG file +* **`LW-klayout-0.28.4-macOS-Catalina-1-qt5MP-Rmp32Pmp39.dmg.md5`** ---(2) MD5-value text file # Known issues Because we assume some specific versions of non-OS-standard Ruby and Python, updating MacPorts, Homebrew, or Anaconda3 may cause build- and link errors.
diff --git a/macbuild/Resources/script-bundle-B.zip b/macbuild/Resources/script-bundle-B.zip index df66d2631..d8a0f180a 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-P.zip b/macbuild/Resources/script-bundle-P.zip index 264ad5f5e..ea537d9fb 100644 Binary files a/macbuild/Resources/script-bundle-P.zip and b/macbuild/Resources/script-bundle-P.zip differ diff --git a/macbuild/build4mac.py b/macbuild/build4mac.py index ba9034168..fcfd4712b 100755 --- a/macbuild/build4mac.py +++ b/macbuild/build4mac.py @@ -35,9 +35,9 @@ from build4mac_util import * def GenerateUsage(platform): if platform.upper() in [ "VENTURA", "MONTEREY", "BIGSUR" ]: # with Xcode [13.1 .. ] myQt56 = "qt5brew" - myRuby = "hb31" + myRuby = "hb32" myPython = "hb39" - moduleset = ('qt5Brew', 'HB31', 'HB39') + moduleset = ('qt5Brew', 'HB32', 'HB39') else: # with Xcode [ .. 12.4]; 'sys' for Python has been restored in 0.28.3 myQt56 = "qt5macports" myRuby = "sys" @@ -47,7 +47,7 @@ def GenerateUsage(platform): usage = "\n" usage += "---------------------------------------------------------------------------------------------------------\n" usage += "<< Usage of 'build4mac.py' >>\n" - usage += " for building KLayout 0.28.3 or later on different Apple macOS / Mac OSX platforms.\n" + usage += " for building KLayout 0.28.4 or later on different Apple macOS / Mac OSX platforms.\n" usage += "\n" usage += "$ [python] ./build4mac.py\n" usage += " option & argument : descriptions (refer to 'macbuild/build4mac_env.py' for details)| default value\n" @@ -60,12 +60,15 @@ def GenerateUsage(platform): 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', 'MP31', 'HB31', 'Ana3'] | %s \n" % myRuby + usage += " [-r|--ruby ] : case-insensitive type=['nil', 'Sys', 'MP31', 'HB31', 'Ana3', | %s \n" % myRuby + usage += " : 'MP32', HB32'] | \n" usage += " : nil: don't bind Ruby | \n" usage += " : Sys: use OS-bundled Ruby [2.0 - 2.6] depending on OS | \n" usage += " : MP31: use Ruby 3.1 from MacPorts | \n" usage += " : HB31: use Ruby 3.1 from Homebrew | \n" usage += " : Ana3: use Ruby 3.1 from Anaconda3 | \n" + usage += " : MP32: use Ruby 3.2 from MacPorts | \n" + usage += " : HB32: use Ruby 3.2 from Homebrew | \n" usage += " [-p|--python ] : case-insensitive type=['nil', 'Sys', 'MP38', 'HB38', 'Ana3', | %s \n" % myPython usage += " : 'MP39', HB39', 'HBAuto'] | \n" usage += " : nil: don't bind Python | \n" @@ -93,7 +96,7 @@ def GenerateUsage(platform): 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 | disabled\n" + usage += " [-?|--?] : print this usage and exit; in zsh, quote like '-?' or '--?' | disabled\n" usage += "-----------------------------------------------------------------------------------------+---------------\n" return (usage, moduleset) @@ -154,16 +157,16 @@ def Get_Default_Config(): # Set the default modules if Platform == "Ventura": ModuleQt = "Qt5Brew" - ModuleRuby = "Ruby31Brew" - ModulePython = "Python38Brew" + ModuleRuby = "Ruby32Brew" + ModulePython = "Python39Brew" elif Platform == "Monterey": ModuleQt = "Qt5Brew" - ModuleRuby = "Ruby31Brew" - ModulePython = "Python38Brew" + ModuleRuby = "Ruby32Brew" + ModulePython = "Python39Brew" elif Platform == "BigSur": ModuleQt = "Qt5Brew" - ModuleRuby = "RubyBigSur" - ModulePython = "PythonBigSur" + ModuleRuby = "Ruby32Brew" + ModulePython = "Python39Brew" elif Platform == "Catalina": ModuleQt = "Qt5MacPorts" ModuleRuby = "RubyCatalina" @@ -390,7 +393,7 @@ def Parse_CLI_Args(config): p.add_option( '-r', '--ruby', dest='type_ruby', - help="Ruby type=['nil', 'Sys', 'MP31', 'HB31', 'Ana3']" ) + help="Ruby type=['nil', 'Sys', 'MP31', 'HB31', 'Ana3', 'MP32', 'HB32']" ) p.add_option( '-p', '--python', dest='type_python', @@ -454,7 +457,7 @@ def Parse_CLI_Args(config): if Platform.upper() in [ "VENTURA", "MONTEREY", "BIGSUR" ]: # with Xcode [13.1 .. ] p.set_defaults( type_qt = "qt5brew", - type_ruby = "hb31", + type_ruby = "hb32", type_python = "hb39", build_pymod = False, no_qt_binding = False, @@ -525,6 +528,8 @@ def Parse_CLI_Args(config): candidates['MP31'] = 'MP31' candidates['HB31'] = 'HB31' candidates['ANA3'] = 'Ana3' + candidates['MP32'] = 'MP32' + candidates['HB32'] = 'HB32' try: choiceRuby = candidates[ opt.type_ruby.upper() ] except KeyError: @@ -561,6 +566,12 @@ def Parse_CLI_Args(config): elif choiceRuby == "Ana3": ModuleRuby = 'RubyAnaconda3' NonOSStdLang = True + elif choiceRuby == "MP32": + ModuleRuby = 'Ruby32MacPorts' + NonOSStdLang = True + elif choiceRuby == "HB32": + ModuleRuby = 'Ruby32Brew' + NonOSStdLang = True if ModuleRuby == '': print("") print( "!!! Unknown Ruby type <%s>. Case-insensitive candidates: %s" % \ @@ -844,7 +855,7 @@ def Get_Build_Parameters(config): PymodDistDir = dict() if Platform in [ 'Ventura', 'Monterey', 'BigSur', 'Catalina' ]: - if ModuleRuby in [ 'Ruby31MacPorts', 'Ruby31Brew', 'RubyAnaconda3' ]: + if ModuleRuby in [ 'Ruby31MacPorts', 'Ruby31Brew', 'RubyAnaconda3', 'Ruby32MacPorts', 'Ruby32Brew' ]: if ModulePython in [ 'Python38MacPorts', 'Python39MacPorts' ]: PymodDistDir[ModulePython] = 'dist-MP3' elif ModulePython in [ 'Python38Brew', 'Python39Brew', 'PythonAutoBrew' ]: @@ -867,7 +878,8 @@ def Build_pymod(parameters): # [1] will be built if: # BuildPymod = True # Platform = [ 'Ventura', 'Monterey', 'BigSur', 'Catalina' ] - # ModuleRuby = [ 'Ruby31MacPorts', 'Ruby31Brew', 'RubyAnaconda3' ] + # ModuleRuby = [ 'Ruby31MacPorts', 'Ruby31Brew', 'RubyAnaconda3', + # 'Ruby32MacPorts', 'Ruby32Brew' ] # ModulePython = [ 'Python38MacPorts', 'Python38Brew', 'PythonAnaconda3', # 'Python39MacPorts', 'Python39Brew', 'PythonAutoBrew' ] #--------------------------------------------------------------------------- @@ -879,7 +891,7 @@ def Build_pymod(parameters): return 0 if not Platform in [ 'Ventura', 'Monterey', 'BigSur', 'Catalina' ]: return 0 - elif not ModuleRuby in [ 'Ruby31MacPorts', 'Ruby31Brew', 'RubyAnaconda3' ]: + elif not ModuleRuby in [ 'Ruby31MacPorts', 'Ruby31Brew', 'RubyAnaconda3', 'Ruby32MacPorts', 'Ruby32Brew' ]: return 0 elif not ModulePython in [ 'Python38MacPorts', 'Python38Brew', 'PythonAnaconda3', \ 'Python39MacPorts', 'Python39Brew', 'PythonAutoBrew' ]: diff --git a/macbuild/build4mac_env.py b/macbuild/build4mac_env.py index 077527d71..3c84c9de1 100755 --- a/macbuild/build4mac_env.py +++ b/macbuild/build4mac_env.py @@ -85,7 +85,7 @@ Qt6Brew = { 'qmake' : '%s/opt/qt@6/bin/qmake' % DefaultHomebrewRoot, RubyNil = [ 'nil' ] RubySys = [ 'RubyElCapitan', 'RubySierra', 'RubyHighSierra', 'RubyMojave' ] RubySys += [ 'RubyCatalina', 'RubyBigSur', 'RubyMonterey', 'RubyVentura' ] -RubyExt = [ 'Ruby31MacPorts', 'Ruby31Brew', 'RubyAnaconda3' ] +RubyExt = [ 'Ruby31MacPorts', 'Ruby32MacPorts', 'Ruby31Brew', 'Ruby32Brew', 'RubyAnaconda3' ] Rubies = RubyNil + RubySys + RubyExt #----------------------------------------------------- @@ -192,6 +192,14 @@ Ruby31MacPorts = { 'exe': '/opt/local/bin/ruby3.1', 'lib': '/opt/local/lib/libruby.3.1.dylib' } +# Ruby 3.2 from MacPorts (https://www.macports.org/) *+*+*+ EXPERIMENTAL *+*+*+ +# install with 'sudo port install ruby32' +# [Key Type Name] = 'MP32' +Ruby32MacPorts = { 'exe': '/opt/local/bin/ruby3.2', + 'inc': '/opt/local/include/ruby-3.2.0', + 'lib': '/opt/local/lib/libruby.3.2.dylib' + } + # Ruby 3.1 from Homebrew *+*+*+ EXPERIMENTAL *+*+*+ # install with 'brew install ruby@3.1' # [Key Type Name] = 'HB31' @@ -201,6 +209,15 @@ Ruby31Brew = { 'exe': '%s/bin/ruby' % HBRuby31Path, 'lib': '%s/lib/libruby.3.1.dylib' % HBRuby31Path } +# Ruby 3.2 from Homebrew *+*+*+ EXPERIMENTAL *+*+*+ +# install with 'brew install ruby@3.2' +# [Key Type Name] = 'HB32' +HBRuby32Path = '%s/opt/ruby@3.2' % DefaultHomebrewRoot +Ruby32Brew = { 'exe': '%s/bin/ruby' % HBRuby32Path, + 'inc': '%s/include/ruby-3.2.0' % HBRuby32Path, + 'lib': '%s/lib/libruby.3.2.dylib' % HBRuby32Path + } + # Ruby 3.1 bundled with anaconda3 installed under /Applications/anaconda3/ *+*+*+ EXPERIMENTAL *+*+*+ # The standard installation deploys the tool under $HOME/opt/anaconda3/. # If so, you need to make a symbolic link: /Applications/anaconda3 ---> $HOME/opt/anaconda3/ @@ -222,7 +239,9 @@ RubyDictionary = { 'nil' : None, 'RubyMonterey' : RubyMonterey, 'RubyVentura' : RubyVentura, 'Ruby31MacPorts': Ruby31MacPorts, + 'Ruby32MacPorts': Ruby32MacPorts, 'Ruby31Brew' : Ruby31Brew, + 'Ruby32Brew' : Ruby32Brew, 'RubyAnaconda3' : RubyAnaconda3 } diff --git a/macbuild/makeDMG4mac.py b/macbuild/makeDMG4mac.py index 11a52a13e..231167cbb 100755 --- a/macbuild/makeDMG4mac.py +++ b/macbuild/makeDMG4mac.py @@ -77,13 +77,13 @@ def SetGlobals(): Usage = "\n" Usage += "---------------------------------------------------------------------------------------------------------\n" Usage += "<< Usage of 'makeDMG4mac.py' >>\n" - Usage += " for making a DMG file of KLayout 0.28.3 or later on different Apple macOS / Mac OSX platforms.\n" + Usage += " for making a DMG file of KLayout 0.28.4 or later on different Apple macOS / Mac OSX platforms.\n" Usage += "\n" Usage += "$ [python] ./makeDMG4mac.py\n" Usage += " option & argument : descriptions | default value\n" Usage += " ----------------------------------------------------------------------------------+-----------------\n" Usage += " <-p|--pkg > : package directory created by `build4mac.py` with [-y|-Y] | ``\n" - Usage += " : like 'LW-qt5MP.pkg.macos-Catalina-release-Rmp31Pmp38' | \n" + Usage += " : like 'LW-qt5MP.pkg.macos-Catalina-release-Rmp32Pmp39' | \n" Usage += " <-c|--clean> : clean the work directory | disabled\n" Usage += " <-m|--make> : make a compressed DMG file | disabled\n" Usage += " : <-c|--clean> and <-m|--make> are mutually exclusive | \n" @@ -208,17 +208,17 @@ def SetGlobals(): # # The package directory name should look like: # * LW-qt5Ana3.pkg.macos-Catalina-release-Rana3Pana3 -# * LW-qt5Brew.pkg.macos-Catalina-release-Rhb31Phb38 --- (1) -# * LW-qt5MP.pkg.macos-Catalina-release-Rmp31Pmp38 -# * HW-qt5Brew.pkg.macos-Catalina-release-RsysPhb38 +# * LW-qt5Brew.pkg.macos-Catalina-release-Rhb32Phb39 --- (1) +# * LW-qt5MP.pkg.macos-Catalina-release-Rmp32Pmp39 +# * HW-qt5Brew.pkg.macos-Catalina-release-RsysPhb39 # # * LW-qt6Ana3.pkg.macos-Catalina-release-Rana3Pana3 -# * LW-qt6Brew.pkg.macos-Catalina-release-Rhb31Phb38 -# * LW-qt6MP.pkg.macos-Catalina-release-Rmp31Pmp38 -# * HW-qt6Brew.pkg.macos-Catalina-release-RsysPhb38 +# * LW-qt6Brew.pkg.macos-Catalina-release-Rhb32Phb39 +# * LW-qt6MP.pkg.macos-Catalina-release-Rmp32Pmp39 +# * HW-qt6Brew.pkg.macos-Catalina-release-RsysPhb39 # # Generated DMG will be, for example, -# (1) ---> LW-klayout-0.28.2-macOS-Catalina-1-qt5Brew-Rhb31Phb38.dmg +# (1) ---> LW-klayout-0.28.4-macOS-Catalina-1-qt5Brew-Rhb32Phb39.dmg # # @return on success, positive integer in [MB] that tells approx. occupied disc space; # on failure, -1 @@ -259,15 +259,15 @@ def CheckPkgDirectory(): # [2] Identify (Qt, Ruby, Python) from PkgDir # * ST-qt5MP.pkg.macos-Catalina-release-RsysPsys # 'ST' has been restored in 0.28.3 # * LW-qt5Ana3.pkg.macos-Catalina-release-Rana3Pana3 - # * LW-qt5Brew.pkg.macos-Catalina-release-Rhb31Phb38 - # * LW-qt5MP.pkg.macos-Catalina-release-Rmp31Pmp38 - # * HW-qt5Brew.pkg.macos-Catalina-release-RsysPhb38 - # * EX-qt5MP.pkg.macos-Catalina-release-Rhb31Pmp38 + # * LW-qt5Brew.pkg.macos-Catalina-release-Rhb32Phb39 + # * LW-qt5MP.pkg.macos-Catalina-release-Rmp32Pmp39 + # * HW-qt5Brew.pkg.macos-Catalina-release-RsysPhb39 + # * EX-qt5MP.pkg.macos-Catalina-release-Rhb32Pmp39 # # * LW-qt6Ana3.pkg.macos-Catalina-release-Rana3Pana3 - # * LW-qt6Brew.pkg.macos-Catalina-release-Rhb31Phb38 - # * LW-qt6MP.pkg.macos-Catalina-release-Rmp31Pmp38 - # * HW-qt6Brew.pkg.macos-Catalina-release-RsysPhb38 + # * LW-qt6Brew.pkg.macos-Catalina-release-Rhb32Phb39 + # * LW-qt6MP.pkg.macos-Catalina-release-Rmp32Pmp39 + # * HW-qt6Brew.pkg.macos-Catalina-release-RsysPhb39 #----------------------------------------------------------------------------------------------- patQRP = u'(ST|LW|HW|EX)([-])([qt5|qt6][0-9A-Za-z]+)([.]pkg[.])([A-Za-z]+[-][A-Za-z]+[-]release[-])([0-9A-Za-z]+)' regQRP = re.compile(patQRP) @@ -296,23 +296,25 @@ def CheckPkgDirectory(): #----------------------------------------------------------------------------- LatestOSMacPorts = Platform == LatestOS LatestOSMacPorts &= PackagePrefix == "LW" - LatestOSMacPorts &= QtIdentification in ["qt5MP", "qt6MP"] - LatestOSMacPorts &= RubyPythonID in ["Rmp31Pmp38", "Rmp31Pmp39"] + LatestOSMacPorts &= QtIdentification in [ "qt5MP", "qt6MP" ] + LatestOSMacPorts &= RubyPythonID in [ "Rmp31Pmp38", "Rmp31Pmp39", \ + "Rmp32Pmp38", "Rmp32Pmp39" ] LatestOSHomebrew = Platform == LatestOS LatestOSHomebrew &= PackagePrefix == "LW" - LatestOSHomebrew &= QtIdentification in ["qt5Brew", "qt6Brew"] - LatestOSHomebrew &= RubyPythonID in ["Rhb31Phb38", "Rhb31Phb39", "Rhb31Phbauto"] + LatestOSHomebrew &= QtIdentification in [ "qt5Brew", "qt6Brew" ] + LatestOSHomebrew &= RubyPythonID in [ "Rhb31Phb38", "Rhb31Phb39", "Rhb31Phbauto", \ + "Rhb32Phb38", "Rhb32Phb39", "Rhb32Phbauto" ] LatestOSAnaconda3 = Platform == LatestOS LatestOSAnaconda3 &= PackagePrefix == "LW" - LatestOSAnaconda3 &= QtIdentification in ["qt5Ana3"] - LatestOSAnaconda3 &= RubyPythonID in ["Rana3Pana3"] + LatestOSAnaconda3 &= QtIdentification in [ "qt5Ana3" ] + LatestOSAnaconda3 &= RubyPythonID in [ "Rana3Pana3" ] LatestOSHomebrewH = Platform == LatestOS LatestOSHomebrewH &= PackagePrefix == "HW" - LatestOSHomebrewH &= QtIdentification in ["qt5Brew", "qt6Brew"] - LatestOSHomebrewH &= RubyPythonID in ["RsysPhb38", "RsysPhb39", "RsysPhbauto"] # Sys-Homebre hybrid + LatestOSHomebrewH &= QtIdentification in [ "qt5Brew", "qt6Brew" ] + LatestOSHomebrewH &= RubyPythonID in [ "RsysPhb39", "RsysPhb39", "RsysPhbauto" ] # Sys-Homebre hybrid if LatestOSMacPorts: mydic = DicLightHeavyW["ports"] @@ -648,10 +650,12 @@ def MakeTargetDMGFile(msg=""): command = "/usr/bin/osascript %s %s" % (AppleScriptDMG, VolumeDMG) process = subprocess.Popen( command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True ) output, error = process.communicate() - if not output == "": - print( " STDOUT: %s" % output ) - if not error == "": - print( " STDERR: %s" % error ) + outputStr = output.decode("utf-8") + errorStr = error.decode("utf-8") + if not outputStr == "": + print( " STDOUT: %s" % outputStr ) + if not errorStr == "": + print( " STDERR: %s" % errorStr ) #-------------------------------------------------------- # (8) Copy the custom volume icon diff --git a/macbuild/nightlyBuild.py b/macbuild/nightlyBuild.py index 57d70dd44..3d6502aa1 100755 --- a/macbuild/nightlyBuild.py +++ b/macbuild/nightlyBuild.py @@ -83,15 +83,15 @@ def Get_Build_Options( targetDic ): if target == "std": # use 'Qt5MacPorts' that provides Qt 5.15.2~ to run on "Big Sur", too buildOp["std"] = [ '-q', '%sMacPorts' % qtType, '-r', 'sys', '-p', 'sys' ] elif target == "ports": - buildOp["ports"] = [ '-q', '%sMacPorts' % qtType, '-r', 'MP31', '-p', 'MP39' ] + buildOp["ports"] = [ '-q', '%sMacPorts' % qtType, '-r', 'MP32', '-p', 'MP39' ] elif target == "brew": - buildOp["brew"] = [ '-q', '%sBrew' % qtType, '-r', 'HB31', '-p', 'HB39' ] + buildOp["brew"] = [ '-q', '%sBrew' % qtType, '-r', 'HB32', '-p', 'HB39' ] elif target == "brewHW": buildOp["brewHW"] = [ '-q', '%sBrew' % qtType, '-r', 'sys', '-p', 'HB39' ] elif target == "ana3": buildOp["ana3"] = [ '-q', '%sAna3' % qtType, '-r', 'Ana3', '-p', 'Ana3' ] elif target == "brewA": - buildOp["brewA"] = [ '-q', '%sBrew' % qtType, '-r', 'HB31', '-p', 'HBAuto' ] + buildOp["brewA"] = [ '-q', '%sBrew' % qtType, '-r', 'HB32', '-p', 'HBAuto' ] elif target == "brewAHW": buildOp["brewAHW"] = [ '-q', '%sBrew' % qtType, '-r', 'sys', '-p', 'HBAuto' ] @@ -121,15 +121,15 @@ def Get_QAT_Directory( targetDic, platform ): if target == "std": dirQAT["std"] = '%sMP.build.macos-%s-release-RsysPsys.macQAT' % (qtType, platform) elif target == "ports": - dirQAT["ports"] = '%sMP.build.macos-%s-release-Rmp31Pmp39.macQAT' % (qtType, platform) + dirQAT["ports"] = '%sMP.build.macos-%s-release-Rmp32Pmp39.macQAT' % (qtType, platform) elif target == "brew": - dirQAT["brew"] = '%sBrew.build.macos-%s-release-Rhb31Phb39.macQAT' % (qtType, platform) + dirQAT["brew"] = '%sBrew.build.macos-%s-release-Rhb32Phb39.macQAT' % (qtType, platform) elif target == "brewHW": dirQAT["brewHW"] = '%sBrew.build.macos-%s-release-RsysPhb39.macQAT' % (qtType, platform) elif target == "ana3": dirQAT["ana3"] = '%sAna3.build.macos-%s-release-Rana3Pana3.macQAT' % (qtType, platform) elif target == "brewA": - dirQAT["brewA"] = '%sBrew.build.macos-%s-release-Rhb31Phbauto.macQAT' % (qtType, platform) + dirQAT["brewA"] = '%sBrew.build.macos-%s-release-Rhb32Phbauto.macQAT' % (qtType, platform) elif target == "brewAHW": dirQAT["brewAHW"] = '%sBrew.build.macos-%s-release-RsysPhbauto.macQAT' % (qtType, platform) return dirQAT @@ -162,10 +162,10 @@ def Get_Package_Options( targetDic, platform, srlDMG, makeflag ): packOp["std"] = [ '-p', 'ST-%sMP.pkg.macos-%s-release-RsysPsys' % (qtType, platform), '-s', '%d' % srlDMG, '%s' % flag ] elif target == "ports": - packOp["ports"] = [ '-p', 'LW-%sMP.pkg.macos-%s-release-Rmp31Pmp39' % (qtType, platform), + packOp["ports"] = [ '-p', 'LW-%sMP.pkg.macos-%s-release-Rmp32Pmp39' % (qtType, platform), '-s', '%d' % srlDMG, '%s' % flag ] elif target == "brew": - packOp["brew"] = [ '-p', 'LW-%sBrew.pkg.macos-%s-release-Rhb31Phb39' % (qtType, platform), + packOp["brew"] = [ '-p', 'LW-%sBrew.pkg.macos-%s-release-Rhb32Phb39' % (qtType, platform), '-s', '%d' % srlDMG, '%s' % flag ] elif target == "brewHW": packOp["brewHW"] = [ '-p', 'HW-%sBrew.pkg.macos-%s-release-RsysPhb39' % (qtType, platform), @@ -174,7 +174,7 @@ def Get_Package_Options( targetDic, platform, srlDMG, makeflag ): packOp["ana3"] = [ '-p', 'LW-%sAna3.pkg.macos-%s-release-Rana3Pana3' % (qtType, platform), '-s', '%d' % srlDMG, '%s' % flag ] elif target == "brewA": - packOp["brewA"] = [ '-p', 'LW-%sBrew.pkg.macos-%s-release-Rhb31Phbauto' % (qtType, platform), + packOp["brewA"] = [ '-p', 'LW-%sBrew.pkg.macos-%s-release-Rhb32Phbauto' % (qtType, platform), '-s', '%d' % srlDMG, '%s' % flag ] elif target == "brewAHW": packOp["brewAHW"] = [ '-p', 'HW-%sBrew.pkg.macos-%s-release-RsysPhbauto' % (qtType, platform), @@ -235,7 +235,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.28.2' | \n" + Usage += " (6) $ ./nightlyBuild.py --upload '0.28.4' | \n" Usage += " (7) $ ./nightlyBuild.py --cleandmg 1 | \n" Usage += "---------------------------------------------------------------------------+------------------------------\n"