CIOF v1.0.0-build
Char Input Output Format - A simple Input and Output utility library
Loading...
Searching...
No Matches
CIOFpredefines.hpp
Go to the documentation of this file.
1/**
2 * EXAMPLEpredefines.h - pcannonProjectStandards
3 * Predefines for C and C++ projects
4 * STD Information: 20250723 - 1.0S
5 * NOTICE:
6 * - RENAMED TO CIOFpredefines.hpp
7 * - MADE FOR The CIOF Project Utils
8 */
9
10#pragma once
11
12// Project setup
13#define CIOF_DEFAULT_CPP_STD 201703L
14
15// Versioning
16#define CIOF_VERSION_MAJOR 1
17#define CIOF_VERSION_MINOR 1
18#define CIOF_VERSION_PATCH 0
19
20#define CIOF_VERSION_STD 20251013
21
22// Version states:
23// * dev
24// * alpha
25// * beta
26// * build
27#define CIOF_VERSION_STATE "build"
28
29#define CIOF_VERSION ((CIOF_VERSION_MAJOR<<16)|(CIOF_VERSION_MINOR<<8)|(CIOF_VERSION_PATCH)|(CIOF_VERSION_STATE << 24))
30
31#define CIOF_VERSION_CHECK(CIOF_VERSION_MAJOR, CIOF_VERSION_MINOR, CIOF_VERSION_PATCH, CIOF_VERSION_STATE) \
32 (((CIOF_VERSION_MAJOR)<<16)|((CIOF_VERSION_MINOR)<<8)|(CIOF_VERSION_PATCH)|((CIOF_VERSION_STATE) << 24))
33
34// Macro utils
35#define CIOF_STRINGIFY(x) #x
36#define CIOF_TOSTRING(x) CIOF_STRINGIFY(x)
37
38#ifndef CIOF_DEV
39# define CIOF_DEV true
40#endif // !defined(CIOF_DEV)
41
42// OS Checks
43#ifdef WIN32
44# define CIOF_OS_WIN32
45# if !defined(WIN32_ANSI_SUPPORT)
46# define WIN32_ANSI_SUPPORT 1
47# endif
48# if WIN32_ANSI_SUPPORT == 1
49# warning "ANSI Support for Windows is supported from Windows 10 or newer"
50# endif
51#elif defined(__APPLE__) || defined(__MACH__) || defined(Macintosh)
52# define CIOF_OS_MACOS
53#elif defined(__linux__) || defined(__unix) || defined(__unix__)
54# define CIOF_OS_UNIX_LINUX
55#elif defined(__FreeBSD__)
56# define CIOF_OS_FREEBSD
57#else
58# warning "Current platform might not supported"
59#endif // defined(WIN32) // Platform check
60