Ahojte,
Zhanam fundovanu radu na dependency problem u Cmake.
Mam projekt A - lib, app - add_executable, add_library prepinam pomocou option z -D...
Mam projekt B - app - ma dependency na projekt A(lib), jednu cast kodu nastavujem cez option -D...
Mam projekt C - app, ten ma dependency na A(app, lib) a projekte B(app), avsak, do projektu "vsuva" CMAKE_C_FLAGS.
cele to skladam v CMakeLists cez ExternalProject_Add() ... Takze technicky v projekte C skladam projekt A, projekt B, jeho app, aj lib. Kazdopadne, aby cely system fungoval, tak A,B musia byt v projekte C.
Problem:
1) Okrem toho, ze neviem rozumne vyriesit dependency, aby sa mi 2x nestahoval projekt A (pre B aj C).
2) Tak som narazil na takmer pre mna neriesitelny problem: ak zmenit v projekte C - CMAKE_C_FLAGS napr -DLOG=0 na -DLOG=1, tak ExternalProject_Add(B ... -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} ...) sa nepremietne do B, a nepride ku rekompilacii kodu, coho vska chcem dosiahnut. K rekompilacii dojde iba v pripade ze sa v B zmeni source.
1) Ako mozem vyriesit to, ze ak pride k zmene C_FLAGS v projekte C, aby sa mi tato zmena prejavila aj v B. C aj B pouzivaju jednu cast kodu ktora je zavysla prave na hodnotach v preprocesore.
Diky.