Kompilacne skripty pre kompilaciu s projlibs.in

Kompilacia projektu

na kompilaciu sa pouziva script compile parametre scriptu :

  1. priecinok priecinok projektu ( povinny ) tento parameter je vzdy prvy pri ostatnych nezalezi na poradi
  2. platforma vzdy jeden z prepinacov [ -emtest_xscale -emtest_xscale_26 -i386 -waysion_cortexa8 -rg_cortexa9 -all ] ( povinny )
  3. sablona jeden z prepinacov [ -app -lib ] ( povinny )
  4. volitelne parametre [ -max-cpu ] - pouzije sa maximalny pocet jadier na kompilaciu
  5. volitelne parametre [ -L ] - stahuju sa len kniznice nekompiluje sa a nevytvara sa balik
  6. volitelne parametre [ -test ] - Vytvara sa testovaci balik neukladaju sa zdrojaky ani sa neinkrementuje cislo buildu
  7. volitelne parametre [ -scp ] - Na stahovanie kniznic sa pouziva command scp namiesto nfs ( optimalizaia stahovania pre vpn )

priklad:

 
 compile TicketIssueLogic/ -all -L
 compile TicketIssueLogic/ -i386 -lib
 compile OnboardComputer/ -emtest_xscale_26 -app -max-cpu
 compile Slave/ -all -app -max-cpu

Pre spravne fungovanie kompilacie musi byt upraveny .pro subor podla novych scopov !!!

scopy : i386, waysion_cortexa8, emtest_xscale, emtest_xscale_26

i386 {
        LIBS += -L./../../lib/i386 \
                -Wl,--no-as-needed \
                -lusb-1.0 \
                -lExoApi \
                -lExoTb

        QMAKE_CXXFLAGS += -Wall -Werror
}

# stare emtest citacky so systemom 2.4 nepodporuju nastavenie 'no-as-needed'
!emtest_xscale {
	LIBS += \
		-Wl,--no-as-needed
}

emtest_xscale_26 {
	LIBS += \
		-L./../../lib/emtest_xscale_26
}

waysion_cortexa8 {
	LIBS += \
		-L./../../lib/waysion_cortexa8
}

emtest_xscale {
        LIBS += -L./../../lib/emtest_xscale \
                -liw \
                -lmad
}

rg_cortexa9 {
	LIBS += \
		-L./../../lib/rg_cortexa9
}

transdata_cortexa9 {
	LIBS += \
		-L./../../lib/transdata_cortexa9
}

Define-y podporovanych platforiem

EMTEST_XSCALE      - stare emtest citacky so systemom 2.4
EMTEST_XSCALE_26   - mijola so systemom 2.6 a vyssie
WAYSION_CORTEXA8   - zariadenie od firmy waysion, typ X7
RG_CORTEXA9        - zariadenie od firmy R&G
TRANSDATA_CORTEXA9 - nami vyvinuty priemysleny tablet, ktory nikto nechce. Kodove oznacenie 'lacov prasivy tablet'

*_projlibs subory

System kompilacnych skriptov podporuje definiciu roznych kniznic pre urcite platformu. V pripade, ze je potrebne zo servra phoenix stiahnut pre danu platformu nejaku specificku kniznicu, je potrebne postupovat nasledovne:

  • Definovat subor pre stiahnutie kniznic nasledovne 'nazov platformy'_projlibs
  • Vlozit do vzniknuteho suboru pozadovanu kniznicu v tvare lib'nazov kniznice'.so.'major verzia'.'minor verzia'.'maintenance verzia'
  • ak nie je pre danu platformu definovany subor [platforma]_projlibs defaultne sa berie subor all_projlibs.
  • script uz nepodporuje projlibs tvaru projlibs.in.2.4 projlibs.in.2.6

Rozsirujuce sablony pre vytvorenie instalacneho balika aplikacie

Kompilacny system umoznuje vytvorenie instalacneho balika aplikacie s moznostou rozsirenia o doplnkove moduly. Umiestnenie templatova na Phoenixe /usr/local/emtest/platforms/templates Momentalne pouzivane moduly aplikacie:

  • Platnobny terminal
  • Dispcerske konfiguracne subory
  • Servis tlaciarne
  • Aplikacne utilitky + konfiguracne subory

Kompilacii je mozne nastavit platformu a preto je potrebne specifikovat platformu aje pre rozsirujuce sablony aplikacie nasledovne:

Na obrazku je mozne vidiet, ze momentalne su vsetky specificke platformy jednotne a je spraveny symbolicky odkaz na all. Sablona moze byt specificka pre kazdu platformu. Ciel je udrzat sablony platforiem jednotne a preto prosim o zvazenie, ci sa uprava neda spravit univerzalne pre vsetky platformy.

Popis kompilacnych scriptov

kompilacne scripty sa nachadzaju v priecinku /usr/local/emtest/bin/compile_new/

  • compile hlavny kompilacny scrip parsuje parametre a maze vzdy stary priecinok l_(meno projektu)
  • [platform]/compile kolpilacny script pre specificku platformu
  • pre_compile_actions vytvaranie noveho priecinku l_(meno projektu) kopirovanie zdojovych kodov a export cisla buildu
  • prepare_projlibs spracuva (makra a includy) v subore projlibs.in, vystup ulozi do suboru projlibs.in.out
  • update_directory kopiruje priecinky s pridanymi pravidlami na subory
  • update_libs vyberie spravy projlibs.in podla platformy a refresne libky pre projekt
  • copy_libs stiahne libky pre vybranu architekturu do adresara (projekt)/lib
  • post_compile_actions spustanie akcci po uspesnej kompilacii backup a vytvaranie balika
  • log_build script vytvara popisny subor build.txt a zalohuje zdojove kody na Phoenix (/usr/local/emtest/ver/src)
  • create_package na zalkade zvolenej sablony vytvara balik
 
howto/compile_scripts_with_projlibs_in.txt · Last modified: 2016/09/14 10:59 by 192.168.242.81
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki