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