From a8c2efe93ddd21940baabfc2a8788227a4f3d6b5 Mon Sep 17 00:00:00 2001 From: Charlie Fenton Date: Wed, 18 Oct 2017 07:21:45 -0700 Subject: [PATCH] Mac: Update build scripts to build Manager dependencies wxWidgets and SQLite as 64-bit libraries (temporarily build both 32-bit and 64-bit libraries for backward compatibility) --- mac_build/buildWxMac.sh | 11 ++++++++--- mac_build/buildsqlite3.sh | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/mac_build/buildWxMac.sh b/mac_build/buildWxMac.sh index 361a7f2df5..f8d3117979 100644 --- a/mac_build/buildWxMac.sh +++ b/mac_build/buildWxMac.sh @@ -32,6 +32,7 @@ # Disable all wxWidgets debug support in Release build (revert 3/6/14 change) 5/29/14 # Fix wxListCtrl flicker when resizing columns in wxCocoa 3.0.0 6/13/14 # Revise fix for wxListCtrl flicker to match the fix in wxWidgets trunk 6/19/14 +# Build 64-bit library (temporarily build both 32-bit and 64-bit libraries) 10/18/17 # ## This script requires OS 10.6 or later ## @@ -41,7 +42,7 @@ ## source [ path_to_this_script ] [ -clean ] [ -nodebug ] [--prefix PATH] ## ## the -clean argument will force a full rebuild. -## the -nodebug argument will ommit building the debug version of the library +## the -nodebug argument will omit building the debug version of the library ## if --prefix is given as absolute path the library is installed into there ## use -q or --quiet to redirect build output to /dev/null instead of /dev/stdout # @@ -188,7 +189,9 @@ else ## export DEVELOPER_SDK_DIR="/Developer/SDKs" ## We must override some of the build settings in wxWindows.xcodeproj - xcodebuild -project build/osx/wxcocoa.xcodeproj -target static -configuration Release $doclean build ARCHS="i386" OTHER_CFLAGS="-Wall -Wundef -fno-strict-aliasing -fno-common -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DwxUSE_UNICODE=1 -DwxDEBUG_LEVEL=0 -DNDEBUG -fvisibility=hidden" OTHER_CPLUSPLUSFLAGS="-Wall -Wundef -fno-strict-aliasing -fno-common -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DwxUSE_UNICODE=1 -DwxDEBUG_LEVEL=0 -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden" GCC_PREPROCESSOR_DEFINITIONS="WXBUILDING __WXOSX_COCOA__ __WX__ wxUSE_BASE=1 _FILE_OFFSET_BITS=64 _LARGE_FILES MACOS_CLASSIC __WXMAC_XCODE__=1 SCI_LEXER WX_PRECOMP=1 wxUSE_UNICODE_UTF8=1 wxUSE_UNICODE_WCHAR=0" | $beautifier; retval=${PIPESTATUS[0]} + ## For wxWidgets 3.0.0 through 3.1.0 (at least) we must use legacy WebKit APIs + ## for x85_64, so we must define WK_API_ENABLED=0 + xcodebuild -project build/osx/wxcocoa.xcodeproj -target static -configuration Release $doclean build ARCHS="i386 x86_64" ONLY_ACTIVE_ARCH=="NO" OTHER_CFLAGS="-Wall -Wundef -fno-strict-aliasing -fno-common -DWK_API_ENABLED=0 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DwxUSE_UNICODE=1 -DwxDEBUG_LEVEL=0 -DNDEBUG -fvisibility=hidden" OTHER_CPLUSPLUSFLAGS="-Wall -Wundef -fno-strict-aliasing -fno-common -DWK_API_ENABLED=0 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DwxUSE_UNICODE=1 -DwxDEBUG_LEVEL=0 -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden" GCC_PREPROCESSOR_DEFINITIONS="WXBUILDING __WXOSX_COCOA__ __WX__ wxUSE_BASE=1 _FILE_OFFSET_BITS=64 _LARGE_FILES MACOS_CLASSIC __WXMAC_XCODE__=1 SCI_LEXER WX_PRECOMP=1 wxUSE_UNICODE_UTF8=1 wxUSE_UNICODE_WCHAR=0" | $beautifier; retval=${PIPESTATUS[0]} if [ ${retval} -ne 0 ]; then return 1; fi if [ "x${lprefix}" != "x" ]; then # copy library and headers to $lprefix @@ -212,7 +215,9 @@ if [ "${doclean}" != "clean" ] && [ -f "${libPathDbg}/libwx_osx_cocoa_static.a" else ## export DEVELOPER_SDK_DIR="/Developer/SDKs" ## We must override some of the build settings in wxWindows.xcodeproj - xcodebuild -project build/osx/wxcocoa.xcodeproj -target static -configuration Debug $doclean build ARCHS="i386" OTHER_CFLAGS="-Wall -Wundef -fno-strict-aliasing -fno-common -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DwxUSE_UNICODE=1 -DDEBUG -fvisibility=hidden" OTHER_CPLUSPLUSFLAGS="-Wall -Wundef -fno-strict-aliasing -fno-common -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DwxUSE_UNICODE=1 -DDEBUG -fvisibility=hidden -fvisibility-inlines-hidden" GCC_PREPROCESSOR_DEFINITIONS="WXBUILDING __WXOSX_COCOA__ __WX__ wxUSE_BASE=1 _FILE_OFFSET_BITS=64 _LARGE_FILES MACOS_CLASSIC __WXMAC_XCODE__=1 SCI_LEXER WX_PRECOMP=1 wxUSE_UNICODE_UTF8=1 wxUSE_UNICODE_WCHAR=0" | $beautifier; retval=${PIPESTATUS[0]} + ## For wxWidgets 3.0.0 through 3.1.0 (at least) we must use legacy WebKit APIs + ## for x85_64, so we must define WK_API_ENABLED=0 + xcodebuild -project build/osx/wxcocoa.xcodeproj -target static -configuration Debug $doclean build ARCHS="i386 x86_64" ONLY_ACTIVE_ARCH=="NO" OTHER_CFLAGS="-Wall -Wundef -fno-strict-aliasing -fno-common -DWK_API_ENABLED=0 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DwxUSE_UNICODE=1 -DDEBUG -fvisibility=hidden" OTHER_CPLUSPLUSFLAGS="-Wall -Wundef -fno-strict-aliasing -fno-common -DWK_API_ENABLED=0 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DwxUSE_UNICODE=1 -DDEBUG -fvisibility=hidden -fvisibility-inlines-hidden" GCC_PREPROCESSOR_DEFINITIONS="WXBUILDING __WXOSX_COCOA__ __WX__ wxUSE_BASE=1 _FILE_OFFSET_BITS=64 _LARGE_FILES MACOS_CLASSIC __WXMAC_XCODE__=1 SCI_LEXER WX_PRECOMP=1 wxUSE_UNICODE_UTF8=1 wxUSE_UNICODE_WCHAR=0" | $beautifier; retval=${PIPESTATUS[0]} if [ ${retval} -ne 0 ]; then return 1; fi if [ "x${lprefix}" != "x" ]; then # copy debug library to $PREFIX diff --git a/mac_build/buildsqlite3.sh b/mac_build/buildsqlite3.sh index c952658381..f5cf975f1d 100644 --- a/mac_build/buildsqlite3.sh +++ b/mac_build/buildsqlite3.sh @@ -25,6 +25,7 @@ # Updated 2/11/14 for sqlite 3.8.3 # Updated 1/5/16 for sqlite 3.9.2 # Updated 3/2/16 for sqlite 3.11.0 +# Updated 10/18/17 to build 64-bit library (temporarily build both 32-bit and 64-bit libraries) # ## This script requires OS 10.6 or later # @@ -133,6 +134,40 @@ fi make 1>$stdout_target if [ $? -ne 0 ]; then return 1; fi + +mv .libs/libsqlite3.a ./libsqlite3_1386.a + +# Build for x86_64 architecture +make clean 1>$stdout_target + +export PATH=/usr/local/bin:$PATH +export CC="${GCCPATH}";export CXX="${GPPPATH}" +export LDFLAGS="-Wl,-syslibroot,${SDKPATH},-arch,x86_64" +export CPPFLAGS="-Os -isysroot ${SDKPATH} -arch x86_64 -DMAC_OS_X_VERSION_MAX_ALLOWED=1060 -DMAC_OS_X_VERSION_MIN_REQUIRED=1060" +export CFLAGS="-Os -isysroot ${SDKPATH} -arch x86_64 -DMAC_OS_X_VERSION_MAX_ALLOWED=1060 -DMAC_OS_X_VERSION_MIN_REQUIRED=1060" +export SDKROOT="${SDKPATH}" +export MACOSX_DEPLOYMENT_TARGET=10.6 + +if [ "x${lprefix}" != "x" ]; then + ./configure --prefix=${lprefix} --enable-shared=NO --host=x86_64 + if [ $? -ne 0 ]; then return 1; fi +else + ./configure --enable-shared=NO --host=x86_64 + if [ $? -ne 0 ]; then return 1; fi +fi + + +make 1>$stdout_target +if [ $? -ne 0 ]; then return 1; fi + +mv .libs/libsqlite3.a ./libsqlite3_x86_64.a +# combine i386 and x86_64 libraries +lipo -create ./libsqlite3_1386.a ./libsqlite3_x86_64.a -output .libs/libsqlite3.a +if [ $? -ne 0 ]; then return 1; fi + +rm -f ./libsqlite3_1386.a +rm -f ./libsqlite3_x86_64.a + if [ "x${lprefix}" != "x" ]; then make install 1>$stdout_target if [ $? -ne 0 ]; then return 1; fi