Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.

icc 2019 update 1 and problems with Xcode 10's new build system


Although icc 2019 update 1 claims to be compatible with Xcode 10.0., it's not compatible with the new build system (at least the way I use it).

My app is a Cocoa app where the GUI is written in objective-c. The engine is written in C and uses icc for OpenMP support. I have my project configured to use the default compiler in the target build settings and have a build rule for "c source files" using icc. This way objective-c source files are built with clang and c source files are compiled with icc. In Xcode 9 and earlier, this has worked. I tried building my project with Xcode 10.0 and icc 2019 update 1 and this no longer works. When I look at the build log, I see that clang is used instead of icc for my c source files and I get build errors because clang can't find omp.h. When I switched my project setting to use the legacy build system, everything worked as before.

New build system:

CompileC /Users/someuser/foo/bar/build/ /Users/someuser/foo/bar/src/somefile.c normal x86_64 c (in target: foo-mp)
    cd /Users/someuser/foo/bar/src/mac
    export LANG=en_US.US-ASCII
    /Applications/ -x c -arch x86_64 ...

Legacy build system:

CompileICC /Users/someuser/foo/bar/build/ /Users/someuser/foo/bar/src/somefile.c
    cd /Users/someuser/foo/bar/src/mac
    /usr/local/bin/icc- -x c -arch x86_64 ...


I think icc added support for passing through objective-c files a while back so you could theoretically set the default compiler to icc. I think I tried it and it didn't work for me so I just stuck with having a build rule. I don't remember the details though.

0 Kudos
2 Replies

This is a known-issue, please use the "Legacy build system". 

See this 




Well that's embarrassing. I read the release notes but didn't think to look at known limitations. Thanks for reply.