help-gnu-emacs
[Top][All Lists]
Advanced

[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]