Blob Blame Raw
From 473c6f22b469015ad54a1245f7bf9c9096f66591 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Date: Mon, 20 Nov 2017 14:04:25 +0100
Subject: [PATCH 2/4] Unbundle WiiUse

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
---
 CMakeLists.txt         |  8 ++--
 cmake/FindWiiUse.cmake | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 102 insertions(+), 5 deletions(-)
 create mode 100644 cmake/FindWiiUse.cmake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e29cb1336..fc1dcf787 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -185,10 +185,8 @@ include_directories("${PROJECT_SOURCE_DIR}/lib/irrlicht/include")
 # (at least on VS) irrlicht will find wiiuse io.h file because
 # of the added include directory.
 if(USE_WIIUSE)
-    if(WIIUSE_BUILD)
-        add_subdirectory("${PROJECT_SOURCE_DIR}/lib/wiiuse")
-    endif()
-    include_directories("${PROJECT_SOURCE_DIR}/lib/wiiuse")
+    find_package(WiiUse REQUIRED)
+    include_directories(${WIIUSE_INCLUDE_DIR})
 endif()
 
 # Set include paths
@@ -474,7 +472,7 @@ if(USE_WIIUSE)
             target_link_libraries(supertuxkart ${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib/wiiuse.lib)
         endif()
     else()
-        target_link_libraries(supertuxkart wiiuse bluetooth)
+        target_link_libraries(supertuxkart ${WIIUSE_LIBRARIES})
     endif()
     add_definitions(-DENABLE_WIIUSE)
 
diff --git a/cmake/FindWiiUse.cmake b/cmake/FindWiiUse.cmake
new file mode 100644
index 000000000..2657cbb60
--- /dev/null
+++ b/cmake/FindWiiUse.cmake
@@ -0,0 +1,99 @@
+# - try to find WiiUse library
+#
+# Cache Variables: (probably not for direct use in your scripts)
+#  WIIUSE_INCLUDE_DIR
+#  WIIUSE_LIBRARY
+#
+# Non-cache variables you might use in your CMakeLists.txt:
+#  WIIUSE_FOUND
+#  WIIUSE_INCLUDE_DIRS
+#  WIIUSE_LIBRARIES
+#  WIIUSE_RUNTIME_LIBRARIES - aka the dll for installing
+#  WIIUSE_RUNTIME_LIBRARY_DIRS
+#
+# Requires these CMake modules:
+#  FindPackageHandleStandardArgs (known included with CMake >=2.6.2)
+#
+# Original Author:
+# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
+# http://academic.cleardefinition.com
+# Iowa State University HCI Graduate Program/VRAC
+#
+# Copyright Iowa State University 2009-2010.
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+set(WIIUSE_ROOT_DIR
+	"${WIIUSE_ROOT_DIR}"
+	CACHE
+	PATH
+	"Directory to search for WiiUse")
+
+if(CMAKE_SIZEOF_VOID_P MATCHES "8")
+	set(_LIBSUFFIXES /lib64 /lib)
+else()
+	set(_LIBSUFFIXES /lib)
+endif()
+
+find_library(WIIUSE_LIBRARY
+	NAMES
+	wiiuse
+	PATHS
+	"${WIIUSE_ROOT_DIR}"
+	PATH_SUFFIXES
+	"${_LIBSUFFIXES}")
+
+get_filename_component(_libdir "${WIIUSE_LIBRARY}" PATH)
+
+find_path(WIIUSE_INCLUDE_DIR
+	NAMES
+	wiiuse.h
+	HINTS
+	"${_libdir}"
+	"${_libdir}/.."
+	PATHS
+	"${WIIUSE_ROOT_DIR}"
+	PATH_SUFFIXES
+	include/)
+
+set(_deps_check)
+if(WIN32)
+	find_file(WIIUSE_RUNTIME_LIBRARY
+		NAMES
+		wiiuse.dll
+		HINTS
+		"${_libdir}"
+		"${_libdir}/.."
+		PATH_SUFFIXES
+		bin)
+
+	set(WIIUSE_RUNTIME_LIBRARIES "${WIIUSE_RUNTIME_LIBRARY}")
+	get_filename_component(WIIUSE_RUNTIME_LIBRARY_DIRS
+		"${WIIUSE_RUNTIME_LIBRARY}"
+		PATH)
+	list(APPEND _deps_check WIIUSE_RUNTIME_LIBRARY)
+else()
+	set(WIIUSE_RUNTIME_LIBRARY "${WIIUSE_LIBRARY}")
+	set(WIIUSE_RUNTIME_LIBRARIES "${WIIUSE_RUNTIME_LIBRARY}")
+	get_filename_component(WIIUSE_RUNTIME_LIBRARY_DIRS
+		"${WIIUSE_LIBRARY}"
+		PATH)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(WiiUse
+	DEFAULT_MSG
+	WIIUSE_LIBRARY
+	WIIUSE_INCLUDE_DIR
+	${_deps_check})
+
+if(WIIUSE_FOUND)
+	set(WIIUSE_LIBRARIES "${WIIUSE_LIBRARY}")
+	set(WIIUSE_INCLUDE_DIRS "${WIIUSE_INCLUDE_DIR}")
+	mark_as_advanced(WIIUSE_ROOT_DIR)
+endif()
+
+mark_as_advanced(WIIUSE_INCLUDE_DIR
+	WIIUSE_LIBRARY
+	WIIUSE_RUNTIME_LIBRARY)