PackageRoot.cmake 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. set(__UNDOCUMENTED_CMAKE_FIND_PACKAGE_ROOT 1)
  2. cmake_policy(SET CMP0057 NEW)
  3. list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_SOURCE_DIR}/PackageRoot)
  4. set(PackageRoot_BASE ${CMAKE_CURRENT_SOURCE_DIR}/PackageRoot)
  5. function(PrintPath label path)
  6. string(REPLACE "${PackageRoot_BASE}" "<base>" out "${path}")
  7. message("${label}${out}")
  8. endfunction()
  9. macro(CleanUpPackageRootTest)
  10. unset(Foo_ROOT)
  11. unset(ENV{Foo_ROOT})
  12. unset(FOO_TEST_FILE_FOO)
  13. unset(FOO_TEST_FILE_ZOT)
  14. unset(FOO_TEST_PATH_FOO)
  15. unset(FOO_TEST_PATH_ZOT)
  16. unset(FOO_TEST_PROG_FOO)
  17. unset(FOO_TEST_FILE_FOO CACHE)
  18. unset(FOO_TEST_FILE_ZOT CACHE)
  19. unset(FOO_TEST_PATH_FOO CACHE)
  20. unset(FOO_TEST_PATH_ZOT CACHE)
  21. unset(FOO_TEST_PROG_FOO CACHE)
  22. endmacro()
  23. macro(RunPackageRootTest)
  24. message("----------")
  25. PrintPath("Foo_ROOT :" "${Foo_ROOT}")
  26. PrintPath("ENV{Foo_ROOT} :" "$ENV{Foo_ROOT}")
  27. message("")
  28. find_package(Foo)
  29. message("find_package(Foo)")
  30. PrintPath("FOO_TEST_FILE_FOO :" "${FOO_TEST_FILE_FOO}")
  31. PrintPath("FOO_TEST_FILE_ZOT :" "${FOO_TEST_FILE_ZOT}")
  32. PrintPath("FOO_TEST_PATH_FOO :" "${FOO_TEST_PATH_FOO}")
  33. PrintPath("FOO_TEST_PATH_ZOT :" "${FOO_TEST_PATH_ZOT}")
  34. PrintPath("FOO_TEST_PROG_FOO :" "${FOO_TEST_PROG_FOO}")
  35. CleanUpPackageRootTest()
  36. message("")
  37. endmacro()
  38. RunPackageRootTest()
  39. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  40. RunPackageRootTest()
  41. set(ENV{Foo_ROOT} ${PackageRoot_BASE}/foo/env_root)
  42. RunPackageRootTest()
  43. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  44. set(ENV{Foo_ROOT} ${PackageRoot_BASE}/foo/env_root)
  45. RunPackageRootTest()