From 0a8e323938337fb01d29acaa110c517351b1e93f Mon Sep 17 00:00:00 2001 From: Squareys Date: Thu, 21 Apr 2016 09:14:22 +0200 Subject: [PATCH] Vk: Add to cmake project Signed-off-by: Squareys --- src/Magnum/CMakeLists.txt | 5 +++ src/Magnum/Vk/CMakeLists.txt | 66 ++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 src/Magnum/Vk/CMakeLists.txt diff --git a/src/Magnum/CMakeLists.txt b/src/Magnum/CMakeLists.txt index ac71a6b53..782c7b9a8 100644 --- a/src/Magnum/CMakeLists.txt +++ b/src/Magnum/CMakeLists.txt @@ -323,6 +323,11 @@ if(WITH_TEXTURETOOLS) add_subdirectory(TextureTools) endif() +# Vulkan stuff +if(TARGET_VULKAN) + add_subdirectory(Vk) +endif() + if(BUILD_TESTS) # Library with graceful assert for testing add_library(MagnumMathTestLib ${SHARED_OR_STATIC} diff --git a/src/Magnum/Vk/CMakeLists.txt b/src/Magnum/Vk/CMakeLists.txt new file mode 100644 index 000000000..862904385 --- /dev/null +++ b/src/Magnum/Vk/CMakeLists.txt @@ -0,0 +1,66 @@ +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 +# Vladimír Vondruš +# Copyright © 2016 Jonathan Hale +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +# Files shared between main library and unit test library +find_package(Vulkan REQUIRED) + +set(MagnumVk_SRCS + Context.cpp) + +set(MagnumVk_HEADERS + Context.h + + visibility.h) + +set(MagnumVkTest_HEADERS + Test/AbstractVulkanTester.h) + +# Header files to display in project view of IDEs only +set(MagnumVk_PRIVATE_HEADERS "") + +# Magnum Vulkan library +add_library(MagnumVk ${SHARED_OR_STATIC} + ${MagnumVk_SRCS} + ${MagnumVk_HEADERS} + ${MagnumVk_PRIVATE_HEADERS}) +set_target_properties(MagnumVk PROPERTIES DEBUG_POSTFIX "-d") +if(BUILD_STATIC_PIC) + set_target_properties(MagnumVk PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() +target_link_libraries(MagnumVk Magnum Vulkan::Vulkan) + +install(TARGETS MagnumVk + RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} + LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} + ARCHIVE DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) +install(FILES ${MagnumVk_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Vk) + +if(BUILD_TESTS) + add_subdirectory(Test) +endif() + +# Magnum Shaders library for superprojects +add_library(Magnum::Vk ALIAS MagnumVk)