@@ -175,19 +175,29 @@ endif()
175175
176176# === winmd: External header-only library for reading winmd files ===
177177
178- include (ExternalProject)
179- ExternalProject_Add(winmd
180- GIT_REPOSITORY https://github.com/microsoft/winmd.git
181- GIT_TAG 0f1eae3bfa63fa2ba3c2912cbfe72a01db94cc5a
182- CONFIGURE_COMMAND ""
183- BUILD_COMMAND ""
184- INSTALL_COMMAND ""
185- UPDATE_COMMAND ""
186- )
187- add_dependencies (cppwinrt winmd)
188- ExternalProject_Get_Property(winmd SOURCE_DIR)
189- set (winmd_SOURCE_DIR "${SOURCE_DIR} " )
190- target_include_directories (cppwinrt PRIVATE "${winmd_SOURCE_DIR} /src" )
178+ set (EXTERNAL_WINMD_INCLUDE_DIR "" CACHE PATH "Path to the include dir of an\
179+ external copy of the winmd library headers. Leave empty (default) to have\
180+ it downloaded as ExternalProject during build." )
181+
182+ if (EXTERNAL_WINMD_INCLUDE_DIR STREQUAL "" )
183+ message (STATUS "The winmd library will be downloaded using ExternalProject." )
184+ include (ExternalProject)
185+ ExternalProject_Add(winmd
186+ GIT_REPOSITORY https://github.com/microsoft/winmd.git
187+ GIT_TAG 0f1eae3bfa63fa2ba3c2912cbfe72a01db94cc5a
188+ CONFIGURE_COMMAND ""
189+ BUILD_COMMAND ""
190+ INSTALL_COMMAND ""
191+ UPDATE_COMMAND ""
192+ )
193+ add_dependencies (cppwinrt winmd)
194+ ExternalProject_Get_Property(winmd SOURCE_DIR)
195+ set (winmd_INCLUDE_DIR "${SOURCE_DIR} /src" )
196+ else ()
197+ message (STATUS "Using winmd library headers at ${EXTERNAL_WINMD_INCLUDE_DIR} " )
198+ set (winmd_INCLUDE_DIR "${EXTERNAL_WINMD_INCLUDE_DIR} " )
199+ endif ()
200+ target_include_directories (cppwinrt PRIVATE "${winmd_INCLUDE_DIR} " )
191201
192202
193203if (WIN32 AND NOT CMAKE_CROSSCOMPILING )
0 commit comments