PROJECT(ressource-archive)

#-------------------------------------------------------------------------------
# This macro add rules to compile file with the project's custom compilers
# CCR_TARGET is the target added to build all these files
# CCR_CUSTOM_COMMAND is the path to the compiler
# CCR_EXT is the extension of the file generated by the compiler
# CCR_CUSTOM_FILES is the list of the files to compile
#
MACRO(
  CUSTOM_COMPILE_RULE
  CCR_TARGET
  CCR_CUSTOM_COMMAND
  CCR_EXT
  ...
  )
  FOREACH( CCR_F ${ARGV3} ${ARGN} )
    GET_FILENAME_COMPONENT( CCR_BASENAME "${CCR_F}" NAME_WE )
    GET_FILENAME_COMPONENT( CCR_FILEPATH "${CCR_F}" PATH )

    SET( CCR_OUTPUT "${CCR_FILEPATH}/${CCR_BASENAME}${CCR_EXT}" )
    SET( CCR_OUTPUT_FILES ${CCR_OUTPUT_FILES} "${CCR_OUTPUT}" )

    ADD_CUSTOM_COMMAND(
      OUTPUT "${CCR_OUTPUT}"
      COMMAND ${CCR_CUSTOM_COMMAND}
      ARGS ${CCR_F}
      DEPENDS ${CCR_CUSTOM_COMMAND} ${CCR_F}
    )
  SET( RA_FILES ${RA_FILES} ${CCR_OUTPUT} )
  ENDFOREACH( CCR_F ${ARGN} )

  ADD_CUSTOM_TARGET( ${CCR_TARGET} ALL DEPENDS ${CCR_OUTPUT_FILES} )
ENDMACRO( CUSTOM_COMPILE_RULE )

SET( BASE_DIR "${GAME_ROOT_DIRECTORY}" )

# model compiler
SET( MC_EXEC "${BASE_DIR}/bin/mc" )

SET( MODEL_FILES
  model/headstone.mdl
  model/player_1.mdl
  model/player_2.mdl
  model/sting.mdl
  model/stone.mdl
  model/wasp.mdl
)

CUSTOM_COMPILE_RULE( model_files "${MC_EXEC}" .cm ${MODEL_FILES} )

INSTALL(
  DIRECTORY "font" "gfx" "lang" "level" "model" "music" "sound"
  DESTINATION ${PTB_INSTALL_DATA_DIR}
  FILE_PERMISSIONS OWNER_READ OWNER_WRITE
  GROUP_READ
  WORLD_READ
  DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
  GROUP_READ GROUP_EXECUTE
  WORLD_READ WORLD_EXECUTE
  PATTERN ".svn" EXCLUDE
  PATTERN "*~" EXCLUDE
  PATTERN "*!*" EXCLUDE
  PATTERN "*xcf*" EXCLUDE
  PATTERN "*.rg" EXCLUDE
  PATTERN "*.mdl" EXCLUDE
  PATTERN "*.lvl" EXCLUDE
  PATTERN "*.mid" EXCLUDE
  PATTERN "*.spritepos" EXCLUDE
  PATTERN "*.scm" EXCLUDE
  PATTERN "AUTHORS" EXCLUDE
  PATTERN "README" EXCLUDE
)
