Я сделал, как описано здесь
set(MIDL_OUTPUT
${CMAKE_CURRENT_BINARY_DIR}/IFace.h
${CMAKE_CURRENT_BINARY_DIR}/GUIDS.c
${CMAKE_CURRENT_BINARY_DIR}/Proxy.c
${CMAKE_CURRENT_BINARY_DIR}/ProxyDll.c
)
set(MIDL_FILE
${CMAKE_CURRENT_LIST_DIR}/BookSku.idl
)
add_custom_command(
OUTPUT ${MIDL_OUTPUT}
COMMAND midl /h IFace.h /iid GUIDS.c /proxy Proxy.c /dlldata ProxyDll.c
${MIDL_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS ${MIDL_FILE}
MAIN_DEPENDENCY ${MIDL_FILE}
VERBATIM
)
Вывод из сборки файла IDL зависит от многих заголовков, поэтому необходимо отслеживать, изменились ли они, чтобы определить если он должен перестроить библиотеку типов. Но когда вы меняете файлы и нажимаете «Build», проект в VS2017 не перестраивается. Нужно пу sh "Перестроить". Как сделать, чтобы изменения файла отслеживались?