Skip to content

Commit 79463ae

Browse files
authored
generic cmake (#13145)
* generic cmake * Update generic.cmake
1 parent aeb2dc2 commit 79463ae

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

cmake/generic.cmake

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,20 @@ function(find_fluid_modules TARGET_NAME)
110110
endif()
111111
endfunction(find_fluid_modules)
112112

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+
113127
function(merge_static_libs TARGET_NAME)
114128
set(libs ${ARGN})
115129
list(REMOVE_DUPLICATES libs)
@@ -204,18 +218,13 @@ function(merge_static_libs TARGET_NAME)
204218

205219
foreach(lib ${libs})
206220
# 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()
211221
set(libfiles ${libfiles} $<TARGET_FILE:${lib}>)
212-
#endif()
213222
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"
217225
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}
219228
)
220229
endif(WIN32)
221230
endfunction(merge_static_libs)

0 commit comments

Comments
 (0)