@@ -112,32 +112,47 @@ elseif (GEODE_TARGET_PLATFORM STREQUAL "Android32")
112112 )
113113endif ()
114114
115+ message (STATUS "Fetching Geode nightly Git hash" )
116+
115117execute_process (
116118 COMMAND git ls-remote https://github.com/geode-sdk/geode -t nightly
117119 WORKING_DIRECTORY $ENV{GEODE_SDK}
118120 OUTPUT_VARIABLE GEODE_MEMBER_TEST_GIT_OUTPUT
121+ ERROR_VARIABLE GEODE_MEMBER_TEST_GIT_ERROR
119122 OUTPUT_STRIP_TRAILING_WHITESPACE
120123)
121- string (REGEX MATCH "^[0-9a-f]+" GEODE_MEMBER_TEST_GIT_HASH ${GEODE_MEMBER_TEST_GIT_OUTPUT} )
122- string (SUBSTRING ${GEODE_MEMBER_TEST_GIT_HASH} 0 7 GEODE_MEMBER_TEST_GIT_HASH)
123-
124- message (STATUS "Downloading Geode binaries from ${GEODE_MEMBER_TEST_GIT_HASH} " )
125- file (DOWNLOAD
126- https://github.com/geode-sdk/geode/releases/download/nightly/geode-${GEODE_MEMBER_TEST_GIT_HASH} -${GEODE_MEMBER_TEST_PLATFORM} .zip
127- ${CMAKE_CURRENT_BINARY_DIR} /geode.zip
128- STATUS GEODE_MEMBER_TEST_DOWNLOAD_STATUS
129- )
130- list (GET GEODE_MEMBER_TEST_DOWNLOAD_STATUS 0 GEODE_MEMBER_TEST_DOWNLOAD_STATUS_CODE)
131- if (GEODE_MEMBER_TEST_DOWNLOAD_STATUS_CODE EQUAL 0)
132- message (STATUS "Downloaded Geode binaries" )
124+ if (GEODE_MEMBER_TEST_GIT_ERROR)
125+ message (STATUS "Failed to fetch Geode nightly Git hash, using existing binaries" )
133126else ()
134- list (GET GEODE_MEMBER_TEST_DOWNLOAD_STATUS 1 GEODE_MEMBER_TEST_DOWNLOAD_STATUS_MESSAGE)
135- message (FATAL_ERROR "Downloading Geode binaries failed: ${GEODE_MEMBER_TEST_DOWNLOAD_STATUS_MESSAGE} " )
127+ string (REGEX MATCH "^[0-9a-f]+" GEODE_MEMBER_TEST_GIT_HASH ${GEODE_MEMBER_TEST_GIT_OUTPUT} )
128+ string (SUBSTRING ${GEODE_MEMBER_TEST_GIT_HASH} 0 7 GEODE_MEMBER_TEST_GIT_HASH)
129+
130+ if ("$CACHE{GEODE_MEMBER_TEST_GIT_HASH} " STREQUAL "${GEODE_MEMBER_TEST_GIT_HASH} " )
131+ message (STATUS "Using cached Geode binaries from ${GEODE_MEMBER_TEST_GIT_HASH} " )
132+ else ()
133+ message (STATUS "Downloading Geode binaries from ${GEODE_MEMBER_TEST_GIT_HASH} " )
134+
135+ file (DOWNLOAD
136+ https://github.com/geode-sdk/geode/releases/download/nightly/geode-${GEODE_MEMBER_TEST_GIT_HASH} -${GEODE_MEMBER_TEST_PLATFORM} .zip
137+ ${CMAKE_CURRENT_BINARY_DIR} /geode.zip
138+ STATUS GEODE_MEMBER_TEST_DOWNLOAD_STATUS
139+ )
140+ list (GET GEODE_MEMBER_TEST_DOWNLOAD_STATUS 0 GEODE_MEMBER_TEST_DOWNLOAD_STATUS_CODE)
141+ if (GEODE_MEMBER_TEST_DOWNLOAD_STATUS_CODE EQUAL 0)
142+ message (STATUS "Downloaded Geode binaries" )
143+ else ()
144+ list (GET GEODE_MEMBER_TEST_DOWNLOAD_STATUS 1 GEODE_MEMBER_TEST_DOWNLOAD_STATUS_MESSAGE)
145+ message (FATAL_ERROR "Downloading Geode binaries failed: ${GEODE_MEMBER_TEST_DOWNLOAD_STATUS_MESSAGE} " )
146+ endif ()
147+
148+ set (GEODE_MEMBER_TEST_GIT_HASH ${GEODE_MEMBER_TEST_GIT_HASH} CACHE STRING "Git hash of the Geode binaries" )
149+
150+ file (ARCHIVE_EXTRACT
151+ INPUT ${CMAKE_CURRENT_BINARY_DIR} /geode.zip
152+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} /geode
153+ PATTERNS ${GEODE_MEMBER_TEST_BINARY}
154+ )
155+ endif ()
136156endif ()
137157
138- file (ARCHIVE_EXTRACT
139- INPUT ${CMAKE_CURRENT_BINARY_DIR} /geode.zip
140- DESTINATION ${CMAKE_CURRENT_BINARY_DIR} /geode
141- PATTERNS ${GEODE_MEMBER_TEST_BINARY}
142- )
143158target_link_libraries (${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} /geode/${GEODE_MEMBER_TEST_BINARY} )
0 commit comments