ENH: add a test to make sure Xcode does not break again
This commit is contained in:
parent
8245f437b6
commit
d419354250
45
Tests/BuildDepends/CMakeLists.txt
Normal file
45
Tests/BuildDepends/CMakeLists.txt
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# this test creates a static library and an executable
|
||||||
|
# the source to the library is then changed
|
||||||
|
# and the build is done on the executable and if things
|
||||||
|
# are working the executable should relink with the new
|
||||||
|
# value. The subdir Project contains the CMakelists.txt
|
||||||
|
# and source files for the test project.
|
||||||
|
project(BuildDepends)
|
||||||
|
make_directory(${BuildDepends_BINARY_DIR}/Project)
|
||||||
|
write_file(${BuildDepends_BINARY_DIR}/Project/foo.c
|
||||||
|
"const char* foo() { return \"foo\";}" )
|
||||||
|
try_compile(RESULT
|
||||||
|
${BuildDepends_BINARY_DIR}/Project
|
||||||
|
${BuildDepends_SOURCE_DIR}/Project
|
||||||
|
testRebuild
|
||||||
|
OUTPUT_VARIABLE OUTPUT)
|
||||||
|
|
||||||
|
set(bar ${BuildDepends_BINARY_DIR}/Project/bar.exe)
|
||||||
|
if(EXISTS ${BuildDepends_BINARY_DIR}/Project/Debug/bar.exe )
|
||||||
|
set(bar ${BuildDepends_BINARY_DIR}/Project/Debug/bar.exe)
|
||||||
|
endif(EXISTS ${BuildDepends_BINARY_DIR}/Project/Debug/bar.exe )
|
||||||
|
|
||||||
|
execute_process(COMMAND ${bar} OUTPUT_VARIABLE out)
|
||||||
|
message("${out}")
|
||||||
|
if("${out}" STREQUAL "foo")
|
||||||
|
message("Worked!")
|
||||||
|
else("${out}" STREQUAL "foo")
|
||||||
|
message(SEND_ERROR "Program did not rebuild with changed file")
|
||||||
|
endif("${out}" STREQUAL "foo")
|
||||||
|
|
||||||
|
write_file(${BuildDepends_BINARY_DIR}/Project/foo.c
|
||||||
|
"const char* foo() { return \"foo changed\";}" )
|
||||||
|
try_compile(RESULT
|
||||||
|
${BuildDepends_BINARY_DIR}/Project
|
||||||
|
${BuildDepends_SOURCE_DIR}/Project
|
||||||
|
testRebuild
|
||||||
|
OUTPUT_VARIABLE OUTPUT)
|
||||||
|
|
||||||
|
execute_process(COMMAND ${bar} OUTPUT_VARIABLE out)
|
||||||
|
message("${out}")
|
||||||
|
|
||||||
|
if("${out}" STREQUAL "foo changed")
|
||||||
|
message("Worked!")
|
||||||
|
else("${out}" STREQUAL "foo changed")
|
||||||
|
message(SEND_ERROR "Program did not rebuild with changed file")
|
||||||
|
endif("${out}" STREQUAL "foo changed")
|
4
Tests/BuildDepends/Project/CMakeLists.txt
Normal file
4
Tests/BuildDepends/Project/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
project(testRebuild)
|
||||||
|
add_library(foo STATIC ${testRebuild_BINARY_DIR}/foo.c)
|
||||||
|
add_executable(bar bar.c)
|
||||||
|
target_link_libraries(bar foo)
|
8
Tests/BuildDepends/Project/bar.c
Normal file
8
Tests/BuildDepends/Project/bar.c
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#include "stdio.h"
|
||||||
|
|
||||||
|
const char* foo();
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
printf("%s", foo());
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user