abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:33 | IT novinky

    Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.

    Ladislav Hagara | Komentářů: 0
    včera 23:44 | Nová verze

    Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Zajímavý článek

    50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Pozvánky

    Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.

    TomasVondra | Komentářů: 0
    včera 03:00 | IT novinky

    Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].

    Ladislav Hagara | Komentářů: 6
    včera 02:00 | IT novinky

    Ještě letos vyjde Kingdom Come: Deliverance II (YouTube), pokračování počítačové hry Kingdom Come: Deliverance (Wikipedie, ProtonDB Gold).

    Ladislav Hagara | Komentářů: 4
    21.4. 19:11 | Komunita

    Thunderbird 128, příští major verze naplánovaná na červenec, přijde s nativní podporou Exchange napsanou v Rustu.

    Ladislav Hagara | Komentářů: 23
    21.4. 04:44 | Komunita

    Byly vyhlášeny výsledky letošní volby vedoucího projektu Debian (DPL, Wikipedie). Novým vedoucím je Andreas Tille.

    Ladislav Hagara | Komentářů: 7
    21.4. 00:11 | Nová verze

    Po osmi měsících vývoje byla vydána nová verze 0.12.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 268 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    20.4. 23:55 | Pozvánky

    Poslední měsíc byl plný zajímavých akcí, o kterých Vám bastlíři z projektu MacGyver mohou povědět, protože se na ně sami vydali. Kde všude byli, ptáte se? Objevili se na Installfestu, Arduino Day, Hackaday Europe a tajném srazu bastlířů z Twitteru. A z každé akce pro vás mají zajímavé poznatky.

    … více »
    bkralik | Komentářů: 1
    KDE Plasma 6
     (71%)
     (10%)
     (2%)
     (18%)
    Celkem 671 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: CMake, pocet radku v souboru

    7.2.2017 23:05 Franta
    CMake, pocet radku v souboru
    Přečteno: 506×
    Existuje nejake lepsi reseni, jak v CMakeLists.txt spocitat pocet radku v souboru, nez toto? Nacteni souboru a pak ukladani matchu do pole jenom proto, abych mohl ziskat jejich pocet, mi neprijde nejlepsi. Bude se jednat o velky projekt s hodne soubory a nechci, aby beh cmake trval vecnost:
    file(READ ${source_file} source_file_contents)
    string(REGEX MATCHALL "\n" newline_matches "${source_file_contents}")
    list(LENGTH newline_matches newline_count)
    

    Řešení dotazu:


    Odpovědi

    8.2.2017 09:56 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    wc -l soubor

    8.2.2017 18:35 Franta
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Ja se omlouvam, ale myslici clovek snad pozna, ze tohle mi je k nicemu. Pisu v CMakeLists.txt, jako priklad uvadim nejake prikazy cmake a vy mi sem date konzolovy prikaz.
    8.2.2017 18:46 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    A je problém ho použít že?

    Když ho použít nechceš nemusíš o tom to je napiš si počítání konců řádků podle sebe.
    8.2.2017 20:51 Franta
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Ale vsak pisu, ze to potrebuju v cmake a ne ve shellu.
    8.2.2017 20:56 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Předpokládám, že cmake umí spouštět wc a shell k tomu není vůbec potřebný.

    BTW: K čemu je vlastně dobré znát počet řádek ve zdrojovém souboru?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.2.2017 21:06 kamen
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    vy jste uplne ale uplne zaujaty tim wc.

    dotaz byl jak to udelat v cmake.

    ne na wc, ne v shelu,omv,aralu..

    8.2.2017 21:51 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Nejsem tím zaujatý pokud jsi si nevšiml další příspěvky nebyly moje.

    Ale když už jsme u toho proč bych spouštěl nějaký shell????

    cmake neumí spustit externí program.

    A jinak taky by mě zajímalo proč v programu počítat kolik má řádků?
    9.2.2017 08:17 kamen
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    muj omyl: sory; a ne jako, ale fakt. muj nehezky komentar patril predchozimu diskuteru.

    cmake ext. program: pokud vim, tak cmake pri generovani build systemu umi spustit ext. program. je to ale ve vetsine nevhodne, protoze to vytvari potrebu platformne zavisleho ext. programu.

    8.2.2017 22:07 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    O shellu přece vůbec nebyla řeč...

    Používám make, ve kterém zcela běžně volám externí programy (bez shellu) a předpokládal jsem, že to v cmake bude skoro stejné.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.2.2017 21:47 Franta
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Unity build. Ale protoze se jedna o velky projekt, chci limitovat celkovy pocet radku (tj. vsech includovanych cpp souboru) pro takto vygenerovany soubor, jinak by to sezralo vsechnu pamet a kompilator by umrel.
    8.2.2017 21:54 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Co je zase toto za blbost?

    Velké projekty se skládají z menších prvků které se teprve potom slinkují a né že se udělá jeden cpp soubor v kterém bude:
    <include> 1.cpp
    <include> 2.cpp
    .......
    <include> 10000.cpp
    8.2.2017 22:11 Franta
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    To neni blbost. Prave, ze se sklada z mensich prvku, ty se skladaji z mraky cpp souboru a kdyz se kazdy kompiluje zvlast (i nekolik paralelne) tak to proste trva hodne dlouho. Unity build toto klidne dokaze zkratit na polovinu. Misto treba 200 cpp souboru kompilujete jen 20, ktere kazdy includuji 10 a samozrejme dale se to paralelizuje. Hlavni nevihodou je vetsi spotreba pameti pri kompilaci a proto se to snazim omezit celkovym poctem radku.
    10.2.2017 04:24 Sten
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    O ccache jste už slyšel? V porovnání s tím je Unity Build jen nepodařená hříčka.
    8.2.2017 22:11 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Includují se přece jen hlavičkové soubory, které bývají poměrně krátké. Nějaké překročení limitní délky vůbec nehrozí.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.2.2017 22:16 Franta
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    V tomto pripade includuji cpp soubory do jineho cpp souboru, ktery se kompiluje misto tech puvodnich. Jak pisu vyse, pokud bych do jednoho souboru naincludoval vsechny, nebude dostatek pameti pro kompilaci, je potreba to nejak rozdelit a omezit to poctem radku tech cpp souboru je +- autobus uzitecne reseni. Akorat se jeste snazim zkratit dobu behu cmake.
    8.2.2017 22:18 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Tohle řešení ve výsledku pouze prodlouží dobu kompilace, nehledě na hromadu dalších nevýhod.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.2.2017 22:20 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Přesně blbost.

    Na začátku možná ušetříš při kompilaci jednoho velkého souboru než 1000 menších, ale pak při opravě jednoho řádku zase musíš přeložit jeden velký soubor než 1 malý.

    Takže za mě je to fakt blbost o to co se snažíš.....
    8.2.2017 22:33 Franta
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    To je pro automatizovane buildy a ne pro vyvoj, kdy zmenim jednu radku a musim pak prekompilovat haldu souboru.
    8.2.2017 22:48 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Panebože takže vývoj máš dělaný jinak a finální překlady taky????

    Bral bych to kdyby se to pak překládalo pro 1000 různých platforem, ale pro těch pár co existují?

    Distribuji to pak jako binárku, a né že se to musí přeložit na každém stroji samostatně...

    By mě zajímalo pro jakou firmu pracuješ že máš tolik času se zabývat kravinama a podle mě to kravina je.
    9.2.2017 19:30 Franta
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    To jsou automatizovane buildy pro ruzne vetve pro ucely automatickych testu. Nejsou to buildy pro finalni produkt. Tech vetvi neni malo a cim drive se to prelozi, tim drive se to otestuje, zjisti se pripadne chyby a opravi.
    8.2.2017 22:15 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Ten článek je totální blud postavený na nesmyslech.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.2.2017 22:17 Franta
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Zkousel jste to? Tak, jak je v clanku kod, tak je to samozrejme nepouzitelne na velky projekt, ale pri trose prizpusobeni se build da o dost zrychlit.
    8.2.2017 22:22 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Nezrychlí, ale zpomalí. Když udělám změnu v jednom zdrojáku, zkompiluje se jen ten jeden zdroják a slinkuje s ostatními 199 již zkompilovanými soubory.

    Podle toho článku když udělám změnu v jednom souboru, musím kompilovat všech 200 cpp souborů, což bude trvat mnohem déle.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.2.2017 22:23 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Je to blbost.

    Protože při změně jednoho řádku musíš překompilovat jeden velký soubor než jeden malý a co bude rychlejší.......

    A při vývoji se pořád mění nějaké věci a proč překládat všechno v jednom velkém souboru?

    Možná při prvotním překladu ušetříš, ale při následných překladech budeš prodělávat....
    8.2.2017 22:37 Franta
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Viz vyse. Kazdopadne pojdme se vratit k puvodnimu dotazu. Jak to prostredky cmake udelat lepe, bez spousteni externich nastroju.
    8.2.2017 22:56 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Prostě musíš ty řádky spočítat.....

    Nevím co cmake umí a zjišťovat to nebudu, a nevím proč se bráníš používat externí programy.

    Koukni do wc jak to počítá a implementuj postup na to co umí cmake.
    8.2.2017 23:04 ssss
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Rekl bych, ze cmake nema zadny konkretni nastroj na pocitani radku...CMake/Language_Syntax tohle to celkem jasne objasnuje, ze i reseni, ktere jsi uvedl je v napsano jako script a nikoli funkce. cmake je nastroj na generovani souboru z jinych souboru, kontrolu zavislosti, substituce...

    Mas tak asi moznost bud pouzit tu uvedenou funkci nebo zavolat externi nastroj. Ani jedna moznost me neprijde spatna. Pouziti funkce je vic multiplatformni, naopak externi utilita bude vic flexibilni.

    Je treba si uvedomit, ze samotne cmake externi utility vola mnohokrat.. pri osahavani systemu na kterem bezi, u ruznych kompileru... testovani vlastnosti knihoven, prikazu...

    Dal bych mel upozornit, ze dokud si clovek skutecne neosaha konkretni reseni ohledne vykonu, tezko muze delat obecne zavery. Systemy typu make, cmake jsou vesmes interprety, tedy bezi vyraznejsi pomaleji nez kompilovane veci. Pokud skutecne narazis na problem s vykonem, zjevne bude potreba sahnout k C/C++, Fortranu, Ada, a apod.
    stativ avatar 9.2.2017 19:38 stativ | skóre: 54 | blog: SlaNé roury
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Přidám se k názoru, že je to blbost. Pokud chcete zrychlit build, tak se doporučuji spíš podívat po ccache a pokud ještě nepoužíváte, tak zkusit precompiled headers.
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
    9.2.2017 20:08 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Myslím si, že další cache jsou již zbytečné a ke zrychlení buildu již nijak nepomohou.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    13.2.2017 23:45 Ondra
    Rozbalit Rozbalit vše Re: CMake, pocet radku v souboru
    Článek je z roku 2009, kdy SSD byl přepychem horních deseti tisíc, případně předmětem vášnivých diskusí v anarchistických kroužcích. Místo podobných rovnáků na ohejbáky bych se raději soustředil na investici do rozumného disku (SSD), a do lepšího strukturování kódu, aby se při změně jednoho řádku nemuselo kompilovat tisíc souborů. Pak samozřejmě do paralelizace buildu; pokud byste chtěl hodně popustit uzdu fantazie, tak je možné rozdělit projekt do několika knihoven, které se budou buildit samostatně a na různých nodech, a finální produkt se jen poskládá z nich.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.