Skip to content

Commit 0214f2f

Browse files
authored
cmake: Allow using external winmd headers to bypass download (#1256)
1 parent 0a6cb06 commit 0214f2f

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed

CMakeLists.txt

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

193203
if(WIN32 AND NOT CMAKE_CROSSCOMPILING)

0 commit comments

Comments
 (0)