cmake_minimum_required(VERSION 2.8)

project(thesis NONE)

include(/usr/share/cmake-2.8/Modules/UseLATEX.cmake)

# Set R executable
set(R_COMPILE "/usr/bin/Rscript")
# Set the location of data files
##set(DATA_DIR data)
# Set the location of the directory for image files
set(IMAGE_DIR graphicsauto)

# Get a list of R files
file(GLOB_RECURSE R_FILES "R/*.R")

file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/R DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR})

foreach(file ${R_FILES})
  message("processing ${file}")
  get_filename_component(basename "${file}" NAME_WE)

  # Command to run R
  if(R_COMPILE)
    message("Adding ........... ${CMAKE_CURRENT_BINARY_DIR}/R/${basename}.R")

    add_custom_command(
      OUTPUT
      ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR}/${basename}.eps
      DEPENDS
      ${CMAKE_CURRENT_BINARY_DIR}/R/${basename}.R
      #      ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR}/${DATA_DIR}
      COMMAND
      ${R_COMPILE}
      ARGS
      ${CMAKE_CURRENT_BINARY_DIR}/R/${basename}.R
      ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR}/${basename}.eps
      )
    message("Running ${R_COMPILE} ${CMAKE_CURRENT_BINARY_DIR}/R/${basename}.R ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR}/${basename}.eps")

  endif(R_COMPILE)

  # Make a list of all R files (for ADD_LATEX_DOCUMENT depend)
  set(ALL_R_FILES ${ALL_R_FILES}
    ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR}/${basename}.eps
    )
endforeach(file)

# ------- export mainThesis.org -----------------------
latex_get_output_path(OUTPUT_DIR)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/mainThesis.org DESTINATION ${OUTPUT_DIR}/ )
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/thesis.el DESTINATION ${OUTPUT_DIR}/ )

add_custom_target( orgfile ALL
  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/mainThesis.org )

add_custom_target( elfile ALL
  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/thesis.el )

add_custom_command(
  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mainThesis.tex
  COMMAND emacs -Q --batch --eval \"(progn
    (add-to-list 'load-path
      (expand-file-name \\"~/.emacs.d/plugins/org-mode/lisp/\\"))
    (add-to-list 'load-path
      (expand-file-name \\"~/.emacs.d/plugins/org-mode/contrib/lisp/\\" t))
    (require 'org)
    (require 'ox)
    (require 'org-exp)
    (require 'org-inlinetask)
    (require 'ob-plantuml)
    (setq org-plantuml-jar-path \\"/home/myles/Downloads/plantuml.jar\\")
    (org-babel-do-load-languages
      'org-babel-load-languages
      '((emacs-lisp . t)
        (sh . t)
        (plantuml . t)))
    (setq org-confirm-babel-evaluate nil)
    (setq org-latex-listings 'minted)
    (setq org-latex-with-hyperref nil)
    (add-to-list 'org-latex-packages-alist '(\\"\\" \\"minted\\"))

    (add-to-list 'org-latex-classes
      '(\\"mynewthesis\\" \\"\\\\\\documentclass[11pt]{mythesis}\\"
        (\\"\\\\\\chapter{%s}\\" . \\"\\\\\\chapter*{%s}\\")
        (\\"\\\\\\section{%s}\\" . \\"\\\\\\section*{%s}\\")
        (\\"\\\\\\subsection{%s}\\" . \\"\\\\\\subsection*{%s}\\")
        (\\"\\\\\\subsubsection{%s}\\" . \\"\\\\\\subsubsection*{%s}\\")
        (\\"\\\\\\paragraph{%s}\\" . \\"\\\\\\paragraph*{%s}\\")))
    (setq org-export-with-todo-keywords nil)
    (load-library \\"/home/myles/lib/lisp/my-export.el\\")
    (add-to-list 'org-export-before-parsing-hook 'my-export-delete-headlines-tagged-noheading)
    (add-to-list 'org-export-filter-link-functions 'my-autoref-filter-link-func)
    (load-file \\"thesis.el\\")
    (find-file \\"${CMAKE_CURRENT_BINARY_DIR}/mainThesis.org\\")
    (org-latex-export-to-latex))\"
  DEPENDS orgfile elfile
  COMMENT "Exporting orgmode file to LaTeX using emacs")

add_custom_target( mainfile ALL
  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/mainThesis.tex )
# ------ end mainThesis.org ---------------------------

# add_custom_command(
#         OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/master.tex
#         COMMAND echo "\\\\input{mainThesis.tex}" > ${CMAKE_CURRENT_BINARY_DIR}/master.tex
#         DEPENDS orgfile
#         COMMENT "Writing file master.tex")

# add_custom_target( masterfile ALL
#         DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/master.tex )

add_latex_document(master.tex
  BIBFILES texlib/mybiblatex.bib
  INPUTS biber.conf
  phd_papers.bib
  tex/title.tex
  tex/titleBasic.tex
  tex/abstract.tex
  tex/sharedMemory_sec.tex
  texlib/mystyle.sty
  tex/linked_nodes_test.tex
  IMAGE_DIRS ${IMAGE_DIR} ../graphics/thirdParty ../graphics/VE
  DEPENDS ${ALL_R_FILES}
  DEFAULT_PDF
  USE_NOMENCL)
