MSVC cleanup

MSVC compiler can be used with Ninja as well. However, the current
CMake code doesn't account for it.
This commit is contained in:
Juan Ramos 2022-11-29 10:25:24 -07:00
parent 5d969741c1
commit 0b7c427971

View File

@ -1,19 +1,17 @@
set(VMA_LIBRARY_SOURCE_FILES
VmaUsage.cpp
VmaUsage.h
"${PROJECT_SOURCE_DIR}/include/vk_mem_alloc.h"
)
# Visual Studio only debugger symbols
if(WIN32 AND ${CMAKE_GENERATOR} MATCHES "Visual Studio.*")
set(VMA_LIBRARY_SOURCE_FILES ${VMA_LIBRARY_SOURCE_FILES} vk_mem_alloc.natvis)
endif()
set(CMAKE_DEBUG_POSTFIX d) set(CMAKE_DEBUG_POSTFIX d)
set(CMAKE_RELWITHDEBINFO_POSTFIX rd) set(CMAKE_RELWITHDEBINFO_POSTFIX rd)
set(CMAKE_MINSIZEREL_POSTFIX s) set(CMAKE_MINSIZEREL_POSTFIX s)
add_library(VulkanMemoryAllocator ${VMA_LIBRARY_SOURCE_FILES}) add_library(VulkanMemoryAllocator
VmaUsage.cpp
VmaUsage.h
${PROJECT_SOURCE_DIR}/include/vk_mem_alloc.h
)
if (MSVC)
# Provides MSVC users nicer debugging support
target_sources(VulkanMemoryAllocator PRIVATE ${CMAKE_CURRENT_LIST_DIR}/vk_mem_alloc.natvis)
endif()
set_target_properties( set_target_properties(
VulkanMemoryAllocator PROPERTIES VulkanMemoryAllocator PROPERTIES
@ -63,20 +61,19 @@ if(VMA_BUILD_SAMPLE)
add_executable(VmaSample ${VMA_SAMPLE_SOURCE_FILES}) add_executable(VmaSample ${VMA_SAMPLE_SOURCE_FILES})
add_dependencies(VmaSample VulkanMemoryAllocator VmaSampleShaders) add_dependencies(VmaSample VulkanMemoryAllocator VmaSampleShaders)
# Visual Studio specific settings if(MSVC)
if(${CMAKE_GENERATOR} MATCHES "Visual Studio.*")
# Use Unicode instead of multibyte set # Use Unicode instead of multibyte set
add_compile_definitions(UNICODE _UNICODE) add_compile_definitions(UNICODE _UNICODE)
# Set VmaSample as startup project
set_property(DIRECTORY "${PROJECT_SOURCE_DIR}" PROPERTY VS_STARTUP_PROJECT "VmaSample")
# Add C++ warnings and security checks # Add C++ warnings and security checks
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /permissive- /sdl /W3") add_compile_options(/permissive- /sdl /W3)
# Enable multithreaded compiling # Enable multithreaded compiling
target_compile_options(VmaSample PRIVATE "/MP") target_compile_options(VmaSample PRIVATE "/MP")
# Set VmaSample as startup project
set_property(DIRECTORY "${PROJECT_SOURCE_DIR}" PROPERTY VS_STARTUP_PROJECT "VmaSample")
# Set working directory for Visual Studio debugger # Set working directory for Visual Studio debugger
set_target_properties( set_target_properties(
VmaSample VmaSample