-*- mode: org -*- #+TITLE: 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 - 2021 Ralph Amissah #+LANGUAGE: en #+STARTUP: content hideblocks hidestars noindent entitiespretty #+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t #+PROPERTY: header-args :exports code #+PROPERTY: header-args+ :noweb yes #+PROPERTY: header-args+ :eval no #+PROPERTY: header-args+ :results no #+PROPERTY: header-args+ :cache no #+PROPERTY: header-args+ :padline no #+PROPERTY: header-args+ :mkdirp yes [[./spine.org][spine]] [[./][org/]] * compilation info [[./spine_build_scaffold.org][make/build]] [[./spine.org][spine hub]] [[./][org/]] e.g. do on linux bsd osx not windows: version(Windows) {} else { ... } ** _module template_ :module:compile_time_info: #+HEADER: :tangle "../src/doc_reform/conf/compile_time_info.d" #+BEGIN_SRC d <> /++ compile_time_info +/ module doc_reform.conf.compile_time_info; template CompileTimeInfo() { <> <> } #+END_SRC *** document header including copyright & license #+NAME: doc_header_including_copyright_and_license #+BEGIN_SRC txt /+ - Name: Spine, Doc Reform [a part of] - Description: documents, structuring, processing, publishing, search - static content generator - Author: Ralph Amissah [ralph.amissah@gmail.com] - Copyright: (C) 2015 - 2021 Ralph Amissah, All Rights Reserved. - License: AGPL 3 or later: Spine (SiSU), a framework for document structuring, publishing and search Copyright (C) Ralph Amissah This program is free software: you can redistribute it and/or modify it under the terms of the GNU AFERO General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see [https://www.gnu.org/licenses/]. If you have Internet connection, the latest version of the AGPL should be available at these locations: [https://www.fsf.org/licensing/licenses/agpl.html] [https://www.gnu.org/licenses/agpl.html] - Spine (by Doc Reform, related to SiSU) uses standard: - docReform markup syntax - standard SiSU markup syntax with modified headers and minor modifications - docReform object numbering - standard SiSU object citation numbering & system - Homepages: [https://www.doc_reform.org] [https://www.sisudoc.org] - Git [https://git.sisudoc.org/projects/?p=software/spine.git;a=summary] +/ #+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__