diff --git a/Changelog b/Changelog index 10de5785a..cb502222a 100644 --- a/Changelog +++ b/Changelog @@ -1,4 +1,6 @@ +0.28 (2022-xx-xx): + 0.27.6 (2022-01-04): * Enhancement: %GITHUB%/issues/963 Display snapped position in main window * Bugfix: %GITHUB%/issues/960 Cap values range now shown in netlist browser diff --git a/build.bat b/build.bat index ff447e272..fe99b4961 100644 --- a/build.bat +++ b/build.bat @@ -256,7 +256,6 @@ if not exist "%option-build%" ( echo on "%option-qmake%" ^ - HAVE_QT5=1 ^ HAVE_QT_UITOOLS=1 ^ HAVE_QT_NETWORK=1 ^ HAVE_QT_SQL=1 ^ diff --git a/build.sh b/build.sh index bead5915a..97ef2b73a 100755 --- a/build.sh +++ b/build.sh @@ -36,7 +36,6 @@ HAVE_QT_DESIGNER=1 HAVE_QT_XML=1 HAVE_64BIT_COORD=0 HAVE_QT=1 -HAVE_QT5="" # not set HAVE_CURL=0 HAVE_EXPAT=0 @@ -197,12 +196,6 @@ while [ "$*" != "" ]; do RPATH="$1" shift ;; - -qt4) - HAVE_QT5=0 - ;; - -qt5) - HAVE_QT5=1 - ;; -dry-run) RUN_MAKE=0 ;; @@ -302,19 +295,6 @@ if [ "$QMAKE" = "" ]; then exit 1 fi -# if not given, try to detect the qt major version to use -if [ "$HAVE_QT5" = "" ]; then - qt_major=`$QMAKE -v | grep 'Using Qt version' | sed 's/.*version *\([0-9][0-9]*\).*/\1/'` - if [ "$qt_major" = "4" ]; then - HAVE_QT5=0 - elif [ "$qt_major" = "5" ]; then - HAVE_QT5=1 - else - echo "*** ERROR: could not determine Qt version from '$QMAKE -v'" - exit 1 - fi -fi - echo "Using qmake: $QMAKE" echo "" @@ -492,11 +472,7 @@ if [ $HAVE_QT = 0 ]; then echo " Qt not used at all" fi if [ $HAVE_QTBINDINGS != 0 ]; then - if [ "$HAVE_QT5" != "0" ]; then - echo " Qt bindings enabled (Qt 5 API)" - else - echo " Qt bindings enabled (Qt 4 API)" - fi + echo " Qt bindings enabled" fi if [ $HAVE_64BIT_COORD != 0 ]; then echo " 64 bit coordinates enabled" @@ -613,13 +589,6 @@ echo "" echo "Running $QMAKE .." cd $BUILD -# chose the right qmake -if [ $HAVE_QT5 = 0 ]; then - export QT_SELECT=4 -else - export QT_SELECT=5 -fi - $QMAKE -v # Force a minimum rebuild because of version info @@ -647,7 +616,6 @@ qmake_options=( HAVE_QT_XML="$HAVE_QT_XML" HAVE_64BIT_COORD="$HAVE_64BIT_COORD" HAVE_QT="$HAVE_QT" - HAVE_QT5="$HAVE_QT5" HAVE_CURL="$HAVE_CURL" HAVE_EXPAT="$HAVE_EXPAT" PREFIX="$BIN" diff --git a/macbuild/ReadMe.md b/macbuild/ReadMe.md index cb9e98f62..929985b58 100644 --- a/macbuild/ReadMe.md +++ b/macbuild/ReadMe.md @@ -1,9 +1,9 @@ -Relevant KLayout version: 0.27.4
+Relevant KLayout version: 0.27.5
Author: Kazzz-S
-Last modified: 2021-11-07
+Last modified: 2021-11-27
# 1. Introduction -This directory **`macbuild`** contains different files required for building KLayout (http://www.klayout.de/) version 0.27.4 or later for different 64-bit macOS, including: +This directory **`macbuild`** contains different files required for building KLayout (http://www.klayout.de/) version 0.27.5 or later for different 64-bit macOS, including: * Catalina (10.15.7) : the primary development environment * Big Sur (11.x) : experimental; Apple M1 chip is not tested since the author does not own an M1 Mac * Monterey (12.x) : -- ditto -- @@ -18,15 +18,26 @@ However, they are not actively supported, and DMG packages for them are not prov Throughout this document, the primary target machine is **Intel x86_64** with **macOS Catalina**.
A **((Notes))** marker indicates special notes for specific operating systems. -# 2. Qt5 Frameworks -By default, the Qt framework is "Qt5" from MacPorts (https://www.macports.org/), which is usually located under: +# 2. Qt6/Qt5 Frameworks +By default, the Qt framework is "Qt6" from Homebrew (https://brew.sh/), which is usually located under: ``` -/opt/local/libexec/qt5/ +/usr/local/opt/qt@6/ ``` -Alternatively, you can use "Qt5" from Homebrew (https://brew.sh/), which is usually located under: +"Qt5" is usually located under: ``` /usr/local/opt/qt@5/ +``` + +Alternatively, you can use "Qt6" from MacPorts (https://www.macports.org/), which is usually located under: +``` +/opt/local/libexec/qt6/ +``` +**((Notes))** As of 2021-11-27, MacPorts' Qt6 does not provide `qt6-qtmultimedia`, which causes a build error!!! + +"Qt5" is usually located under: +``` +/opt/local/libexec/qt5/ ``` OR @@ -40,7 +51,6 @@ If you have installed Anaconda3 under $HOME/opt/anaconda3/, make a symbolic link ``` /Applications/anaconda3/ ---> $HOME/opt/anaconda3/ ``` -**((Notes))** "Qt5" from Homebrew is chosen as the default for **Big Sur** and **Monterey**. # 3. Script language support: Ruby and Python Earlier, by default, supported script languages, i.e., Ruby and Python, were those standard ones bundled with the OS.
@@ -57,14 +67,14 @@ Big Sur (11.x) and Monterey (12.x) still provide the Python 2.7 binaries to run However, the latest Xcode 13.1 does not allow us to link the legacy Python 2.7 library with the newly compiled KLayout binaries.
Therefore, Homebrew is adopted as the default environment for Big Sur and Monterey. -The build script **`build4mac.py`** provides several possible combinations of Qt5, Ruy, and Python modules to accommodate such a slightly complex environment.
+The build script **`build4mac.py`** provides several possible combinations of Qt[6|5], Ruy, and Python modules to accommodate such a slightly complex environment.
Some typical use cases are described in Section 6. # 4. Prerequisites You need to have: * the latest Xcode and command-line tool kit compliant with each OS -* Qt5 package from MacPorts, Homebrew, or Anaconda3 -* optionally Ruby and Python packages from MacPorts, Homebrew, or Anaconda3 +* Qt[6|5] package from Homebrew or MacPorts; Qt5 from Anaconda3 +* optionally Ruby and Python packages from Homebrew, MacPorts, or Anaconda3 #### For matching versions of Ruby and Python, please also refer to `build4mac_env.py`. # 5. Command-line options of **`build4mac.py`** are as shown below. @@ -72,12 +82,15 @@ You need to have: ``` --------------------------------------------------------------------------------------------------------- << Usage of 'build4mac.py' >> - for building KLayout 0.27.4 or later on different Apple macOS / Mac OSX platforms. + for building KLayout 0.27.5 or later on different Apple macOS / Mac OSX platforms. -$ [python] ./build4mac.py +$ [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 + [-q|--qt ] : case-insensitive type=['Qt6MacPorts', 'Qt6Brew', | qt6brew + : 'Qt5MacPorts', 'Qt5Brew', 'Qt5Ana3'] | + : Qt6MacPorts: use Qt6 from MacPorts | + : Qt6Brew: use Qt6 from Homebrew | : Qt5MacPorts: use Qt5 from MacPorts | : Qt5Brew: use Qt5 from Homebrew | : Qt5Ana3: use Qt5 from Anaconda3 | @@ -88,30 +101,31 @@ $ [python] ./build4mac.py : HB27: use Ruby 2.7 from Homebrew | : Ana3: use Ruby 2.5 from Anaconda3 | [-p|--python ] : case-insensitive type=['nil', 'Sys', 'MP38', 'HB38', 'Ana3', | sys - : 'HBAuto'] | + : 'HB39', HBAuto'] | : nil: don't bind Python | : Sys: use OS-bundled Python 2.7 [ElCapitan -- Catalina] | : MP38: use Python 3.8 from MacPorts | : HB38: use Python 3.8 from Homebrew | : Ana3: use Python 3.8 from Anaconda3 | + : HB39: use Python 3.9 from Homebrew | : HBAuto: use the latest Python 3.x auto-detected from Homebrew | - [-n|--noqtbinding] : don't create Qt bindings for ruby scripts | disabled - [-u|--noqtuitools] : don't include uitools in Qt binding | disabled - [-m|--make