mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
[CMAKE/WIDL] Add rudimentary dependency tracking in add_rpcproxy_files
CORE-14204
This commit is contained in:
parent
a34d807311
commit
7e9fb41b9f
1 changed files with 16 additions and 5 deletions
|
@ -45,11 +45,22 @@ function(add_rpcproxy_files)
|
|||
|
||||
foreach(FILE ${ARGN})
|
||||
get_filename_component(NAME ${FILE} NAME_WE)
|
||||
list(APPEND IDLS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE})
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.c ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.h
|
||||
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -p -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.c -h -H ${NAME}_p.h ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} native-widl)
|
||||
# Most proxy idl's have names like <proxyname>_<original>.idl
|
||||
# We use this to create a dependency from the proxy to the original idl
|
||||
string(REPLACE "_" ";" SPLIT_FILE ${FILE})
|
||||
list(LENGTH SPLIT_FILE len)
|
||||
unset(EXTRA_DEP)
|
||||
if(len STREQUAL "2")
|
||||
list(GET SPLIT_FILE 1 SPLIT_FILE)
|
||||
if(EXISTS "${REACTOS_SOURCE_DIR}/sdk/include/psdk/${SPLIT_FILE}")
|
||||
set(EXTRA_DEP ${REACTOS_SOURCE_DIR}/sdk/include/psdk/${SPLIT_FILE})
|
||||
endif()
|
||||
endif()
|
||||
list(APPEND IDLS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE})
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.c ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.h
|
||||
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -p -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.c -h -H ${NAME}_p.h ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} ${EXTRA_DEP} native-widl)
|
||||
endforeach()
|
||||
|
||||
# Extra pass to generate dlldata
|
||||
|
|
Loading…
Reference in a new issue