Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for XMI File #183

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 58 additions & 2 deletions bin/md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ export DefaultDeviceIP="localhost"
#默认端口号
export DefaultDevicePort="22"



export userName="${SUDO_USER-$USER}"
export userGroup=`id -g $userName`
export userHome=`eval echo ~$userName`
Expand Down Expand Up @@ -652,6 +654,19 @@ function Processor()
if [[ $currentDirectory =~ "Build/Products" ]] || [[ $currentDirectory =~ "Build/Intermediates" ]] || [[ $currentDirectory =~ "Index/DataStore" ]] || [[ $currentDirectory =~ "/LatestBuild/" ]]; then
return
fi

if [[ -f "$currentDirectory" ]] || [[ "${currentDirectory#*.}" == "mmi" ]]; then

specialDir="$(dirname "${currentDirectory}")"
specialFile="$(basename "${currentDirectory}")"

# used for .xmi files
echo "Logos Processor: $specialFile -> ${specialFile%.*}.mm..."
logosStdErr=$(("$logosProcessor" "$currentDirectory" > "${currentDirectory%.*}.mm") 2>&1) || \
panic $? "Failed Logos Processor: $logosStdErr"

return
fi

for file in `ls "$currentDirectory"`;
do
Expand Down Expand Up @@ -708,7 +723,48 @@ function xcodeBuildPhase_Logos() # no args

# for each *.xm project file, use Logos Processor to generate *.mm file

Processor "$logosProcessor" "$PROJECT_DIR"

if [[ "$MonkeyDevUseXMI" == "YES" ]]; then

# Search for the .xmi file
pathToXMI=$(find "$PROJECT_DIR" -type f -name "*.xmi" | head -n 1)
if [[ "$pathToXMI" == "" ]]; then
panic 1 "MonkeyDevUseXMI Setting is enabled, but no .xmi file found."
fi

#Preprocess .xmi and output to .mmi
specialDir="$(dirname "${pathToXMI}")"
specialFile="$(basename "${pathToXMI}")"
tempPathToMMI="$specialDir/${specialFile%.*}.mmi.temp"
pathToMMI="$specialDir/${specialFile%.*}.mmi"

# Replace '#import' with '//#import'
mod1Err=$((sed -e 's/#import/\/\/#import/g' "$pathToXMI" > "$tempPathToMMI") 2>&1) || \
panic $? "Replacing '#import' with '//#import' failed: $mod1Err"

# Preprocessing
logosStdErr=$((g++ -E -CC -P -x objective-c "$tempPathToMMI"> "$pathToMMI") 2>&1) || \
panic $? "Failed Preprocessing .xmi: $logosStdErr"

# Delete Temp File
rm "$tempPathToMMI"

# Replace '//#import' with '#import' (using perl bc sed creates a backup file)
mod2Err=$((perl -pi -e 's/\/\/#import/#import/g' "$pathToMMI") 2>&1) || \
panic $? "Replacing '//#import' with '#import' failed: $mod2Err"

Processor "$logosProcessor" "$pathToMMI"

# Delete .MMI File
rm "$pathToMMI"

else
Processor "$logosProcessor" "$PROJECT_DIR"
fi





echo "Note: If any *.xm or *.x file generated above by the Logos Processor (${projectXmFiles[@]}) is not being compiled below, then you must add it to the Xcode project to be compiled."

Expand Down Expand Up @@ -849,7 +905,7 @@ function xcodeBuildPhase() # no args
runFuncOnDevice "respring" "$MonkeyDevDeviceIP" "$MonkeyDevDevicePort"
else
echo "killall -9 $MonkeyDevkillProcessOnInstall"
runFuncOnDevice "killall -9 $MonkeyDevkillProcessOnInstall || echo skip" "$MonkeyDevDeviceIP" "$MonkeyDevDevicePort"
runFuncOnDevice "killall -9 $MonkeyDevkillProcessOnInstall || echo skip" "$MonkeyDevDeviceIP" "$MonkeyDevDevicePort"
fi
fi

Expand Down