mirror of
https://github.com/geode-sdk/geode.git
synced 2025-04-24 05:14:40 -04:00
only hash png ogg and mp3 files
This commit is contained in:
parent
ea0a81a790
commit
2a7c9d1be6
3 changed files with 26 additions and 22 deletions
|
@ -72,7 +72,6 @@ add_subdirectory(fmt)
|
|||
target_link_libraries(${PROJECT_NAME} INTERFACE filesystem fmt)
|
||||
|
||||
|
||||
|
||||
if (NOT EXISTS ${GEODE_BIN_PATH})
|
||||
make_directory(${GEODE_BIN_PATH})
|
||||
endif()
|
||||
|
|
|
@ -163,22 +163,29 @@ function(package_geode_resources_now proname src dest header_dest)
|
|||
file(GLOB RESOURCE_FILES "${dest}/*.*")
|
||||
|
||||
set(HEADER_FILE
|
||||
#[["#include <unordered_map>\n\n"]]
|
||||
#[["static const std::unordered_map<std::string, std::string> "]]
|
||||
#[["LOADER_RESOURCE_HASHES {\n"]]
|
||||
"#include <vector>\n\n"
|
||||
"static const std::vector<std::string> "
|
||||
"LOADER_RESOURCE_FILES {\n"
|
||||
"#include <unordered_map>\n\n"
|
||||
"static const std::unordered_map<std::string, std::string> "
|
||||
"LOADER_RESOURCE_HASHES {\n"
|
||||
# "#include <vector>\n\n"
|
||||
# "static const std::vector<std::string> "
|
||||
# "LOADER_RESOURCE_FILES {\n"
|
||||
)
|
||||
|
||||
list(APPEND HASHED_EXTENSIONS ".png")
|
||||
list(APPEND HASHED_EXTENSIONS ".mp3")
|
||||
list(APPEND HASHED_EXTENSIONS ".ogg")
|
||||
|
||||
foreach(file ${RESOURCE_FILES})
|
||||
cmake_path(GET file FILENAME FILE_NAME)
|
||||
if (NOT FILE_NAME STREQUAL ".geode_cache")
|
||||
|
||||
# file(SHA256 ${file} COMPUTED_HASH)
|
||||
# list(APPEND HEADER_FILE "\t{ \"${FILE_NAME}\", \"${COMPUTED_HASH}\" },\n")
|
||||
get_filename_component(FILE_EXTENSION ${file} EXT)
|
||||
list(FIND HASHED_EXTENSIONS "${FILE_EXTENSION}" FILE_SHOULD_HASH)
|
||||
|
||||
list(APPEND HEADER_FILE "\t\"${FILE_NAME}\",\n")
|
||||
if (NOT FILE_NAME STREQUAL ".geode_cache" AND NOT FILE_SHOULD_HASH EQUAL -1)
|
||||
|
||||
file(SHA256 ${file} COMPUTED_HASH)
|
||||
list(APPEND HEADER_FILE "\t{ \"${FILE_NAME}\", \"${COMPUTED_HASH}\" },\n")
|
||||
|
||||
# list(APPEND HEADER_FILE "\t\"${FILE_NAME}\",\n")
|
||||
|
||||
endif()
|
||||
|
||||
|
|
|
@ -180,23 +180,21 @@ bool InternalLoader::verifyLoaderResources(IndexUpdateCallback callback) {
|
|||
for (auto& file : ghc::filesystem::directory_iterator(resourcesDir)) {
|
||||
auto name = file.path().filename().string();
|
||||
// skip unknown files
|
||||
if (/*!LOADER_RESOURCE_HASHES.count(name)*/
|
||||
std::find(LOADER_RESOURCE_FILES.begin(), LOADER_RESOURCE_FILES.end(), name)
|
||||
== LOADER_RESOURCE_FILES.end()) {
|
||||
if (!LOADER_RESOURCE_HASHES.count(name)) {
|
||||
continue;
|
||||
}
|
||||
// verify hash
|
||||
// auto hash = calculateSHA256(file.path());
|
||||
// if (hash != LOADER_RESOURCE_HASHES.at(name)) {
|
||||
// log::debug("compare {} {} {}", file.path().string(), hash, LOADER_RESOURCE_HASHES.at(name));
|
||||
// this->downloadLoaderResources(callback);
|
||||
// return false;
|
||||
// }
|
||||
auto hash = calculateSHA256(file.path());
|
||||
if (hash != LOADER_RESOURCE_HASHES.at(name)) {
|
||||
log::debug("compare {} {} {}", file.path().string(), hash, LOADER_RESOURCE_HASHES.at(name));
|
||||
this->downloadLoaderResources(callback);
|
||||
return false;
|
||||
}
|
||||
coverage += 1;
|
||||
}
|
||||
|
||||
// make sure every file was found
|
||||
if (coverage != /*LOADER_RESOURCE_HASHES*/ LOADER_RESOURCE_FILES.size()) {
|
||||
if (coverage != LOADER_RESOURCE_HASHES.size()) {
|
||||
this->downloadLoaderResources(callback);
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue