3 ms·
I'm not very familiar with meson. I can use cmake to build a project but I don't know how to find various build options without searching through that project's
by rascul 5y ago
I'm not very familiar with meson. I can use cmake to build a project but I don't know how to find various build options without searching through that project's documentation. I probably haven't explored cmake enough.
- throwaway82652 5y agoUse cmake-gui and it lists all the options for you. Or for the manual method, search in the project's cmake sources for lines starting with "option(".
- cycomanic 5y agoI would argue this confirms what the OP said cmake is really not very friendly to the user (not developer). Reading through the cmake sources for options is equivalent to "read the source".
- jcelerier 5y agoBut you only have to do this if you don't want to run an actual GUI or ncurses UI which does this for you for some reason ? What would you suggest instead ?
- cycomanic 5y agoWhy do I need to run a gui or ncurses UI if I just want to do the equivalent of configure && make && make install?
- jcelerier 5y agoThe equivalent of this is cmake -S source_folder -B build_folder cmake --build build_folder cmake --install build_folder You don't need to run a GUI at all for this, I don't see how you could infer this from the previous messages
- tpush 5y agoSomething like 'cmake --list-options CMakeLists.txt' seems the most obvious.
- jcelerier 5y agoI don't think it would be meaningfully different from what you would get by doing less CMakeCache.txt Listing the options cannot be done by just introspecting a CMakeLists: what would it show for: if(FOO) option(ENABLE_BAMBOOZLE_${FOO} "Enable Bamboozle - ${FOO}-specific version" OFF) else() option(ENABLE_BAMBOOZLE "Enable Bamboozle" ON) endif() (and if your meta-build system does not allow to do that, I'm sorry but I'll have to build a meta-meta-build-system on top of it which implements it and no one will like it)
- downut 5y agoIn the build directory, "ccmake ." Note the "." I need to do this in almost every cmake project I don't know well. Also toggle on the advanced options listing. Occasionally you'll see stuff in the CMakeLists.txt files that don't show up in that menu. This is usually variables you can set on the command line to influence configuration. People are nowadays calming down their desire to program up their own flavor of a gigantic build system, and sticking to simpler idioms. That's a big improvement. However there's a lot of legacy nightmare cmake out there. Meson is much harder to build different dialects. Some people don't like this. After 35 years of build systems, I say yes please! I forget what I do in meson. Which means I just read the meson.build and meson_options.txt. They are quite straightforward, and very concise, if you're not Doing It Wrong.