macOS/iOS fixes plus other generic fixes for clang and validation warnings (#1117)
* Fix clang Objective-C++ flags for macOS command line builds * Fix getAssetPath() and getShaderBasePath() for macOS command line builds * Protect debugUtilsMessageCallback() from failing when pMessageIdName is NULL * Fix a few clang function override and mismatched type warnings * Fix validation layer warnings on exit for computeraytracing example * Fix regression in text visibility toggle for textOverlay example * Support VK_USE_PLATFORM_METAL_EXT vs. deprecated VK_USE_PLATFORM_MACOS_MVK / DVK_USE_PLATFORM_IOS_MVK * Check dynamic state features before enabling capabilities in dynamicstate example * Fix vkCmdDraw() vertexCount argument (PARTICLE_COUNT) in particlesystem example * Update examples list and restore benchmarking script (to top level) * Fix validation warning in descriptorindexing example * Fix device max recursion depth validation warnings in ray tracing examples * Fix OpenMP build settings for texture3d example on all platforms * Update and simplify build instructions for macOS * Update CI script with correct library path for libomp on macOS x86_64 * Update CI scipt to install libomp prior to macOS builds * Trying one more time to get the CI script working for macOS libomp * Fix vertexCount argument using calculated size in particlesystem example * Fix combined image descriptor offset calculation in descriptorbuffer example * macOS: Support non-system level Vulkan SDK installs, with fallback to MoltenVK library
This commit is contained in:
parent
4a0c8b8f23
commit
bdfd4709ff
29 changed files with 320 additions and 88 deletions
|
|
@ -91,7 +91,33 @@ ELSEIF(LINUX)
|
|||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_XCB_KHR")
|
||||
ENDIF(USE_D2D_WSI)
|
||||
ELSEIF(APPLE)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_MACOS_MVK -DVK_EXAMPLE_XCODE_GENERATED")
|
||||
IF (CMAKE_GENERATOR MATCHES "Xcode")
|
||||
# Suppress regeneration for Xcode since environment variables will be lost if not set in Xcode locations/custom paths
|
||||
set(CMAKE_SUPPRESS_REGENERATION ON)
|
||||
set(CMAKE_XCODE_GENERATE_SCHEME ON)
|
||||
IF (Vulkan_FOUND)
|
||||
# If the Vulkan loader was found and its environment variables are defined, make them available within Xcode schemes
|
||||
IF (DEFINED ENV{VK_ADD_LAYER_PATH})
|
||||
set(CMAKE_XCODE_SCHEME_ENVIRONMENT "${CMAKE_XCODE_SCHEME_ENVIRONMENT};VK_ADD_LAYER_PATH=$ENV{VK_ADD_LAYER_PATH}")
|
||||
ENDIF()
|
||||
IF (DEFINED ENV{VK_ICD_FILENAMES})
|
||||
set(CMAKE_XCODE_SCHEME_ENVIRONMENT "${CMAKE_XCODE_SCHEME_ENVIRONMENT};VK_ICD_FILENAMES=$ENV{VK_ICD_FILENAMES}")
|
||||
ENDIF()
|
||||
IF (DEFINED ENV{VK_DRIVER_FILES})
|
||||
set(CMAKE_XCODE_SCHEME_ENVIRONMENT "${CMAKE_XCODE_SCHEME_ENVIRONMENT};VK_DRIVER_FILES=$ENV{VK_DRIVER_FILES}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF (NOT Vulkan_FOUND)
|
||||
# If the Vulkan loader was not found, then look for libMoltenVK.dylib in the Vulkan SDK and legacy MoltenVK locations
|
||||
set(CMAKE_FIND_FRAMEWORK NEVER)
|
||||
find_library(Vulkan_LIBRARY NAMES MoltenVK HINTS "$ENV{VULKAN_SDK}/lib" "$ENV{VULKAN_SDK}/dylib/macOS" REQUIRED)
|
||||
IF (Vulkan_LIBRARY)
|
||||
set(Vulkan_FOUND ON)
|
||||
MESSAGE(STATUS "Using MoltenVK Vulkan Portability library")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_METAL_EXT -DVK_EXAMPLE_XCODE_GENERATED")
|
||||
# Todo : android?
|
||||
ENDIF(WIN32)
|
||||
|
||||
|
|
@ -138,11 +164,11 @@ endif()
|
|||
IF(MSVC)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
|
||||
ELSEIF(APPLE)
|
||||
#if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
# SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-arc -ObjC++")
|
||||
#ELSE()
|
||||
IF(CMAKE_GENERATOR MATCHES "Makefiles" OR CMAKE_GENERATOR MATCHES "Ninja")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-arc -ObjC++")
|
||||
ELSE() # SRS - use objective-c++ language flag vs. ObjC++ for Xcode builds
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-arc -xobjective-c++")
|
||||
#ENDIF()
|
||||
ENDIF()
|
||||
ENDIF(MSVC)
|
||||
|
||||
IF(WIN32)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue