Отговори на тема  [ 27 мнения ]  Отиди на страница Предишна  1, 2
CMAKE питанки 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение Re: CMAKE питанки
аааа, аз Питон чайник - на този етап Build System няма да правя :D
много мислене иска за да се структурира проекта, има доста врътки...

_________________
main[-1u]={1};


Сря Юли 10, 2024 6:49 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение Re: CMAKE питанки
за Makefile...
( трябва да добавя и другите функции )
https://github.com/Wiz-IO/wizio-m2f

_________________
main[-1u]={1};


Пон Юли 22, 2024 8:34 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: CMAKE питанки
С един приятел вчерасе разправяхме защо и как трябва или не трябва да се ползва маке. Та той изкара един хубав линк, който може да ти е от полза как аджеба работи гну маке:

https://make.mad-scientist.net/category ... ogramming/

_________________
Мразя да мразя ...


Вто Юли 23, 2024 7:07 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение Re: CMAKE питанки
Благодарско

значи Make & CMAKE за клиента работи както е описано в Manual
обаче за да интерпретирам с цел да събера build променливи, флагове и файлове за компилация
вътре работи по "друг" начин който не е описан и трябва да "реверсвам" кода за да следя логиката

дори имаше места където Manual е донагласен по логиката на кода а не по търсената функция
"нещо се случва ама не баш така" :D

и още нещо прави силно впечатление
Маке е писан на чисто C ... и кода изглежда: просто и ясно
СМАКЕ е С++ и честно казано "вътре" е тотално мазало...

_________________
main[-1u]={1};


Вто Юли 23, 2024 9:04 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11265
Местоположение: Добрич
Мнение Re: CMAKE питанки
За маке има много добро книжле - "managing projects with gnu make", достъпно е в нета.
В него има не само описание на самия мейк но и различни идеи как да се ползва, нещо което за съжаление май убягва на много хора...


Вто Юли 23, 2024 10:07 am
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Съб Фев 06, 2016 8:29 pm
Мнения: 237
Мнение Re: CMAKE питанки
TheWizard написа:
...


Ползвам стара тема, но не намерх по-подходящо място.

@TheWizard: Въпросът ми е: знаеш ли дали има начин в platform.ini да добавя към опциите за компилация вече компилиран обектен файл? Нещо от рода на:
Код:
....
build_flags = -g -O0
        -Wall -Werror
        -Isrc
        -Iinclude
        my-super-object-file.o
        libmy-super-library.a
        -Llib
        -Ic -lm -lstd++
...


С 'libmy-super-library.a' няма проблем, питонския парсер прави какво трябва (добавя '-l', маха 'lib' и '.а'), не че е необходимо, но поне не вреди. Обаче за '.o' файл като прояви същата "интелигентност" се сещаш, че нищо не става.
Аз му се ядосах и си реших тотално проблема с универсален wrapper на компилтора (който ми компилира за Лин,Вин и Мак), но понеже търсих доста "стандартен" начих и не намери, та затова питам. :)


Вто Юни 10, 2025 8:51 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение Re: CMAKE питанки
по същия начин както се линква .а
... обаче не си спомням как се добавяше .о :D

_________________
main[-1u]={1};


Вто Юни 10, 2025 8:55 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение Re: CMAKE питанки
Чрез extra_scripts в platformio.ini

ini
extra_scripts = pre_link_script.py


pre_link_script.py:

Код:
Import("env")

env.Append(
    LIBS=[env.File("path/to/your/precompiled.o")],
    LIBPATH=["path/to/your"]
)


нящо такова беше ... което реално прави долното

_________________
main[-1u]={1};


Последна промяна TheWizard на Вто Юни 10, 2025 9:08 pm, променена общо 1 път



Вто Юни 10, 2025 9:01 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение Re: CMAKE питанки
пробвай и
ини:
Код:
build_flags =
    -Lpath/to/directory/with/o/file  ; директория с .o файла
    -l:precompiled.o


build_flags са стандартни -(минус опции) за gcc

_________________
main[-1u]={1};


Вто Юни 10, 2025 9:04 pm
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Съб Фев 06, 2016 8:29 pm
Мнения: 237
Мнение Re: CMAKE питанки
Не бях пробвал с ':' - не стана :?

Прикачени файлове:
20250610_220315.jpg
20250610_220315.jpg [ 36.17 KiB | Прегледано 2356 пъти ]


Файлът естествено е там, но питона остава '-l:', а ако няма опция я слага и всъщност това е проблема. С pre-script е ясно (от там си решавам проблема с контролираното инкрементиране на билд версиите) - то е съпоставимо с моя wrapper (той пък е по мощен и ми дава други екстри:)).

В случая става дума за добавяне на ресурсен файл към Виндовския билд (за Лин и Мак не им трябва). Пробвал съм вече да го слагам в библиотека (.а) и тогава минава, но линкера преценява, че няма викани функции и решава да ми оптимизира ехе-то и го дискардва :).

Както и да е, имам решение и то не е лошо, но си мислех, че е нормално да има "по-стандартен" начин. Такова добавяне на .о файл не би трябвало да е изключение и за ембед платформи.


Вто Юни 10, 2025 10:19 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение Re: CMAKE питанки
всъщност ":" е моя печатна грешка...

реално build_flags са (прости) опции за GCC
но RC-то не е -л, а логиката на платформио ще се обърка къде да го добави (пробвай без -л)
няма как да се сети че това не е за компилиране а за линкера

пре-скриптовете са за достъп до питон/сконс логиката и от там лесно да промениш нещо преди билда
както казах по-горе - правил съм точно това което искаш ти но не си спомням "простото" решение

на тебе ти реве че не намира файла, той вероятно е в папката, но за платформио root фолдера е папката с проекта

_________________
main[-1u]={1};


Сря Юни 11, 2025 5:47 am
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Съб Фев 06, 2016 8:29 pm
Мнения: 237
Мнение Re: CMAKE питанки
Когато е без '-л' (или без каквото и да е) автоматично му се слага '-л'. Явно заложената логика е, че там се слагат САМО библиотеки (с тях също не е безпроблемно, но това е съвсем друга бира). Както и да е, ако намеря и друго в пио-то, което да ме амбицира ще пиша на съпорта (като на адаш може и да свъши работа) :).


Сря Юни 11, 2025 12:07 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 27 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни