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

    Google zveřejnil seznam 185 organizací přijatých do letošního Google Summer of Code (GSoC). Dle plánu se zájemci přihlašují od 16. do 31. března. Vydělat si mohou od 750 do 6600 dolarů. V Česku a na Slovensku je to 900 dolarů za malý, 1800 dolarů za střední a 3600 dolarů za velký projekt. Další informace v často kladených otázkách (FAQ). K dispozici jsou také statistiky z minulých let.

    Ladislav Hagara | Komentářů: 0
    včera 22:55 | Nová verze

    Byla vydána únorová aktualizace aneb nová verze 1.110 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.110 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 8
    včera 18:11 | IT novinky

    Apple představil 13palcový MacBook Neo s čipem A18 Pro. V základní konfiguraci za 16 990 Kč.

    Ladislav Hagara | Komentářů: 43
    včera 12:22 | Komunita

    Kalifornský zákon AB 1043 platný od 1. ledna 2027 vyžaduje, aby operační systémy požadovaly po uživatelích věk nebo datum narození a skrze API poskytovaly aplikacím informaci, zda je uživatel mladší 13 let, má 13 až 16 let, má 16 až 18 let nebo má alespoň 18 let. Vývojáři linuxových distribucí řeší, co s tím (Ubuntu, Fedora, …).

    Ladislav Hagara | Komentářů: 83
    včera 11:44 | Pozvánky

    Konference LinuxDays 2026 proběhne o víkendu 3. a 4. října v Praze v areálu ČVUT v Dejvicích na FIT. Čekají vás desítky přednášek, workshopy, stánky a setkání se spoustou chytrých lidí.

    Petr Krčmář | Komentářů: 0
    včera 00:44 | Humor

    Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 145. Aktuální verze Firefoxu je 148. Od září přejde Chrome na dvoutýdenní cyklus vydávání. V kterém týdnu bude mít Chrome větší číslo verze než Firefox? 😀

    Ladislav Hagara | Komentářů: 3
    3.3. 21:55 | IT novinky Ladislav Hagara | Komentářů: 4
    3.3. 13:44 | Komunita

    Bylo spuštěno hlasování o přednáškách a workshopech pro letošní Installfest, jenž proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13.

    Ladislav Hagara | Komentářů: 4
    3.3. 04:33 | Nová verze

    Byla vydána (Mastodon, 𝕏) třetí RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.

    Ladislav Hagara | Komentářů: 0
    2.3. 21:44 | IT novinky

    Apple představil iPhone 17e a iPad Air s čipem M4.

    Ladislav Hagara | Komentářů: 18
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (7%)
     (0%)
     (11%)
     (28%)
     (2%)
     (5%)
     (1%)
     (13%)
     (25%)
    Celkem 1016 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: CMake, pocet radku v souboru

    7.2.2017 23:05 Franta
    CMake, pocet radku v souboru
    Přečteno: 586×
    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: 46 | 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: 46 | 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: 46 | 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: 46 | 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: 46 | 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: 46 | 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: 46 | 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.