# Copyright 2018 The Amber Authors. # # 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. # Include this file to find Dawn and and set up compilation and linking. ## Example usage: ## ## include(find_dawn.cmake) ## # Set HAVE_DAWN to 1 if we have Dawn, and 0 otherwise. ## add_definitions(-DHAVE_DAWN=$) ## # Set up link dependencies. ## if (${Dawn_FOUND}) ## target_link_libraries(mylib Dawn::dawn_native) ## endif() ## # Exports these settings to the includer: # Boolean Dawn_FOUND indicates whether we found Dawn. # If Dawn was found, then library dependencies for Dawn::dawn and Dawn::dawn_native # will be set up. set(Dawn_FOUND FALSE) # Setup via CMake setting variables: # # Separately specify the directory locations of the Dawn headers and # the dawn_native library. # # -DDawn_INCLUDE_DIR= # -DDawn_GEN_INCLUDE_DIR= # -DDawn_LIBRARY_DIR= find_path(Dawn_INCLUDE_DIR NAMES dawn/dawn_export.h PATHS "${Dawn_INCLUDE_DIR}" ) find_path(Dawn_GEN_INCLUDE_DIR NAMES dawn/dawn.h dawn/dawncpp.h PATHS "${Dawn_GEN_INCLUDE_DIR}" ) find_library(Dawn_LIBRARY NAMES dawn PATHS "${Dawn_LIBRARY_DIR}" ) find_library(Dawn_native_LIBRARY NAMES dawn_native PATHS "${Dawn_LIBRARY_DIR}" ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Dawn DEFAULT_MSG Dawn_INCLUDE_DIR Dawn_GEN_INCLUDE_DIR Dawn_LIBRARY Dawn_native_LIBRARY ) if(${Dawn_FOUND} AND NOT TARGET Dawn::dawn) add_library(Dawn::dawn UNKNOWN IMPORTED) set_target_properties(Dawn::dawn PROPERTIES IMPORTED_LOCATION "${Dawn_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${Dawn_INCLUDE_DIR};${Dawn_GEN_INCLUDE_DIR}") endif() if(${Dawn_FOUND} AND NOT TARGET Dawn::dawn_native) add_library(Dawn::dawn_native UNKNOWN IMPORTED) set_target_properties(Dawn::dawn_native PROPERTIES IMPORTED_LOCATION "${Dawn_native_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${Dawn_INCLUDE_DIR};${Dawn_GEN_INCLUDE_DIR}") endif() if (${Dawn_FOUND}) message(STATUS "Amber: Using Dawn headers at ${Dawn_INCLUDE_DIR}") message(STATUS "Amber: Using Dawn generated headers at ${Dawn_GEN_INCLUDE_DIR}") message(STATUS "Amber: Using Dawn library ${Dawn_LIBRARY}") message(STATUS "Amber: Using Dawn native library ${Dawn_native_LIBRARY}") else() message(STATUS "Amber: Did not find Dawn") endif()