Update: meson and CLion
In a previous blogpost I walked you through a quick setup of using meson
in combination with CLion.
Shortly afterwards I stumbled across a cool project which promised to bring all the nice integrations
CLion offers over to any meson project.
Sadly the project itself seemed to be abandoned, and no updates happened for some time. meson
in the
meanwhile did receive some updates, and so the inevitable breakage happened. For example
Traceback (most recent call last):
File "/home/sunqi/.pyenv/versions/anaconda3-5.2.0/bin/mcw", line 10, in <module>
sys.exit(main())
File "/home/sunqi/.pyenv/versions/anaconda3-5.2.0/lib/python3.6/site-packages/mcw/main.py", line 6, in main
CMakeWrapper().run(sys.argv)
File "/home/sunqi/.pyenv/versions/anaconda3-5.2.0/lib/python3.6/site-packages/mcw/cmake.py", line 66, in run
raise e
File "/home/sunqi/.pyenv/versions/anaconda3-5.2.0/lib/python3.6/site-packages/mcw/cmake.py", line 59, in run
getattr(self, self.command + '_cmd')()
File "/home/sunqi/.pyenv/versions/anaconda3-5.2.0/lib/python3.6/site-packages/mcw/cmake.py", line 182, in generate_cmd
self.gen_codeblocks_project()
File "/home/sunqi/.pyenv/versions/anaconda3-5.2.0/lib/python3.6/site-packages/mcw/cmake.py", line 466, in gen_codeblocks_project
output = os.path.join(self.meson.build_dir, self.meson.get_target_filename(target))
File "/home/sunqi/.pyenv/versions/anaconda3-5.2.0/lib/python3.6/site-packages/mcw/meson.py", line 232, in get_target_filename
return target['filename'][0]
IndexError: string index out of range
Luckily a fork which fixed this issue already existed. I then forked to fork to fix some more issues that cropped up in the meanwhile.
Install
To install you need a recent version of python (which you should anyways if you are running meson).
$ pip3 install --user git+https://gitlab.com/WanzenBug/meson-cmake-wrapper.git
This will install a command mcw
, which can be used as a drop-in replcement for cmake
.
If a meson.build
file is present, mcw
will do its magic, if not it will fall back to using
the system cmake
command.
To configure CLion to use it, you need to update your toolchain settings:
- Head to your Settings -> Build, Execution, Deployment -> Toolchains
- Set the cmake version from "Bundled" to custom and add the path to
mcw
And that's it.