From c8583f9a5ed95d0fe4e7f86803fc888976345146 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Wed, 22 Jan 2020 21:28:49 +0100 Subject: [PATCH] Organize and sort out some library dependency issues --- src/CMakeLists.txt | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e7eb2bf16..567722d62 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -108,7 +108,8 @@ if(BUILD_CLIENT) if(ENABLE_GLES) find_package(OpenGLES2 REQUIRED) else() - if(NOT WIN32) # Unix probably + # transitive dependency from Irrlicht (see longer explanation below) + if(NOT WIN32) set(OPENGL_GL_PREFERENCE "LEGACY" CACHE STRING "See CMake Policy CMP0072 for reference. GLVND is broken on some nvidia setups") set(OpenGL_GL_PREFERENCE ${OPENGL_GL_PREFERENCE}) @@ -281,17 +282,28 @@ if(WIN32) else() # Unix probably if(BUILD_CLIENT) - if(NOT HAIKU) + if(NOT HAIKU AND NOT APPLE) find_package(X11 REQUIRED) - endif(NOT HAIKU) + endif(NOT HAIKU AND NOT APPLE) + + ## + # The following dependencies are transitive dependencies from Irrlicht. + # Minetest itself does not use them, but we link them so that statically + # linking Irrlicht works. + if(NOT HAIKU AND NOT APPLE) + # This way Xxf86vm is found on OpenBSD too + find_library(XXF86VM_LIBRARY Xxf86vm) + mark_as_advanced(XXF86VM_LIBRARY) + set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY}) + endif(NOT HAIKU AND NOT APPLE) find_package(JPEG REQUIRED) find_package(BZip2 REQUIRED) find_package(PNG REQUIRED) if(APPLE) - find_library(CARBON_LIB Carbon) - find_library(COCOA_LIB Cocoa) - find_library(IOKIT_LIB IOKit) + find_library(CARBON_LIB Carbon REQUIRED) + find_library(COCOA_LIB Cocoa REQUIRED) + find_library(IOKIT_LIB IOKit REQUIRED) mark_as_advanced( CARBON_LIB COCOA_LIB @@ -299,7 +311,9 @@ else() ) SET(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${CARBON_LIB} ${COCOA_LIB} ${IOKIT_LIB}) endif(APPLE) + ## endif(BUILD_CLIENT) + find_package(ZLIB REQUIRED) set(PLATFORM_LIBS -lpthread ${CMAKE_DL_LIBS}) if(APPLE) @@ -311,13 +325,6 @@ else() endif(HAVE_LIBRT) endif(APPLE) - if(NOT HAIKU AND NOT APPLE) - # This way Xxf86vm is found on OpenBSD too - find_library(XXF86VM_LIBRARY Xxf86vm) - mark_as_advanced(XXF86VM_LIBRARY) - set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY}) - endif(NOT HAIKU AND NOT APPLE) - # Prefer local iconv if installed find_library(ICONV_LIBRARY iconv) mark_as_advanced(ICONV_LIBRARY)