|
7 | 7 | # Rest Arguments: libraries which link together. |
8 | 8 | function(target_circle_link_libraries TARGET_NAME) |
9 | 9 | if(APPLE) |
10 | | - set(LIBS) |
11 | | - set(inArchive OFF) |
12 | | - set(libsInArgn) |
13 | | - |
14 | | - foreach(arg ${ARGN}) |
15 | | - if(${arg} STREQUAL "ARCHIVE_START") |
16 | | - set(inArchive ON) |
17 | | - elseif(${arg} STREQUAL "ARCHIVE_END") |
18 | | - set(inArchive OFF) |
19 | | - else() |
20 | | - if(inArchive) |
21 | | - list(APPEND LIBS "-Wl,-force_load") |
22 | | - endif() |
23 | | - list(APPEND LIBS ${arg}) |
24 | | - list(APPEND libsInArgn ${arg}) |
25 | | - endif() |
26 | | - endforeach() |
| 10 | + set(LIBS ${ARGN}) |
| 11 | + set(libsInArgn ${ARGN}) |
| 12 | + list(REVERSE libsInArgn) |
27 | 13 | if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") |
28 | 14 | list(APPEND LIBS "-undefined dynamic_lookup") |
29 | 15 | endif() |
30 | | - list(REVERSE libsInArgn) |
31 | 16 | target_link_libraries(${TARGET_NAME} |
32 | 17 | ${LIBS} |
33 | 18 | ${libsInArgn}) |
34 | 19 |
|
35 | 20 | else() # LINUX |
36 | 21 | set(LIBS) |
37 | | - |
38 | | - foreach(arg ${ARGN}) |
39 | | - if(${arg} STREQUAL "ARCHIVE_START") |
40 | | - list(APPEND LIBS "-Wl,--whole-archive") |
41 | | - elseif(${arg} STREQUAL "ARCHIVE_END") |
42 | | - list(APPEND LIBS "-Wl,--no-whole-archive") |
43 | | - else() |
44 | | - list(APPEND LIBS ${arg}) |
45 | | - endif() |
46 | | - endforeach() |
47 | | - |
48 | 22 | target_link_libraries(${TARGET_NAME} |
49 | 23 | "-Wl,--start-group" |
50 | 24 | ${LIBS} |
@@ -84,21 +58,17 @@ function(link_paddle_exe TARGET_NAME) |
84 | 58 | if(PADDLE_WITH_INTERNAL) |
85 | 59 | set(INTERAL_LIBS paddle_internal_gserver paddle_internal_parameter) |
86 | 60 | target_circle_link_libraries(${TARGET_NAME} |
87 | | - ARCHIVE_START |
88 | 61 | paddle_internal_gserver |
89 | 62 | paddle_internal_owlqn |
90 | | - ARCHIVE_END |
91 | 63 | paddle_internal_parameter) |
92 | 64 | else() |
93 | 65 | set(INTERAL_LIBS "") |
94 | 66 | endif() |
95 | 67 |
|
96 | 68 | target_circle_link_libraries(${TARGET_NAME} |
97 | | - ARCHIVE_START |
98 | 69 | paddle_gserver |
99 | 70 | paddle_function |
100 | 71 | ${METRIC_LIBS} |
101 | | - ARCHIVE_END |
102 | 72 | paddle_pserver |
103 | 73 | paddle_trainer_lib |
104 | 74 | paddle_network |
@@ -165,7 +135,9 @@ endfunction() |
165 | 135 | # TARGET_NAME: the unittest target name, same as executable file name |
166 | 136 | # Rest Arguments: the source files to compile this unittest. |
167 | 137 | macro(add_unittest_without_exec TARGET_NAME) |
168 | | - add_executable(${TARGET_NAME} ${ARGN}) |
| 138 | + add_executable(${TARGET_NAME} |
| 139 | + ${PROJ_ROOT}/paddle/trainer/ForceLinkFiles.cpp |
| 140 | + ${ARGN}) |
169 | 141 | link_paddle_test(${TARGET_NAME}) |
170 | 142 | add_style_check_target(${TARGET_NAME} ${ARGN}) |
171 | 143 | endmacro() |
|
0 commit comments