File: CMakeLists.txt

package info (click to toggle)
votca 2025.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 132,420 kB
  • sloc: xml: 345,964; cpp: 80,067; python: 15,957; sh: 4,580; perl: 2,169; javascript: 202; makefile: 34
file content (45 lines) | stat: -rw-r--r-- 2,036 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION ${CMAKE_INSTALL_DATADIR}/votca/xtp-tutorials USE_SOURCE_PERMISSIONS
	PATTERN ".git*" EXCLUDE
	PATTERN "CMake*" EXCLUDE PATTERN "cmake_install.cmake" EXCLUDE
	PATTERN "install_manifest.txt" EXCLUDE PATTERN "*~" EXCLUDE)

if(NOT SPHINX_FOUND)
  return()
endif()
find_package(JUPYTER_NBCONVERT 5.4.1)
if(NOT JUPYTER_NBCONVERT_FOUND)
  return()
endif()

set(NOTEBOOKS "GROMACS/Methane/QMMM_GROMACS.ipynb")
list(APPEND NOTEBOOKS "LAMMPS/Thiophene/QMMM_LAMMPS.ipynb")
list(APPEND NOTEBOOKS "tools/dftgwbse_CH4/DFTGWBSE_ENERGY.ipynb")
list(APPEND NOTEBOOKS "LAMMPS/KMC_Thiophene/LAMMPS_KMC.ipynb")

set(NEW_NOTEBOOKS)

get_target_property(XTP_PATH VOTCA::votca_xtp XTP_PATH)
get_target_property(VOTCASHARE VOTCA::votca_xtp VOTCA_SHARE)

if(TARGET VOTCA::xtp_binds)
  get_target_property(XTP_PYPATH VOTCA::xtp_binds XTP_PYPATH)
  list(APPEND NOTEBOOKS "pyxtp/geometry_optimization.ipynb")
  list(APPEND NOTEBOOKS "pyxtp/single_point.ipynb")
endif()

foreach(_notebook ${NOTEBOOKS})
  get_filename_component(_FILE "${_notebook}" NAME)
  get_filename_component(_DIR "${_notebook}" DIRECTORY)
  file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_DIR})
  file(GLOB FILES ${CMAKE_CURRENT_SOURCE_DIR}/${_DIR}/*)
  add_custom_command(OUTPUT ${VOTCA_SPHINX_DIR}/xtp-tutorials/${_FILE}
    COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${_DIR} ${CMAKE_CURRENT_BINARY_DIR}/${_DIR}
    COMMAND ${CMAKE_COMMAND} -E env PATH=${XTP_PATH}:$ENV{PATH} VOTCASHARE=${VOTCASHARE} PYTHONPATH=${XTP_PYPATH}:$ENV{PYTHONPATH}  ${JUPYTER_EXECUTABLE} nbconvert --Application.log_level=0 --to notebook --ExecutePreprocessor.timeout=5000 --execute ${_FILE} --output ${VOTCA_SPHINX_DIR}/xtp-tutorials/${_FILE}
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_DIR}
    DEPENDS ${FILES}
  )
  list(APPEND NEW_NOTEBOOKS ${VOTCA_SPHINX_DIR}/xtp-tutorials/${_FILE})
endforeach()

add_custom_target(xtp-tutorials-rst DEPENDS ${NEW_NOTEBOOKS})
add_dependencies(sphinx-deps xtp-tutorials-rst)