CMAKE dependency trigger bei compile time define

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

CMAKE dependency trigger bei compile time define

Beitrag von Matthias Gubisch »

Ich habe in meinem Source folgendes Konstrukt:

Code: Alles auswählen

#ifdef __clang__
	log_message operator() (LogLevel level, const std::string& file, uint32_t line) noexcept;
#else
	log_message operator() (LogLevel level, std::source_location location) noexcept;
#endif
Wenn ich jetzt den compiler zwischen clang und msvc umschlate (in VisualStudio) triggert cmake die dependencies nicht richtig, was bei partiellen rebuilds in allen modulen die etwas loggen zu unresolved externals fuehrt.
Ein manueller rebuild der gesamten Applikation loest das zwar, aber kostet erstens Zeit und 2. die frage ob das nicht eleganter geht.

Hintergrund des ganzen ist, das clang std::source_location nur experimentel unterstuetzt und Visual Studio die experimental header fuer clang aber nicht mit ausliefert.
Da ich aber den clang trotzdem gerne verwenden will hab ich meinen logger halt so umgebaut.

Vielleicht hat ja einer der vielen schlauen Leute hier ein gute Idee
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Antworten