## CMakeLists.txt						-*- CMake -*-
##
## Copyright (C) 2006-2010 Christian Schenk
## 
## This file is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published
## by the Free Software Foundation; either version 2, or (at your
## option) any later version.
## 
## This file is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
## General Public License for more details.
## 
## You should have received a copy of the GNU General Public License
## along with this file; if not, write to the Free Software
## Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
## USA.

set(inc_ini_files
  ${CMAKE_CURRENT_BINARY_DIR}/context.ini
  ${CMAKE_CURRENT_BINARY_DIR}/formats-context.ini
)

set(main_ini_files
  ${CMAKE_CURRENT_BINARY_DIR}/amstex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/cont-de.ini
  ${CMAKE_CURRENT_BINARY_DIR}/cont-en.ini
  ${CMAKE_CURRENT_BINARY_DIR}/cont-fr.ini
  ${CMAKE_CURRENT_BINARY_DIR}/cont-it.ini
  ${CMAKE_CURRENT_BINARY_DIR}/cont-nl.ini
  ${CMAKE_CURRENT_BINARY_DIR}/cont-ro.ini
  ${CMAKE_CURRENT_BINARY_DIR}/cslatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/csplain.ini
  ${CMAKE_CURRENT_BINARY_DIR}/dvilualatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/dviluatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/dvipdfm.ini
  ${CMAKE_CURRENT_BINARY_DIR}/dvipdfmx.ini
  ${CMAKE_CURRENT_BINARY_DIR}/elatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/eplain.ini
  ${CMAKE_CURRENT_BINARY_DIR}/etex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/fontinst.ini
  ${CMAKE_CURRENT_BINARY_DIR}/formats.ini
  ${CMAKE_CURRENT_BINARY_DIR}/frlatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/frtex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/ftex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/jadetex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/lambda.ini
  ${CMAKE_CURRENT_BINARY_DIR}/latex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/latex209.ini
  ${CMAKE_CURRENT_BINARY_DIR}/lualatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/luatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/mex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/mllatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/mltex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/olatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/omega.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdfamstex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdfcslatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdfcsplain.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdfelatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdfjadetex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdflatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdfmex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdfplatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdftex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdftexinfo.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdfxlatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdfxmex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdfxmltex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/pdfxtex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/platex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/t4ht.ini
  ${CMAKE_CURRENT_BINARY_DIR}/tex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/tex4ht.ini
  ${CMAKE_CURRENT_BINARY_DIR}/texinfo.ini
  ${CMAKE_CURRENT_BINARY_DIR}/ttf2pk.ini
  ${CMAKE_CURRENT_BINARY_DIR}/ttf2tfm.ini
  ${CMAKE_CURRENT_BINARY_DIR}/utf8mex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/xdvipdfmx.ini
  ${CMAKE_CURRENT_BINARY_DIR}/xelatex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/xeplain.ini
  ${CMAKE_CURRENT_BINARY_DIR}/xetex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/xmltex.ini
  ${CMAKE_CURRENT_BINARY_DIR}/yap.ini
)

file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/header.txt"
  ";;; DO NOT EDIT THIS FILE!\n\n")

file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/footer.txt"
  "\n;;;\n")
  
foreach(i ${inc_ini_files})
  get_filename_component(ininame ${i} NAME)
  add_custom_command(
    OUTPUT ${i} ${i}.dos
    COMMAND ${CAT_EXE} header.txt
		> ${i}.dos
    COMMAND ${CAT_EXE} ${CMAKE_CURRENT_SOURCE_DIR}/${ininame}.body
		>> ${i}.dos
    COMMAND ${TR_EXE} -d '\\r' < ${i}.dos > ${i}
    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${ininame}.body
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
    VERBATIM
  )
endforeach(i)

foreach(i ${main_ini_files})
  get_filename_component(ininame ${i} NAME)
  add_custom_command(
    OUTPUT ${i} ${i}.dos tmp
    COMMAND ${CAT_EXE} header.txt
		> ${i}.dos
    COMMAND ${CAT_EXE} ${CMAKE_CURRENT_SOURCE_DIR}/${ininame}.body
		>> ${i}.dos
    COMMAND ${CAT_EXE} footer.txt
		>> ${i}.dos
    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${ininame}.body tmp
    COMMAND ${cfg_exe} tmp
		>> ${i}.dos
    COMMAND ${TR_EXE} -d '\\r' < ${i}.dos > ${i}
    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${ininame}.body
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
    VERBATIM
  )
endforeach(i)

add_custom_command(
  OUTPUT texmf-defaults.ini texmf-defaults.ini.dos
  COMMAND ${CAT_EXE} header.txt
	   > texmf-defaults.ini.dos
  COMMAND ${CAT_EXE} ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/mf.defaults
           >> texmf-defaults.ini.dos
  COMMAND ${CAT_EXE} ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/mfapp.defaults
           >> texmf-defaults.ini.dos
  COMMAND ${CAT_EXE} ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/mpost.defaults
           >> texmf-defaults.ini.dos
  COMMAND ${CAT_EXE} ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/omega.defaults
           >> texmf-defaults.ini.dos
  COMMAND ${CAT_EXE} ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/pdftex.defaults
           >> texmf-defaults.ini.dos
  COMMAND ${CAT_EXE} ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/texapp.defaults
           >> texmf-defaults.ini.dos
  COMMAND ${CAT_EXE} ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/texmfapp.defaults
           >> texmf-defaults.ini.dos
  COMMAND ${TR_EXE} -d '\\r' < texmf-defaults.ini.dos > texmf-defaults.ini
  DEPENDS
    ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/mf.defaults
    ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/mfapp.defaults
    ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/mpost.defaults
    ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/omega.defaults
    ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/pdftex.defaults
    ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/texapp.defaults
    ${CMAKE_SOURCE_DIR}/${rel_defaults_dir}/texmfapp.defaults
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  VERBATIM
)

add_custom_target(
  ini_files
  ALL
  DEPENDS ${inc_ini_files} ${CMAKE_CURRENT_BINARY_DIR}/texmf-defaults.ini ${main_ini_files}
)

install(
  FILES ${inc_ini_files} ${CMAKE_CURRENT_BINARY_DIR}/texmf-defaults.ini ${main_ini_files}
  DESTINATION ${configdir}
)
