PackageRootNestedModule.cmake 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. cmake_policy(SET CMP0057 NEW)
  2. list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_SOURCE_DIR}/PackageRoot)
  3. set(PackageRoot_BASE ${CMAKE_CURRENT_SOURCE_DIR}/PackageRoot)
  4. function(PrintPath label path)
  5. string(REPLACE "${PackageRoot_BASE}" "<base>" out "${path}")
  6. message("${label}${out}")
  7. endfunction()
  8. macro(CleanUpPackageRootTest)
  9. unset(Foo_ROOT)
  10. unset(ENV{Foo_ROOT})
  11. unset(Bar_DIR)
  12. unset(BAR_CMAKE_FILE)
  13. unset(Bar_ROOT)
  14. unset(ENV{Bar_ROOT})
  15. unset(FOO_TEST_FILE_FOO)
  16. unset(FOO_TEST_FILE_ZOT)
  17. unset(FOO_TEST_PATH_FOO)
  18. unset(FOO_TEST_PATH_ZOT)
  19. unset(FOO_TEST_PROG_FOO)
  20. unset(BAR_TEST_FILE_FOO)
  21. unset(BAR_TEST_FILE_BAR)
  22. unset(BAR_TEST_FILE_ZOT)
  23. unset(BAR_TEST_PATH_FOO)
  24. unset(BAR_TEST_PATH_BAR)
  25. unset(BAR_TEST_PATH_ZOT)
  26. unset(BAR_TEST_PROG_FOO)
  27. unset(BAR_TEST_PROG_BAR)
  28. unset(Bar_DIR CACHE)
  29. unset(BAR_CMAKE_FILE CACHE)
  30. unset(FOO_TEST_FILE_FOO CACHE)
  31. unset(FOO_TEST_FILE_ZOT CACHE)
  32. unset(FOO_TEST_PATH_FOO CACHE)
  33. unset(FOO_TEST_PATH_ZOT CACHE)
  34. unset(FOO_TEST_PROG_FOO CACHE)
  35. unset(BAR_TEST_FILE_FOO CACHE)
  36. unset(BAR_TEST_FILE_BAR CACHE)
  37. unset(BAR_TEST_FILE_ZOT CACHE)
  38. unset(BAR_TEST_PATH_FOO CACHE)
  39. unset(BAR_TEST_PATH_BAR CACHE)
  40. unset(BAR_TEST_PATH_ZOT CACHE)
  41. unset(BAR_TEST_PROG_FOO CACHE)
  42. unset(BAR_TEST_PROG_BAR CACHE)
  43. endmacro()
  44. macro(RunPackageRootTest)
  45. message("----------")
  46. PrintPath("Foo_ROOT :" "${Foo_ROOT}")
  47. PrintPath("ENV{Foo_ROOT} :" "$ENV{Foo_ROOT}")
  48. PrintPath("Bar_DIR :" "${Bar_DIR}")
  49. PrintPath("Bar_ROOT :" "${Bar_ROOT}")
  50. PrintPath("ENV{Bar_ROOT} :" "$ENV{Bar_ROOT}")
  51. message("")
  52. find_package(Foo COMPONENTS BarModule)
  53. message("find_package(Foo COMPONENTS BarModule)")
  54. PrintPath("FOO_TEST_FILE_FOO :" "${FOO_TEST_FILE_FOO}")
  55. PrintPath("FOO_TEST_FILE_ZOT :" "${FOO_TEST_FILE_ZOT}")
  56. PrintPath("FOO_TEST_PATH_FOO :" "${FOO_TEST_PATH_FOO}")
  57. PrintPath("FOO_TEST_PATH_ZOT :" "${FOO_TEST_PATH_ZOT}")
  58. PrintPath("FOO_TEST_PROG_FOO :" "${FOO_TEST_PROG_FOO}")
  59. PrintPath("BAR_CMAKE_FILE :" "${BAR_CMAKE_FILE}")
  60. PrintPath("BAR_TEST_FILE_FOO :" "${BAR_TEST_FILE_FOO}")
  61. PrintPath("BAR_TEST_FILE_BAR :" "${BAR_TEST_FILE_BAR}")
  62. PrintPath("BAR_TEST_FILE_ZOT :" "${BAR_TEST_FILE_ZOT}")
  63. PrintPath("BAR_TEST_PATH_FOO :" "${BAR_TEST_PATH_FOO}")
  64. PrintPath("BAR_TEST_PATH_BAR :" "${BAR_TEST_PATH_BAR}")
  65. PrintPath("BAR_TEST_PATH_ZOT :" "${BAR_TEST_PATH_ZOT}")
  66. PrintPath("BAR_TEST_PROG_FOO :" "${BAR_TEST_PROG_FOO}")
  67. PrintPath("BAR_TEST_PROG_BAR :" "${BAR_TEST_PROG_BAR}")
  68. CleanUpPackageRootTest()
  69. message("")
  70. endmacro()
  71. #
  72. RunPackageRootTest()
  73. #
  74. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  75. RunPackageRootTest()
  76. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  77. set(Bar_ROOT ${PackageRoot_BASE}/bar/cmake_root)
  78. RunPackageRootTest()
  79. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  80. set(ENV{Bar_ROOT} ${PackageRoot_BASE}/bar/env_root)
  81. RunPackageRootTest()
  82. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  83. set(Bar_ROOT ${PackageRoot_BASE}/bar/cmake_root)
  84. set(ENV{Bar_ROOT} ${PackageRoot_BASE}/bar/env_root)
  85. RunPackageRootTest()
  86. #
  87. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  88. set(ENV{Foo_ROOT} ${PackageRoot_BASE}/foo/cmake_root)
  89. RunPackageRootTest()
  90. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  91. set(ENV{Foo_ROOT} ${PackageRoot_BASE}/foo/cmake_root)
  92. set(Bar_ROOT ${PackageRoot_BASE}/bar/cmake_root)
  93. RunPackageRootTest()
  94. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  95. set(ENV{Foo_ROOT} ${PackageRoot_BASE}/foo/cmake_root)
  96. set(ENV{Bar_ROOT} ${PackageRoot_BASE}/bar/env_root)
  97. RunPackageRootTest()
  98. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  99. set(ENV{Foo_ROOT} ${PackageRoot_BASE}/foo/cmake_root)
  100. set(Bar_ROOT ${PackageRoot_BASE}/bar/cmake_root)
  101. set(ENV{Bar_ROOT} ${PackageRoot_BASE}/bar/env_root)
  102. RunPackageRootTest()
  103. #
  104. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  105. set(ENV{Foo_ROOT} ${PackageRoot_BASE}/foo/cmake_root)
  106. RunPackageRootTest()
  107. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  108. set(ENV{Foo_ROOT} ${PackageRoot_BASE}/foo/cmake_root)
  109. set(Bar_ROOT ${PackageRoot_BASE}/bar/cmake_root)
  110. RunPackageRootTest()
  111. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  112. set(ENV{Foo_ROOT} ${PackageRoot_BASE}/foo/cmake_root)
  113. set(ENV{Bar_ROOT} ${PackageRoot_BASE}/bar/env_root)
  114. RunPackageRootTest()
  115. set(Foo_ROOT ${PackageRoot_BASE}/foo/cmake_root)
  116. set(ENV{Foo_ROOT} ${PackageRoot_BASE}/foo/cmake_root)
  117. set(Bar_ROOT ${PackageRoot_BASE}/bar/cmake_root)
  118. set(ENV{Bar_ROOT} ${PackageRoot_BASE}/bar/env_root)
  119. RunPackageRootTest()