if (NOT LINUX) if (UNIX) message(WARNING "This file has not been tested on non-linux unix systems. It may not work!") # TODO: Do more testing on non-linux UNIX systems. else() message(FATAL_ERROR "This file is only for use with unix systems") endif() endif() if (CTAN_BUILD) message(FATAL_ERROR "system install is not supported for CTAN builds.") endif() # Requires gnu-install-macros to be ran already set(PERMISSION_755_LIST OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) set(PERMISSION_644_LIST OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) set(ASY_BASE_EXTRA_FILES_NAME asy-mode.el asy-init.el asy.vim asy_filetype.vim asy-kate.sh asymptote.py reload.js nopapersize.ps) list( TRANSFORM ASY_BASE_EXTRA_FILES_NAME PREPEND ${ASY_SOURCE_BASE_DIR}/ OUTPUT_VARIABLE ASY_BASE_EXTRA_FILES ) set(ASY_INSTALL_SYSDIR_VALUE ${CMAKE_INSTALL_DATADIR}/asymptote) set(ASY_BASE_INSTALL_COMPONENT asy) # installing files #region base files install( TARGETS asy PERMISSIONS ${PERMISSION_755_LIST} COMPONENT ${ASY_BASE_INSTALL_COMPONENT} DESTINATION ${CMAKE_INSTALL_BINDIR} ) # base/* -> / install( DIRECTORY ${ASY_BUILD_BASE_DIR}/ DESTINATION ${ASY_INSTALL_SYSDIR_VALUE} COMPONENT ${ASY_BASE_INSTALL_COMPONENT} FILE_PERMISSIONS ${PERMISSION_644_LIST} ) # extra base files -> / install( FILES ${ASY_MISC_FILES_OUT_DIR}/asy-keywords.el ${ASY_BASE_EXTRA_FILES} DESTINATION ${ASY_INSTALL_SYSDIR_VALUE} COMPONENT ${ASY_BASE_INSTALL_COMPONENT} PERMISSIONS ${PERMISSION_644_LIST} ) #endregion #region example files set(ASYMPTOTE_EXAMPLESDIR_VALUE ${ASY_INSTALL_SYSDIR_VALUE}/examples) # example files install( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/examples/ DESTINATION ${ASYMPTOTE_EXAMPLESDIR_VALUE} COMPONENT ${ASY_BASE_INSTALL_COMPONENT} FILE_PERMISSIONS ${PERMISSION_644_LIST} ) # extra examples from docs -> examples install( DIRECTORY ${ASY_DOC_DIR}/extra/ DESTINATION ${ASYMPTOTE_EXAMPLESDIR_VALUE} COMPONENT ${ASY_BASE_INSTALL_COMPONENT} FILES_MATCHING PATTERN "*.asy" PERMISSIONS ${PERMISSION_644_LIST} ) # DOCEXTRA files -> examples install( DIRECTORY ${ASY_DOC_DIR}/ DESTINATION ${ASYMPTOTE_EXAMPLESDIR_VALUE} COMPONENT ${ASY_BASE_INSTALL_COMPONENT} FILES_MATCHING PATTERN "*.asy" PATTERN "*.csv" PATTERN "*.dat" PERMISSIONS ${PERMISSION_644_LIST} ) set(ASY_DOCEXTRA_FILE_NAMES latexusage.tex externalprc.tex pixel.pdf) list( TRANSFORM ASY_DOCEXTRA_FILE_NAMES PREPEND ${ASY_DOC_DIR}/ OUTPUT_VARIABLE ASY_DOCEXTRA_FILES ) install( FILES ${ASY_DOCEXTRA_FILES} DESTINATION ${ASYMPTOTE_EXAMPLESDIR_VALUE} COMPONENT ${ASY_BASE_INSTALL_COMPONENT} PERMISSIONS ${PERMISSION_644_LIST} ) #endregion #region documentation files if (ENABLE_DOCGEN) set(ASY_DOCS_INSTALL_COMPONENT asy-docs) set(ASY_INSTALL_DOCDIR_VALUE ${CMAKE_INSTALL_DATADIR}/asymptote/doc) set(ASY_DOCFILE_PDF_FILES ${BASE_ASYMPTOTE_DOC_AND_TEX_FILES}) list(FILTER ASY_DOCFILE_PDF_FILES INCLUDE REGEX "^.*\.pdf$") list(APPEND ASY_DOCFILE_PDF_FILES ${ASY_TEX_BUILD_ROOT}/asymptote.pdf) # pdf files install( FILES ${ASY_DOCFILE_PDF_FILES} COMPONENT ${ASY_DOCS_INSTALL_COMPONENT} DESTINATION ${ASY_INSTALL_DOCDIR_VALUE} PERMISSIONS ${PERMISSION_644_LIST} ) # manpage install( FILES ${ASY_TEX_BUILD_ROOT}/asy.1 COMPONENT ${ASY_DOCS_INSTALL_COMPONENT} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 PERMISSIONS ${PERMISSION_644_LIST} ) endif() #endregion .