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}
21 get_dylib_version () {
23 PROJECT=$1/project.pbxproj
24 if [ ! -f ${PROJECT} ]; then
29 VERSION_NUM=$(sed -n 's/^[ ]*DYLIB_CURRENT_VERSION =[ ]*\(.*\);.*$/\1/p' "${PROJECT}" | sort | uniq)
30 if [ "${VERSION_NUM}" = "" ] ; then
37 # traverse path from PROJECT_ROOT down to least found Version file
42 MAJOR_VERSION=$GLOBAL_MAJOR_VERSION
43 MINOR_VERSION=$GLOBAL_MINOR_VERSION
50 CURRENT_PATH="${CURRENT_PATH}${p}/"
51 read_version_from_version_file "${CURRENT_PATH}Version"
53 echo "${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION}"
56 read_version_from_version_file() {
58 if [ ! -r "${VERS_FILE}" ]; then
61 _MAJOR_VERSION=`sed -n 's/^MAJOR_VERSION=\(.*\)/\1/p' "${VERS_FILE}"`
62 if [ "${_MAJOR_VERSION}" != "" ]; then
63 MAJOR_VERSION=${_MAJOR_VERSION}
65 _MINOR_VERSION=`sed -n 's/^MINOR_VERSION=\(.*\)/\1/p' "${VERS_FILE}"`
66 if [ "${_MINOR_VERSION}" != "" ]; then
67 MINOR_VERSION=${_MINOR_VERSION}
70 SUBMINOR_VERSION=`sed -n 's/^SUBMINOR_VERSION.*=\(.*\)/\1/p' "${VERS_FILE}"`
71 # echo "${VERS_FILE} -> ${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION}"
75 update_project_if_necessary() {
79 PROJECT_NAME=${PROJECT##*/}
80 PROJECT_NAME=${PROJECT_NAME%%.xcode}
82 PROJECT_DYLIB_VERSION=`get_dylib_version "${PROJECT}"`
83 if [ "${PROJECT_DYLIB_VERSION}" != "" ]; then
84 PROJECT_MAKE_VERSION=`get_make_version "${PROJECT}"`
85 if [ "${PROJECT_DYLIB_VERSION}" != "${PROJECT_MAKE_VERSION}" ]; then
86 echo "Updating $PROJECT_NAME: ${PROJECT_DYLIB_VERSION} -> ${PROJECT_MAKE_VERSION}"
87 set_dylib_version "${PROJECT}" "${PROJECT_MAKE_VERSION}"
99 # source in MAJOR_VERSION and MINOR_VERSION
100 source ${PROJECT_ROOT}/Version
101 GLOBAL_MAJOR_VERSION=$MAJOR_VERSION
102 GLOBAL_MINOR_VERSION=$MINOR_VERSION
104 PROJECTS=`find ${PROJECT_ROOT} -type d -name "*.xcode"`
105 for PROJECT in $PROJECTS
107 # skip Recycler contents
108 if [ "${PROJECT##*Recycler*}" != "" ]; then
109 update_project_if_necessary "${PROJECT}"