diff --git a/CMake/genscript.cmake b/CMake/genscript.cmake deleted file mode 100644 index 10089a4fd..000000000 --- a/CMake/genscript.cmake +++ /dev/null @@ -1,5 +0,0 @@ -file(READ ${CMAKE_CURRENT_SOURCE_DIR}/extract_assets.py filedata) -string(REGEX REPLACE "zapd_exe = .*exec_cmd =" "zapd_exe = \"${program}\"\n exec_cmd =" filedata "${filedata}") -file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/extract_assets_cmake2.py" "${filedata}") -file(CHMOD "${CMAKE_CURRENT_SOURCE_DIR}/extract_assets_cmake2.py" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) - diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f0f66aae..f42fb69cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) +cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR) set(CMAKE_SYSTEM_VERSION 10.0 CACHE STRING "" FORCE) set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use") @@ -138,15 +138,15 @@ find_package(Python3 COMPONENTS Interpreter) add_custom_target( ExtractAssets - COMMAND ${CMAKE_COMMAND} -Dprogram=$ -P ${CMAKE_SOURCE_DIR}/CMake/genscript.cmake - COMMAND ${CMAKE_COMMAND} -E rm -f oot.otr - COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets_cmake2.py + # CMake versions prior to 3.17 do not have the rm command, use remove instead for older versions + COMMAND ${CMAKE_COMMAND} -E $,remove,rm> -f oot.otr + COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$" COMMAND ${CMAKE_COMMAND} -E copy oot.otr ${CMAKE_SOURCE_DIR} COMMAND ${CMAKE_COMMAND} -E copy oot.otr ${CMAKE_BINARY_DIR}/soh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter COMMENT "Running asset extraction..." DEPENDS ZAPD - BYPRODUCTS oot.otr ${CMAKE_SOURCE_DIR}/oot.otr ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets_cmake2.py + BYPRODUCTS oot.otr ${CMAKE_SOURCE_DIR}/oot.otr ) if(CMAKE_SYSTEM_NAME MATCHES "Linux") diff --git a/OTRExporter/CMakeLists.txt b/OTRExporter/CMakeLists.txt index 5f314926e..6fc366485 100644 --- a/OTRExporter/CMakeLists.txt +++ b/OTRExporter/CMakeLists.txt @@ -94,9 +94,3 @@ if (NOT TARGET ZAPDUtils) endif() add_subdirectory(OTRExporter) - -file(READ ${CMAKE_CURRENT_SOURCE_DIR}/extract_assets.py filedata) -string(REGEX REPLACE "../ZAPDTR/ZAPD.out" "${CMAKE_BINARY_DIR}/ZAPD/ZAPD.out" filedata "${filedata}") -file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/extract_assets_cmake.py" "${filedata}") -file(CHMOD "${CMAKE_CURRENT_SOURCE_DIR}/extract_assets_cmake.py" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) - diff --git a/OTRExporter/extract_assets.py b/OTRExporter/extract_assets.py index 407760b8f..7fd05739b 100755 --- a/OTRExporter/extract_assets.py +++ b/OTRExporter/extract_assets.py @@ -6,15 +6,18 @@ from rom_info import Z64Rom import rom_chooser import struct import subprocess +import argparse -def BuildOTR(xmlPath, rom): +def BuildOTR(xmlPath, rom, zapd_exe=None): shutil.copytree("assets", "Extract/assets") checksum = int(Z64Rom(rom).checksum.value, 16) with open("Extract/version", "wb") as f: f.write(struct.pack('