|
| 1 | +include(functions/copy_files) |
| 2 | +include(functions/trim_retired_files) |
| 3 | + |
1 | 4 | if(NOT DEFINED DEVILUTIONX_MODS_OUTPUT_DIRECTORY) |
2 | 5 | set(DEVILUTIONX_MODS_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mods") |
3 | 6 | endif() |
@@ -30,32 +33,42 @@ if(NOT UNPACKED_MPQS) |
30 | 33 | data/inv/objcurs2-widths.txt) |
31 | 34 | endif() |
32 | 35 |
|
33 | | -foreach(asset_file ${hellfire_mod}) |
34 | | - set(src "${CMAKE_CURRENT_SOURCE_DIR}/mods/Hellfire/${asset_file}") |
35 | | - set(dst "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire/${asset_file}") |
36 | | - list(APPEND HELLFIRE_MPQ_FILES "${asset_file}") |
37 | | - list(APPEND HELLFIRE_OUTPUT_FILES "${dst}") |
38 | | - add_custom_command( |
39 | | - COMMENT "Copying ${asset_file}" |
40 | | - OUTPUT "${dst}" |
41 | | - DEPENDS "${src}" |
42 | | - COMMAND ${CMAKE_COMMAND} -E copy "${src}" "${dst}" |
43 | | - VERBATIM) |
44 | | -endforeach() |
45 | | - |
46 | | -if(BUILD_ASSETS_MPQ) |
47 | | - set(HELLFIRE_MPQ "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire.mpq") |
48 | | - add_custom_command( |
49 | | - COMMENT "Building Hellfire.mpq" |
50 | | - OUTPUT "${HELLFIRE_MPQ}" |
51 | | - COMMAND ${CMAKE_COMMAND} -E remove -f "${HELLFIRE_MPQ}" |
52 | | - COMMAND ${SMPQ} -A -M 1 -C BZIP2 -c "${HELLFIRE_MPQ}" ${HELLFIRE_MPQ_FILES} |
53 | | - WORKING_DIRECTORY "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire" |
54 | | - DEPENDS ${HELLFIRE_OUTPUT_FILES} |
55 | | - VERBATIM) |
56 | | - add_custom_target(hellfire_mpq DEPENDS "${HELLFIRE_MPQ}") |
57 | | - add_dependencies(libdevilutionx hellfire_mpq) |
| 36 | +if(APPLE) |
| 37 | + foreach(asset_file ${hellfire_mod}) |
| 38 | + set(src "${CMAKE_CURRENT_SOURCE_DIR}/mods/Hellfire/${asset_file}") |
| 39 | + get_filename_component(_asset_dir "${asset_file}" DIRECTORY) |
| 40 | + set_source_files_properties("${src}" PROPERTIES |
| 41 | + MACOSX_PACKAGE_LOCATION "Resources/mods/Hellfire/${_asset_dir}" |
| 42 | + XCODE_EXPLICIT_FILE_TYPE compiled) |
| 43 | + target_sources(${BIN_TARGET} PRIVATE "${src}") |
| 44 | + endforeach() |
58 | 45 | else() |
59 | | - add_custom_target(hellfire_copied_mod_file DEPENDS ${HELLFIRE_OUTPUT_FILES}) |
60 | | - add_dependencies(libdevilutionx hellfire_copied_mod_file) |
| 46 | + copy_files( |
| 47 | + FILES ${hellfire_mod} |
| 48 | + SRC_PREFIX "mods/Hellfire/" |
| 49 | + OUTPUT_DIR "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire" |
| 50 | + OUTPUT_VARIABLE HELLFIRE_OUTPUT_FILES) |
| 51 | + set(HELLFIRE_MPQ_FILES ${hellfire_mod}) |
| 52 | + add_trim_target(hellfire_trim_assets |
| 53 | + ROOT_FOLDER "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire" |
| 54 | + CURRENT_FILES ${HELLFIRE_MPQ_FILES}) |
| 55 | + |
| 56 | + if(BUILD_ASSETS_MPQ) |
| 57 | + set(HELLFIRE_MPQ "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire.mpq") |
| 58 | + add_custom_command( |
| 59 | + COMMENT "Building Hellfire.mpq" |
| 60 | + OUTPUT "${HELLFIRE_MPQ}" |
| 61 | + COMMAND ${CMAKE_COMMAND} -E remove -f "${HELLFIRE_MPQ}" |
| 62 | + COMMAND ${SMPQ} -A -M 1 -C BZIP2 -c "${HELLFIRE_MPQ}" ${HELLFIRE_MPQ_FILES} |
| 63 | + WORKING_DIRECTORY "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire" |
| 64 | + DEPENDS ${TRIM_COMMAND_BYPRODUCT} ${HELLFIRE_OUTPUT_FILES} |
| 65 | + VERBATIM) |
| 66 | + add_custom_target(hellfire_mpq DEPENDS "${HELLFIRE_MPQ}") |
| 67 | + add_dependencies(hellfire_mpq hellfire_trim_assets) |
| 68 | + add_dependencies(libdevilutionx hellfire_mpq) |
| 69 | + else() |
| 70 | + add_custom_target(hellfire_copied_assets DEPENDS ${HELLFIRE_OUTPUT_FILES}) |
| 71 | + add_dependencies(hellfire_copied_assets hellfire_trim_assets) |
| 72 | + add_dependencies(libdevilutionx hellfire_copied_assets) |
| 73 | + endif() |
61 | 74 | endif() |
0 commit comments