-*- mode: org -*- #+TITLE: sisudoc spine (doc_reform) compile time info #+DESCRIPTION: documents - structuring, publishing in multiple formats & search #+FILETAGS: :spine:compile: #+AUTHOR: Ralph Amissah #+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] #+COPYRIGHT: Copyright (C) 2015 - 2024 Ralph Amissah #+LANGUAGE: en #+STARTUP: content hideblocks hidestars noindent entitiespretty #+PROPERTY: header-args :exports code #+PROPERTY: header-args+ :noweb yes #+PROPERTY: header-args+ :results no #+PROPERTY: header-args+ :cache no #+PROPERTY: header-args+ :padline no #+PROPERTY: header-args+ :mkdirp yes #+OPTIONS: H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t - [[./doc-reform.org][doc-reform.org]] [[./][org/]] * compilation info - [[./spine_build_scaffold.org][make/build]] - [[./doc-reform.org][doc-reform.org]] [[./][org/]] e.g. do on linux bsd osx not windows: version(Windows) {} else { ... } ** _module template_ :module:compile_time_info: #+HEADER: :tangle "../src/sisudoc/conf/compile_time_info.d" #+HEADER: :noweb yes #+BEGIN_SRC d <> /++ compile_time_info +/ module sisudoc.conf.compile_time_info; @safe: template CompileTimeInfo() { <> <> } #+END_SRC *** document header including copyright & license #+NAME: doc_header_including_copyright_and_license #+HEADER: :noweb yes #+BEGIN_SRC emacs-lisp <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:spine_doc_header_including_copyright_and_license()>> #+END_SRC ** complile time os OS type shows during compilation *** set os flags #+NAME: spine_compile_time_info_0 #+BEGIN_SRC d version(Windows) { pragma(msg, "[ Windows compilation ]"); enum os = "Windows"; } else version(OSX) { pragma(msg, "[ Mac OS X POSIX System compilation ]"); enum os = "OSX"; } else version(linux) { pragma(msg, "[ Linux POSIX System compilation ]"); enum os = "Linux"; } else version(FreeBSD) { pragma(msg, "[ FreeBSD POSIX System compilation ]"); enum os = "FreeBSD"; } else version(OpenBSD) { pragma(msg, "[ OpenBSD POSIX System compilation ]"); enum os = "OpenBSD"; } else version(NetBSD) { pragma(msg, "[ NetBSD POSIX System compilation ]"); enum os = "NetBSD"; } else version(DragonFlyBSD) { pragma(msg, "[ DragonFlyBSD POSIX System compilation ]"); enum os = "DragonFlyBSD"; } else version(POSIX) { pragma(msg, "[ POSIX System compilation ]"); enum os = "POSIX"; } else { static assert(0, "OS not listed"); } #+END_SRC ** complile time static if os OS type compiled in and shows during program run *** report os flag (set) (not used here) #+BEGIN_SRC d static if(sysWindows) { writeln("Windows"); } else static if(sysOSX) { writeln("OSX"); } else static if(sysLinux) { writeln("Linux"); } else static if(sysFreeBSD) { writeln("FreeBSD"); } else static if(sysOpenBSD) { writeln("OpenBSD"); } else static if(sysNetBSD) { writeln("NetBSD"); } else static if(sysDragonFlyBSD) { writeln("DragonFlyBSD"); } else { writeln("other"); } #+END_SRC ** 64 bit compilation? #+NAME: spine_compile_time_info_1 #+BEGIN_SRC d version(D_LP64) { enum bits = "64 bit"; } else { enum bits = "32 bit"; } #+END_SRC * __END__