Add test for object library dependencies

Issue: #16615
This commit is contained in:
Gregor Jasny
2017-02-18 22:27:46 +01:00
committed by Brad King
parent 5da9266af5
commit 624021a09e
6 changed files with 52 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
cmake_minimum_required(VERSION 3.7)
project(Dependencies)
add_library(myobj OBJECT ${CMAKE_BINARY_DIR}/depends_obj.cpp)
add_library(mylib STATIC $<TARGET_OBJECTS:myobj> depends_lib.cpp)
add_executable(myexe depends_main.cpp)
target_link_libraries(myexe mylib)
enable_testing()
add_test(NAME myexe COMMAND $<TARGET_FILE:myexe>)

View File

@@ -16,3 +16,22 @@ run_cmake(ObjWithObj)
run_cmake(PostBuild)
run_cmake(PreBuild)
run_cmake(PreLink)
function(run_Dependencies)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Dependencies-build)
set(RunCMake_TEST_NO_CLEAN 1)
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
run_cmake_command(Dependencies-build ${CMAKE_COMMAND} -E copy ${RunCMake_SOURCE_DIR}/depends_obj1.cpp ${RunCMake_TEST_BINARY_DIR}/depends_obj.cpp)
run_cmake(Dependencies)
run_cmake_command(Dependencies-build ${CMAKE_COMMAND} --build .)
run_cmake_command(Dependencies-build ${CMAKE_COMMAND} -E copy ${RunCMake_SOURCE_DIR}/depends_obj0.cpp ${RunCMake_TEST_BINARY_DIR}/depends_obj.cpp)
run_cmake_command(Dependencies-build ${CMAKE_COMMAND} -E sleep 1)
run_cmake_command(Dependencies-build ${CMAKE_COMMAND} -E touch_nocreate ${RunCMake_TEST_BINARY_DIR}/depends_obj.cpp)
run_cmake_command(Dependencies-build ${CMAKE_COMMAND} --build .)
run_cmake_command(Dependencies-build ${CMAKE_CTEST_COMMAND} -C Debug)
endfunction()
run_Dependencies()

View File

@@ -0,0 +1,7 @@
#include <stdlib.h>
int myobj_foo();
void mylib_foo()
{
exit(myobj_foo());
}

View File

@@ -0,0 +1,7 @@
void mylib_foo();
int main()
{
mylib_foo();
return 0;
}

View File

@@ -0,0 +1,4 @@
int myobj_foo()
{
return 0;
}

View File

@@ -0,0 +1,4 @@
int myobj_foo()
{
return 1;
}