AM Daemon ライブラリリファレンス
env.h
[詳解]
1 /// @file
2 /// @brief Daemonライブラリの環境定義を行うヘッダ。
3 /// @note すべてのDaemonライブラリヘッダから include される。
4 ///
5 /// Copyright(C)SEGA
6 
7 #ifndef AMDAEMON_ENV_H
8 #define AMDAEMON_ENV_H
9 
10 /// @def AMDAEMON_ON_MSVC
11 /// @brief サポート対象のVC++環境(VC++2012以降)ならば _MSC_VER マクロ値。それ以外ならば 0 。
12 #if defined(_MSC_VER) && (_MSC_VER >= 1700)
13 #define AMDAEMON_ON_MSVC _MSC_VER
14 #else
15 #define AMDAEMON_ON_MSVC 0
16 #endif
17 
18 /// @brief サポート対象のWindows環境ならば 0 以外。
19 ///
20 /// 現状では #AMDAEMON_ON_MSVC と等価。
21 /// 将来的にVC++以外のWindows向けコンパイラをサポートした際には定義変更される。
22 /// Winsock等、Windows環境であればサポートされる機能の利用時に用いる。
23 #define AMDAEMON_ON_WINDOWS AMDAEMON_ON_MSVC
24 
25 /// @brief サポート対象のコンパイラならば 0 以外。
26 ///
27 /// 現状では #AMDAEMON_ON_WINDOWS と等価。
28 /// 将来的にWindows以外のOSをサポートした際には定義変更される。
29 /// この値が 0 の環境での開発は保証しない。
30 #define AMDAEMON_ON_SUPPORTED_COMPILER AMDAEMON_ON_WINDOWS
31 
32 /// @def AMDAEMON_MSVC_COMPATIBLE
33 /// @brief VC++の機能実装状況によって定義を変化させるための判定用マクロ。
34 /// @param[in] mscVer _MSC_VER マクロ値と比較する値。
35 ///
36 /// 基本的には @#if ディレクティブと組み合わせて使用する。
37 /// 以下のいずれかの場合に真、いずれも満たさない場合に偽となる。
38 ///
39 /// - VC++環境であり、かつ _MSC_VER マクロ値が引数 mscVer の値以上である。
40 /// - VC++以外のコンパイラ環境である。
41 #if defined(_MSC_VER)
42 #define AMDAEMON_MSVC_COMPATIBLE(mscVer) (_MSC_VER >= (mscVer))
43 #else
44 #define AMDAEMON_MSVC_COMPATIBLE(mscVer) (1)
45 #endif
46 
47 // 必要なシステムライブラリをリンク
48 #if AMDAEMON_ON_MSVC
49 #pragma comment(lib, "dbghelp.lib") // VC++スタックトレース解析用
50 #endif // AMDAEMON_ON_MSVC
51 #if AMDAEMON_ON_WINDOWS
52 #pragma comment(lib, "ws2_32.lib") // Winsock2
53 #endif // AMDAEMON_ON_WINDOWS
54 
55 #endif // AMDAEMON_ENV_H