1# Copyright (c) 2016 LunarG Inc.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15# Install a script for use with the auto-compression feature of emacs(1).
16# Upon loading a file with the .spv extension, the file will be disassembled
17# using spirv-dis, and the result colorized with asm-mode in emacs.  The file
18# may be edited within the constraints of validity, and when re-saved will be
19# re-assembled using spirv-as.
20
21# It is required that those tools be in your PATH.  If that is not the case
22# when starting emacs, the path can be modified as in this example:
23# (setenv "PATH" (concat (getenv "PATH") ":/path/to/spirv/tools"))
24#
25# See https://github.com/KhronosGroup/SPIRV-Tools/issues/359
26
27# This is an absolute directory, and ignores CMAKE_INSTALL_PREFIX, or
28# it will not be found by emacs upon startup.  It is only installed if
29# both of the following are true:
30#   1. SPIRV_TOOLS_INSTALL_EMACS_HELPERS is defined
31#   2. The directory /etc/emacs/site-start.d already exists at the time of
32#      cmake invocation (not at the time of make install).  This is
33#      typically true if emacs is installed on the system.
34
35# Note that symbol IDs are not preserved through a load/edit/save operation.
36# This may change if the ability is added to spirv-as.
37
38option(SPIRV_TOOLS_INSTALL_EMACS_HELPERS
39  "Install Emacs helper to disassemble/assemble SPIR-V binaries on file load/save."
40  ${SPIRV_TOOLS_INSTALL_EMACS_HELPERS})
41if (${SPIRV_TOOLS_INSTALL_EMACS_HELPERS})
42  if(EXISTS /etc/emacs/site-start.d)
43    if(ENABLE_SPIRV_TOOLS_INSTALL)
44      install(FILES 50spirv-tools.el DESTINATION /etc/emacs/site-start.d)
45    endif(ENABLE_SPIRV_TOOLS_INSTALL)
46  endif()
47endif()
48
49