Mac: Fix build scripts to rebuild Manager dependencies wxWidgets and SQLite if they were previously built as only 32-bit or only 64-bit binaries

This commit is contained in:
Charlie Fenton 2017-10-22 07:26:06 -07:00
parent b6e4995e7c
commit db4b402422
2 changed files with 36 additions and 11 deletions

View File

@ -32,7 +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
# Build 64-bit library (temporarily build both 32-bit and 64-bit libraries) 10/22/17
#
## This script requires OS 10.6 or later
##
@ -180,17 +180,26 @@ if [ $? -eq 0 ]; then
fi
retval=0
alreadyBuilt=0
if [ "${doclean}" != "clean" ] && [ -f "${libPathRel}/libwx_osx_cocoa_static.a" ]; then
lipo "${libPathRel}/libwx_osx_cocoa_static.a" -verify_arch i386 x86_64
if [ $? -eq 0 ]; then
alreadyBuilt=1
else
# already built but not for correct architectures
doclean="clean"
fi
fi
if [ alreadyBuilt -eq 1 ]; then
cwd=$(pwd)
dirname=${cwd##*/}
echo "${dirname} Release libwx_osx_cocoa_static.a already built"
else
## export DEVELOPER_SDK_DIR="/Developer/SDKs"
## We must override some of the build settings in wxWindows.xcodeproj
## 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
## for x86_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
@ -208,15 +217,25 @@ if [ "${nodebug}" = "yes" ]; then
return 0
fi
alreadyBuilt=0
if [ "${doclean}" != "clean" ] && [ -f "${libPathDbg}/libwx_osx_cocoa_static.a" ]; then
lipo "${libPathDbg}/libwx_osx_cocoa_static.a" -verify_arch i386 x86_64
if [ $? -eq 0 ]; then
alreadyBuilt=1
else
# already built but not for correct architectures
doclean="clean"
fi
fi
if [ alreadyBuilt -eq 1 ]; then
cwd=$(pwd)
dirname=${cwd##*/}
echo "${dirname} Debug libwx_osx_cocoa_static.a already built"
else
## export DEVELOPER_SDK_DIR="/Developer/SDKs"
## We must override some of the build settings in wxWindows.xcodeproj
## 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
## for x86_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

View File

@ -25,7 +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)
# Updated 10/22/17 to build 64-bit library (temporarily build both 32-bit and 64-bit libraries)
#
## This script requires OS 10.6 or later
#
@ -67,10 +67,16 @@ done
if [ "${doclean}" != "yes" ]; then
if [ -f "${libPath}/libsqlite3.a" ]; then
cwd=$(pwd)
dirname=${cwd##*/}
echo "${dirname} already built"
return 0
lipo "${libPath}/libsqlite3.a" -verify_arch i386 x86_64
if [ $? -eq 0 ]; then
cwd=$(pwd)
dirname=${cwd##*/}
echo "${dirname} already built"
return 0
else
# already built but not for correct architectures
doclean="yes"
fi
fi
fi