From aaa0254e4c0d17ff87e77e540e6a3c94b659f495 Mon Sep 17 00:00:00 2001 From: Charlie Fenton Date: Thu, 16 Mar 2017 02:42:50 -0700 Subject: [PATCH] Mac: modify Xcode project and build script setupForBOINC.sh for new approach to compatibility between production builds and Travis CI builds. The paths to the correct dependent library are now specified entirely in the Header Search Paths and Library SearchPaths for each target instead of the LD Flags, and we no longer use symbolic links in a mac3rdParty directory. --- mac_build/boinc.xcodeproj/project.pbxproj | 80 +++++++++++++---------- mac_build/setupForBOINC.sh | 53 +++------------ 2 files changed, 57 insertions(+), 76 deletions(-) diff --git a/mac_build/boinc.xcodeproj/project.pbxproj b/mac_build/boinc.xcodeproj/project.pbxproj index ce7ce49624..a2d6752076 100644 --- a/mac_build/boinc.xcodeproj/project.pbxproj +++ b/mac_build/boinc.xcodeproj/project.pbxproj @@ -2356,7 +2356,7 @@ 20286C28FDCF999611CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0610; + LastUpgradeCheck = 0620; }; buildConfigurationList = DD9E2381091CBDAE0048316E /* Build configuration list for PBXProject "boinc" */; compatibilityVersion = "Xcode 3.0"; @@ -3486,14 +3486,14 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = ../clientgui/mac/MacGUI.pch; HEADER_SEARCH_PATHS = ( - "../mac3rdParty/wxWidgets-3.0.0/include", - "../mac3rdParty/wxWidgets-3.0.0/build/osx/setup/cocoa/include", + "../../wxWidgets-3.0.0/include", + "../../wxWidgets-3.0.0/build/osx/setup/cocoa/include", ../clientgui, ); INFOPLIST_FILE = Info.plist; LIBRARY_SEARCH_PATHS = ( - "../mac3rdParty/wxWidgets-3.0.0/build/osx/build/Debug", - "../mac3rdParty/sqlite-autoconf-3110000/.libs/", + "../../wxWidgets-3.0.0/build/osx/build/Debug", + "../../sqlite-autoconf-3110000/.libs/", ); OTHER_CFLAGS = ( "-DHAVE_CONFIG_H", @@ -3511,7 +3511,7 @@ "-bind_at_load", "-D_THREAD_SAFE", "-lwx_osx_cocoa_static", - "../mac3rdParty/sqlite-autoconf-3110000/.libs/libsqlite3.a", + "-lsqlite3", "-lz", "-lpthread", "-lm", @@ -3541,14 +3541,14 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = ../clientgui/mac/MacGUI.pch; HEADER_SEARCH_PATHS = ( - "../mac3rdParty/wxWidgets-3.0.0/include", - "../mac3rdParty/wxWidgets-3.0.0/build/osx/setup/cocoa/include", + "../../wxWidgets-3.0.0/include", + "../../wxWidgets-3.0.0/build/osx/setup/cocoa/include", ../clientgui, ); INFOPLIST_FILE = Info.plist; LIBRARY_SEARCH_PATHS = ( - "../mac3rdParty/wxWidgets-3.0.0/build/osx/build/Release", - "../mac3rdParty/sqlite-autoconf-3110000/.libs/", + "../../wxWidgets-3.0.0/build/osx/build/Release", + "../../sqlite-autoconf-3110000/.libs/", ); OTHER_CFLAGS = ( "-DHAVE_CONFIG_H", @@ -3568,7 +3568,7 @@ "-bind_at_load", "-D_THREAD_SAFE", "-lwx_osx_cocoa_static", - "../mac3rdParty/sqlite-autoconf-3110000/.libs/libsqlite3.a", + "-lsqlite3", "-lz", "-lpthread", "-lm", @@ -3675,18 +3675,20 @@ HEADER_SEARCH_PATHS = ( ../api/, ../samples/jpeglib/, - "../mac3rdParty/freetype-2.6.2/include", - "../mac3rdParty/ftgl-2.1.3~rc5/src", + "../../freetype-2.6.2/include", + "../../ftgl-2.1.3~rc5/src", ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "${BUILT_PRODUCTS_DIR}/", + "../../freetype-2.6.2/objs/.libs", + "../../ftgl-2.1.3~rc5/src/.libs", ); OTHER_LDFLAGS = ( "-lresolv", "-ljpeg", - "../mac3rdParty/freetype-2.6.2/objs/.libs/libfreetype.a", - "../mac3rdParty/ftgl-2.1.3~rc5/src/.libs/libftgl.a", + "-lfreetype", + "-lftgl", "-lz", "-lbz2", ); @@ -3700,18 +3702,20 @@ HEADER_SEARCH_PATHS = ( ../api/, ../samples/jpeglib/, - "../mac3rdParty/freetype-2.6.2/include", - "../mac3rdParty/ftgl-2.1.3~rc5/src", + "../../freetype-2.6.2/include", + "../../ftgl-2.1.3~rc5/src", ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "${BUILT_PRODUCTS_DIR}/", + "../../freetype-2.6.2/objs/.libs", + "../../ftgl-2.1.3~rc5/src/.libs", ); OTHER_LDFLAGS = ( "-lresolv", "-ljpeg", - "../mac3rdParty/freetype-2.6.2/objs/.libs/libfreetype.a", - "../mac3rdParty/ftgl-2.1.3~rc5/src/.libs/libftgl.a", + "-lfreetype", + "-lftgl", "-lz", "-lbz2", ); @@ -3816,10 +3820,15 @@ DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; HEADER_SEARCH_PATHS = ( - "../mac3rdParty/curl-7.50.2/include", - "../mac3rdParty/openssl-1.1.0/include", + "../../curl-7.50.2/include", + "../../openssl-1.1.0/include", ); INFOPLIST_PREPROCESSOR_DEFINITIONS = ""; + LIBRARY_SEARCH_PATHS = ( + "../../curl-7.50.2/lib/.libs", + "../../c-ares-1.11.0/.libs", + "../../openssl-1.1.0/", + ); "OTHER_CFLAGS[arch=x86_64]" = ( "-D_THREAD_SAFE", "-DNDEBUG", @@ -3829,16 +3838,16 @@ ); OTHER_LDFLAGS = ( "-L.", - "../mac3rdParty/curl-7.50.2/lib/.libs/libcurl.a", - "../mac3rdParty/c-ares-1.11.0/.libs/libcares.a", - "../mac3rdParty/openssl-1.1.0/libcrypto.a", - "../mac3rdParty/openssl-1.1.0/libssl.a", + "-lcurl", + "-lcares", + "-lcrypto", + "-lssl", "-lldap", "-lz", ); PRODUCT_NAME = boinc; STRIP_INSTALLED_PRODUCT = NO; - USER_HEADER_SEARCH_PATHS = "../mac3rdParty/curl-7.50.2/include ../mac3rdParty/openssl-1.1.0/include"; + USER_HEADER_SEARCH_PATHS = "../../curl-7.50.2/include ../../openssl-1.1.0/include"; }; name = Deployment; }; @@ -3983,10 +3992,15 @@ DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; HEADER_SEARCH_PATHS = ( - "../mac3rdParty/curl-7.50.2/include", - "../mac3rdParty/openssl-1.1.0/include", + "../../curl-7.50.2/include", + "../../openssl-1.1.0/include", ); INFOPLIST_PREPROCESSOR_DEFINITIONS = ""; + LIBRARY_SEARCH_PATHS = ( + "../../curl-7.50.2/lib/.libs", + "../../c-ares-1.11.0/.libs", + "../../openssl-1.1.0/", + ); OTHER_CFLAGS = ( "-D_THREAD_SAFE", "-D_DEBUG", @@ -3995,16 +4009,16 @@ ); OTHER_LDFLAGS = ( "-L.", - "../mac3rdParty/curl-7.50.2/lib/.libs/libcurl.a", - "../mac3rdParty/c-ares-1.11.0/.libs/libcares.a", - "../mac3rdParty/openssl-1.1.0/libcrypto.a", - "../mac3rdParty/openssl-1.1.0/libssl.a", + "-lcurl", + "-lcares", + "-lcrypto", + "-lssl", "-lldap", "-lz", ); PRODUCT_NAME = boinc; STRIP_INSTALLED_PRODUCT = NO; - USER_HEADER_SEARCH_PATHS = "../mac3rdParty/curl-7.50.2/include ../mac3rdParty/openssl-1.1.0/include"; + USER_HEADER_SEARCH_PATHS = "../../curl-7.50.2/include ../../openssl-1.1.0/include"; }; name = Development; }; diff --git a/mac_build/setupForBOINC.sh b/mac_build/setupForBOINC.sh index e988f95240..00f557fde5 100644 --- a/mac_build/setupForBOINC.sh +++ b/mac_build/setupForBOINC.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # This file is part of BOINC. # http://boinc.berkeley.edu @@ -41,13 +41,9 @@ # Updated 9/10/16 for c-ares 1.11.0, curl 7.50.2, openssl 1.1.0 # # Download these seven packages and place them in a common parent directory -# with the BOINC source tree. For compatibility with Travis CI builds, they -# can instead be placed in the directory ../mac3rdParty/ +# with the BOINC source tree. # -# When the packages are placed in the parent directory, this script creates -# symbolic links to them in ../mac3rdParty/. -# -## In Terminal, cd to the mac_build directory of the boinc tree; for +## In Terminal, cd to the mac_build directory of the boinc tree; for ## example: ## cd [path]/boinc/mac_build/ ## then run this script: @@ -58,17 +54,6 @@ # This script will work even if you have renamed the boinc/ directory # -function make_symlink_if_needed() { - cd ../mac3rdParty/ - if [ ! -d "${1}" ]; then - if [ -d "../../${1}" ]; then - ln -s "../../${1}" - fi - fi - - cd "${SCRIPT_DIR}" -} - if [ "$1" = "-clean" ]; then cleanit="-clean" else @@ -86,19 +71,13 @@ finalResult=0 SCRIPT_DIR=`pwd` -if [ ! -d ../mac3rdParty ]; then - mkdir ../mac3rdParty -fi - echo "" echo "----------------------------------" echo "----- BUILD OPENSSL-1.1.0 -------" echo "----------------------------------" echo "" -make_symlink_if_needed openssl-1.1.0 - -cd ../mac3rdParty/openssl-1.1.0/ +cd ../../openssl-1.1.0/ if [ $? -eq 0 ]; then source "${SCRIPT_DIR}/buildopenssl.sh" ${cleanit} if [ $? -eq 0 ]; then @@ -114,9 +93,7 @@ echo "------- BUILD C-ARES-1.11.0 ------" echo "----------------------------------" echo "" -make_symlink_if_needed c-ares-1.11.0 - -cd ../mac3rdParty/c-ares-1.11.0/ +cd ../../c-ares-1.11.0/ if [ $? -eq 0 ]; then source "${SCRIPT_DIR}/buildc-ares.sh" ${cleanit} if [ $? -eq 0 ]; then @@ -132,9 +109,7 @@ echo "------- BUILD CURL-7.50.2 --------" echo "----------------------------------" echo "" -make_symlink_if_needed curl-7.50.2 - -cd ../mac3rdParty/curl-7.50.2/ +cd ../../curl-7.50.2/ if [ $? -eq 0 ]; then source "${SCRIPT_DIR}/buildcurl.sh" ${cleanit} if [ $? -eq 0 ]; then @@ -150,9 +125,7 @@ echo "----- BUILD wxWidgets-3.0.0 ------" echo "----------------------------------" echo "" -make_symlink_if_needed wxWidgets-3.0.0 - -cd ../mac3rdParty/wxWidgets-3.0.0/ +cd ../../wxWidgets-3.0.0/ if [ $? -eq 0 ]; then source "${SCRIPT_DIR}/buildWxMac.sh" ${cleanit} if [ $? -eq 0 ]; then @@ -168,9 +141,7 @@ echo "------- BUILD sqlite-3.11.0 -------" echo "----------------------------------" echo "" -make_symlink_if_needed sqlite-autoconf-3110000 - -cd ../mac3rdParty/sqlite-autoconf-3110000/ +cd ../../sqlite-autoconf-3110000/ if [ $? -eq 0 ]; then source "${SCRIPT_DIR}/buildsqlite3.sh" ${cleanit} if [ $? -eq 0 ]; then @@ -186,9 +157,7 @@ echo "----- BUILD FreeType-2.6.2 ------" echo "----------------------------------" echo "" -make_symlink_if_needed freetype-2.6.2 - -cd ../mac3rdParty/freetype-2.6.2/ +cd ../../freetype-2.6.2/ if [ $? -eq 0 ]; then source "${SCRIPT_DIR}/buildfreetype.sh" ${cleanit} if [ $? -eq 0 ]; then @@ -204,9 +173,7 @@ echo "------ BUILD FTGL-2.1.3~rc5 ------" echo "----------------------------------" echo "" -make_symlink_if_needed ftgl-2.1.3~rc5 - -cd ../mac3rdParty/ftgl-2.1.3~rc5/ +cd ../../ftgl-2.1.3~rc5/ if [ $? -eq 0 ]; then source "${SCRIPT_DIR}/buildFTGL.sh" ${cleanit} if [ $? -eq 0 ]; then