Merge pull request #3 from klayoutmatthias/macos-build

Macos build
This commit is contained in:
Kazunari Sekigawa 2017-12-12 18:06:00 +09:00 committed by GitHub
commit f2096e0e6e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 104 additions and 25 deletions

View File

@ -1,6 +1,6 @@
#!/bin/bash
#
#
# KLayout Layout Viewer
# Copyright (C) 2006-2017 Matthias Koefferlein
#
@ -17,10 +17,11 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#
CURR_DIR=`pwd`
RUN_MAKE=1
IS_MAC="no"
HAVE_QTBINDINGS=1
HAVE_64BIT_COORD=0
@ -46,6 +47,16 @@ MAKE_OPT=""
CONFIG="release"
BUILD_EXPERT=0
# Check if building on Mac OSX Darwin family
case `uname` in
Darwin*)
IS_MAC="yes"
;;
*)
IS_MAC="no"
;;
esac
# Check, whether build.sh is run from the top level folder
if ! [ -e src ] || ! [ -e src/klayout.pro ]; then
echo "*** ERROR: run build.sh from the top level folder"
@ -200,7 +211,7 @@ done
echo "Scanning installation .."
echo ""
# Import version info
# Import version info
. ./version.sh
echo "Version Info:"
@ -212,8 +223,8 @@ echo ""
# if not given, try to detect the qmake binary
if [ "$QMAKE" = "" ]; then
for qmake in "qmake5" "qmake-qt5" "qmake4" "qmake-qt4" "qmake"; do
if [ "$QMAKE" = "" ] && [ "`$qmake -v 2>/dev/null`" != "" ]; then
QMAKE="$qmake"
if [ "$QMAKE" = "" ] && [ "`$qmake -v 2>/dev/null`" != "" ]; then
QMAKE="$qmake"
fi
done
fi
@ -246,8 +257,8 @@ echo ""
# if not given, locate ruby interpreter (prefer 1.9, then default, finally 1.8 as fallback)
if [ "$RUBY" = "" ]; then
for ruby in "ruby2.4" "ruby2.3" "ruby2.2" "ruby2.1" "ruby2" "ruby1.9" "ruby" "ruby1.8"; do
if [ "$RUBY" = "" ] && [ "`$ruby -e 'puts 1' 2>/dev/null`" = "1" ]; then
RUBY="$ruby"
if [ "$RUBY" = "" ] && [ "`$ruby -e 'puts 1' 2>/dev/null`" = "1" ]; then
RUBY="$ruby"
fi
done
fi
@ -314,7 +325,7 @@ if [ "$RUBY" != "" ] && [ "$RUBY" != "-" ]; then
RUBYINCLUDE2=`$RUBY -rrbconfig -e "puts (RbConfig::CONFIG['rubyarchhdrdir'] || '')"`
fi
if [ "$RUBYINCLUDE2" = "" ]; then
RUBYINCLUDE2="$RUBYHDRDIR"/`$RUBY -rrbconfig -e "puts (RbConfig::CONFIG['arch'] || '')"`
RUBYINCLUDE2="$RUBYHDRDIR"/`$RUBY -rrbconfig -e "puts (RbConfig::CONFIG['arch'] || '')"`
fi
echo " Ruby headers found: $RUBYINCLUDE and $RUBYINCLUDE2"
fi
@ -329,11 +340,11 @@ if [ "$RUBY" != "" ] && [ "$RUBY" != "-" ]; then
fi
# if not given, locate Python interpreter
# if not given, locate Python interpreter
if [ "$PYTHON" = "" ]; then
for python in "python3.5" "python3.4" "python3.3" "python3.2" "python3.1" "python3" "python2.8" "python2.7" "python2" "python"; do
if [ "$PYTHON" = "" ] && [ "`$python -c 'print(1)' 2>/dev/null`" = "1" ]; then
PYTHON="$python"
if [ "$PYTHON" = "" ] && [ "`$python -c 'print(1)' 2>/dev/null`" = "1" ]; then
PYTHON="$python"
fi
done
fi
@ -468,11 +479,21 @@ mkdir -p $BUILD
. $(dirname $(which $0))/version.sh
# qmake needs absolute paths, so we get them now:
BUILD=`readlink -f $BUILD`
BIN=`readlink -f $BIN`
# OSX does not have `readlink -f` command. Use equivalent Perl script.
if [ "$IS_MAC" = "no" ]; then
BUILD=`readlink -f $BUILD`
BIN=`readlink -f $BIN`
else
BUILD=`perl -MCwd -le 'print Cwd::abs_path(shift)' $BUILD`
BIN=`perl -MCwd -le 'print Cwd::abs_path(shift)' $BIN`
fi
if ( gmake -v >/dev/null 2>/dev/null ); then
MAKE_PRG=gmake
if [ "$IS_MAC" = "no" ]; then
if ( gmake -v >/dev/null 2>/dev/null ); then
MAKE_PRG=gmake
else
MAKE_PRG=make
fi
else
MAKE_PRG=make
fi

