# ~~~ # Copyright (c) 2018 Valve Corporation # Copyright (c) 2018 LunarG, Inc. # # 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. # ~~~ # Set up common settings for building all demos on Apple platforms. # Source for the MoltenVK ICD library and JSON file set(MOLTENVK_DIR ${MOLTENVK_REPO_ROOT}) # MoltenVK JSON File execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/staging-json) execute_process(COMMAND sed -e "/\"library_path\":/s$:[[:space:]]*\"[[:space:]]*[\\.\\/]*$: \"..\\/..\\/..\\/Frameworks\\/$" ${MOLTENVK_DIR}/MoltenVK/icd/MoltenVK_icd.json OUTPUT_FILE ${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json) # ~~~ # Modify the ICD JSON file to adjust the library path. # The ICD JSON file goes in the Resources/vulkan/icd.d directory, so adjust the # library_path to the relative path to the Frameworks directory in the bundle. # The regex does: substitute ':"' with: # ': "../../../Frameworks/' # ~~~ add_custom_target(MoltenVK_icd-staging-json ALL COMMAND mkdir -p ${CMAKE_BINARY_DIR}/staging-json COMMAND sed -e "/\"library_path\":/s$:[[:space:]]*\"[[:space:]]*[\\.\\/]*$: \"..\\/..\\/..\\/Frameworks\\/$" ${MOLTENVK_DIR}/MoltenVK/icd/MoltenVK_icd.json > ${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json VERBATIM DEPENDS "${MOLTENVK_DIR}/MoltenVK/icd/MoltenVK_icd.json") set_source_files_properties(${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json PROPERTIES GENERATED TRUE) find_library(COCOA NAMES Cocoa) # Locate Interface Builder Tool, needed to build things like Storyboards outside of Xcode. if(NOT ${CMAKE_GENERATOR} MATCHES "^Xcode.*") # Make sure we can find the 'ibtool' program. If we can NOT find it we skip generation of this project. find_program(IBTOOL ibtool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin") if(${IBTOOL} STREQUAL "IBTOOL-NOTFOUND") message(SEND_ERROR "ibtool can not be found and is needed to compile the .xib files. " "It should have been installed with the Apple developer tools. " "The default system paths were searched in addition to ${OSX_DEVELOPER_ROOT}/usr/bin.") endif() endif()