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)