RunCMakeTest.cmake 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  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 "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/copy/SourceDirectoryInInterface/prefix")
  32. set(RunCMake_TEST_FILE "${RunCMake_BINARY_DIR}/copy/SourceDirectoryInInterface")
  33. set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/copy")
  34. run_cmake(InstallInSrcDir)
  35. unset(RunCMake_TEST_SOURCE_DIR)
  36. unset(RunCMake_TEST_FILE)
  37. set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/InstallInBinDir-build/prefix")
  38. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/InstallInBinDir-build")
  39. set(RunCMake_TEST_FILE "${RunCMake_SOURCE_DIR}/BinaryDirectoryInInterface")
  40. run_cmake(InstallInBinDir)
  41. unset(RunCMake_TEST_BINARY_DIR)
  42. unset(RunCMake_TEST_FILE)
  43. configure_file(
  44. "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
  45. "${RunCMake_BINARY_DIR}/prefix/src/CMakeLists.txt"
  46. COPYONLY
  47. )
  48. configure_file(
  49. "${RunCMake_SOURCE_DIR}/empty.cpp"
  50. "${RunCMake_BINARY_DIR}/prefix/src/empty.cpp"
  51. COPYONLY
  52. )
  53. configure_file(
  54. "${RunCMake_SOURCE_DIR}/SourceDirectoryInInterface.cmake"
  55. "${RunCMake_BINARY_DIR}/prefix/src/SourceDirectoryInInterface.cmake"
  56. COPYONLY
  57. )
  58. foreach(policyStatus "" NEW OLD)
  59. if (NOT "${policyStatus}" STREQUAL "")
  60. set(policyOption -DCMAKE_POLICY_DEFAULT_CMP0052=${policyStatus})
  61. else()
  62. unset(policyOption)
  63. set(policyStatus WARN)
  64. endif()
  65. set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/prefix" ${policyOption})
  66. # Set the RunCMake_TEST_SOURCE_DIR here to the copy too. This is needed to run
  67. # the test suite in-source properly. Otherwise the install directory would be
  68. # a subdirectory or the source directory, which is allowed and tested separately
  69. # below.
  70. set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/prefix/src")
  71. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/prefix/BinInInstallPrefix-CMP0052-${policyStatus}-build")
  72. set(RunCMake_TEST_FILE "${RunCMake_SOURCE_DIR}/BinaryDirectoryInInterface")
  73. run_cmake(BinInInstallPrefix-CMP0052-${policyStatus})
  74. unset(RunCMake_TEST_BINARY_DIR)
  75. unset(RunCMake_TEST_FILE)
  76. set(RunCMake_TEST_FILE "${RunCMake_BINARY_DIR}/prefix/src/SourceDirectoryInInterface")
  77. run_cmake(SrcInInstallPrefix-CMP0052-${policyStatus})
  78. unset(RunCMake_TEST_SOURCE_DIR)
  79. unset(RunCMake_TEST_FILE)
  80. endforeach()
  81. set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/InstallPrefixInInterface-build/prefix")
  82. run_cmake(InstallPrefixInInterface)
  83. configure_file(
  84. "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
  85. "${RunCMake_BINARY_DIR}/installToSrc/CMakeLists.txt"
  86. COPYONLY
  87. )
  88. configure_file(
  89. "${RunCMake_SOURCE_DIR}/empty.cpp"
  90. "${RunCMake_BINARY_DIR}/installToSrc/empty.cpp"
  91. COPYONLY
  92. )
  93. configure_file(
  94. "${RunCMake_SOURCE_DIR}/InstallPrefixInInterface.cmake"
  95. "${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface.cmake"
  96. COPYONLY
  97. )
  98. set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface/prefix")
  99. set(RunCMake_TEST_FILE "${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface")
  100. set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/installToSrc")
  101. run_cmake(InstallToPrefixInSrcDirOutOfSource)
  102. unset(RunCMake_TEST_SOURCE_DIR)
  103. unset(RunCMake_TEST_FILE)
  104. file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}/installToSrcInSrc")
  105. set(RunCMake_TEST_NO_CLEAN ON)
  106. configure_file(
  107. "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
  108. "${RunCMake_BINARY_DIR}/installToSrcInSrc/CMakeLists.txt"
  109. COPYONLY
  110. )
  111. configure_file(
  112. "${RunCMake_SOURCE_DIR}/empty.cpp"
  113. "${RunCMake_BINARY_DIR}/installToSrcInSrc/empty.cpp"
  114. COPYONLY
  115. )
  116. configure_file(
  117. "${RunCMake_SOURCE_DIR}/InstallPrefixInInterface.cmake"
  118. "${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface.cmake"
  119. COPYONLY
  120. )
  121. set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface/prefix")
  122. set(RunCMake_TEST_FILE "${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface")
  123. set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/installToSrcInSrc")
  124. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/installToSrcInSrc")
  125. run_cmake(InstallToPrefixInSrcDirInSource)
  126. unset(RunCMake_TEST_SOURCE_DIR)
  127. unset(RunCMake_TEST_BINARY_DIR)
  128. unset(RunCMake_TEST_FILE)
  129. unset(RunCMake_TEST_NO_CLEAN)