@@ -110,6 +110,20 @@ function(find_fluid_modules TARGET_NAME)
110
110
endif ()
111
111
endfunction (find_fluid_modules )
112
112
113
+ # find all third_party modules is used for paddle static library
114
+ # for reduce the dependency when building the inference libs.
115
+ set_property (GLOBAL PROPERTY FLUID_THIRD_PARTY )
116
+ function (find_fluid_thirdparties TARGET_NAME )
117
+ get_filename_component (__target_path ${TARGET_NAME} ABSOLUTE )
118
+ string (REGEX REPLACE "^${PADDLE_SOURCE_DIR} /" "" __target_path ${__target_path} )
119
+ string (FIND "${__target_path} " "third_party" pos )
120
+ if (pos GREATER 1 )
121
+ get_property (fluid_ GLOBAL PROPERTY FLUID_THIRD_PARTY )
122
+ set (fluid_third_partys ${fluid_third_partys} ${TARGET_NAME} )
123
+ set_property (GLOBAL PROPERTY FLUID_THIRD_PARTY "${fluid_third_partys} " )
124
+ endif ()
125
+ endfunction (find_fluid_thirdparties )
126
+
113
127
function (merge_static_libs TARGET_NAME )
114
128
set (libs ${ARGN} )
115
129
list (REMOVE_DUPLICATES libs )
@@ -204,18 +218,13 @@ function(merge_static_libs TARGET_NAME)
204
218
205
219
foreach (lib ${libs} )
206
220
# Get the file names of the libraries to be merged
207
- #if(NOT $<TARGET_FILE:${lib}> MATCHES "lib.*\\.lib")
208
- # message("library" ${lib})
209
- # set(libfiles ${libfiles} lib$<TARGET_FILE:${lib}>)
210
- #else()
211
221
set (libfiles ${libfiles} $< TARGET_FILE:${lib} > )
212
- #endif()
213
222
endforeach ()
214
-
215
- # windows cmd return error in clean env.
216
- # COMMAND del "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${TARGET_NAME}.lib"
223
+ # msvc will put libarary in directory of "/Release/xxxlib" by default
224
+ # COMMAND cmake -E remove "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${TARGET_NAME}.lib"
217
225
add_custom_command (TARGET ${TARGET_NAME} POST_BUILD
218
- COMMAND lib /OUT:${CMAKE_CURRENT_BINARY_DIR}/lib${TARGET_NAME}.lib ${libfiles}
226
+ COMMAND cmake -E make_directory "${CMAKE_CURRENT_BINARY_DIR} /${CMAKE_BUILD_TYPE} "
227
+ COMMAND lib /OUT:${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/lib${TARGET_NAME}.lib ${libfiles}
219
228
)
220
229
endif (WIN32 )
221
230
endfunction (merge_static_libs )
0 commit comments