RunCMakeTest.cmake 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. include(RunCMake)
  2. run_cmake(NotFoundContent)
  3. run_cmake(DebugIncludes)
  4. run_cmake(TID-bad-target)
  5. run_cmake(SourceDirectoryInInterface)
  6. run_cmake(BinaryDirectoryInInterface)
  7. run_cmake(RelativePathInInterface)
  8. run_cmake(ImportedTarget)
  9. run_cmake(RelativePathInGenex)
  10. run_cmake(CMP0021)
  11. run_cmake(install_config)
  12. run_cmake(incomplete-genex)
  13. run_cmake(export-NOWARN)
  14. set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/DirInInstallPrefix/prefix")
  15. run_cmake(DirInInstallPrefix)
  16. configure_file(
  17. "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
  18. "${RunCMake_BINARY_DIR}/copy/CMakeLists.txt"
  19. COPYONLY
  20. )
  21. configure_file(
  22. "${RunCMake_SOURCE_DIR}/empty.cpp"
  23. "${RunCMake_BINARY_DIR}/copy/empty.cpp"
  24. COPYONLY
  25. )
  26. configure_file(
  27. "${RunCMake_SOURCE_DIR}/SourceDirectoryInInterface.cmake"
  28. "${RunCMake_BINARY_DIR}/copy/SourceDirectoryInInterface.cmake"
  29. COPYONLY
  30. )
  31. set(RunCMake_TEST_OPTIONS
  32. "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/copy/SourceDirectoryInInterface/prefix"
  33. "-DTEST_FILE=${RunCMake_BINARY_DIR}/copy/SourceDirectoryInInterface.cmake"
  34. )
  35. set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/copy")
  36. run_cmake(InstallInSrcDir)
  37. unset(RunCMake_TEST_SOURCE_DIR)
  38. set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/InstallInBinDir-build/prefix")
  39. set(RunCMake_TEST_OPTIONS
  40. "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/InstallInBinDir-build/prefix"
  41. "-DTEST_FILE=${RunCMake_SOURCE_DIR}/BinaryDirectoryInInterface.cmake"
  42. )
  43. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/InstallInBinDir-build")
  44. run_cmake(InstallInBinDir)
  45. unset(RunCMake_TEST_BINARY_DIR)
  46. configure_file(
  47. "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
  48. "${RunCMake_BINARY_DIR}/prefix/src/CMakeLists.txt"
  49. COPYONLY
  50. )
  51. configure_file(
  52. "${RunCMake_SOURCE_DIR}/empty.cpp"
  53. "${RunCMake_BINARY_DIR}/prefix/src/empty.cpp"
  54. COPYONLY
  55. )
  56. configure_file(
  57. "${RunCMake_SOURCE_DIR}/SourceDirectoryInInterface.cmake"
  58. "${RunCMake_BINARY_DIR}/prefix/src/SourceDirectoryInInterface.cmake"
  59. COPYONLY
  60. )
  61. foreach(policyStatus "" NEW OLD)
  62. if (NOT "${policyStatus}" STREQUAL "")
  63. set(policyOption -DCMAKE_POLICY_DEFAULT_CMP0052=${policyStatus})
  64. else()
  65. unset(policyOption)
  66. set(policyStatus WARN)
  67. endif()
  68. set(RunCMake_TEST_OPTIONS
  69. "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/prefix" ${policyOption}
  70. "-DTEST_FILE=${RunCMake_SOURCE_DIR}/BinaryDirectoryInInterface.cmake"
  71. )
  72. # Set the RunCMake_TEST_SOURCE_DIR here to the copy too. This is needed to run
  73. # the test suite in-source properly. Otherwise the install directory would be
  74. # a subdirectory or the source directory, which is allowed and tested separately
  75. # below.
  76. set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/prefix/src")
  77. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/prefix/BinInInstallPrefix-CMP0052-${policyStatus}-build")
  78. run_cmake(BinInInstallPrefix-CMP0052-${policyStatus})
  79. unset(RunCMake_TEST_BINARY_DIR)
  80. set(RunCMake_TEST_OPTIONS
  81. "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/prefix" ${policyOption}
  82. "-DTEST_FILE=${RunCMake_BINARY_DIR}/prefix/src/SourceDirectoryInInterface.cmake"
  83. )
  84. run_cmake(SrcInInstallPrefix-CMP0052-${policyStatus})
  85. unset(RunCMake_TEST_SOURCE_DIR)
  86. endforeach()
  87. set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/InstallPrefixInInterface-build/prefix")
  88. run_cmake(InstallPrefixInInterface)
  89. configure_file(
  90. "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
  91. "${RunCMake_BINARY_DIR}/installToSrc/CMakeLists.txt"
  92. COPYONLY
  93. )
  94. configure_file(
  95. "${RunCMake_SOURCE_DIR}/empty.cpp"
  96. "${RunCMake_BINARY_DIR}/installToSrc/empty.cpp"
  97. COPYONLY
  98. )
  99. configure_file(
  100. "${RunCMake_SOURCE_DIR}/InstallPrefixInInterface.cmake"
  101. "${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface.cmake"
  102. COPYONLY
  103. )
  104. set(RunCMake_TEST_OPTIONS
  105. "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface/prefix"
  106. "-DTEST_FILE=${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface.cmake"
  107. )
  108. set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/installToSrc")
  109. run_cmake(InstallToPrefixInSrcDirOutOfSource)
  110. unset(RunCMake_TEST_SOURCE_DIR)
  111. file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}/installToSrcInSrc")
  112. set(RunCMake_TEST_NO_CLEAN ON)
  113. configure_file(
  114. "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
  115. "${RunCMake_BINARY_DIR}/installToSrcInSrc/CMakeLists.txt"
  116. COPYONLY
  117. )
  118. configure_file(
  119. "${RunCMake_SOURCE_DIR}/empty.cpp"
  120. "${RunCMake_BINARY_DIR}/installToSrcInSrc/empty.cpp"
  121. COPYONLY
  122. )
  123. configure_file(
  124. "${RunCMake_SOURCE_DIR}/InstallPrefixInInterface.cmake"
  125. "${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface.cmake"
  126. COPYONLY
  127. )
  128. set(RunCMake_TEST_OPTIONS
  129. "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface/prefix"
  130. "-DTEST_FILE=${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface.cmake"
  131. )
  132. set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/installToSrcInSrc")
  133. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/installToSrcInSrc")
  134. run_cmake(InstallToPrefixInSrcDirInSource)
  135. unset(RunCMake_TEST_SOURCE_DIR)
  136. unset(RunCMake_TEST_BINARY_DIR)
  137. unset(RunCMake_TEST_NO_CLEAN)