cmake_minimum_required(VERSION 3.14)
enable_language(C)

# test matrix
#
# A :=
#                        | no cmake syntax | cmake syntax |
# -----------------------+-----------------+--------------+
# absolute install RPATH |       exe1      |     exe4     |
# relative install RPATH |       exe2      |     exe3     |
#
# all := A * CMP005_OLD + A * CMP0095_WARN + A * CMP0095_NEW

add_library(utils SHARED obj1.c)
set(targets utils)

set(exe1_install_rpath "/foo/bar")
set(exe2_install_rpath "\$ORIGIN/../lib")
set(exe3_install_rpath "\${ORIGIN}/../lib")
set(exe4_install_rpath "/foo/bar/\${PLATFORM}")

macro(A_CMP0095 policy_value)
  cmake_policy(PUSH)
  if(NOT "x${policy_value}x" STREQUAL "xWARNx")
    cmake_policy(SET CMP0095 ${policy_value})
  endif()
  string(TOLOWER "${policy_value}" p)

  # exe1: absolute install RPATH, no cmake syntax
  set(case "exe1")
  set(target "${case}_cmp0095_${p}")
  list(APPEND targets ${target})
  add_executable(${target} main.c)
  target_link_libraries(${target} PRIVATE utils)
  set_target_properties(${target} PROPERTIES
    INSTALL_RPATH "${${case}_install_rpath}")

  # exe2: relative install RPATH, no cmake syntax
  set(case "exe2")
  set(target "${case}_cmp0095_${p}")
  list(APPEND targets ${target})
  add_executable(${target} main.c)
  target_link_libraries(${target} PRIVATE utils)
  set_target_properties(${target} PROPERTIES
    INSTALL_RPATH "${${case}_install_rpath}")

  # exe3: relative install RPATH, cmake syntax
  set(case "exe3")
  set(target "${case}_cmp0095_${p}")
  list(APPEND targets ${target})
  add_executable(${target} main.c)
  target_link_libraries(${target} PRIVATE utils)
  set_target_properties(${target} PROPERTIES
    INSTALL_RPATH "${${case}_install_rpath}")

  # exe4: absolute install RPATH, cmake syntax
  set(case "exe4")
  set(target "${case}_cmp0095_${p}")
  list(APPEND targets ${target})
  add_executable(${target} main.c)
  target_link_libraries(${target} PRIVATE utils)
  set_target_properties(${target} PROPERTIES
    INSTALL_RPATH "${${case}_install_rpath}")

  cmake_policy(POP)
endmacro()

A_CMP0095("OLD")
A_CMP0095("WARN") # exe3 and exe4 are expected to issue an author warning
A_CMP0095("NEW")

install(TARGETS ${targets})
