mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 20:35:43 +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})
|
foreach(FILE ${ARGN})
|
||||||
get_filename_component(NAME ${FILE} NAME_WE)
|
get_filename_component(NAME ${FILE} NAME_WE)
|
||||||
list(APPEND IDLS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE})
|
# Most proxy idl's have names like <proxyname>_<original>.idl
|
||||||
add_custom_command(
|
# We use this to create a dependency from the proxy to the original idl
|
||||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.c ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.h
|
string(REPLACE "_" ";" SPLIT_FILE ${FILE})
|
||||||
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}
|
list(LENGTH SPLIT_FILE len)
|
||||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} native-widl)
|
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()
|
endforeach()
|
||||||
|
|
||||||
# Extra pass to generate dlldata
|
# Extra pass to generate dlldata
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue