From c6f1cfbae88e15844f187fdf589c7dbccbd7fac7 Mon Sep 17 00:00:00 2001 From: Thomas Ferreira de Lima Date: Sat, 22 Sep 2018 12:45:43 -0400 Subject: [PATCH 1/4] adding -std=c++0x flag to linux pymod builds --- .travis.yml | 226 ++++++++++++++++++++++++++-------------------------- setup.py | 7 +- 2 files changed, 117 insertions(+), 116 deletions(-) diff --git a/.travis.yml b/.travis.yml index d6397e35d..dbd60d0d8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,68 +1,68 @@ matrix: include: - # python 2 osx + # # python 2 osx - - name: "klayout python2 osx10.13" - os: osx - osx_image: xcode9.4 # macOS 10.13 - env: - - MATRIX_EVAL="" - - ARCHFLAGS="-std=c++11" - - PIP_UPDATE="1" - - PYTHON_BUILD=true - - BREW_BUNDLE=false + # - name: "klayout python2 osx10.13" + # os: osx + # osx_image: xcode9.4 # macOS 10.13 + # env: + # - MATRIX_EVAL="" + # - ARCHFLAGS="-std=c++11" + # - PIP_UPDATE="1" + # - PYTHON_BUILD=true + # - BREW_BUNDLE=false - - name: "klayout python2 osx10.12" - os: osx - osx_image: xcode8.3 # macOS 10.12 - env: - - MATRIX_EVAL="brew install python2 || brew link --overwrite python@2" # deficient python2 in travis's xcode8.3 (no ssl) - - ARCHFLAGS="-std=c++11" - - PIP_UPDATE="1" - - PYTHON_BUILD=true - - BREW_BUNDLE=false + # - name: "klayout python2 osx10.12" + # os: osx + # osx_image: xcode8.3 # macOS 10.12 + # env: + # - MATRIX_EVAL="brew install python2 || brew link --overwrite python@2" # deficient python2 in travis's xcode8.3 (no ssl) + # - ARCHFLAGS="-std=c++11" + # - PIP_UPDATE="1" + # - PYTHON_BUILD=true + # - BREW_BUNDLE=false - - name: "klayout python2 osx10.11" - os: osx - osx_image: xcode8 # macOS 10.11 - env: - - MATRIX_EVAL="" - - ARCHFLAGS="-std=c++11" - - PIP_UPDATE="1" - - PYTHON_BUILD=true - - BREW_BUNDLE=false + # - name: "klayout python2 osx10.11" + # os: osx + # osx_image: xcode8 # macOS 10.11 + # env: + # - MATRIX_EVAL="" + # - ARCHFLAGS="-std=c++11" + # - PIP_UPDATE="1" + # - PYTHON_BUILD=true + # - BREW_BUNDLE=false - # python 3 osx + # # python 3 osx - - name: "klayout python3 osx10.13" - os: osx - osx_image: xcode9.4 # macOS 10.13 - env: - - MATRIX_EVAL="shopt -s expand_aliases; alias python='python3'; alias pip='pip3';" - - ARCHFLAGS="-std=c++11" - - PIP_UPDATE="1" - - PYTHON_BUILD=true - - BREW_BUNDLE=true + # - name: "klayout python3 osx10.13" + # os: osx + # osx_image: xcode9.4 # macOS 10.13 + # env: + # - MATRIX_EVAL="shopt -s expand_aliases; alias python='python3'; alias pip='pip3';" + # - ARCHFLAGS="-std=c++11" + # - PIP_UPDATE="1" + # - PYTHON_BUILD=true + # - BREW_BUNDLE=true - - name: "klayout python3 osx10.12" - os: osx - osx_image: xcode8.3 # macOS 10.12 - env: - - MATRIX_EVAL="shopt -s expand_aliases; alias python='python3'; alias pip='pip3';" - - ARCHFLAGS="-std=c++11" - - PIP_UPDATE="1" - - PYTHON_BUILD=true - - BREW_BUNDLE=true + # - name: "klayout python3 osx10.12" + # os: osx + # osx_image: xcode8.3 # macOS 10.12 + # env: + # - MATRIX_EVAL="shopt -s expand_aliases; alias python='python3'; alias pip='pip3';" + # - ARCHFLAGS="-std=c++11" + # - PIP_UPDATE="1" + # - PYTHON_BUILD=true + # - BREW_BUNDLE=true - - name: "klayout python3 osx10.11" - os: osx - osx_image: xcode8 # macOS 10.11 - env: - - MATRIX_EVAL="shopt -s expand_aliases; alias python='python3'; alias pip='pip3';" - - ARCHFLAGS="-std=c++11" - - PIP_UPDATE="1" - - PYTHON_BUILD=true - - BREW_BUNDLE=true + # - name: "klayout python3 osx10.11" + # os: osx + # osx_image: xcode8 # macOS 10.11 + # env: + # - MATRIX_EVAL="shopt -s expand_aliases; alias python='python3'; alias pip='pip3';" + # - ARCHFLAGS="-std=c++11" + # - PIP_UPDATE="1" + # - PYTHON_BUILD=true + # - BREW_BUNDLE=true - name: "klayout python3.6 package" os: linux @@ -136,68 +136,68 @@ matrix: - PYTHON_BUILD=true - BREW_BUNDLE=false - # KLayout builds for mac - # Python 3 - - name: "KLayout macOS 10.13 with py3.7" - os: osx - osx_image: xcode9.4 # macOS 10.13 - env: - - MATRIX_EVAL="" - - PYTHON_VERSION=B37 - - MACOS_VERSION=HighSierra - - KLAYOUT_BUILD=true - - BREW_BUNDLE=true + # # KLayout builds for mac + # # Python 3 + # - name: "KLayout macOS 10.13 with py3.7" + # os: osx + # osx_image: xcode9.4 # macOS 10.13 + # env: + # - MATRIX_EVAL="" + # - PYTHON_VERSION=B37 + # - MACOS_VERSION=HighSierra + # - KLAYOUT_BUILD=true + # - BREW_BUNDLE=true - - name: "KLayout macOS 10.12 with py3.7" - os: osx - osx_image: xcode8.3 # macOS 10.12 - env: - - MATRIX_EVAL="" - - PYTHON_VERSION=B37 - - MACOS_VERSION=Sierra - - KLAYOUT_BUILD=true - - BREW_BUNDLE=true + # - name: "KLayout macOS 10.12 with py3.7" + # os: osx + # osx_image: xcode8.3 # macOS 10.12 + # env: + # - MATRIX_EVAL="" + # - PYTHON_VERSION=B37 + # - MACOS_VERSION=Sierra + # - KLAYOUT_BUILD=true + # - BREW_BUNDLE=true - - name: "KLayout macOS 10.11 with py3.7" - os: osx - osx_image: xcode8 # macOS 10.11 - env: - - MATRIX_EVAL="" - - PYTHON_VERSION=B37 - - MACOS_VERSION=ElCapitan - - KLAYOUT_BUILD=true - - BREW_BUNDLE=true + # - name: "KLayout macOS 10.11 with py3.7" + # os: osx + # osx_image: xcode8 # macOS 10.11 + # env: + # - MATRIX_EVAL="" + # - PYTHON_VERSION=B37 + # - MACOS_VERSION=ElCapitan + # - KLAYOUT_BUILD=true + # - BREW_BUNDLE=true - # Python 2 - - name: "KLayout macOS 10.13 with py2.7" - os: osx - osx_image: xcode9.4 # macOS 10.13 - env: - - MATRIX_EVAL="" - - PYTHON_VERSION=Sys - - MACOS_VERSION=HighSierra - - KLAYOUT_BUILD=true - - BREW_BUNDLE=true + # # Python 2 + # - name: "KLayout macOS 10.13 with py2.7" + # os: osx + # osx_image: xcode9.4 # macOS 10.13 + # env: + # - MATRIX_EVAL="" + # - PYTHON_VERSION=Sys + # - MACOS_VERSION=HighSierra + # - KLAYOUT_BUILD=true + # - BREW_BUNDLE=true - - name: "KLayout macOS 10.12 with py2.7" - os: osx - osx_image: xcode8.3 # macOS 10.12 - env: - - MATRIX_EVAL="" - - PYTHON_VERSION=Sys - - MACOS_VERSION=Sierra - - KLAYOUT_BUILD=true - - BREW_BUNDLE=true + # - name: "KLayout macOS 10.12 with py2.7" + # os: osx + # osx_image: xcode8.3 # macOS 10.12 + # env: + # - MATRIX_EVAL="" + # - PYTHON_VERSION=Sys + # - MACOS_VERSION=Sierra + # - KLAYOUT_BUILD=true + # - BREW_BUNDLE=true - - name: "KLayout macOS 10.11 with py2.7" - os: osx - osx_image: xcode8 # macOS 10.11 - env: - - MATRIX_EVAL="" - - PYTHON_VERSION=Sys - - MACOS_VERSION=ElCapitan - - KLAYOUT_BUILD=true - - BREW_BUNDLE=true + # - name: "KLayout macOS 10.11 with py2.7" + # os: osx + # osx_image: xcode8 # macOS 10.11 + # env: + # - MATRIX_EVAL="" + # - PYTHON_VERSION=Sys + # - MACOS_VERSION=ElCapitan + # - KLAYOUT_BUILD=true + # - BREW_BUNDLE=true before_install: - env diff --git a/setup.py b/setup.py index f817cf5b0..bf862b4e1 100644 --- a/setup.py +++ b/setup.py @@ -148,8 +148,9 @@ class Config(object): elif platform.system() == "Darwin": return [] else: - # Avoids many "type-punned pointer" warnings - return ["-Wno-strict-aliasing"] + return ["-Wno-strict-aliasing", # Avoids many "type-punned pointer" warnings + "-std=c++0x", # because we use unordered_map/unordered_set + ] def link_args(self, mod): """ @@ -173,7 +174,7 @@ class Config(object): # build path and the loader will fail. args = [] args += ['-Wl,-soname,' + self.libname_of(mod)] - if not '_dbpi' in mod: + if '_dbpi' not in mod: loader_path = '$ORIGIN' else: loader_path = '$ORIGIN/..' From ff6e818da8a84d7ae78318aad785c0130067095f Mon Sep 17 00:00:00 2001 From: Thomas Ferreira de Lima Date: Sat, 22 Sep 2018 13:49:18 -0400 Subject: [PATCH 2/4] [skip ci] minor change in deploy folder name --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f0816d2d0..5c7841c51 100644 --- a/.travis.yml +++ b/.travis.yml @@ -222,8 +222,8 @@ script: python setup.py build; python setup.py bdist_wheel; python setup.py install; - mkdir -p deploy/dist; - cp -a dist deploy/dist; + mkdir -p deploy/dist-pymod; + cp -a dist/ deploy/dist-pymod; python -c 'import klayout.db as db; print(dir(db))'; python -c 'import klayout.rdb as rdb; print(dir(rdb))'; python -c 'import klayout.tl as tl; print(dir(tl))'; From 186d7c3ddcf078d3ff9ddcec1388b2a87bb807b2 Mon Sep 17 00:00:00 2001 From: Thomas Ferreira de Lima Date: Sat, 22 Sep 2018 15:42:55 -0400 Subject: [PATCH 3/4] reorganizing dropbox folder to deploy/$(MACOS_VERSION)/$(PYTHON_VERSION)/$(KLAYOUT_VERSION) --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index beb2faf49..1654c3d96 100644 --- a/Makefile +++ b/Makefile @@ -36,16 +36,16 @@ test: dropbox-deploy: @echo "Preparing for dropbox deployment $(MACOS_VERSION) $(GITCOMMIT)" - mkdir -p deploy; \ + mkdir -p deploy/$(MACOS_VERSION)/$(PYTHON_VERSION)/$(KLAYOUT_VERSION); \ pwd; \ ls -lah; \ touch build.txt; \ - cp build.txt deploy/qt5.pkg.macos-$(MACOS_VERSION)-$(PYTHON_VERSION)-release-$(KLAYOUT_VERSION)-$(GITCOMMIT).log.txt; \ + cp build.txt deploy/$(MACOS_VERSION)/$(PYTHON_VERSION)/$(KLAYOUT_VERSION)/qt5.pkg.macos-$(MACOS_VERSION)-$(PYTHON_VERSION)-release-$(KLAYOUT_VERSION)-$(GITCOMMIT).log.txt; \ hdiutil convert macbuild/Resources/klayoutDMGTemplate.dmg -format UDRW -o work-KLayout.dmg; \ hdiutil resize -size 500m work-KLayout.dmg; \ hdiutil attach work-KLayout.dmg -readwrite -noverify -quiet -mountpoint tempKLayout -noautoopen; \ cp -a qt5.pkg.macos-$(MACOS_VERSION)-release/ tempKLayout/; \ hdiutil detach tempKLayout; \ - hdiutil convert work-KLayout.dmg -format UDZO -imagekey zlib-level=9 -o deploy/qt5.pkg.macos-$(MACOS_VERSION)-$(PYTHON_VERSION)-release-$(KLAYOUT_VERSION)-$(GITCOMMIT).dmg; \ - md5 -q deploy/qt5.pkg.macos-$(MACOS_VERSION)-$(PYTHON_VERSION)-release-$(KLAYOUT_VERSION)-$(GITCOMMIT).dmg > deploy/qt5.pkg.macos-$(MACOS_VERSION)-$(PYTHON_VERSION)-release-$(KLAYOUT_VERSION)-$(GITCOMMIT).dmg.md5; \ + hdiutil convert work-KLayout.dmg -format UDZO -imagekey zlib-level=9 -o deploy/$(MACOS_VERSION)/$(PYTHON_VERSION)/$(KLAYOUT_VERSION)/qt5.pkg.macos-$(MACOS_VERSION)-$(PYTHON_VERSION)-release-$(KLAYOUT_VERSION)-$(GITCOMMIT).dmg; \ + md5 -q deploy/$(MACOS_VERSION)/$(PYTHON_VERSION)/$(KLAYOUT_VERSION)/qt5.pkg.macos-$(MACOS_VERSION)-$(PYTHON_VERSION)-release-$(KLAYOUT_VERSION)-$(GITCOMMIT).dmg > deploy/$(MACOS_VERSION)/$(PYTHON_VERSION)/$(KLAYOUT_VERSION)/qt5.pkg.macos-$(MACOS_VERSION)-$(PYTHON_VERSION)-release-$(KLAYOUT_VERSION)-$(GITCOMMIT).dmg.md5; \ rm work-KLayout.dmg From 6ddecb1020d9f16b69012a8b9c1b88205c4f5cd6 Mon Sep 17 00:00:00 2001 From: Thomas Ferreira de Lima Date: Sat, 22 Sep 2018 19:38:25 -0400 Subject: [PATCH 4/4] travis bugfix: cp -a behaves differently in macs and linux --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5c7841c51..42f0d13f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -223,7 +223,7 @@ script: python setup.py bdist_wheel; python setup.py install; mkdir -p deploy/dist-pymod; - cp -a dist/ deploy/dist-pymod; + cp -a dist/* deploy/dist-pymod/; python -c 'import klayout.db as db; print(dir(db))'; python -c 'import klayout.rdb as rdb; print(dir(rdb))'; python -c 'import klayout.tl as tl; print(dir(tl))';