21
macbuild/macbuildQt4.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/bash
# Using Qt 4.8.7 from Mac Ports.
#
# Ruby: OSX native
# Python: OSX native
./build.sh \
-release \
-qmake /opt/local/libexec/qt4/bin/qmake \
-build ./qt4.build.macos-high-sierra \
-bin ./qt4.bin.macos-high-sierra \
-option -j2 \
-with-qtbinding \
-qt4 \
-ruby /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby \
-python /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python \
-rbinc /System/Library/Frameworks/Ruby.framework/Headers \
-rblib /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.dylib \
-pyinc /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 \
-pylib /System/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib 2>&1 \
| tee macbuildQt4.log

21
macbuild/macbuildQt5.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/bash
# Using Qt 5.9.3 from Mac Ports.
#
# Ruby: OSX native
# Python: OSX native
./build.sh \
-release \
-qmake /opt/local/libexec/qt5/bin/qmake \
-build ./qt5.build.macos-high-sierra \
-bin ./qt5.bin.macos-high-sierra \
-option -j2 \
-with-qtbinding \
-qt5 \
-ruby /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby \
-python /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python \
-rbinc /System/Library/Frameworks/Ruby.framework/Headers \
-rblib /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.dylib \
-pyinc /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 \
-pylib /System/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib 2>&1 \
| tee macbuildQt5.log

View File

@ -1484,6 +1484,8 @@ final_class "QAccessibleObject" # because navigate cannot be implemented
# final_class "QAccessiblePlugin" # because navigate cannot be implemented
final_class "QAccessibleWidget" # because navigate cannot be implemented
no_copy_ctor "QIconEngine"
# --------------------------------------------------------------
# QtXml

View File

