ソースを参照

Test link multiplicity

This tests the LINK_INTERFACE_MULTIPLICITY property for a cycle of three
static libraries that must be scanned three times to link properly.
Brad King 16 年 前
コミット
0cfd8c411f

+ 4 - 3
Tests/Dependency/Case2/CMakeLists.txt

@@ -1,11 +1,12 @@
 project(CASE2 C)
 
-add_library(case2Foo1 STATIC foo1.c foo1b.c)
-add_library(case2Foo2 STATIC foo2.c foo2b.c)
-add_library(case2Foo3 STATIC foo3.c foo3b.c)
+add_library(case2Foo1 STATIC foo1.c foo1b.c foo1c.c)
+add_library(case2Foo2 STATIC foo2.c foo2b.c foo2c.c)
+add_library(case2Foo3 STATIC foo3.c foo3b.c foo3c.c)
 target_link_libraries(case2Foo1 case2Foo2)
 target_link_libraries(case2Foo2 case2Foo3)
 target_link_libraries(case2Foo3 case2Foo1)
+set_property(TARGET case2Foo1 PROPERTY LINK_INTERFACE_MULTIPLICITY 3)
 
 add_library(case2Bar1 STATIC bar1.c)
 add_library(case2Bar2 STATIC bar2.c)

+ 2 - 0
Tests/Dependency/Case2/foo1c.c

@@ -0,0 +1,2 @@
+extern int foo2c(void);
+int foo1c(void) { return foo2c(); }

+ 2 - 0
Tests/Dependency/Case2/foo2c.c

@@ -0,0 +1,2 @@
+extern int foo3c(void);
+int foo2c(void) { return foo3c(); }

+ 2 - 1
Tests/Dependency/Case2/foo3b.c

@@ -1 +1,2 @@
-int foo3b(void) { return 0; }
+extern int foo1c(void);
+int foo3b(void) { return foo1c(); }

+ 1 - 0
Tests/Dependency/Case2/foo3c.c

@@ -0,0 +1 @@
+int foo3c(void) { return 0; }