cocos2d / cocos2d-x

Cocos2d-x is a suite of open-source, cross-platform, game-development tools utilized by millions of developers across the globe. Its core has evolved to serve as the foundation for Cocos Creator 1.x & 2.x.
https://www.cocos.com/en/cocos2d-x
18.16k stars 7.05k forks source link

Fix issue #20608 - Fix compile error on MacOSX big sur #20696

Open Riyaaaaa opened 2 years ago

Riyaaaaa commented 2 years ago

Fixed: https://github.com/cocos2d/cocos2d-x/issues/20608 Maybe related: https://github.com/cocos2d/cocos2d-x/issues/20435

environment

OS: MacOSX 11.3 big sur Xcode: 13.1 cmake: 3.21.2

description

Compile errors occurred when Xcode project is generated from cmake on MacOSX big sur.

clang: error: no such file or directory: '/usr/lib/libiconv.dylib'

Bacause iconv path is resolved by find_library in CocosConfigDepend.cmake as below.

find_library(ICONV_LIBRARY iconv)

But ICONV_LIBRARY always be set /usr/lib/libconv.dylib ignoring sys_root. /usr/lib seems to be no longer available and it is located at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk/usr/lib/libiconv.tbd on big sur.

I guess ICONV_LIBRARY is already defined by cmake system so find_library do nothing. https://cmake.org/cmake/help/latest/module/FindIconv.html

solution

I used other name so that avoid conflicting name.

Riyaaaaa commented 2 years ago

I faced this issue when building my project as MacOSX application, but it is also possible to occur on iOS application if you are using cmake.