AbigailBuccaneer / json2cmake

Generate CMakeLists.txt from a compile_commands.json
MIT License
36 stars 15 forks source link

TypeError: 'set' object is not subscriptable #38

Open jackL999 opened 3 years ago

jackL999 commented 3 years ago

Ubuntu 20.04.3 LTS Python 3.8.10

json2cmake generates the following error

Traceback (most recent call last): File "/home/jk2/.local/bin/json2cmake", line 8, in sys.exit(main()) File "/home/jk2/.local/lib/python3.8/site-packages/json2cmake/init.py", line 223, in main database.write(args.outfile, name=args.name) File "/home/jk2/.local/lib/python3.8/site-packages/json2cmake/init.py", line 122, in write name = os.path.basename(os.path.commonprefix(files).rstrip("/_")) File "/usr/lib/python3.8/genericpath.py", line 76, in commonprefix if not isinstance(m[0], (list, tuple)): TypeError: 'set' object is not subscriptable

yifengyou commented 2 years ago

edit /home/jk2/.local/lib/python3.8/site-packages/json2cmake/init.py

modify

name = os.path.basename(os.path.commonprefix(list(files)).rstrip("/_"))

owinebar commented 1 year ago

Looks like the author has not been active since 2021, but I submitted a pull request with this modification anyway.

robertlipe commented 1 year ago

Awesome. Thank you. This fixes the same crash on MacOS, too.

It then bombed out on directories with spaces in names, but this is far, far from the first program with that issue. That's further than I'd hoped to get extracting an ESP32 build from PlatformIO and trying to shove it into Cmake.