xref: /aosp_15_r20/external/boringssl/src/cmake/paths.cmake (revision 8fb009dc861624b67b6cdb62ea21f0f22d0c584b)
1*8fb009dcSAndroid Build Coastguard Worker# binary_dir_relative_path sets outvar to
2*8fb009dcSAndroid Build Coastguard Worker# ${CMAKE_CURRENT_BINARY_DIR}/${cur_bin_dir_relative}, but expressed relative to
3*8fb009dcSAndroid Build Coastguard Worker# ${CMAKE_BINARY_DIR}.
4*8fb009dcSAndroid Build Coastguard Worker#
5*8fb009dcSAndroid Build Coastguard Worker# TODO(davidben): When we require CMake 3.20 or later, this can be replaced with
6*8fb009dcSAndroid Build Coastguard Worker# the built-in cmake_path(RELATIVE_PATH) function.
7*8fb009dcSAndroid Build Coastguard Workerfunction(binary_dir_relative_path cur_bin_dir_relative outvar)
8*8fb009dcSAndroid Build Coastguard Worker  string(LENGTH "${CMAKE_BINARY_DIR}/" root_dir_length)
9*8fb009dcSAndroid Build Coastguard Worker  string(SUBSTRING "${CMAKE_CURRENT_BINARY_DIR}/${cur_bin_dir_relative}" ${root_dir_length} -1 result)
10*8fb009dcSAndroid Build Coastguard Worker  set(${outvar} ${result} PARENT_SCOPE)
11*8fb009dcSAndroid Build Coastguard Workerendfunction()
12*8fb009dcSAndroid Build Coastguard Worker
13*8fb009dcSAndroid Build Coastguard Worker# copy_post_build causes targets in ${ARGN} to be copied to
14*8fb009dcSAndroid Build Coastguard Worker# ${CMAKE_CURRENT_BINARY_DIR}/${dir} after being built.
15*8fb009dcSAndroid Build Coastguard Workerfunction(copy_post_build dir)
16*8fb009dcSAndroid Build Coastguard Worker  foreach(target ${ARGN})
17*8fb009dcSAndroid Build Coastguard Worker    add_custom_command(
18*8fb009dcSAndroid Build Coastguard Worker      TARGET ${target}
19*8fb009dcSAndroid Build Coastguard Worker      POST_BUILD
20*8fb009dcSAndroid Build Coastguard Worker      COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/${dir}"
21*8fb009dcSAndroid Build Coastguard Worker      COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${target}> "${CMAKE_CURRENT_BINARY_DIR}/${dir}")
22*8fb009dcSAndroid Build Coastguard Worker  endforeach()
23*8fb009dcSAndroid Build Coastguard Workerendfunction()
24