tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: LOCALBASE searched before macOS framework with CMake on Darwin



> If graphics/MesaLib is *not* installed:
> 
>    % ~/pkg/sbin/pkg_info | grep MesaLib
> 
> I understand that Cmake finds the OpenGL framework provided by macOS:
> 
>    % grep "OPENGL_gl_LIBRARY:" work/openttd-14.0/cmake-pkgsrc-build/CMakeCache.txt
> OPENGL_gl_LIBRARY:FILEPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/System/Library/Frameworks/OpenGL.framework
> 
> But if graphics/MesaLib is installed (but its buildlink3.mk is not the Makefile):
> 
>    % ~/pkg/sbin/pkg_info | grep MesaLib
>    MesaLib-21.3.9nb4   Open source OpenGL implementation
> 
> Now Cmake finds the OpenGL implementation provided by pkgsrc:
> 
>    % grep "OPENGL_gl_LIBRARY:" work/openttd-14.0/cmake-pkgsrc-build/CMakeCache.txt
>    OPENGL_gl_LIBRARY:FILEPATH=/Users/triaxx/pkg/lib/libGL.dylib
> 
> And the build step fails with the following error message:
> 
>    ld: library 'GL' not found
>    clang: error: linker command failed with exit code 1 (use -v to see invocation)
> 
> What is the right way to avoid CMake finding OpenGL path in LOCALBASE first?

MesaLib should not be installed on macOS at all. Just add something like:

.if ${OPSYS} != "Darwin"
.include "../../graphics/MesaLib/buildlink3.mk"
.endif

Kind regards,
Adam


Home | Main Index | Thread Index | Old Index