rizsotto / Bear

Bear is a tool that generates a compilation database for clang tooling.
GNU General Public License v3.0
4.83k stars 313 forks source link

Next-generation Intel compilers are not recognized by default #537

Open Pennycook opened 1 year ago

Pennycook commented 1 year ago

Support for the classic Intel compilers (icc and icpc) was previously added in response to #136.

The next-generation compilers (icx and icpx) are currently not recognized by default, and it took me a while to figure out what was happening here. Bear does recognize icpx in -fsycl mode (because it resolves to clang), so for mixed C++/SYCL projects only some of the files end up missing from the compilation database.

I was able to work around this by adding icx and icpx to the compilers_to_recognize field of a configuration file, but it would be great if these could be added as officially recognized compilers (like nvcc).

rizsotto commented 1 year ago

Hi Pennycook, I think the icc was recognized by the 2.x version. In the 3.x version it was not carried over.

Since I am not into C++ that much recently, could you help me to send me link to these tools' page?

Pennycook commented 1 year ago

Thanks for taking a look at this so quickly.

I believe the best way to get icx and icpx is from https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html. There are a few different options there (direct download, apt repository, Docker container, etc).

rizsotto commented 1 year ago

Taking notes:

https://www.intel.com/content/www/us/en/docs/oneapi/programming-guide/2023-2/invoke-the-compiler.html https://www.intel.com/content/www/us/en/docs/oneapi/programming-guide/2023-2/example-compilation.html