Conditionally respect sclang-vars
Only when compiling with cmake will sclang-vars.el be written. This commit moves relevant constants into customizable vars. Only if the `sclang-system-data-dir` exists is it respected, otherwise it will guess the proper location by looking at the system-type. The purpose of this is to make it possible to build and distribute a package independent of the SuperCollider build process, while ensuring that those users who have become accustomed to the current install process are not disrupted.
This commit is contained in:
parent
0e95a1884d
commit
6cea8929e6
3 changed files with 38 additions and 14 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.DS_Store
|
|
@ -24,15 +24,29 @@
|
||||||
(require 'sclang-interp)
|
(require 'sclang-interp)
|
||||||
(require 'sclang-language)
|
(require 'sclang-language)
|
||||||
(require 'sclang-mode)
|
(require 'sclang-mode)
|
||||||
(require 'sclang-vars)
|
(require 'sclang-vars nil 'ignore-missing-file)
|
||||||
(require 'sclang-minor-mode)
|
(require 'sclang-minor-mode)
|
||||||
|
|
||||||
(defcustom sclang-help-directory "~/SuperCollider/Help"
|
(defun sclang-system-root ()
|
||||||
"*Directory where the SuperCollider help files are kept. OBSOLETE."
|
"Find the common install location for the platform."
|
||||||
|
(cond
|
||||||
|
((boundp 'sclang-system-data-dir)
|
||||||
|
sclang-system-data-dir)
|
||||||
|
|
||||||
|
((eql 'darwin system-type)
|
||||||
|
(expand-file-name "~/Library/Application Support/SuperCollider"))
|
||||||
|
|
||||||
|
((and (eql 'gnu/linux system-type)
|
||||||
|
(file-exists-p "/usr/local/share/SuperCollider"))
|
||||||
|
"/usr/local/share/SuperCollider")
|
||||||
|
|
||||||
|
((eql 'gnu/linux system-type)
|
||||||
|
"/usr/share/SuperCollider")))
|
||||||
|
|
||||||
|
(defcustom sclang-system-help-dir (expand-file-name "Help" (sclang-system-root))
|
||||||
|
"Installation dependent help directory."
|
||||||
:group 'sclang-interface
|
:group 'sclang-interface
|
||||||
:version "21.3"
|
:type 'directory)
|
||||||
:type 'directory
|
|
||||||
:options '(:must-match))
|
|
||||||
|
|
||||||
(defcustom sclang-help-path (list sclang-system-help-dir
|
(defcustom sclang-help-path (list sclang-system-help-dir
|
||||||
"~/.local/share/SuperCollider/Help")
|
"~/.local/share/SuperCollider/Help")
|
||||||
|
@ -41,6 +55,11 @@
|
||||||
:version "21.4"
|
:version "21.4"
|
||||||
:type '(repeat directory))
|
:type '(repeat directory))
|
||||||
|
|
||||||
|
(defcustom sclang-system-extension-dir (expand-file-name "Extensions" (sclang-system-root))
|
||||||
|
"Installation dependent extension directory."
|
||||||
|
:group 'sclang-interface
|
||||||
|
:type 'directory)
|
||||||
|
|
||||||
(defconst sclang-extension-path (list sclang-system-extension-dir
|
(defconst sclang-extension-path (list sclang-system-extension-dir
|
||||||
"~/.local/share/SuperCollider/Extensions")
|
"~/.local/share/SuperCollider/Extensions")
|
||||||
"List of SuperCollider extension directories.")
|
"List of SuperCollider extension directories.")
|
||||||
|
|
|
@ -16,19 +16,23 @@
|
||||||
|
|
||||||
;; You should have received a copy of the GNU General Public License
|
;; You should have received a copy of the GNU General Public License
|
||||||
;; along with GNU Emacs; see the file COPYING. If not, write to
|
;; along with GNU Emacs; see the file COPYING. If not, write to
|
||||||
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
;; Boston, MA 02110-1301, USA.
|
;; Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;; This file is included in the distribution in order to convey system
|
||||||
|
;; installation variables which are known at compile time, but only when
|
||||||
|
;; the library is installed with cmake along with SuperCollider source.
|
||||||
|
;;
|
||||||
|
;; When using the stand-alone package, this file can be ignored and
|
||||||
|
;; the constants it defines will have no effect.
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
(defconst sclang-system-data-dir "@PKG_DATA_DIR@"
|
(defconst sclang-system-data-dir "@PKG_DATA_DIR@"
|
||||||
"Installation dependent data directory.")
|
"Installation dependent data directory.
|
||||||
|
Bound only when library is installed with SuperCollider.")
|
||||||
(defconst sclang-system-help-dir "@PKG_DATA_DIR@/Help"
|
|
||||||
"Installation dependent help directory.")
|
|
||||||
|
|
||||||
(defconst sclang-system-extension-dir "@PKG_DATA_DIR@/Extensions"
|
|
||||||
"Installation dependent extension directory.")
|
|
||||||
|
|
||||||
(provide 'sclang-vars)
|
(provide 'sclang-vars)
|
||||||
;;; sclang-vars.el ends here
|
;;; sclang-vars.el ends here
|
||||||
|
|
Loading…
Reference in a new issue