You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.6 KiB

include(functions/copy_files)
include(functions/trim_retired_files)
if(NOT DEFINED DEVILUTIONX_MODS_OUTPUT_DIRECTORY)
set(DEVILUTIONX_MODS_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mods")
endif()
set(hellfire_mod
lua/mods/Hellfire/init.lua
nlevels/cutl5w.clx
nlevels/cutl6w.clx
nlevels/l5data/cornerstone.dun
nlevels/l5data/uberroom.dun
txtdata/classes/sorcerer/starting_loadout.tsv
txtdata/classes/classdat.tsv
txtdata/items/item_prefixes.tsv
txtdata/items/item_suffixes.tsv
txtdata/items/unique_itemdat.tsv
txtdata/missiles/misdat.tsv
txtdata/missiles/missile_sprites.tsv
txtdata/monsters/monstdat.tsv
txtdata/sound/effects.tsv
txtdata/spells/spelldat.tsv
txtdata/towners/quest_dialog.tsv
txtdata/towners/towners.tsv
ui_art/diablo.pal
ui_art/hf_titlew.clx
ui_art/supportw.clx
ui_art/mainmenuw.clx)
if(NOT UNPACKED_MPQS)
list(APPEND hellfire_mod
data/inv/objcurs2-widths.txt)
endif()
if(APPLE)
foreach(asset_file ${hellfire_mod})
set(src "${CMAKE_CURRENT_SOURCE_DIR}/mods/Hellfire/${asset_file}")
get_filename_component(_asset_dir "${asset_file}" DIRECTORY)
set_source_files_properties("${src}" PROPERTIES
MACOSX_PACKAGE_LOCATION "Resources/mods/Hellfire/${_asset_dir}"
XCODE_EXPLICIT_FILE_TYPE compiled)
target_sources(${BIN_TARGET} PRIVATE "${src}")
endforeach()
else()
copy_files(
FILES ${hellfire_mod}
SRC_PREFIX "mods/Hellfire/"
OUTPUT_DIR "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire"
OUTPUT_VARIABLE HELLFIRE_OUTPUT_FILES)
set(HELLFIRE_MPQ_FILES ${hellfire_mod})
add_trim_target(hellfire_trim_assets
ROOT_FOLDER "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire"
CURRENT_FILES ${HELLFIRE_MPQ_FILES})
if(BUILD_ASSETS_MPQ)
set(HELLFIRE_MPQ "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire.mpq")
add_custom_command(
COMMENT "Building Hellfire.mpq"
OUTPUT "${HELLFIRE_MPQ}"
COMMAND ${CMAKE_COMMAND} -E remove -f "${HELLFIRE_MPQ}"
COMMAND ${SMPQ} -A -M 1 -C BZIP2 -c "${HELLFIRE_MPQ}" ${HELLFIRE_MPQ_FILES}
WORKING_DIRECTORY "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire"
DEPENDS ${TRIM_COMMAND_BYPRODUCT} ${HELLFIRE_OUTPUT_FILES}
VERBATIM)
add_custom_target(hellfire_mpq DEPENDS "${HELLFIRE_MPQ}")
add_dependencies(hellfire_mpq hellfire_trim_assets)
add_dependencies(libdevilutionx hellfire_mpq)
else()
add_custom_target(hellfire_copied_assets DEPENDS ${HELLFIRE_OUTPUT_FILES})
add_dependencies(hellfire_copied_assets hellfire_trim_assets)
add_dependencies(libdevilutionx hellfire_copied_assets)
endif()
endif()