From a7191b50595b8af403b7c6d5b694d2840e4128dd Mon Sep 17 00:00:00 2001 From: Kazunari Sekigawa Date: Sun, 11 Mar 2018 10:24:06 +0900 Subject: [PATCH 1/4] Merge remote-tracking branch 'lightwave-lab/master' into lightwave-lab --- macbuild/build4mac_env.pyc | Bin 3944 -> 0 bytes macbuild/build4mac_util.pyc | Bin 4885 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 macbuild/build4mac_env.pyc delete mode 100644 macbuild/build4mac_util.pyc diff --git a/macbuild/build4mac_env.pyc b/macbuild/build4mac_env.pyc deleted file mode 100644 index 906f510e1be336afef6e2c376e2e682b9ba6fda4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3944 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 Date: Sun, 11 Mar 2018 10:26:57 +0900 Subject: [PATCH 2/4] adding icon to ".gds" and ".oas", too. --- macbuild/Resources/Info.plist.template | 2 ++ 1 file changed, 2 insertions(+) diff --git a/macbuild/Resources/Info.plist.template b/macbuild/Resources/Info.plist.template index 65fa6d47a..98a281edb 100644 --- a/macbuild/Resources/Info.plist.template +++ b/macbuild/Resources/Info.plist.template @@ -26,6 +26,8 @@ CFBundleTypeExtensions gds + gds2 + oas CFBundleTypeRole Editor From 3384310676ed78437ec3d1a931af3cad0a647dce Mon Sep 17 00:00:00 2001 From: Kazunari Sekigawa Date: Mon, 19 Mar 2018 10:06:38 +0900 Subject: [PATCH 3/4] Use Qt5.10.x instead of Qt5.9.x. This refs #4 and #22. --- macbuild/makeDMG4mac.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/macbuild/makeDMG4mac.py b/macbuild/makeDMG4mac.py index f7044037a..d79526195 100755 --- a/macbuild/makeDMG4mac.py +++ b/macbuild/makeDMG4mac.py @@ -73,7 +73,7 @@ def SetGlobals(): 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" - Usage += " [-q|--qt ] : ID name of deployed Qt | Qt593mp \n" + Usage += " [-q|--qt ] : ID name of deployed Qt | Qt510Xmp \n" Usage += " [-s|--serial ] : DMG serial number | 1 \n" Usage += " [-?|--?] : print this usage and exit | disabled \n" Usage += "--------------------------------------------------------------------------------------------------------\n" @@ -117,7 +117,7 @@ def SetGlobals(): OpClean = False OpMake = False DMGSerialNum = 1 - QtIdentification = "Qt593mp" + QtIdentification = "Qt510Xmp" Version = GetKLayoutVersionFrom( "./version.sh" ) OccupiedDS = -1 BackgroundPNG = "KLayoutDMG-Back.png" @@ -237,7 +237,7 @@ def ParseCommandLineArguments(): p.set_defaults( pkg_dir = "", operation_clean = False, operation_make = False, - qt_identification = "Qt593mp", + qt_identification = "Qt510Xmp", dmg_serial = "1", checkusage = False ) From a4fdd4ad58a2e23e00dba2d4d0c7673ccc617078 Mon Sep 17 00:00:00 2001 From: Kazunari Sekigawa Date: Mon, 19 Mar 2018 15:51:15 +0900 Subject: [PATCH 4/4] Confirmed that Qt5.10.x can be used. More precisely, KLayout 0.25.2 can work with (1) Qt5.10.0 from MacPorts and (2) Qt5.10.1 from Homebrew on Yosemite and High Sierra. This refs #4 and #22. --- macbuild/ReadMe.md | 46 ++++++++++++++------------ macbuild/ReadMe.txt | 80 --------------------------------------------- 2 files changed, 25 insertions(+), 101 deletions(-) delete mode 100644 macbuild/ReadMe.txt diff --git a/macbuild/ReadMe.md b/macbuild/ReadMe.md index 5ce29188b..65be120bf 100644 --- a/macbuild/ReadMe.md +++ b/macbuild/ReadMe.md @@ -1,37 +1,42 @@ -Relevant KLayout version: 0.25.1 +Relevant KLayout version: 0.25.2 # 1. Introduction -This directory "macbuild" contains different files required for building KLayout (http://www.klayout.de/) version 0.25 or later for different Mac OSXs including: +This directory "macbuild" contains different files required for building KLayout (http://www.klayout.de/) version 0.25 or later for different 64-bit Mac OSXs including: * Yosemite (10.10) * El Capitan (10.11) * Sierra (10.12) * High Sierra (10.13) -By default, Qt framework is "Qt5" from Mac Ports (https://www.macports.org/) which is usually located under: +By default, Qt framework is "Qt5" from MacPorts (https://www.macports.org/) which is usually located under: ``` /opt/local/libexec/qt5/ ``` +Alternatively, you can use "Qt5" from Homebrew (https://brew.sh/) which is usually located under: +``` +/usr/local/opt/qt/ +``` +Please refer to Section # 5. of this document regarding use of Homebrew. + +KLayout 0.25.2 was successfully built with "Qt 5.10.0" from MacPorts and "Qt 5.10.1" from Homebrew. + ### IMPORTANT ``` -* Please DO NOT USE "Qt 5.10.0" which is problematic in showing your design in the main canvas. -* Please USE "Qt 5.9.x" instead (5.9.3 is recommended). -* Building with Qt4 will lead to some compile errors. +* Please DO NOT USE "Qt 4.x" which is problematic in compilation. ``` + Also by default, supported script languages, i.e, Ruby and Python, are those standard ones bundled with the OS. # 2. Non-OS-standard script language support You may want to use a non-OS-standard script language such as Python 3.6 from Anaconda2 (https://www.anaconda.com/download/#macos) in combination with KLayout. -Since Anaconda2 is a popular Python development environment, this is worth trying. -Unfortunately, however, some dynamic linkage problems are observed as of today. -On the other hand, Python 3.6 provided by Mac Ports is usable. -Please try this (refer to 3B below) if you feel it's useful. +Since Anaconda2 is a popular Python development environment, this is worth trying. Unfortunately, however, some dynamic linkage problems are observed as of today. +On the other hand, Python 3.6 provided by MacPorts or Homebrew is usable. +Please try this (refer to 3B below or Section #5) if you feel it's useful. # 3. Use-cases ### 3A. Debug build using the OS-standard script languages -1. Make a symbolic link from the parent directory (where 'build.sh' exists) to - 'build4mac.py', that is, +1. Make a symbolic link (if it does not exist) from the parent directory (where 'build.sh' exists) to 'build4mac.py', that is, ``` build4mac.py -> macbuild/build4mac.py ``` @@ -40,15 +45,15 @@ Please try this (refer to 3B below) if you feel it's useful. $ cd /where/'build.sh'/exists $ ./build4mac.py -d ``` -3. Confirm successful build. -4. Run 'build4mac.py' again with the same options used in 2. PLUS "-y" to deploy executables and libraries (including Qt's frameworks) under "klayout.app" bundle. The buddy command line tools (strm*) will also be deployed. +3. Confirm successful build (it will take about one hour). +4. Run 'build4mac.py' again with the same options used in 2. PLUS "-y" to deploy executables and libraries (including Qt's frameworks) under "klayout.app" bundle. The buddy command line tools (strm*) will also be deployed in this step. ``` $ ./build4mac.py -d -y ``` 5. Copy/move generated bundles ("klayout.app" and "klayout.scripts/") to your "/Applications" directory for installation. ### 3B. Release build using the non-OS-standard Ruby 2.4 and Python 3.6 both from MacPorts -1. Make a symbolic link from the parent directory (where 'build.sh' exists) to 'build4mac.py', that is, +1. Make a symbolic link (if it does not exist) from the parent directory (where 'build.sh' exists) to 'build4mac.py', that is, ``` build4mac.py -> macbuild/build4mac.py ``` @@ -57,8 +62,8 @@ build4mac.py -> macbuild/build4mac.py $ cd /where/'build.sh'/exists $ ./build4mac.py -r mp24 -p mp36 ``` -3. Confirm successful build. -4. Run 'build4mac.py' again with the same options used in 2. PLUS "-Y" to deploy executables and libraries under "klayout.app" bundle. The buddy command line tools (strm*) will also be deployed. +3. Confirm successful build (it will take about one hour). +4. Run 'build4mac.py' again with the same options used in 2. PLUS "-Y" to deploy executables and libraries under "klayout.app" bundle. The buddy command line tools (strm*) will also be deployed in this step. ``` $ ./build4mac.py -r mp24 -p mp36 -Y ``` @@ -73,7 +78,7 @@ That is, paths to other modules (Ruby, Python, and Qt5 Frameworks) remain unchan You can make a DMG installer using another Python script 'makeDMG4mac.py'. This script requires a directory generated by 'build4mac.py' with [-y|-Y] option (refer to 3A.4 & 3B.4) -1. Make a symbolic link from the parent directory (where 'build.sh' exists) to 'makeDMG4mac.py', that is, +1. Make a symbolic link (if it does not exist) from the parent directory (where 'build.sh' exists) to 'makeDMG4mac.py', that is, ``` makeDMG4mac.py -> macbuild/makeDMG4mac.py ``` @@ -83,10 +88,9 @@ $ cd /where/'build.sh'/exists $ ./makeDMG4mac.py -p qt5.pkg.macos-HighSierra-release -m ``` -By: Kazzz (January 16, 2018) # 5. Alternative building options -### 5.1 Python 3.6 from brew, Qt 5.10.1 from brew +### 5.1 Python 3.6 from Homebrew, Qt 5.10.1 from Homebrew Homebrew's installation of python3 (`brew install python3`) places a `Python.framework` in `/usr/local/opt/python/Frameworks/Python.framework/`, which you can use to build KLayout from. Qt can also be downloaded from brew with `brew install qt`. @@ -105,6 +109,6 @@ Homebrew's installation of python3 (`brew install python3`) places a `Python.fra #### Known issues -Because we link python to `/usr/local/opt/python/Frameworks/Python.framework/`, updating python from brew might break klayout if the new version is incompatible. To fix this, it is better to link python directly to `/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework`, but that might complicate release builds, because that assumes users have the exact version of python installed by brew. +Because we link python to `/usr/local/opt/python/Frameworks/Python.framework/`, updating python from brew might break KLayout if the new version is incompatible. To fix this, it is better to link python directly to `/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework`, but that might complicate release builds, because that assumes users have the exact version of python installed by brew. [End of File] diff --git a/macbuild/ReadMe.txt b/macbuild/ReadMe.txt deleted file mode 100644 index 87921776f..000000000 --- a/macbuild/ReadMe.txt +++ /dev/null @@ -1,80 +0,0 @@ -<< Draft Version 0.004>> -Relevant KLayout version: 0.25.1 - -1. Introduction: - This directory "macbuild" contains different files required for building KLayout (http://www.klayout.de/) - version 0.25 or later for different Mac OSXs including: - * Yosemite (10.10) - * El Capitan (10.11) - * Sierra (10.12) - * High Sierra (10.13) - - By default, Qt framework is "Qt5" from Mac Ports (https://www.macports.org/) which is - usually located under: - /opt/local/libexec/qt5/ - - : - * Please DO NOT USE "5.10.0" which is problematic in showing your design in the main canvas. - * Please USE "5.9.x" instead (5.9.3 is recommended). - * Building with Qt4 will lead to some compile errors. - - Also by default, supported script languages, i.e, Ruby and Python, are those - standard ones bundled with the OS. - - -2. Non-OS-standard script language support: - You may want to use a non-OS-standard script language such as Python 3.6 from - Anaconda2 (https://www.anaconda.com/download/#macos) in combination with KLayout. - Since Anaconda2 is a popular Python development environment, this is worth trying. - Unfortunately, however, some dynamic linkage problems are observed as of today. - - On the other hand, Python 3.6 provided by Mac Ports is usable. - Please try this (refer to 3B below) if you feel it's useful. - -3. Use-cases: -3A. Debug build using the OS-standard script languages: - (1) Make a symbolic link from the parent directory (where 'build.sh' exists) to - 'build4mac.py', that is, - build4mac.py -> macbuild/build4mac.py - (2) Invoke 'build4mac.py' with appropriate options ("-d" for debug build): - $ cd /where/'build.sh'/exists - $ ./build4mac.py -d - (3) Confirm successful build. - (4) Run 'build4mac.py' again with the same options used in (2) PLUS "-y" - to deploy executables and libraries (including Qt's frameworks) under "klayout.app" bundle. - The buddy command line tools (strm*) will also be deployed. - $ ./build4mac.py -d -y - (5) Copy/move generated bundles ("klayout.app" and "klayout.scripts/") to your - "/Applications" directory for installation. - - -3B. Release build using the non-OS-standard Ruby 2.4 and Python 3.6 both from MacPorts: - (1) Make a symbolic link from the parent directory (where 'build.sh' exists) to - 'build4mac.py', that is, - build4mac.py -> macbuild/build4mac.py - (2) Invoke 'build4mac.py' with appropriate options: - $ cd /where/'build.sh'/exists - $ ./build4mac.py -r mp24 -p mp36 - (3) Confirm successful build. - (4) Run 'build4mac.py' again with the same options used in (2) PLUS "-Y" - to deploy executables and libraries under "klayout.app" bundle. - The buddy command line tools (strm*) will also be deployed. - $ ./build4mac.py -r mp24 -p mp36 -Y - * [-Y|--DEPLOY] option deploys KLayout's dylibs and executables only. - That is, paths to other modules (Ruby, Python, and Qt5 Frameworks) - remain unchanged (absolute paths in your development environment). - (5) Copy/move generated bundles ("klayout.app" and "klayout.scripts/") to your - "/Applications" directory for installation. - -4. 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 [-y|-Y] option (refer to 3A.4 & 3B.4) - - (1) Make a symbolic link from the parent directory (where 'build.sh' exists) to 'makeDMG4mac.py', that is, - makeDMG4mac.py -> macbuild/makeDMG4mac.py - (2) Invoke 'makeDMG4mac.py' with -p and -m options, for example, - $ cd /where/'build.sh'/exists - $ ./makeDMG4mac.py -p qt5.pkg.macos-HighSierra-release -m - -By: Kazzz (January 16, 2018) -[End of File]