Revision d5a2a7ce
tools/ide/QtCreator/QtCreatorSetup.sh | ||
---|---|---|
62 | 62 |
# |
63 | 63 |
function printHelp { |
64 | 64 |
printInfo "printing help text\n" |
65 |
printf "usage: $(basename ${BASH_SOURCE[0]}) [-h|--help] [--module=<module>] [-a|--all] [-c|--clean] [-w|--wipe] [-q|--quit] [--log=<file>]\n" |
|
65 |
printf "usage: $(basename ${BASH_SOURCE[0]}) [-h|--help] [-m|--module=<module>] [-a|--all] [-c|--clean] [-w|--wipe] [-q|--quit] [--log=<file>]\n"
|
|
66 | 66 |
printf "\n" |
67 | 67 |
printf "options: -h, --help\n" |
68 | 68 |
printf " Print this help text.\n" |
69 |
printf " --module=<module>\n"
|
|
69 |
printf " -m, --module <module>\n"
|
|
70 | 70 |
printf " Create project for a single module.\n" |
71 | 71 |
printf " -a, --all\n" |
72 | 72 |
printf " Create projects for all modules.\n" |
... | ... | |
108 | 108 |
# -1 |
109 | 109 |
# Error: Command 'arm-none-eabi-gcc' not found. |
110 | 110 |
# -2 |
111 |
# Error: include directory could not be resolved |
|
111 |
# Error: include directory could not be resolved.
|
|
112 | 112 |
# |
113 | 113 |
function retrieveGccIncludeDir { |
114 | 114 |
# retrieve binary path or link |
... | ... | |
355 | 355 |
fi |
356 | 356 |
sourcefiles[${#sourcefiles[@]}]="$sourcefile" |
357 | 357 |
# whenever the next source file is processed, a message appears like: |
358 |
# Compining <filnemame>
|
|
358 |
# Compiling <filename>
|
|
359 | 359 |
elif [[ "$line" =~ ^\+\+\+[[:blank:]]Compiling[[:blank:]]\[(.+\.c)\]$ ]]; then |
360 | 360 |
printf "." |
361 | 361 |
sourcefile=${BASH_REMATCH[1]} |
... | ... | |
384 | 384 |
# sort and remove duplicates |
385 | 385 |
IFS=$'\n'; includes=($(sort --unique <<< "${includes[*]}")); unset IFS |
386 | 386 |
|
387 |
# generate the .files file, containing all source files
|
|
387 |
# generate the .incldues file, containing all include paths
|
|
388 | 388 |
echo "" > ${projectdir}/${module}.includes |
389 | 389 |
for inc in ${includes[*]}; do |
390 | 390 |
echo "$inc" >> ${projectdir}/${module}.includes |
391 | 391 |
done |
392 |
# generate the .incldues file, containing all include paths
|
|
392 |
# generate the .files file, containing all source files
|
|
393 | 393 |
echo "" > ${projectdir}/${module}.files |
394 | 394 |
for source in ${sourcefiles[*]}; do |
395 | 395 |
# skip GCC files |
... | ... | |
445 | 445 |
# |
446 | 446 |
function createAllProjects { |
447 | 447 |
local modules=("${!1}") |
448 |
local projectdir="" |
|
448 |
local projectsdir=""
|
|
449 | 449 |
local gccincludedir="" |
450 | 450 |
local outvar="" |
451 | 451 |
local gccoutvar="" |
... | ... | |
456 | 456 |
if ( parseIsOption $1 ); then |
457 | 457 |
case "$1" in |
458 | 458 |
-p=*|--path=*) |
459 |
projectdir=$(realpath "${1#*=}"); shift 1;; |
|
459 |
projectsdir=$(realpath "${1#*=}"); shift 1;;
|
|
460 | 460 |
-p|--path) |
461 |
projectdir=$(realpath "$2"); shift 2;; |
|
461 |
projectsdir=$(realpath "$2"); shift 2;;
|
|
462 | 462 |
--gcc=*) |
463 | 463 |
gccincludedir=$(realpath "${1#*=}"); shift 1;; |
464 | 464 |
--gcc) |
... | ... | |
487 | 487 |
fi |
488 | 488 |
|
489 | 489 |
# read absolute project directory if required |
490 |
if [ -z "$projectdir" ]; then |
|
491 |
getProjectDir projectdir |
|
490 |
if [ -z "$projectsdir" ]; then
|
|
491 |
getProjectDir projectsdir
|
|
492 | 492 |
fi |
493 | 493 |
|
494 | 494 |
# check for existing project files |
495 |
local projectfiles=()
|
|
495 |
local projectfiles=""
|
|
496 | 496 |
for module in ${modules[@]}; do |
497 |
local pfiles="$(find ${projectdir} -maxdepth 1 -type f | grep -E "${module}\.(includes|files|config|creator)$")" |
|
498 |
IFS=$'\n'; pfiles=($pfiles); unset IFS |
|
499 |
projectfiles=( ${projectfiles[*]} ${pfiles[*]} ) |
|
497 |
projectfiles+="$(find ${projectsdir} -maxdepth 1 -type f | grep -E "${module}\.(includes|files|config|creator)$")" |
|
500 | 498 |
done |
499 |
IFS=$'\n'; projectfiles=($projectfiles); unset IFS |
|
501 | 500 |
if [ ! -z "${projectfiles[*]}" ]; then |
502 | 501 |
printWarning "The following files will be removed:\n" |
503 | 502 |
for pfile in ${projectfiles[@]}; do |
... | ... | |
538 | 537 |
if [ $retval != 0 ]; then |
539 | 538 |
printf "\n" |
540 | 539 |
fi |
541 |
createModuleProject modules[@] --module="$module" --path="$projectdir" --gcc="$gccincludedir" |
|
540 |
createModuleProject modules[@] --module="$module" --path="$projectsdir" --gcc="$gccincludedir"
|
|
542 | 541 |
retval=$? |
543 | 542 |
done |
544 | 543 |
|
... | ... | |
633 | 632 |
} |
634 | 633 |
|
635 | 634 |
### main function of this script ############################################### |
636 |
# Creates, deletes and wipes QtCreator project files for the three AMiRo base modules.
|
|
635 |
# Creates, deletes and wipes QtCreator project files for any module supported by AMiRo-OS.
|
|
637 | 636 |
# |
638 | 637 |
# usage: see function printHelp |
639 | 638 |
# arguments: see function printHelp |
Also available in: Unified diff