aboutsummaryrefslogtreecommitdiff
path: root/tools/emacs/CMakeLists.txt
blob: 3785771f0bcc23eb4456d6e90b8df65038b2d4c1 (plain)
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
46
# Copyright (c) 2016 LunarG Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Install a script for use with the auto-compression feature of emacs(1).
# Upon loading a file with the .spv extension, the file will be disassembled
# using spirv-dis, and the result colorized with asm-mode in emacs.  The file
# may be edited within the constraints of validity, and when re-saved will be
# re-assembled using spirv-as.

# It is required that those tools be in your PATH.  If that is not the case
# when starting emacs, the path can be modified as in this example:
# (setenv "PATH" (concat (getenv "PATH") ":/path/to/spirv/tools"))
#
# See https://github.com/KhronosGroup/SPIRV-Tools/issues/359

# This is an absolute directory, and ignores CMAKE_INSTALL_PREFIX, or
# it will not be found by emacs upon startup.  It is only installed if
# both of the following are true:
#   1. SPIRV_TOOLS_INSTALL_EMACS_HELPERS is defined
#   2. The directory /etc/emacs/site-start.d already exists at the time of
#      cmake invocation (not at the time of make install).  This is
#      typically true if emacs is installed on the system.

# Note that symbol IDs are not preserved through a load/edit/save operation.
# This may change if the ability is added to spirv-as.

option(SPIRV_TOOLS_INSTALL_EMACS_HELPERS
  "Install Emacs helper to disassemble/assemble SPIR-V binaries on file load/save."
  ${SPIRV_TOOLS_INSTALL_EMACS_HELPERS})
if (${SPIRV_TOOLS_INSTALL_EMACS_HELPERS})
  if(EXISTS /etc/emacs/site-start.d)
    install(FILES 50spirv-tools.el DESTINATION /etc/emacs/site-start.d)
  endif()
endif()