2020-08-04 12:25:34 +01:00
|
|
|
# Copyright (c) 2019-2021 Arm Limited.
|
2019-05-24 15:57:50 +01:00
|
|
|
#
|
|
|
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
|
#
|
|
|
|
|
# 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.
|
|
|
|
|
|
|
|
|
|
cmake_minimum_required(VERSION 2.8.11)
|
|
|
|
|
project(VkLayer_window_system_integration CXX)
|
|
|
|
|
|
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
|
pkg_check_modules(VULKAN_PKG_CONFIG vulkan)
|
|
|
|
|
|
2020-08-04 12:25:34 +01:00
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pthread")
|
2020-07-10 10:28:51 +01:00
|
|
|
if (DEFINED DEBUG)
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0")
|
|
|
|
|
endif()
|
2019-05-24 15:57:50 +01:00
|
|
|
|
2020-08-04 12:25:34 +01:00
|
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
|
|
|
|
|
|
2019-05-24 15:57:50 +01:00
|
|
|
if(NOT DEFINED VULKAN_CXX_INCLUDE)
|
|
|
|
|
set(VULKAN_CXX_INCLUDE ${VULKAN_PKG_CONFIG_INCLUDEDIR})
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(DEFINED VULKAN_CXX_INCLUDE)
|
|
|
|
|
message(STATUS "Using Vulkan include directories: ${VULKAN_CXX_INCLUDE}")
|
|
|
|
|
separate_arguments(VULKAN_CXX_INCLUDE)
|
|
|
|
|
else()
|
|
|
|
|
message(FATAL_ERROR "Either vulkan.pc must be available or VULKAN_CXX_INCLUDE must be defined")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
add_library(${PROJECT_NAME} SHARED
|
|
|
|
|
layer/layer.cpp
|
|
|
|
|
layer/private_data.cpp
|
|
|
|
|
layer/surface_api.cpp
|
|
|
|
|
layer/swapchain_api.cpp
|
|
|
|
|
util/timed_semaphore.cpp
|
2020-07-10 10:28:51 +01:00
|
|
|
util/custom_allocator.cpp
|
2020-08-04 12:25:34 +01:00
|
|
|
util/extension_list.cpp
|
2019-05-24 15:57:50 +01:00
|
|
|
wsi/swapchain_base.cpp
|
2019-11-21 15:23:59 +00:00
|
|
|
wsi/wsi_factory.cpp
|
2019-05-24 15:57:50 +01:00
|
|
|
wsi/headless/surface_properties.cpp
|
|
|
|
|
wsi/headless/swapchain.cpp)
|
|
|
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 11)
|
|
|
|
|
target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR} ${VULKAN_CXX_INCLUDE})
|