6 # $2 new version number
8 PROJECT=$1/project.pbxproj
11 if [ "$DYLIB_VERSION" = "" ]; then
12 echo "DYLIB_VERSION MUST NOT be empty!"
17 sed "s/\(^[ ]*DYLIB_CURRENT_VERSION =[ ]*\)\(.*\)\(;.*$\)/\1${DYLIB_VERSION}\3/" "${PROJECT}" > "${PROJECT}.new"
18 mv ${PROJECT}.new ${PROJECT}
27 PROJECT=$1/project.pbxproj
33 sed -e "s/\(SOPE_MAJOR_VERSION=\)\([1234567890]*\)/\1${SOPE_MAJOR}/" -e "s/\(SOPE_MINOR_VERSION=\)\([1234567890]*\)/\1${SOPE_MINOR}/" -e "s/\(SOPE_SUBMINOR_VERSION=\)\([1234567890]*\)/\1${SOPE_SUBMINOR}/" -e "s/\(WEP_SUBMINOR_VERSION=\)\([1234567890]*\)/\1${SOPE_SUBMINOR}/" "${PROJECT}" > "${PROJECT}.new"
34 mv ${PROJECT}.new ${PROJECT}
38 get_dylib_version () {
40 PROJECT=$1/project.pbxproj
41 if [ ! -f ${PROJECT} ]; then
46 VERSION_NUM=$(sed -n 's/^[ ]*DYLIB_CURRENT_VERSION =[ ]*\(.*\);.*$/\1/p' "${PROJECT}" | sort | uniq)
47 if [ "${VERSION_NUM}" = "" ] ; then
54 # traverse path from PROJECT_ROOT down to least found Version file
59 MAJOR_VERSION=$GLOBAL_MAJOR_VERSION
60 MINOR_VERSION=$GLOBAL_MINOR_VERSION
67 CURRENT_PATH="${CURRENT_PATH}${p}/"
68 read_version_from_version_file "${CURRENT_PATH}Version"
70 echo "${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION}"
73 read_version_from_version_file() {
75 if [ ! -r "${VERS_FILE}" ]; then
78 _MAJOR_VERSION=`sed -n 's/^MAJOR_VERSION=\(.*\)/\1/p' "${VERS_FILE}"`
79 if [ "${_MAJOR_VERSION}" != "" ]; then
80 MAJOR_VERSION=${_MAJOR_VERSION}
82 _MINOR_VERSION=`sed -n 's/^MINOR_VERSION=\(.*\)/\1/p' "${VERS_FILE}"`
83 if [ "${_MINOR_VERSION}" != "" ]; then
84 MINOR_VERSION=${_MINOR_VERSION}
87 SUBMINOR_VERSION=`sed -n 's/^SUBMINOR_VERSION.*=\(.*\)/\1/p' "${VERS_FILE}"`
88 # echo "${VERS_FILE} -> ${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION}"
92 update_project_if_necessary() {
96 PROJECT_NAME=${PROJECT##*/}
97 PROJECT_NAME=${PROJECT_NAME%%.xcode}
99 PROJECT_DYLIB_VERSION=`get_dylib_version "${PROJECT}"`
100 if [ "${PROJECT_DYLIB_VERSION}" != "" ]; then
101 PROJECT_MAKE_VERSION=`get_make_version "${PROJECT}"`
102 if [ "${PROJECT_DYLIB_VERSION}" != "${PROJECT_MAKE_VERSION}" ]; then
103 echo "Updating $PROJECT_NAME: ${PROJECT_DYLIB_VERSION} -> ${PROJECT_MAKE_VERSION}"
104 set_dylib_version "${PROJECT}" "${PROJECT_MAKE_VERSION}"
106 SUBMINOR_VERSION=${PROJECT_MAKE_VERSION##*.}
107 set_sope_versions "${PROJECT}" "${MAJOR_VERSION}" "${MINOR_VERSION}" "${SUBMINOR_VERSION}"
119 # source in MAJOR_VERSION and MINOR_VERSION
120 source ${PROJECT_ROOT}/Version
121 GLOBAL_MAJOR_VERSION=$MAJOR_VERSION
122 GLOBAL_MINOR_VERSION=$MINOR_VERSION
124 PROJECTS=`find ${PROJECT_ROOT} -type d -name "*.xcodeproj"`
125 for PROJECT in $PROJECTS
127 # skip Recycler contents
128 if [ "${PROJECT##*Recycler*}" != "" ]; then
129 update_project_if_necessary "${PROJECT}"