4 ms·
That allows you to support _some_ dependency ordering from the top level, but not internally. It is very coarse, and also suffers from “recursive Makefile” issu
by wwright 7y ago
That allows you to support _some_ dependency ordering from the top level, but not internally. It is very coarse, and also suffers from “recursive Makefile” issues. It’s also less ergonomic: a developer can’t go into a specific sub folder and build ONLY that sub folder and its dependencies. If you change a library, it also can't reliably tell you which other binaries are its dependents. You have to let Make walk the full project tree.
By “additional compilers,” I mean adding additional metacompilers, other languages, and so on. There is QMAKE_EXTRA_COMPILERS, but I can’t figure out how to get it to properly integrate with the dependency graph for the life of me.
Have you ever had to resort to “make distclean” to get a clean compile?
- irishcoffee 7y agoOn your first point I respectfully disagree. The functionality does exactly what you claim it doesn’t do. You are mistaken on every point in your first paragraph. For your second point: https://ortogonal.github.io/qmake-extra-compiler/ https://ortogonal.github.io/qmake-extra-compiler/ I have never used this but it looks straightforward enough. I have never had to use make distclean. I use make clean && qmake && make sometimes.
- jcelerier 7y ago> It’s also less ergonomic: a developer can’t go into a specific sub folder and build ONLY that sub folder and its dependencies I'm not a fan of qmake but this works just fine with it.
- wwright 7y agoThe dependencies is the trick. Given I have this layout: bin/bin.pro # specify bin/bar/ as subfolder bin/bar/bar.c bin/bar/bah.h bin/bar/bar.pro lib/lib.pro # specify lib/foo/ as subfolder lib/foo/foo.c lib/foo/foo.h lib/foo/foo.pro project.pro # specify bin/ and lib/ as subfolders And I have a fresh checkout, how do I compile "bin/bar" and all of its dependencies automatically? I want to run ONLY "bin/bar". I don't want to compile the entire repo. I don't want to have to investigate "bin/bar" and learn all of its transitive dependencies. I just want to run "bin/bar". Honest to god, I have wanted this for over a year and it does not seem possible.