ENH: add a test to make sure Xcode does not break again

This commit is contained in:
Bill Hoffman 2007-05-09 15:10:12 -04:00
parent 8245f437b6
commit d419354250
3 changed files with 57 additions and 0 deletions

View 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")

View 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)

View File

@ -0,0 +1,8 @@
#include "stdio.h"
const char* foo();
int main()
{
printf("%s", foo());
return 0;
}