# ~~~ # Copyright (c) 2014-2022 Valve Corporation # Copyright (c) 2014-2022 LunarG, Inc. # Copyright (c) 2019 Intel Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ~~~ # VkExtLayer_utils library ---------------------------------------------------------------------------------------------------------- # For Windows, we use a static lib because the Windows loader has a fairly restrictive loader search path that can't be easily # modified to point it to the same directory that contains the layers. TODO: This should not be a library -- in future, include # files directly in layers. add_definitions(-DNV_EXTENSIONS -DAMD_EXTENSIONS) if(ANNOTATED_SPEC_LINK) add_definitions(-DANNOTATED_SPEC_LINK=${ANNOTATED_SPEC_LINK}) endif() if(WIN32) add_definitions(-DVK_USE_PLATFORM_WIN32_KHR -DWIN32_LEAN_AND_MEAN -DNOMINMAX) if(MSVC) # Workaround for TR1 deprecation in Visual Studio 15.5 until Google Test is updated add_definitions(-D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING) # Allow Windows to use multiprocessor compilation add_compile_options(/MP) endif() elseif(ANDROID) add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR) elseif(APPLE) add_definitions(-DVK_USE_PLATFORM_MACOS_MVK) endif() if(WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES") # If MSVC, disable some signed/unsigned mismatch warnings. if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4267") endif() endif() set(TARGET_NAMES VkExtLayer_utils) add_library(VkExtLayer_utils STATIC ./allocator.cpp ./vk_format_utils.cpp ./vk_layer_config.cpp ./generated/vk_safe_struct.cpp ./generated/lvt_function_pointers.cpp) target_link_libraries(VkExtLayer_utils PUBLIC Vulkan::Headers) if(ANDROID) target_link_libraries(VkExtLayer_utils PUBLIC log) endif() if(WIN32) target_compile_definitions(VkExtLayer_utils PUBLIC _CRT_SECURE_NO_WARNINGS) endif() install(TARGETS VkExtLayer_utils DESTINATION ${CMAKE_INSTALL_LIBDIR}) set_target_properties(VkExtLayer_utils PROPERTIES LINKER_LANGUAGE CXX) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/generated)