From 01b666da2a05058af252c0bfc9a33c6a3d6b2f73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 10 Jun 2020 17:03:41 +0200 Subject: [PATCH] modules: find GLFW via config only if the target doesn't already exist. --- modules/FindGLFW.cmake | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/FindGLFW.cmake b/modules/FindGLFW.cmake index 495567690..3d7d99b6d 100644 --- a/modules/FindGLFW.cmake +++ b/modules/FindGLFW.cmake @@ -43,11 +43,17 @@ # DEALINGS IN THE SOFTWARE. # -# GLFW installs cmake package config files to shared/ folder which handles -# dependencies in case GLFW is built statically. Try to find first, quietly, so -# it doesn't print loud messages when it's not found, since that's okay. -find_package(glfw3 CONFIG QUIET) +# GLFW installs cmake package config files which handles dependencies in case +# GLFW is built statically. Try to find first, quietly, so it doesn't print +# loud messages when it's not found, since that's okay. If the glfw target +# already exists, it means we're using it through a CMake subproject -- don't +# attempt to find the package in that case. +if(NOT TARGET glfw) + find_package(glfw3 CONFIG QUIET) +endif() +# If either a glfw config file was found or we have a subproject, point +# GLFW::GLFW to that and exit -- nothing else to do here. if(TARGET glfw) if(NOT TARGET GLFW::GLFW) # Aliases of (global) targets are only supported in CMake 3.11, so we