From 5f34d486b8fae3d654f85e3542bb6311488a2e95 Mon Sep 17 00:00:00 2001
From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Date: Tue, 16 Nov 2021 19:14:37 -0500
Subject: [PATCH] COMP: Fix configuration of client projects adding OpenVR_* to
 CACHE in iMSTKConfig

Add variables OpenVR_INCLUDE_DIR and OpenVR_LIBRARY to the CACHE to
workaround issue related to use of mark_as_advanced command in
FindOpenVR and described in CMP0102.

Indeed, this is required because CMP0102 is not automatically set to
NEW and addressing this issue would required to update the FindOpenVR
modules shipped in the different VTK version iMSTK can be built against.

See https://cmake.org/cmake/help/latest/policy/CMP0102.html

This commit fixes the following error reported when attempting to
configure a project like iMSTKProject (see [1]) against an iMSTK
build tree:

    CMake Error at /path/to/cmake-3.21.4-linux-x86_64/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
    Could NOT find OpenVR (missing: OpenVR_LIBRARY OpenVR_INCLUDE_DIR)
  Call Stack (most recent call first):
    /path/to/cmake-3.21.4-linux-x86_64/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
    /path/to/iMSTK-build/install/lib/cmake/vtk-9.0/FindOpenVR.cmake:45 (find_package_handle_standard_args)
    /path/to/iMSTK-build/install/lib/cmake/vtk-9.0/VTK-vtk-module-find-packages.cmake:162 (find_package)
    /path/to/iMSTK-build/install/lib/cmake/vtk-9.0/vtk-config.cmake:131 (include)
    /path/to/cmake-3.21.4-linux-x86_64/share/cmake-3.21/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
    /path/to/iMSTK-build/Innerbuild/iMSTKConfig.cmake:150 (find_dependency)
    CMakeLists.txt:8 (find_package)

[1] https://gitlab.kitware.com/iMSTK/imstkexternalprojecttemplate/-/tree/master/iMSTKProject
---
 CMakeLists.txt | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1ac566f1f..145299b6a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -502,8 +502,11 @@ else()
   set(CONFIG_CODE "${CONFIG_CODE}set(Libusb_LIBRARY_libusb-1.0-DEBUG \"${Libusb_LIBRARY_libusb-1.0-DEBUG}\")\n")
 endif()
 
-set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_INCLUDE_DIR \"${OpenVR_INCLUDE_DIR}\")\n")
-set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_LIBRARY \"${OpenVR_LIBRARY}\")\n")
+set(CONFIG_CODE "${CONFIG_CODE}# Add variables to CACHE to workaround issue related to use of\n")
+set(CONFIG_CODE "${CONFIG_CODE}# mark_as_advanced command in FindOpenVR and described in CMP0102\n")
+set(CONFIG_CODE "${CONFIG_CODE}# See https://cmake.org/cmake/help/latest/policy/CMP0102.html\n")
+set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_INCLUDE_DIR \"${OpenVR_INCLUDE_DIR}\" CACHE PATH \"\")\n")
+set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_LIBRARY \"${OpenVR_LIBRARY}\" CACHE FILEPATH \"\")\n")
 set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_ROOT_DIR \"${OpenVR_ROOT_DIR}\")\n")
 set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_LIB_DIR \"${OpenVR_LIB_DIR}\")\n")
 
-- 
GitLab