]> O.S.I.I.S - jp/vkvg.git/commitdiff
add FindVulkan.cmake to address cmake path finding problems
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Sun, 6 May 2018 06:36:20 +0000 (08:36 +0200)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Sun, 6 May 2018 06:36:20 +0000 (08:36 +0200)
CMakeLists.txt
cmake/FindVulkan.cmake [new file with mode: 0644]
vkh

index 4957945046e97b6aa7a27e0996aac759074aa7dc..1b98740d07ef4abb81f1d04d6160b6dbe8f741df 100644 (file)
@@ -18,8 +18,8 @@ ENDIF()
 set(VULKAN_SDK "$ENV{VULKAN_SDK}" CACHE STRING "LunarG Vulkan SDK path")
 if (VULKAN_SDK)
                set(ENV{VULKAN_SDK} ${VULKAN_SDK})
+               SET(ENV{VK_LAYER_PATH} "${VULKAN_SDK}/etc/explicit_layer.d")
 endif ()
-SET(ENV{VK_LAYER_PATH} "${VULKAN_SDK}/etc/explicit_layer.d")
 
 MESSAGE(STATUS "VULKAN_SDK = $ENV{VULKAN_SDK}")
 MESSAGE(STATUS "VK_LAYER_PATH = $ENV{VK_LAYER_PATH}")
diff --git a/cmake/FindVulkan.cmake b/cmake/FindVulkan.cmake
new file mode 100644 (file)
index 0000000..64a6b33
--- /dev/null
@@ -0,0 +1,88 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#.rst:
+# FindVulkan
+# ----------
+#
+# Try to find Vulkan
+#
+# IMPORTED Targets
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines :prop_tgt:`IMPORTED` target ``Vulkan::Vulkan``, if
+# Vulkan has been found.
+#
+# Result Variables
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines the following variables::
+#
+#   Vulkan_FOUND          - True if Vulkan was found
+#   Vulkan_INCLUDE_DIRS   - include directories for Vulkan
+#   Vulkan_LIBRARIES      - link against this library to use Vulkan
+#
+# The module will also define two cache variables::
+#
+#   Vulkan_INCLUDE_DIR    - the Vulkan include directory
+#   Vulkan_LIBRARY        - the path to the Vulkan library
+#
+
+if(WIN32)
+  find_path(Vulkan_INCLUDE_DIR
+    NAMES vulkan/vulkan.h
+    PATHS
+      "$ENV{VULKAN_SDK}/Include"
+    )
+
+  if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+    find_library(Vulkan_LIBRARY
+      NAMES vulkan-1
+      PATHS
+        "$ENV{VULKAN_SDK}/Lib"
+        "$ENV{VULKAN_SDK}/Bin"
+        )
+  elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+    find_library(Vulkan_LIBRARY
+      NAMES vulkan-1
+      PATHS
+        "$ENV{VULKAN_SDK}/Lib32"
+        "$ENV{VULKAN_SDK}/Bin32"
+        NO_SYSTEM_ENVIRONMENT_PATH
+        )
+  endif()
+else()
+    find_path(Vulkan_INCLUDE_DIR
+      NAMES vulkan/vulkan.h
+      PATHS
+      "$ENV{VULKAN_SDK}/include" NO_DEFAULT_PATH)
+    find_library(Vulkan_LIBRARY
+      NAMES vulkan
+      PATHS
+      "$ENV{VULKAN_SDK}/lib" NO_DEFAULT_PATH)
+    find_path(Vulkan_INCLUDE_DIR
+      NAMES vulkan/vulkan.h
+      PATHS
+      "$ENV{VULKAN_SDK}/include")
+    find_library(Vulkan_LIBRARY
+      NAMES vulkan
+      PATHS
+      "$ENV{VULKAN_SDK}/lib")
+endif()
+
+set(Vulkan_LIBRARIES ${Vulkan_LIBRARY})
+set(Vulkan_INCLUDE_DIRS ${Vulkan_INCLUDE_DIR})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Vulkan
+  DEFAULT_MSG
+  Vulkan_LIBRARY Vulkan_INCLUDE_DIR)
+
+mark_as_advanced(Vulkan_INCLUDE_DIR Vulkan_LIBRARY)
+
+if(Vulkan_FOUND AND NOT TARGET Vulkan::Vulkan)
+  add_library(Vulkan::Vulkan UNKNOWN IMPORTED)
+  set_target_properties(Vulkan::Vulkan PROPERTIES
+    IMPORTED_LOCATION "${Vulkan_LIBRARIES}"
+    INTERFACE_INCLUDE_DIRECTORIES "${Vulkan_INCLUDE_DIRS}")
+endif()
diff --git a/vkh b/vkh
index 2f95a96a10b27bed90961f0e2b8390beb7b99f58..3c56e7f095f2eb60e5f3ada2e6805383ec430508 160000 (submodule)
--- a/vkh
+++ b/vkh
@@ -1 +1 @@
-Subproject commit 2f95a96a10b27bed90961f0e2b8390beb7b99f58
+Subproject commit 3c56e7f095f2eb60e5f3ada2e6805383ec430508