summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/include_directories/RunCMakeTest.cmake
blob: 434beb9b54c85b2ab3ea846a55f357eb4c63cd7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
include(RunCMake)

run_cmake(NotFoundContent)
run_cmake(DebugIncludes)
run_cmake(TID-bad-target)
run_cmake(SourceDirectoryInInterface)
run_cmake(BinaryDirectoryInInterface)
run_cmake(RelativePathInInterface)
run_cmake(ImportedTarget)
run_cmake(RelativePathInGenex)
run_cmake(CMP0021)
run_cmake(install_config)
run_cmake(incomplete-genex)
run_cmake(export-NOWARN)

configure_file(
  "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
  "${RunCMake_BINARY_DIR}/copy/CMakeLists.txt"
  COPYONLY
)
configure_file(
  "${RunCMake_SOURCE_DIR}/empty.cpp"
  "${RunCMake_BINARY_DIR}/copy/empty.cpp"
  COPYONLY
)
configure_file(
  "${RunCMake_SOURCE_DIR}/SourceDirectoryInInterface.cmake"
  "${RunCMake_BINARY_DIR}/copy/SourceDirectoryInInterface.cmake"
  COPYONLY
)
set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/copy/SourceDirectoryInInterface/prefix")
set(RunCMake_TEST_FILE "${RunCMake_BINARY_DIR}/copy/SourceDirectoryInInterface")
set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/copy")
run_cmake(InstallInSrcDir)
unset(RunCMake_TEST_SOURCE_DIR)
unset(RunCMake_TEST_FILE)

set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/InstallInBinDir-build/prefix")
set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/InstallInBinDir-build")
set(RunCMake_TEST_FILE "${RunCMake_SOURCE_DIR}/BinaryDirectoryInInterface")
run_cmake(InstallInBinDir)
unset(RunCMake_TEST_BINARY_DIR)
unset(RunCMake_TEST_FILE)

configure_file(
  "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
  "${RunCMake_BINARY_DIR}/prefix/src/CMakeLists.txt"
  COPYONLY
)
configure_file(
  "${RunCMake_SOURCE_DIR}/empty.cpp"
  "${RunCMake_BINARY_DIR}/prefix/src/empty.cpp"
  COPYONLY
)
configure_file(
  "${RunCMake_SOURCE_DIR}/SourceDirectoryInInterface.cmake"
  "${RunCMake_BINARY_DIR}/prefix/src/SourceDirectoryInInterface.cmake"
  COPYONLY
)

foreach(policyStatus "" NEW OLD)
  if (NOT "${policyStatus}" STREQUAL "")
    set(policyOption -DCMAKE_POLICY_DEFAULT_CMP0052=${policyStatus})
  else()
    unset(policyOption)
    set(policyStatus WARN)
  endif()
  set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/prefix" ${policyOption})
  # Set the RunCMake_TEST_SOURCE_DIR here to the copy too. This is needed to run
  # the test suite in-source properly.  Otherwise the install directory would be
  # a subdirectory or the source directory, which is allowed and tested separately
  # below.
  set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/prefix/src")
  set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/prefix/BinInInstallPrefix-CMP0052-${policyStatus}-build")
  set(RunCMake_TEST_FILE "${RunCMake_SOURCE_DIR}/BinaryDirectoryInInterface")
  run_cmake(BinInInstallPrefix-CMP0052-${policyStatus})
  unset(RunCMake_TEST_BINARY_DIR)
  unset(RunCMake_TEST_FILE)

  set(RunCMake_TEST_FILE "${RunCMake_BINARY_DIR}/prefix/src/SourceDirectoryInInterface")
  run_cmake(SrcInInstallPrefix-CMP0052-${policyStatus})
  unset(RunCMake_TEST_SOURCE_DIR)
  unset(RunCMake_TEST_FILE)
endforeach()

set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/InstallPrefixInInterface-build/prefix")
run_cmake(InstallPrefixInInterface)

configure_file(
  "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
  "${RunCMake_BINARY_DIR}/installToSrc/CMakeLists.txt"
  COPYONLY
)
configure_file(
  "${RunCMake_SOURCE_DIR}/empty.cpp"
  "${RunCMake_BINARY_DIR}/installToSrc/empty.cpp"
  COPYONLY
)
configure_file(
  "${RunCMake_SOURCE_DIR}/InstallPrefixInInterface.cmake"
  "${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface.cmake"
  COPYONLY
)
set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface/prefix")
set(RunCMake_TEST_FILE "${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface")
set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/installToSrc")
run_cmake(InstallToPrefixInSrcDirOutOfSource)
unset(RunCMake_TEST_SOURCE_DIR)
unset(RunCMake_TEST_FILE)


file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}/installToSrcInSrc")
set(RunCMake_TEST_NO_CLEAN ON)

configure_file(
  "${RunCMake_SOURCE_DIR}/CMakeLists.txt"
  "${RunCMake_BINARY_DIR}/installToSrcInSrc/CMakeLists.txt"
  COPYONLY
)
configure_file(
  "${RunCMake_SOURCE_DIR}/empty.cpp"
  "${RunCMake_BINARY_DIR}/installToSrcInSrc/empty.cpp"
  COPYONLY
)
configure_file(
  "${RunCMake_SOURCE_DIR}/InstallPrefixInInterface.cmake"
  "${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface.cmake"
  COPYONLY
)

set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface/prefix")
set(RunCMake_TEST_FILE "${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface")
set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/installToSrcInSrc")
set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/installToSrcInSrc")
run_cmake(InstallToPrefixInSrcDirInSource)
unset(RunCMake_TEST_SOURCE_DIR)
unset(RunCMake_TEST_BINARY_DIR)
unset(RunCMake_TEST_FILE)
unset(RunCMake_TEST_NO_CLEAN)