Revision df5aa9b6 tools/ide/QtCreator/QtCreatorSetup.sh
| tools/ide/QtCreator/QtCreatorSetup.sh | ||
|---|---|---|
| 293 | 293 |
fi |
| 294 | 294 |
|
| 295 | 295 |
# check for existing project files |
| 296 |
local projectfiles="$(find ${projectdir} -maxdepth 1 -type f | grep -E "${module}\.(includes|files|config|creator)$")"
|
|
| 297 |
IFS=$'\n'; projectfiles=($projectfiles); unset IFS |
|
| 298 |
if [ ! -z "${projectfiles[*]}" ]; then
|
|
| 296 |
local projectfiles=($(find ${projectdir} -maxdepth 1 -type f | grep -E "${module}\.(includes|files|config|creator)$"))
|
|
| 297 |
if [ ${#projectfiles[@]} != 0 ]; then
|
|
| 299 | 298 |
printWarning "The following files will be overwritten:\n" |
| 300 | 299 |
for pfile in ${projectfiles[@]}; do
|
| 301 | 300 |
printWarning "\t$(basename $pfile)\n" |
| ... | ... | |
| 331 | 330 |
local sourcefiles=() |
| 332 | 331 |
local sourcefile="" |
| 333 | 332 |
local parse_state="WAIT_FOR_INCLUDE_COMPILE_MAKE" |
| 333 |
local makedir="" |
|
| 334 | 334 |
local makedirs=() |
| 335 |
local quotes="\'\"\´\`\„\“" |
|
| 335 | 336 |
# capture all output from make and GCC and append the return value of make as last line |
| 336 | 337 |
printInfo "processing project (this may take a while)...\n" |
| 337 | 338 |
local rawout=$(make --directory ${modulesdir}/${module} --always-make USE_OPT="-v -E -H" USE_VERBOSE_COMPILE="no" OUTFILES="" 2>&1 && echo $?)
|
| ... | ... | |
| 363 | 364 |
printf "." |
| 364 | 365 |
sourcefile=${BASH_REMATCH[1]}
|
| 365 | 366 |
parse_state="WAIT_FOR_COMPILERCALL" |
| 366 |
# if make is called again in another directory, a message appears like: |
|
| 367 |
# if make is called again in another directory or a nested make call leaves the directory, a message appears like:
|
|
| 367 | 368 |
# make[1]: Entering directory 'directory' |
| 368 |
elif [[ "$line" =~ ^make(\[[0-9]+\])?:\ Entering\ directory\ \'.+\'$ ]]; then |
|
| 369 |
makedirs+=($(echo "$line" | (cut -d "'" -f 2))) |
|
| 370 |
# if make is leaving a directory, a message appears like: |
|
| 371 |
# make[1]: Leaving directory 'directory' |
|
| 372 |
elif [[ "$line" =~ ^make(\[[0-9]+\])?:\ Leaving\ directory\ \'.+\'$ ]]; then |
|
| 373 |
unset makedirs[-1] |
|
| 369 |
# make[999]: Verzeichnis „directory“ wird verlassen |
|
| 370 |
elif [[ "$line" =~ ^make(\[[0-9]+\])?:([[:alnum:]]|[[:blank:]])*[$quotes].*[$quotes]([[:alnum:]]|[[:blank:]])*$ ]]; then |
|
| 371 |
# extract directory path |
|
| 372 |
makedir=$(echo ${line} | grep -oE "[${quotes}].*[${quotes}]" | grep -oE "[^${quotes}].*[^${quotes}]")
|
|
| 373 |
# if the makedirs stack is empty or the directory does not mathc the last entry |
|
| 374 |
if [ ${#makedirs[@]} == 0 ] || [ "${makedir}" != "${makedirs[-1]}" ]; then
|
|
| 375 |
# push the directory to the stack |
|
| 376 |
makedirs+=(${makedir})
|
|
| 377 |
else |
|
| 378 |
# pop the directory from the stack |
|
| 379 |
unset makedirs[-1] |
|
| 380 |
fi |
|
| 374 | 381 |
fi;; |
| 375 | 382 |
WAIT_FOR_COMPILERCALL) |
| 376 | 383 |
# wait for the actual call of the compiler to retrieve the full path to the source file |
| ... | ... | |
| 510 | 517 |
fi |
| 511 | 518 |
|
| 512 | 519 |
# check for existing project files |
| 513 |
local projectfiles=""
|
|
| 520 |
local projectfiles=()
|
|
| 514 | 521 |
for module in ${modules[@]}; do
|
| 515 |
projectfiles+="$(find ${projectsdir} -maxdepth 1 -type f | grep -E "${module}\.(includes|files|config|creator)$")"
|
|
| 522 |
projectfiles+=($(find ${projectsdir} -maxdepth 1 -type f | grep -E "${module}\.(includes|files|config|creator)$"))
|
|
| 516 | 523 |
done |
| 517 |
IFS=$'\n'; projectfiles=($projectfiles); unset IFS |
|
| 518 |
if [ ! -z "${projectfiles[*]}" ]; then
|
|
| 524 |
if [ ${#projectfiles[@]} != 0 ]; then
|
|
| 519 | 525 |
printWarning "The following files will be removed:\n" |
| 520 | 526 |
for pfile in ${projectfiles[@]}; do
|
| 521 | 527 |
printWarning "\t$(basename $pfile)\n" |
| ... | ... | |
| 526 | 532 |
case "${userinput}" in
|
| 527 | 533 |
Y|y) |
| 528 | 534 |
for pfile in ${projectfiles[*]}; do
|
| 529 |
rm "$pfile" |
|
| 535 |
rm "$pfile" 2>&1 | tee -a $LOG_FILE
|
|
| 530 | 536 |
done |
| 531 | 537 |
;; |
| 532 | 538 |
N|n) |
| ... | ... | |
| 582 | 588 |
local projectdir="" |
| 583 | 589 |
local outvar="" |
| 584 | 590 |
local wipe=false |
| 585 |
local files=""
|
|
| 591 |
local files=()
|
|
| 586 | 592 |
|
| 587 | 593 |
# parse arguments |
| 588 | 594 |
local otherargs=() |
| ... | ... | |
| 620 | 626 |
# list all files to be deleted |
| 621 | 627 |
if [ -z "$modulename" ]; then |
| 622 | 628 |
if [ $wipe != true ]; then |
| 623 |
files=$(find "${projectdir}" -maxdepth 1 -type f | grep -E "^.+\.(includes|files|config|creator|cflags|cxxflags)$")
|
|
| 629 |
files=($(find "${projectdir}" -maxdepth 1 -type f | grep -E "^.+\.(includes|files|config|creator|cflags|cxxflags)$"))
|
|
| 624 | 630 |
else |
| 625 |
files=$(find "${projectdir}" -maxdepth 1 -type f | grep -E "^.+\.(includes|files|config|creator|cflags|cxxflags|creator(\.user(\..+)?)?)$")
|
|
| 631 |
files=($(find "${projectdir}" -maxdepth 1 -type f | grep -E "^.+\.(includes|files|config|creator|cflags|cxxflags|creator(\.user(\..+)?)?)$"))
|
|
| 626 | 632 |
fi |
| 627 | 633 |
else |
| 628 | 634 |
if [ $wipe != true ]; then |
| 629 |
files=$(find "${projectdir}" -maxdepth 1 -type f | grep -E "^${modulename}\.(includes|files|config|creator|cflags|cxxflags)$")
|
|
| 635 |
files=($(find "${projectdir}" -maxdepth 1 -type f | grep -E "^${modulename}\.(includes|files|config|creator|cflags|cxxflags)$"))
|
|
| 630 | 636 |
else |
| 631 |
files=$(find "${projectdir}" -maxdepth 1 -type f | grep -E "^${modulename}\.(includes|files|config|creator|cflags|cxxflags|creator(\.user(\..+)?)?)$")
|
|
| 637 |
files=($(find "${projectdir}" -maxdepth 1 -type f | grep -E "^${modulename}\.(includes|files|config|creator|cflags|cxxflags|creator(\.user(\..+)?)?)$"))
|
|
| 632 | 638 |
fi |
| 633 | 639 |
fi |
| 634 |
if [ ! -z "$files" ]; then
|
|
| 640 |
if [ ${#files[@]} != 0 ]; then
|
|
| 635 | 641 |
printInfo "Deleting the following files:\n" |
| 636 |
while read line; do
|
|
| 637 |
printInfo "\t$(basename ${line})\n"
|
|
| 638 |
rm ${line} 2>&1 | tee -a $LOG_FILE
|
|
| 639 |
done <<< "${files}"
|
|
| 642 |
for file in ${files[@]}; do
|
|
| 643 |
printInfo "\t$(basename ${file})\n"
|
|
| 644 |
rm ${file} 2>&1 | tee -a $LOG_FILE
|
|
| 645 |
done |
|
| 640 | 646 |
else |
| 641 | 647 |
printInfo "No project files found\n" |
| 642 | 648 |
fi |
Also available in: Unified diff