[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compiling C++ in emacs
From: |
Richard Riley |
Subject: |
Re: Compiling C++ in emacs |
Date: |
Sun, 16 Nov 2008 21:00:11 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
Kevin Rodgers <kevin.d.rodgers@gmail.com> writes:
> Richard Riley wrote:
>> I have the function below which is for C. Does anyone have an
>> extension/idea for compiling and linking C++ based on file extension?
>>
>> ,----
>> | (defun do-compile()
>> | | (unless (or (file-exists-p "makefile")
>> | (file-exists-p "Makefile"))
>> | (set (make-local-variable 'compile-command)
>> | (let ((file (file-name-nondirectory buffer-file-name)))
>> | (format "%s -o %s %s %s %s %s"
>> | (or (getenv "CC") "gcc")
>> | (file-name-sans-extension file)
>> | (or (getenv "GTKFLAGS") "`pkg-config --cflags --libs
>> gtk+-2.0`")
>> | (or (getenv "CPPFLAGS")"-DDEBUG=9")
>> | (or (getenv "CFLAGS") "-std=c99 -pedantic -Wall -Wshadow
>> -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion
>> -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
>> -Wredundant-decls -Wnested-externs -Winline -g")
>> | file)))
>> | | )
>> | (compile compile-command)
>> | )
>> | | `----
>
> (if (equal (file-name-extension buffer-file-file) "cc")
> (progn
> ;; C++ stuff goes here
> )
> )
(defun make-command()
(if (or (file-exists-p "makefile")
(file-exists-p "Makefile"))
nil
(let ((file (file-name-nondirectory buffer-file-name)))
(if (equal (file-name-extension buffer-file-name) "cc")
(progn
(format "%s %s %s -o %s"
(or (getenv "CC") "g++")
(or (getenv "CPPFLAGS")"-Wall -g") file
(file-name-sans-extension file)
))
(format "%s -o %s %s %s %s %s"
(or (getenv "CC") "gcc")
(file-name-sans-extension file)
(or (getenv "GTKFLAGS") "`pkg-config --cflags --libs gtk+-2.0`")
(or (getenv "CPPFLAGS")"-DDEBUG=9")
(or (getenv "CFLAGS") "-std=c99 -pedantic -Wall -Wshadow
-Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
-Wredundant-decls -Wnested-externs -Winline -g")
file)
))))
thanks