diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d6bc42e9a..73ead59cd9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -214,10 +214,15 @@ if (DOWNLOAD_TITLE_SEQUENCES) endif ()") endif () if (DOWNLOAD_OBJECTS) - set(OBJECT_DIR "\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT}/object") - install(CODE "file(DOWNLOAD ${OBJECTS_URL} ${OBJECT_DIR}/objects.zip EXPECTED_HASH SHA1=${OBJECTS_SHA1} SHOW_PROGRESS)") - install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E chdir ${OBJECT_DIR}/ \"${CMAKE_COMMAND}\" -E tar xvf objects.zip)") - install(CODE "file(REMOVE ${OBJECT_DIR}/objects.zip)") + # If rct2.wtrcyan.json or data/object/ exists, assume all the objects are already present + install(CODE + "if (EXISTS \"\$ENV{DESTDIR}/${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT}/object/rct2/water/rct2.wtrcyan.json\" OR EXISTS ${CMAKE_SOURCE_DIR}/data/object/)\n\ + message(\"Using cached objects\")\n\ + else () \n\ + file(DOWNLOAD ${OBJECTS_URL} \$ENV{DESTDIR}/${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT}/object/objects.zip EXPECTED_HASH SHA1=${OBJECTS_SHA1} SHOW_PROGRESS)\n\ + execute_process(COMMAND \"${CMAKE_COMMAND}\" -E chdir \$ENV{DESTDIR}/${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT}/object/ \"${CMAKE_COMMAND}\" -E tar xvf objects.zip)\n\ + file(REMOVE \$ENV{DESTDIR}/${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT}/object/objects.zip)\n\ + endif ()") endif () install(TARGETS "libopenrct2" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")