[Cmake-commits] CMake branch, next, updated. v3.6.0-rc1-83-gd05f196

Matthaus G. Chajdas cmake at anteru.net
Mon Jun 6 11:31:31 EDT 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  d05f19671b8a98ec6c258efc1de1ef4786403b3c (commit)
       via  f352b0d4508d02e037d154ba855b9b95bc504cfc (commit)
      from  8a1e2f6dbf35f45b4ac38e4fc5817340337eb528 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d05f19671b8a98ec6c258efc1de1ef4786403b3c
commit d05f19671b8a98ec6c258efc1de1ef4786403b3c
Merge: 8a1e2f6 f352b0d
Author:     Matthaus G. Chajdas <cmake at anteru.net>
AuthorDate: Mon Jun 6 11:31:28 2016 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Jun 6 11:31:28 2016 -0400

    Merge topic 'add-FindVulkan' into next
    
    f352b0d4 Add FindVulkan.cmake.


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f352b0d4508d02e037d154ba855b9b95bc504cfc
commit f352b0d4508d02e037d154ba855b9b95bc504cfc
Author:     Matthäus G. Chajdas <cmake at anteru.net>
AuthorDate: Sat Jun 4 20:48:23 2016 +0200
Commit:     Matthäus G. Chajdas <cmake at anteru.net>
CommitDate: Mon Jun 6 17:28:20 2016 +0200

    Add FindVulkan.cmake.
    
    This adds FindVulkan with corresponding tests.

diff --git a/Help/module/FindVulkan.rst b/Help/module/FindVulkan.rst
new file mode 100644
index 0000000..adf824e
--- /dev/null
+++ b/Help/module/FindVulkan.rst
@@ -0,0 +1 @@
+.. cmake-module:: ../../Modules/FindVulkan.cmake
diff --git a/Help/release/dev/FindVulkan.rst b/Help/release/dev/FindVulkan.rst
new file mode 100644
index 0000000..bd61e02
--- /dev/null
+++ b/Help/release/dev/FindVulkan.rst
@@ -0,0 +1,4 @@
+FindVulkan
+----------
+
+* The :module:`FindVulkan` module has been added.
diff --git a/Modules/FindVulkan.cmake b/Modules/FindVulkan.cmake
new file mode 100644
index 0000000..b335f5f
--- /dev/null
+++ b/Modules/FindVulkan.cmake
@@ -0,0 +1,85 @@
+#.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
+#
+
+#=============================================================================
+# Copyright 2016 Matthaeus G. Chajdas
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+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}/Bin")
+  elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+    find_library(Vulkan_LIBRARY
+      NAMES vulkan-1
+      PATHS
+        "$ENV{VULKAN_SDK}/Bin32")
+  endif()
+else()
+    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/Tests/FindVulkan/CMakeLists.txt b/Tests/FindVulkan/CMakeLists.txt
new file mode 100644
index 0000000..46ce1c6
--- /dev/null
+++ b/Tests/FindVulkan/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_test(NAME FindVulkan.Test COMMAND
+  ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+  --build-and-test
+  "${CMake_SOURCE_DIR}/Tests/FindVulkan/Test"
+  "${CMake_BINARY_DIR}/Tests/FindVulkan/Test"
+  ${build_generator_args}
+  --build-project TestFindVulkan
+  --build-options ${build_options}
+  --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+  )
diff --git a/Tests/FindVulkan/Test/CMakeLists.txt b/Tests/FindVulkan/Test/CMakeLists.txt
new file mode 100644
index 0000000..0b13d53
--- /dev/null
+++ b/Tests/FindVulkan/Test/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 3.4)
+project(TestFindVulkan C)
+include(CTest)
+
+SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../)
+find_package(Vulkan REQUIRED)
+
+add_executable(test_tgt main.c)
+target_link_libraries(test_tgt Vulkan::Vulkan)
+add_test(NAME test_tgt COMMAND test_tgt)
+
+add_executable(test_var main.c)
+target_include_directories(test_var PRIVATE ${Vulkan_INCLUDE_DIRS})
+target_link_libraries(test_var PRIVATE ${Vulkan_LIBRARIES})
+add_test(NAME test_var COMMAND test_var)
diff --git a/Tests/FindVulkan/Test/main.c b/Tests/FindVulkan/Test/main.c
new file mode 100644
index 0000000..78dcb65
--- /dev/null
+++ b/Tests/FindVulkan/Test/main.c
@@ -0,0 +1,29 @@
+#include <vulkan/vulkan.h>
+
+int main()
+{
+  VkInstanceCreateInfo instanceCreateInfo = {};
+  instanceCreateInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
+
+  VkApplicationInfo applicationInfo = {};
+  applicationInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
+  applicationInfo.apiVersion = VK_API_VERSION_1_0;
+  applicationInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0);
+  applicationInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
+  applicationInfo.pApplicationName = "CMake Test application";
+  applicationInfo.pEngineName = "CMake Test Engine";
+
+  instanceCreateInfo.pApplicationInfo = &applicationInfo;
+
+  VkInstance instance = VK_NULL_HANDLE;
+  vkCreateInstance(&instanceCreateInfo, NULL, &instance);
+
+  // We can't assert here because in general vkCreateInstance will return an
+  // error if no driver is found - but if we get here, FindVulkan is working
+
+  if (instance != VK_NULL_HANDLE) {
+      vkDestroyInstance (instance, NULL);
+  }
+
+  return 0;
+}

-----------------------------------------------------------------------

Summary of changes:
 Help/module/FindVulkan.rst                      |    1 +
 Help/release/dev/FindVulkan.rst                 |    4 ++
 Modules/FindVulkan.cmake                        |   85 +++++++++++++++++++++++
 Tests/{FindOpenCL => FindVulkan}/CMakeLists.txt |    8 +--
 Tests/FindVulkan/Test/CMakeLists.txt            |   15 ++++
 Tests/FindVulkan/Test/main.c                    |   29 ++++++++
 6 files changed, 138 insertions(+), 4 deletions(-)
 create mode 100644 Help/module/FindVulkan.rst
 create mode 100644 Help/release/dev/FindVulkan.rst
 create mode 100644 Modules/FindVulkan.cmake
 copy Tests/{FindOpenCL => FindVulkan}/CMakeLists.txt (54%)
 create mode 100644 Tests/FindVulkan/Test/CMakeLists.txt
 create mode 100644 Tests/FindVulkan/Test/main.c


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list