@ -35,3 +35,5 @@ equals(HAVE_PYTHON, "1") {
DEFINES += BD_TARGET=$$TARGET
LIBS += $$RUBYLIBFILE

View File

@ -1208,7 +1208,7 @@ struct array_iterator
typedef void pointer_type;
typedef void difference_type;
typedef void pointer;
typedef void iterator_category;
typedef std::forward_iterator_tag iterator_category;
/**
* @brief The default constructor

View File

@ -74,7 +74,7 @@ namespace DB_HASH_NAMESPACE
};
#endif
#if defined(_WIN64)
#if defined(_WIN64) || defined(__APPLE__)
/**
* @brief Specialization missing for long long on WIN64
*/

View File

@ -70,7 +70,7 @@ struct LayoutQueryIteratorWrapper
{
typedef db::LayoutQueryIterator &reference;
// Dummy declarations
typedef void iterator_category;
typedef std::forward_iterator_tag iterator_category;
typedef void value_type;
typedef void difference_type;
typedef void pointer;

View File

@ -954,7 +954,7 @@ struct ConvertingIteratorWrapper
typedef T value_type;
typedef T reference;
typedef void pointer;
typedef void iterator_category;
typedef std::forward_iterator_tag iterator_category;
ConvertingIteratorWrapper (double dbu, const I &b, const I &e)
: m_b (b), m_e (e), m_dbu (dbu)
@ -989,7 +989,7 @@ struct ConvertingFreeIteratorWrapper
typedef T value_type;
typedef T reference;
typedef void pointer;
typedef void iterator_category;
typedef std::forward_iterator_tag iterator_category;
ConvertingFreeIteratorWrapper (double dbu, const I &b)
: m_b (b), m_dbu (dbu)

View File

@ -28,6 +28,8 @@
#include "tlTypeTraits.h"
#include "gsiSerialisation.h"
#include <iterator>
// For a comprehensive documentation see gsi.h
namespace gsi

View File

@ -3418,6 +3418,7 @@ template <> struct type_traits<QIconEngine> : public type_traits<void> {
class QIconEngine_Adaptor;
namespace tl {
template <> struct type_traits<QIconEngine_Adaptor> : public type_traits<void> {
typedef tl::false_tag has_copy_constructor;
};
}

View File

@ -21,9 +21,9 @@
*/
/**
* @file gsiDeclQt_4.cc
* @file gsiDeclQt_4.cc
*
* DO NOT EDIT THIS FILE.
* DO NOT EDIT THIS FILE.
* This file has been created automatically
*/
@ -153,9 +153,15 @@ static gsi::Enum<Qt::WindowType> decl_Qt_WindowType_Enum ("Qt_WindowType",
gsi::enum_const ("MacWindowToolBarButtonHint", Qt::MacWindowToolBarButtonHint, "@brief Enum constant Qt::MacWindowToolBarButtonHint") +
gsi::enum_const ("BypassGraphicsProxyWidget", Qt::BypassGraphicsProxyWidget, "@brief Enum constant Qt::BypassGraphicsProxyWidget") +
gsi::enum_const ("NoDropShadowWindowHint", Qt::NoDropShadowWindowHint, "@brief Enum constant Qt::NoDropShadowWindowHint") +
#if defined(__APPLE__)
// Qt::WindowOkButtonHint and Qt::WindowCancelButtonHint are supported for Windows CE.
// By Kazunari Sekigawa (December 10, 2017)
gsi::enum_const ("WindowFullscreenButtonHint", Qt::WindowFullscreenButtonHint, "@brief Enum constant Qt::WindowFullscreenButtonHint"),
#else
gsi::enum_const ("WindowFullscreenButtonHint", Qt::WindowFullscreenButtonHint, "@brief Enum constant Qt::WindowFullscreenButtonHint") +
gsi::enum_const ("WindowOkButtonHint", Qt::WindowOkButtonHint, "@brief Enum constant Qt::WindowOkButtonHint") +
gsi::enum_const ("WindowCancelButtonHint", Qt::WindowCancelButtonHint, "@brief Enum constant Qt::WindowCancelButtonHint"),
#endif
"@qt\n@brief This class represents the Qt::WindowType enum");
static gsi::QFlagsClass<Qt::WindowType > decl_Qt_WindowType_Enums ("Qt_QFlags_WindowType",

View File

@ -320,7 +320,7 @@ namespace {
typedef lay::LayerPropertiesNodeRef value_type;
typedef lay::LayerPropertiesNodeRef reference;
// Dummy declarations required for std::iterator_traits
typedef void iterator_category;
typedef std::forward_iterator_tag iterator_category;
typedef void difference_type;
typedef void pointer;

View File

@ -5,8 +5,11 @@
KLAYOUT_VERSION="0.25"
# The build date
KLAYOUT_VERSION_DATE=$(date --iso-8601)
KLAYOUT_VERSION_DATE=$(date "+%Y-%m-%d")
# The short SHA hash of the commit
KLAYOUT_VERSION_REV=$(git rev-parse --short HEAD)
KLAYOUT_VERSION_REV=$(git rev-parse --short HEAD 2>/dev/null)
if [ "$KLAYOUT_VERSION_REV" = "" ]; then
KLAYOUT_VERSION_REV="LatestSourcePackage"
fi