1*e7b1675dSTing-Kang Chang# Copyright 2019 Google LLC 2*e7b1675dSTing-Kang Chang# 3*e7b1675dSTing-Kang Chang# Licensed under the Apache License, Version 2.0 (the "License"); 4*e7b1675dSTing-Kang Chang# you may not use this file except in compliance with the License. 5*e7b1675dSTing-Kang Chang# You may obtain a copy of the License at 6*e7b1675dSTing-Kang Chang# 7*e7b1675dSTing-Kang Chang# http://www.apache.org/licenses/LICENSE-2.0 8*e7b1675dSTing-Kang Chang# 9*e7b1675dSTing-Kang Chang# Unless required by applicable law or agreed to in writing, software 10*e7b1675dSTing-Kang Chang# distributed under the License is distributed on an "AS IS" BASIS, 11*e7b1675dSTing-Kang Chang# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*e7b1675dSTing-Kang Chang# See the License for the specific language governing permissions and 13*e7b1675dSTing-Kang Chang# limitations under the License. 14*e7b1675dSTing-Kang Chang 15*e7b1675dSTing-Kang Chang# Create an alias for SOURCE, called DESTINATION. 16*e7b1675dSTing-Kang Chang# 17*e7b1675dSTing-Kang Chang# On platforms that support them, this rule will effectively create a symlink. 18*e7b1675dSTing-Kang Chang# 19*e7b1675dSTing-Kang Chang# SOURCE may be relative to CMAKE_CURRENT_SOURCE_DIR, or absolute. 20*e7b1675dSTing-Kang Chang# DESTINATION may relative to CMAKE_CURRENT_BINARY_DIR, or absolute. 21*e7b1675dSTing-Kang Chang# 22*e7b1675dSTing-Kang Chang# Adapted from https://github.com/google/binexport/blob/master/util.cmake 23*e7b1675dSTing-Kang Changfunction(add_directory_alias SOURCE DESTINATION) 24*e7b1675dSTing-Kang Chang get_filename_component(_destination_parent "${DESTINATION}" DIRECTORY) 25*e7b1675dSTing-Kang Chang file(MAKE_DIRECTORY "${_destination_parent}") 26*e7b1675dSTing-Kang Chang 27*e7b1675dSTing-Kang Chang if (WIN32) 28*e7b1675dSTing-Kang Chang file(TO_NATIVE_PATH "${SOURCE}" _native_source) 29*e7b1675dSTing-Kang Chang file(TO_NATIVE_PATH "${DESTINATION}" _native_destination) 30*e7b1675dSTing-Kang Chang execute_process(COMMAND $ENV{ComSpec} /c mklink /J "${_native_destination}" "${_native_source}" ERROR_QUIET) 31*e7b1675dSTing-Kang Chang else() 32*e7b1675dSTing-Kang Chang execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${SOURCE}" "${DESTINATION}") 33*e7b1675dSTing-Kang Chang endif() 34*e7b1675dSTing-Kang Changendfunction(add_directory_alias) 35