Invoke MIDL compiler from CMAKE

前端 未结 2 1688
Happy的楠姐
Happy的楠姐 2021-01-06 09:16

I am going to use MIDL compiler with CMAKE but unable to invoke MIDL compiler from CmakeList

That is command which I use to achieve my goal

add_custo         


        
2条回答
  •  [愿得一人]
    2021-01-06 09:24

    to improve upon @definename's answer and @nathan-moinvaziri's comment, it's not necessary to do add_custom_target as long as you add the output to your source files list, so the revised answer is:

    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
    )
    # add_custom_target(midl-cmplr
    #     DEPENDS ${MIDL_OUTPUT}
    # )
    # add_dependencies(${PROJECT_NAME}
    #     midl-cmplr
    # )
    # set_source_files_properties(${MIDL_OUTPUT} PROPERTIES
    #   GENERATED TRUE
    # )
    target_sources(${PROJECT_NAME} PRIVATE ${MIDL_FILE} ${MIDL_OUTPUT})
    

提交回复
热议问题