|
|
|
|
@ -1,3 +1,6 @@
|
|
|
|
|
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() |
|
|
|
|
@ -30,32 +33,42 @@ if(NOT UNPACKED_MPQS)
|
|
|
|
|
data/inv/objcurs2-widths.txt) |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
foreach(asset_file ${hellfire_mod}) |
|
|
|
|
set(src "${CMAKE_CURRENT_SOURCE_DIR}/mods/Hellfire/${asset_file}") |
|
|
|
|
set(dst "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire/${asset_file}") |
|
|
|
|
list(APPEND HELLFIRE_MPQ_FILES "${asset_file}") |
|
|
|
|
list(APPEND HELLFIRE_OUTPUT_FILES "${dst}") |
|
|
|
|
add_custom_command( |
|
|
|
|
COMMENT "Copying ${asset_file}" |
|
|
|
|
OUTPUT "${dst}" |
|
|
|
|
DEPENDS "${src}" |
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy "${src}" "${dst}" |
|
|
|
|
VERBATIM) |
|
|
|
|
endforeach() |
|
|
|
|
|
|
|
|
|
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 ${HELLFIRE_OUTPUT_FILES} |
|
|
|
|
VERBATIM) |
|
|
|
|
add_custom_target(hellfire_mpq DEPENDS "${HELLFIRE_MPQ}") |
|
|
|
|
add_dependencies(libdevilutionx hellfire_mpq) |
|
|
|
|
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() |
|
|
|
|
add_custom_target(hellfire_copied_mod_file DEPENDS ${HELLFIRE_OUTPUT_FILES}) |
|
|
|
|
add_dependencies(libdevilutionx hellfire_copied_mod_file) |
|
|
|
|
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() |
|
|
|
|
|