|
@@ -46,6 +46,19 @@
|
|
|
|
|
|
(defvar org-babel-default-header-args:C '())
|
|
|
|
|
|
+(defconst org-babel-header-args:C '((includes . :any)
|
|
|
+ (defines . :any)
|
|
|
+ (main . :any)
|
|
|
+ (flags . :any)
|
|
|
+ (cmdline . :any)
|
|
|
+ (libs . :any))
|
|
|
+ "C/C++-specific header arguments.")
|
|
|
+
|
|
|
+(defconst org-babel-header-args:C++
|
|
|
+ (append '((namespaces . :any))
|
|
|
+ org-babel-header-args:C)
|
|
|
+ "C++-specific header arguments.")
|
|
|
+
|
|
|
(defcustom org-babel-C-compiler "gcc"
|
|
|
"Command used to compile a C source code file into an executable.
|
|
|
May be either a command in the path, like gcc
|
|
@@ -196,15 +209,18 @@ its header arguments."
|
|
|
(colnames (cdr (assq :colname-names params)))
|
|
|
(main-p (not (string= (cdr (assq :main params)) "no")))
|
|
|
(includes (org-babel-read
|
|
|
- (or (cdr (assq :includes params))
|
|
|
- (org-entry-get nil "includes" t))
|
|
|
+ (cdr (assq :includes params))
|
|
|
nil))
|
|
|
(defines (org-babel-read
|
|
|
- (or (cdr (assq :defines params))
|
|
|
- (org-entry-get nil "defines" t))
|
|
|
- nil)))
|
|
|
+ (cdr (assq :defines params))
|
|
|
+ nil))
|
|
|
+ (namespaces (org-babel-read
|
|
|
+ (cdr (assq :namespaces params))
|
|
|
+ nil)))
|
|
|
(when (stringp includes)
|
|
|
(setq includes (split-string includes)))
|
|
|
+ (when (stringp namespaces)
|
|
|
+ (setq namespaces (split-string namespaces)))
|
|
|
(when (stringp defines)
|
|
|
(let ((y nil)
|
|
|
(result (list t)))
|
|
@@ -224,6 +240,11 @@ its header arguments."
|
|
|
(mapconcat
|
|
|
(lambda (inc) (format "#define %s" inc))
|
|
|
(if (listp defines) defines (list defines)) "\n")
|
|
|
+ ;; namespaces
|
|
|
+ (mapconcat
|
|
|
+ (lambda (inc) (format "using namespace %s;" inc))
|
|
|
+ namespaces
|
|
|
+ "\n")
|
|
|
;; variables
|
|
|
(mapconcat 'org-babel-C-var-to-C vars "\n")
|
|
|
;; table sizes
|