first comit

master
a7458969 2019-12-21 18:50:15 +08:00
parent 029ce64698
commit 5cdcb6c71e
64 changed files with 3661 additions and 73 deletions

2
.idea/General.iml Normal file
View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="CMake" type="CPP_MODULE" version="4" />

7
.idea/misc.xml Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/General.iml" filepath="$PROJECT_DIR$/.idea/General.iml" />
</modules>
</component>
</project>

73
.idea/workspace.xml Normal file
View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeRunConfigurationManager" shouldGenerate="true" shouldDeleteObsolete="true">
<generated>
<config projectName="General" targetName="General" />
</generated>
</component>
<component name="CMakeSettings" AUTO_RELOAD="true">
<configurations>
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
</configurations>
</component>
<component name="ChangeListManager">
<list default="true" id="0facce0d-c642-4d80-b2fb-daf5f3e68dff" name="Default Changelist" comment="" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ClangdSettings">
<option name="formatViaClangd" value="false" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" />
<component name="OCFindUsagesOptions" text="true" ivars="false" properties="true" derivedClasses="false" />
<component name="ProjectId" id="1UhntPy4Y6cJ81thpskTMk9Asng" />
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="settings.editor.selected.configurable" value="CPPToolchains" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="General" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" PROJECT_NAME="General" TARGET_NAME="General" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="General" RUN_TARGET_NAME="General">
<method v="2">
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
</method>
</configuration>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="0facce0d-c642-4d80-b2fb-daf5f3e68dff" name="Default Changelist" comment="" />
<created>1575817908178</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1575817908178</updated>
<workItem from="1575817909426" duration="3242000" />
<workItem from="1575898054796" duration="4350000" />
<workItem from="1576304090241" duration="2459000" />
<workItem from="1576585606642" duration="7534000" />
<workItem from="1576913674335" duration="7707000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
</project>

18
CMakeLists.txt Normal file
View File

@ -0,0 +1,18 @@
cmake_minimum_required(VERSION 3.15)
project(General)
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/obj)
set(CMAKE_CXX_STANDARD 11)
INCLUDE_DIRECTORIES (inc)
aux_source_directory(src DIRSRCS)
aux_source_directory(src/pattern PaternSrc)
add_library(General ${DIRSRCS} ${PaternSrc} src/pattern/signleton.h src/pattern/Observer.cpp src/pattern/Observer.h)
set(COPYITEM inc)
file(GLOB INCLUDES ${PROJECT_SOURCE_DIR}/inc/*)
file(COPY ${INCLUDES} DESTINATION ${LIBRARY_OUTPUT_PATH}/inc
FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_WRITE GROUP_READ WORLD_READ)
message(status ${INCLUDES})
file(GLOB PatternINCLUDES ${PROJECT_SOURCE_DIR}/src/pattern/*.h)
file(COPY ${PatternINCLUDES} DESTINATION ${LIBRARY_OUTPUT_PATH}/inc
FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_WRITE GROUP_READ WORLD_READ)

View File

@ -1,36 +0,0 @@
# generallib
#### Description
c++ 通用库包含了内存处理文件操作简单的socket客户端一些设计模式模板日志处理等功能
#### Software Architecture
Software architecture description
#### Installation
1. xxxx
2. xxxx
3. xxxx
#### Instructions
1. xxxx
2. xxxx
3. xxxx
#### Contribution
1. Fork the repository
2. Create Feat_xxx branch
3. Commit your code
4. Create Pull Request
#### Gitee Feature
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
4. The most valuable open source project [GVP](https://gitee.com/gvp)
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

View File

@ -1,37 +1,9 @@
# generallib
#### 介绍
c++ 通用库包含了内存处理文件操作简单的socket客户端一些设计模式模板日志处理等功能
#### 软件架构
软件架构说明
#### 安装教程
1. xxxx
2. xxxx
3. xxxx
#### 使用说明
1. xxxx
2. xxxx
3. xxxx
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 码云特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
### 通用c++库,跨平台
包含了一下子功能:
1. 日志。
2. 设计模式类模板:
单例
观察者
适配器模式
3. 线程类。
4. 调试工具如打印内存为asii。

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,76 @@
set(CMAKE_C_COMPILER "C:/msys64/mingw64/bin/gcc.exe")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "GNU")
set(CMAKE_C_COMPILER_VERSION "7.3.0")
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
set(CMAKE_C_COMPILER_WRAPPER "")
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert")
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
set(CMAKE_C_PLATFORM_ID "MinGW")
set(CMAKE_C_SIMULATE_ID "")
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
set(CMAKE_C_SIMULATE_VERSION "")
set(CMAKE_AR "C:/msys64/mingw64/bin/ar.exe")
set(CMAKE_C_COMPILER_AR "C:/msys64/mingw64/bin/gcc-ar.exe")
set(CMAKE_RANLIB "C:/msys64/mingw64/bin/ranlib.exe")
set(CMAKE_C_COMPILER_RANLIB "C:/msys64/mingw64/bin/gcc-ranlib.exe")
set(CMAKE_LINKER "C:/msys64/mingw64/bin/ld.exe")
set(CMAKE_MT "")
set(CMAKE_COMPILER_IS_GNUCC 1)
set(CMAKE_C_COMPILER_LOADED 1)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_C_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW 1)
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_C_COMPILER_ENV_VAR "CC")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_C_COMPILER_ID_RUN 1)
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_C_LINKER_PREFERENCE 10)
# Save compiler ABI information.
set(CMAKE_C_SIZEOF_DATA_PTR "8")
set(CMAKE_C_COMPILER_ABI "")
set(CMAKE_C_LIBRARY_ARCHITECTURE "")
if(CMAKE_C_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_C_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
endif()
if(CMAKE_C_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "")
endif()
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include;C:/msys64/mingw64/include;C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include-fixed;C:/msys64/mingw64/x86_64-w64-mingw32/include")
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "mingw32;gcc;moldname;mingwex;pthread;advapi32;shell32;user32;kernel32;mingw32;gcc;moldname;mingwex")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0;C:/msys64/mingw64/lib/gcc;C:/msys64/mingw64/x86_64-w64-mingw32/lib;C:/msys64/mingw64/lib")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

View File

@ -0,0 +1,79 @@
set(CMAKE_CXX_COMPILER "C:/msys64/mingw64/bin/g++.exe")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "GNU")
set(CMAKE_CXX_COMPILER_VERSION "7.3.0")
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
set(CMAKE_CXX_COMPILER_WRAPPER "")
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17")
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
set(CMAKE_CXX20_COMPILE_FEATURES "")
set(CMAKE_CXX_PLATFORM_ID "MinGW")
set(CMAKE_CXX_SIMULATE_ID "")
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
set(CMAKE_CXX_SIMULATE_VERSION "")
set(CMAKE_AR "C:/msys64/mingw64/bin/ar.exe")
set(CMAKE_CXX_COMPILER_AR "C:/msys64/mingw64/bin/gcc-ar.exe")
set(CMAKE_RANLIB "C:/msys64/mingw64/bin/ranlib.exe")
set(CMAKE_CXX_COMPILER_RANLIB "C:/msys64/mingw64/bin/gcc-ranlib.exe")
set(CMAKE_LINKER "C:/msys64/mingw64/bin/ld.exe")
set(CMAKE_MT "")
set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_CXX_COMPILER_LOADED 1)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_CXX_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW 1)
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_CXX_COMPILER_ID_RUN 1)
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
set(CMAKE_CXX_LINKER_PREFERENCE 30)
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
# Save compiler ABI information.
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
set(CMAKE_CXX_COMPILER_ABI "")
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
if(CMAKE_CXX_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_CXX_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
endif()
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "")
endif()
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "C:/msys64/mingw64/include/c++/7.3.0;C:/msys64/mingw64/include/c++/7.3.0/x86_64-w64-mingw32;C:/msys64/mingw64/include/c++/7.3.0/backward;C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include;C:/msys64/mingw64/include;C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include-fixed;C:/msys64/mingw64/x86_64-w64-mingw32/include")
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;mingw32;gcc_s;gcc;moldname;mingwex;pthread;advapi32;shell32;user32;kernel32;mingw32;gcc_s;gcc;moldname;mingwex")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0;C:/msys64/mingw64/lib/gcc;C:/msys64/mingw64/x86_64-w64-mingw32/lib;C:/msys64/mingw64/lib")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

View File

@ -0,0 +1,6 @@
set(CMAKE_RC_COMPILER "C:/msys64/mingw64/bin/windres.exe")
set(CMAKE_RC_COMPILER_ARG1 "")
set(CMAKE_RC_COMPILER_LOADED 1)
set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC)
set(CMAKE_RC_OUTPUT_EXTENSION .obj)
set(CMAKE_RC_COMPILER_ENV_VAR "RC")

View File

@ -0,0 +1,15 @@
set(CMAKE_HOST_SYSTEM "Windows-10.0.18362")
set(CMAKE_HOST_SYSTEM_NAME "Windows")
set(CMAKE_HOST_SYSTEM_VERSION "10.0.18362")
set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64")
set(CMAKE_SYSTEM "Windows-10.0.18362")
set(CMAKE_SYSTEM_NAME "Windows")
set(CMAKE_SYSTEM_VERSION "10.0.18362")
set(CMAKE_SYSTEM_PROCESSOR "AMD64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)

View File

@ -0,0 +1,665 @@
#ifdef __cplusplus
# error "A C++ compiler has been selected for C."
#endif
#if defined(__18CXX)
# define ID_VOID_MAIN
#endif
#if defined(__CLASSIC_C__)
/* cv-qualifiers did not exist in K&R C */
# define const
# define volatile
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP */
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_C)
# define COMPILER_ID "SunPro"
# if __SUNPRO_C >= 0x5100
/* __SUNPRO_C = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# endif
#elif defined(__HP_cc)
# define COMPILER_ID "HP"
/* __HP_cc = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
#elif defined(__DECC)
# define COMPILER_ID "Compaq"
/* __DECC_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__ibmxl__) && defined(__clang__)
# define COMPILER_ID "XLClang"
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
# define COMPILER_ID "XL"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
# define COMPILER_ID "Fujitsu"
#elif defined(__ghs__)
# define COMPILER_ID "GHS"
/* __GHS_VERSION_NUMBER = VVVVRP */
# ifdef __GHS_VERSION_NUMBER
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
# endif
#elif defined(__TINYC__)
# define COMPILER_ID "TinyCC"
#elif defined(__BCC__)
# define COMPILER_ID "Bruce"
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
# define COMPILER_ID "ARMClang"
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__GNUC__)
# define COMPILER_ID "GNU"
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
# define COMPILER_ID "ADSP"
#if defined(__VISUALDSPVERSION__)
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__) && defined(__ICCARM__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__))
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
# define COMPILER_ID "SDCC"
# if defined(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
# else
/* SDCC = VRP */
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
# endif
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#elif defined(__INTEGRITY)
# if defined(INT_178B)
# define PLATFORM_ID "Integrity178"
# else /* regular Integrity */
# define PLATFORM_ID "Integrity"
# endif
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__ICCRH850__)
# define ARCHITECTURE_ID "RH850"
# elif defined(__ICCRL78__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__ICCRISCV__)
# define ARCHITECTURE_ID "RISCV"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# elif defined(__ICC430__)
# define ARCHITECTURE_ID "MSP430"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__ghs__)
# if defined(__PPC64__)
# define ARCHITECTURE_ID "PPC64"
# elif defined(__ppc__)
# define ARCHITECTURE_ID "PPC"
# elif defined(__ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__x86_64__)
# define ARCHITECTURE_ID "x64"
# elif defined(__i386__)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number components. */
#ifdef COMPILER_VERSION_MAJOR
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#if !defined(__STDC__)
# if (defined(_MSC_VER) && !defined(__clang__)) \
|| (defined(__ibmxl__) || defined(__IBMC__))
# define C_DIALECT "90"
# else
# define C_DIALECT
# endif
#elif __STDC_VERSION__ >= 201000L
# define C_DIALECT "11"
#elif __STDC_VERSION__ >= 199901L
# define C_DIALECT "99"
#else
# define C_DIALECT "90"
#endif
const char* info_language_dialect_default =
"INFO" ":" "dialect_default[" C_DIALECT "]";
/*--------------------------------------------------------------------------*/
#ifdef ID_VOID_MAIN
void main() {}
#else
# if defined(__CLASSIC_C__)
int main(argc, argv) int argc; char *argv[];
# else
int main(int argc, char* argv[])
# endif
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
require += info_arch[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#ifdef COMPILER_VERSION_INTERNAL
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
require += info_cray[argc];
#endif
require += info_language_dialect_default[argc];
(void)argv;
return require;
}
#endif

View File

@ -0,0 +1,644 @@
/* This source file must have a .cpp extension so that all C++ compilers
recognize the extension without flags. Borland does not know .cxx for
example. */
#ifndef __cplusplus
# error "A C compiler has been selected for C++."
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__COMO__)
# define COMPILER_ID "Comeau"
/* __COMO_VERSION__ = VRR */
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
#elif defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP */
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_CC)
# define COMPILER_ID "SunPro"
# if __SUNPRO_CC >= 0x5100
/* __SUNPRO_CC = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# endif
#elif defined(__HP_aCC)
# define COMPILER_ID "HP"
/* __HP_aCC = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
#elif defined(__DECCXX)
# define COMPILER_ID "Compaq"
/* __DECCXX_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__ibmxl__) && defined(__clang__)
# define COMPILER_ID "XLClang"
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
# define COMPILER_ID "XL"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
# define COMPILER_ID "Fujitsu"
#elif defined(__ghs__)
# define COMPILER_ID "GHS"
/* __GHS_VERSION_NUMBER = VVVVRP */
# ifdef __GHS_VERSION_NUMBER
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
# endif
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
# define COMPILER_ID "ARMClang"
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__GNUC__) || defined(__GNUG__)
# define COMPILER_ID "GNU"
# if defined(__GNUC__)
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# else
# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
# define COMPILER_ID "ADSP"
#if defined(__VISUALDSPVERSION__)
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__) && defined(__ICCARM__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__))
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#elif defined(__INTEGRITY)
# if defined(INT_178B)
# define PLATFORM_ID "Integrity178"
# else /* regular Integrity */
# define PLATFORM_ID "Integrity"
# endif
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__ICCRH850__)
# define ARCHITECTURE_ID "RH850"
# elif defined(__ICCRL78__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__ICCRISCV__)
# define ARCHITECTURE_ID "RISCV"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# elif defined(__ICC430__)
# define ARCHITECTURE_ID "MSP430"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__ghs__)
# if defined(__PPC64__)
# define ARCHITECTURE_ID "PPC64"
# elif defined(__ppc__)
# define ARCHITECTURE_ID "PPC"
# elif defined(__ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__x86_64__)
# define ARCHITECTURE_ID "x64"
# elif defined(__i386__)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number components. */
#ifdef COMPILER_VERSION_MAJOR
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#if defined(_MSC_VER) && defined(_MSVC_LANG)
#define CXX_STD _MSVC_LANG
#else
#define CXX_STD __cplusplus
#endif
const char* info_language_dialect_default = "INFO" ":" "dialect_default["
#if CXX_STD > 201703L
"20"
#elif CXX_STD >= 201703L
"17"
#elif CXX_STD >= 201402L
"14"
#elif CXX_STD >= 201103L
"11"
#else
"98"
#endif
"]";
/*--------------------------------------------------------------------------*/
int main(int argc, char* argv[])
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#ifdef COMPILER_VERSION_INTERNAL
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXE) || defined(__CRAYXC)
require += info_cray[argc];
#endif
require += info_language_dialect_default[argc];
(void)argv;
return require;
}

View File

@ -0,0 +1,16 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.15
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "D:/project/c++/General")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "D:/project/c++/General/cmake-build-debug")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})

View File

@ -0,0 +1,11 @@
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of files for implicit dependencies of each language:
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")

View File

@ -0,0 +1,80 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.15
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
SHELL = cmd.exe
# The CMake executable.
CMAKE_COMMAND = "C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe"
# The command to remove a file.
RM = "C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe" -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = D:\project\c++\General
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = D:\project\c++\General\cmake-build-debug
# Utility rule file for CopyTask.
# Include the progress variables for this target.
include CMakeFiles/CopyTask.dir/progress.make
CMakeFiles/CopyTask: COPY_RES
COPY_RES:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=D:\project\c++\General\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating COPY_RES"
"C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe" -E copy_directory D:/project/c++/General/inc D:/project/c++/General/obj/inc
CopyTask: CMakeFiles/CopyTask
CopyTask: COPY_RES
CopyTask: CMakeFiles/CopyTask.dir/build.make
.PHONY : CopyTask
# Rule to build all files generated by this target.
CMakeFiles/CopyTask.dir/build: CopyTask
.PHONY : CMakeFiles/CopyTask.dir/build
CMakeFiles/CopyTask.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles\CopyTask.dir\cmake_clean.cmake
.PHONY : CMakeFiles/CopyTask.dir/clean
CMakeFiles/CopyTask.dir/depend:
$(CMAKE_COMMAND) -E cmake_depends "MinGW Makefiles" D:\project\c++\General D:\project\c++\General D:\project\c++\General\cmake-build-debug D:\project\c++\General\cmake-build-debug D:\project\c++\General\cmake-build-debug\CMakeFiles\CopyTask.dir\DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/CopyTask.dir/depend

View File

@ -0,0 +1,9 @@
file(REMOVE_RECURSE
"CMakeFiles/CopyTask"
"COPY_RES"
)
# Per-language clean rules from dependency scanning.
foreach(lang )
include(CMakeFiles/CopyTask.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()

View File

@ -0,0 +1,2 @@
CMAKE_PROGRESS_1 = 1

View File

@ -0,0 +1,18 @@
#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">])
#IncludeRegexScan: ^.*$
#IncludeRegexComplain: ^$
#IncludeRegexTransform:
D:/project/c++/General/src/pattern/signleton.cpp
signleton.h
D:/project/c++/General/src/pattern/signleton.h
D:/project/c++/General/src/pattern/signleton.h
memory
-
vector
-

View File

@ -0,0 +1,25 @@
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
"CXX"
)
# The set of files for implicit dependencies of each language:
set(CMAKE_DEPENDS_CHECK_CXX
"D:/project/c++/General/src/debug.cpp" "D:/project/c++/General/cmake-build-debug/CMakeFiles/General.dir/src/debug.cpp.obj"
"D:/project/c++/General/src/loger.cpp" "D:/project/c++/General/cmake-build-debug/CMakeFiles/General.dir/src/loger.cpp.obj"
"D:/project/c++/General/src/pattern/Observer.cpp" "D:/project/c++/General/cmake-build-debug/CMakeFiles/General.dir/src/pattern/Observer.cpp.obj"
"D:/project/c++/General/src/pattern/signleton.cpp" "D:/project/c++/General/cmake-build-debug/CMakeFiles/General.dir/src/pattern/signleton.cpp.obj"
"D:/project/c++/General/src/utils.cpp" "D:/project/c++/General/cmake-build-debug/CMakeFiles/General.dir/src/utils.cpp.obj"
)
set(CMAKE_CXX_COMPILER_ID "GNU")
# The include file search paths:
set(CMAKE_CXX_TARGET_INCLUDE_PATH
"../inc"
)
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")

View File

@ -0,0 +1,163 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.15
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
SHELL = cmd.exe
# The CMake executable.
CMAKE_COMMAND = "C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe"
# The command to remove a file.
RM = "C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe" -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = D:\project\c++\General
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = D:\project\c++\General\cmake-build-debug
# Include any dependencies generated for this target.
include CMakeFiles/General.dir/depend.make
# Include the progress variables for this target.
include CMakeFiles/General.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/General.dir/flags.make
CMakeFiles/General.dir/src/debug.cpp.obj: CMakeFiles/General.dir/flags.make
CMakeFiles/General.dir/src/debug.cpp.obj: CMakeFiles/General.dir/includes_CXX.rsp
CMakeFiles/General.dir/src/debug.cpp.obj: ../src/debug.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\project\c++\General\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/General.dir/src/debug.cpp.obj"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles\General.dir\src\debug.cpp.obj -c D:\project\c++\General\src\debug.cpp
CMakeFiles/General.dir/src/debug.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/General.dir/src/debug.cpp.i"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E D:\project\c++\General\src\debug.cpp > CMakeFiles\General.dir\src\debug.cpp.i
CMakeFiles/General.dir/src/debug.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/General.dir/src/debug.cpp.s"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S D:\project\c++\General\src\debug.cpp -o CMakeFiles\General.dir\src\debug.cpp.s
CMakeFiles/General.dir/src/loger.cpp.obj: CMakeFiles/General.dir/flags.make
CMakeFiles/General.dir/src/loger.cpp.obj: CMakeFiles/General.dir/includes_CXX.rsp
CMakeFiles/General.dir/src/loger.cpp.obj: ../src/loger.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\project\c++\General\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/General.dir/src/loger.cpp.obj"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles\General.dir\src\loger.cpp.obj -c D:\project\c++\General\src\loger.cpp
CMakeFiles/General.dir/src/loger.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/General.dir/src/loger.cpp.i"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E D:\project\c++\General\src\loger.cpp > CMakeFiles\General.dir\src\loger.cpp.i
CMakeFiles/General.dir/src/loger.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/General.dir/src/loger.cpp.s"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S D:\project\c++\General\src\loger.cpp -o CMakeFiles\General.dir\src\loger.cpp.s
CMakeFiles/General.dir/src/utils.cpp.obj: CMakeFiles/General.dir/flags.make
CMakeFiles/General.dir/src/utils.cpp.obj: CMakeFiles/General.dir/includes_CXX.rsp
CMakeFiles/General.dir/src/utils.cpp.obj: ../src/utils.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\project\c++\General\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/General.dir/src/utils.cpp.obj"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles\General.dir\src\utils.cpp.obj -c D:\project\c++\General\src\utils.cpp
CMakeFiles/General.dir/src/utils.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/General.dir/src/utils.cpp.i"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E D:\project\c++\General\src\utils.cpp > CMakeFiles\General.dir\src\utils.cpp.i
CMakeFiles/General.dir/src/utils.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/General.dir/src/utils.cpp.s"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S D:\project\c++\General\src\utils.cpp -o CMakeFiles\General.dir\src\utils.cpp.s
CMakeFiles/General.dir/src/pattern/Observer.cpp.obj: CMakeFiles/General.dir/flags.make
CMakeFiles/General.dir/src/pattern/Observer.cpp.obj: CMakeFiles/General.dir/includes_CXX.rsp
CMakeFiles/General.dir/src/pattern/Observer.cpp.obj: ../src/pattern/Observer.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\project\c++\General\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/General.dir/src/pattern/Observer.cpp.obj"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles\General.dir\src\pattern\Observer.cpp.obj -c D:\project\c++\General\src\pattern\Observer.cpp
CMakeFiles/General.dir/src/pattern/Observer.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/General.dir/src/pattern/Observer.cpp.i"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E D:\project\c++\General\src\pattern\Observer.cpp > CMakeFiles\General.dir\src\pattern\Observer.cpp.i
CMakeFiles/General.dir/src/pattern/Observer.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/General.dir/src/pattern/Observer.cpp.s"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S D:\project\c++\General\src\pattern\Observer.cpp -o CMakeFiles\General.dir\src\pattern\Observer.cpp.s
CMakeFiles/General.dir/src/pattern/signleton.cpp.obj: CMakeFiles/General.dir/flags.make
CMakeFiles/General.dir/src/pattern/signleton.cpp.obj: CMakeFiles/General.dir/includes_CXX.rsp
CMakeFiles/General.dir/src/pattern/signleton.cpp.obj: ../src/pattern/signleton.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\project\c++\General\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object CMakeFiles/General.dir/src/pattern/signleton.cpp.obj"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles\General.dir\src\pattern\signleton.cpp.obj -c D:\project\c++\General\src\pattern\signleton.cpp
CMakeFiles/General.dir/src/pattern/signleton.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/General.dir/src/pattern/signleton.cpp.i"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E D:\project\c++\General\src\pattern\signleton.cpp > CMakeFiles\General.dir\src\pattern\signleton.cpp.i
CMakeFiles/General.dir/src/pattern/signleton.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/General.dir/src/pattern/signleton.cpp.s"
C:\msys64\mingw64\bin\g++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S D:\project\c++\General\src\pattern\signleton.cpp -o CMakeFiles\General.dir\src\pattern\signleton.cpp.s
# Object files for target General
General_OBJECTS = \
"CMakeFiles/General.dir/src/debug.cpp.obj" \
"CMakeFiles/General.dir/src/loger.cpp.obj" \
"CMakeFiles/General.dir/src/utils.cpp.obj" \
"CMakeFiles/General.dir/src/pattern/Observer.cpp.obj" \
"CMakeFiles/General.dir/src/pattern/signleton.cpp.obj"
# External object files for target General
General_EXTERNAL_OBJECTS =
../obj/libGeneral.a: CMakeFiles/General.dir/src/debug.cpp.obj
../obj/libGeneral.a: CMakeFiles/General.dir/src/loger.cpp.obj
../obj/libGeneral.a: CMakeFiles/General.dir/src/utils.cpp.obj
../obj/libGeneral.a: CMakeFiles/General.dir/src/pattern/Observer.cpp.obj
../obj/libGeneral.a: CMakeFiles/General.dir/src/pattern/signleton.cpp.obj
../obj/libGeneral.a: CMakeFiles/General.dir/build.make
../obj/libGeneral.a: CMakeFiles/General.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=D:\project\c++\General\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Linking CXX static library ..\obj\libGeneral.a"
$(CMAKE_COMMAND) -P CMakeFiles\General.dir\cmake_clean_target.cmake
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles\General.dir\link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/General.dir/build: ../obj/libGeneral.a
.PHONY : CMakeFiles/General.dir/build
CMakeFiles/General.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles\General.dir\cmake_clean.cmake
.PHONY : CMakeFiles/General.dir/clean
CMakeFiles/General.dir/depend:
$(CMAKE_COMMAND) -E cmake_depends "MinGW Makefiles" D:\project\c++\General D:\project\c++\General D:\project\c++\General\cmake-build-debug D:\project\c++\General\cmake-build-debug D:\project\c++\General\cmake-build-debug\CMakeFiles\General.dir\DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/General.dir/depend

View File

@ -0,0 +1,14 @@
file(REMOVE_RECURSE
"../obj/libGeneral.a"
"../obj/libGeneral.pdb"
"CMakeFiles/General.dir/src/debug.cpp.obj"
"CMakeFiles/General.dir/src/loger.cpp.obj"
"CMakeFiles/General.dir/src/pattern/Observer.cpp.obj"
"CMakeFiles/General.dir/src/pattern/signleton.cpp.obj"
"CMakeFiles/General.dir/src/utils.cpp.obj"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/General.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()

View File

@ -0,0 +1,3 @@
file(REMOVE_RECURSE
"../obj/libGeneral.a"
)

View File

@ -0,0 +1,12 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.15
CMakeFiles/General.dir/src/debug.cpp.obj
D:/project/c++/General/src/debug.cpp
CMakeFiles/General.dir/src/loger.cpp.obj
D:/project/c++/General/src/loger.cpp
CMakeFiles/General.dir/src/pattern/signleton.cpp.obj
D:/project/c++/General/src/pattern/signleton.cpp
D:/project/c++/General/src/pattern/signleton.h
CMakeFiles/General.dir/src/utils.cpp.obj
D:/project/c++/General/src/utils.cpp

View File

@ -0,0 +1,12 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.15
CMakeFiles/General.dir/src/debug.cpp.obj: ../src/debug.cpp
CMakeFiles/General.dir/src/loger.cpp.obj: ../src/loger.cpp
CMakeFiles/General.dir/src/pattern/signleton.cpp.obj: ../src/pattern/signleton.cpp
CMakeFiles/General.dir/src/pattern/signleton.cpp.obj: ../src/pattern/signleton.h
CMakeFiles/General.dir/src/utils.cpp.obj: ../src/utils.cpp

View File

@ -0,0 +1,10 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.15
# compile CXX with C:/msys64/mingw64/bin/g++.exe
CXX_FLAGS = -g -std=gnu++11
CXX_DEFINES =
CXX_INCLUDES = @CMakeFiles/General.dir/includes_CXX.rsp

View File

@ -0,0 +1 @@
-ID:/project/c++/General/inc

View File

@ -0,0 +1,2 @@
C:\msys64\mingw64\bin\ar.exe qc ..\obj\libGeneral.a CMakeFiles/General.dir/src/debug.cpp.obj CMakeFiles/General.dir/src/loger.cpp.obj CMakeFiles/General.dir/src/utils.cpp.obj CMakeFiles/General.dir/src/pattern/Observer.cpp.obj CMakeFiles/General.dir/src/pattern/signleton.cpp.obj
C:\msys64\mingw64\bin\ranlib.exe ..\obj\libGeneral.a

View File

@ -0,0 +1 @@
-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32

View File

@ -0,0 +1 @@
CMakeFiles/General.dir/main.cpp.obj

View File

@ -0,0 +1,7 @@
CMAKE_PROGRESS_1 = 1
CMAKE_PROGRESS_2 = 2
CMAKE_PROGRESS_3 = 3
CMAKE_PROGRESS_4 = 4
CMAKE_PROGRESS_5 = 5
CMAKE_PROGRESS_6 = 6

View File

@ -0,0 +1,57 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.15
# The generator used is:
set(CMAKE_DEPENDS_GENERATOR "MinGW Makefiles")
# The top level Makefile was generated from the following files:
set(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeCInformation.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeCXXInformation.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeCommonLanguageInclude.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeFindCodeBlocks.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeGenericSystem.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeInitializeConfigs.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeLanguageInformation.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeRCInformation.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeSystemSpecificInformation.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/CMakeSystemSpecificInitialize.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Compiler/GNU-C.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Compiler/GNU-CXX.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Compiler/GNU.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Internal/CMakeCheckCompilerFlag.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Platform/Windows-GNU-C-ABI.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Platform/Windows-GNU-C.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Platform/Windows-GNU-CXX-ABI.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Platform/Windows-GNU-CXX.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Platform/Windows-GNU.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Platform/Windows-windres.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Platform/Windows.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/Platform/WindowsPaths.cmake"
"C:/Program Files/JetBrains/CLion/bin/cmake/win/share/cmake-3.15/Modules/ProcessorCount.cmake"
"../CMakeLists.txt"
"CMakeFiles/3.15.3/CMakeCCompiler.cmake"
"CMakeFiles/3.15.3/CMakeCXXCompiler.cmake"
"CMakeFiles/3.15.3/CMakeRCCompiler.cmake"
"CMakeFiles/3.15.3/CMakeSystem.cmake"
)
# The corresponding makefile is:
set(CMAKE_MAKEFILE_OUTPUTS
"Makefile"
"CMakeFiles/cmake.check_cache"
)
# Byproducts of CMake generate step:
set(CMAKE_MAKEFILE_PRODUCTS
"CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
set(CMAKE_DEPEND_INFO_FILES
"CMakeFiles/General.dir/DependInfo.cmake"
)

View File

@ -0,0 +1,105 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.15
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
SHELL = cmd.exe
# The CMake executable.
CMAKE_COMMAND = "C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe"
# The command to remove a file.
RM = "C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe" -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = D:\project\c++\General
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = D:\project\c++\General\cmake-build-debug
#=============================================================================
# Directory level rules for the build root directory
# The main recursive "all" target.
all: CMakeFiles/General.dir/all
.PHONY : all
# The main recursive "clean" target.
clean: CMakeFiles/General.dir/clean
.PHONY : clean
# The main recursive "preinstall" target.
preinstall:
.PHONY : preinstall
#=============================================================================
# Target rules for target CMakeFiles/General.dir
# All Build rule for target.
CMakeFiles/General.dir/all:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/depend
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=D:\project\c++\General\cmake-build-debug\CMakeFiles --progress-num=1,2,3,4,5,6 "Built target General"
.PHONY : CMakeFiles/General.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/General.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start D:\project\c++\General\cmake-build-debug\CMakeFiles 6
$(MAKE) -f CMakeFiles\Makefile2 CMakeFiles/General.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start D:\project\c++\General\cmake-build-debug\CMakeFiles 0
.PHONY : CMakeFiles/General.dir/rule
# Convenience name for target.
General: CMakeFiles/General.dir/rule
.PHONY : General
# clean rule for target.
CMakeFiles/General.dir/clean:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/clean
.PHONY : CMakeFiles/General.dir/clean
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles\Makefile.cmake 0
.PHONY : cmake_check_build_system

View File

@ -0,0 +1,3 @@
D:/project/c++/General/cmake-build-debug/CMakeFiles/General.dir
D:/project/c++/General/cmake-build-debug/CMakeFiles/edit_cache.dir
D:/project/c++/General/cmake-build-debug/CMakeFiles/rebuild_cache.dir

View File

@ -0,0 +1,4 @@
ToolSet: w64 6.0 (local)@C:\msys64\mingw64
Options:
Options:-DCMAKE_MAKE_PROGRAM=C:/msys64/mingw64/bin/mingw32-make.exe

View File

@ -0,0 +1,5 @@
"C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=C:/msys64/mingw64/bin/mingw32-make.exe -G "CodeBlocks - MinGW Makefiles" D:\project\c++\General
statusD:/project/c++/General/inc/debug.hD:/project/c++/General/inc/loger.hD:/project/c++/General/inc/utils.h
-- Configuring done
-- Generating done
-- Build files have been written to: D:/project/c++/General/cmake-build-debug

View File

@ -0,0 +1 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file

View File

@ -0,0 +1 @@
6

View File

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6"/>
<Project>
<Option title="General"/>
<Option makefile_is_custom="1"/>
<Option compiler="gcc"/>
<Option virtualFolders="CMake Files\;"/>
<Build>
<Target title="all">
<Option working_dir="D:/project/c++/General/cmake-build-debug"/>
<Option type="4"/>
<MakeCommands>
<Build command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 all"/>
<CompileFile command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="General">
<Option output="D:/project/c++/General/obj/libGeneral.a" prefix_auto="0" extension_auto="0"/>
<Option working_dir="D:/project/c++/General/cmake-build-debug"/>
<Option object_output="./"/>
<Option type="2"/>
<Option compiler="gcc"/>
<Compiler>
<Add directory="D:/project/c++/General/inc"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0/x86_64-w64-mingw32"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0/backward"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include-fixed"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/include"/>
</Compiler>
<MakeCommands>
<Build command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 General"/>
<CompileFile command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="General/fast">
<Option output="D:/project/c++/General/obj/libGeneral.a" prefix_auto="0" extension_auto="0"/>
<Option working_dir="D:/project/c++/General/cmake-build-debug"/>
<Option object_output="./"/>
<Option type="2"/>
<Option compiler="gcc"/>
<Compiler>
<Add directory="D:/project/c++/General/inc"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0/x86_64-w64-mingw32"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0/backward"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include-fixed"/>
<Add directory="C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/include"/>
</Compiler>
<MakeCommands>
<Build command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 General/fast"/>
<CompileFile command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="edit_cache">
<Option working_dir="D:/project/c++/General/cmake-build-debug"/>
<Option type="4"/>
<MakeCommands>
<Build command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 edit_cache"/>
<CompileFile command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="rebuild_cache">
<Option working_dir="D:/project/c++/General/cmake-build-debug"/>
<Option type="4"/>
<MakeCommands>
<Build command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 rebuild_cache"/>
<CompileFile command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="C:/msys64/mingw64/bin/mingw32-make.exe -f &quot;D:/project/c++/General/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
</Build>
<Unit filename="D:/project/c++/General/src/debug.cpp">
<Option target="General"/>
</Unit>
<Unit filename="D:/project/c++/General/src/loger.cpp">
<Option target="General"/>
</Unit>
<Unit filename="D:/project/c++/General/src/pattern/Observer.cpp">
<Option target="General"/>
</Unit>
<Unit filename="D:/project/c++/General/src/pattern/Observer.h">
<Option target="General"/>
</Unit>
<Unit filename="D:/project/c++/General/src/pattern/signleton.cpp">
<Option target="General"/>
</Unit>
<Unit filename="D:/project/c++/General/src/pattern/signleton.h">
<Option target="General"/>
</Unit>
<Unit filename="D:/project/c++/General/src/utils.cpp">
<Option target="General"/>
</Unit>
<Unit filename="D:/project/c++/General/CMakeLists.txt">
<Option virtualFolder="CMake Files\"/>
</Unit>
</Project>
</CodeBlocks_project_file>

View File

@ -0,0 +1,16 @@
//
// Created by admin on 2019/4/11.
//
#ifndef __DEBUG__
#define __DEBUG__
#include <stdio.h>
#include <string.h>
#include <string>
#include <iostream>
using namespace std;
int dumpObj(void *dst,int rowNum,int num,bool ifAsii,char *out);
int PrintDumpObjvoid (void *dst,int rowNum,int num,bool ifAsii);
#endif //SHARE_PRT_TEST_DEBUG_H

View File

@ -0,0 +1,43 @@
//
// Created by bt110 on 2019/8/19.
//
#ifndef CPP11FEATURETEST_LOGER_H
#define CPP11FEATURETEST_LOGER_H
#include <stdio.h>
#include <string>
#include <time.h>
#include <fstream>
#include <iostream>
using namespace std;
namespace Loger{
typedef enum Mode{
Mode_Daily, // 每天保存一次日志
MODE_Monthly, // 每个月保存一次日志
MODE_Weekly // 每周保存一次日志
}ESaveMode;
typedef class _C_Loger {
private:
string mCurrentPath;
FILE *mFile; // 日志文件
ESaveMode mMode; // 工作模式
string mCurrentDate; // 当天
int error;
public:
_C_Loger(FILE *p);
_C_Loger(string path);
int Debug();
int Log();
int LogFile();
void operator+(const string&);
void operator<<(const string&);
}Loger;
}
#endif //CPP11FEATURETEST_LOGER_H

View File

@ -0,0 +1,15 @@
//
// Created by 29019 on 2019/5/2.
//
#ifndef CUTILS_UTILS_H
#define CUTILS_UTILS_H
#include "utils.h"
#include <string>
#include "debug.h"
using namespace std;
string itos(int x);
#endif //CUTILS_UTILS_H

297
cmake-build-debug/Makefile Normal file
View File

@ -0,0 +1,297 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.15
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
SHELL = cmd.exe
# The CMake executable.
CMAKE_COMMAND = "C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe"
# The command to remove a file.
RM = "C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe" -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = D:\project\c++\General
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = D:\project\c++\General\cmake-build-debug
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
"C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe" -E echo "No interactive CMake dialog available."
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
"C:\Program Files\JetBrains\CLion\bin\cmake\win\bin\cmake.exe" -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start D:\project\c++\General\cmake-build-debug\CMakeFiles D:\project\c++\General\cmake-build-debug\CMakeFiles\progress.marks
$(MAKE) -f CMakeFiles\Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start D:\project\c++\General\cmake-build-debug\CMakeFiles 0
.PHONY : all
# The main clean target
clean:
$(MAKE) -f CMakeFiles\Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) -f CMakeFiles\Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) -f CMakeFiles\Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles\Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named General
# Build rule for target.
General: cmake_check_build_system
$(MAKE) -f CMakeFiles\Makefile2 General
.PHONY : General
# fast build rule for target.
General/fast:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/build
.PHONY : General/fast
src/debug.obj: src/debug.cpp.obj
.PHONY : src/debug.obj
# target to build an object file
src/debug.cpp.obj:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/debug.cpp.obj
.PHONY : src/debug.cpp.obj
src/debug.i: src/debug.cpp.i
.PHONY : src/debug.i
# target to preprocess a source file
src/debug.cpp.i:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/debug.cpp.i
.PHONY : src/debug.cpp.i
src/debug.s: src/debug.cpp.s
.PHONY : src/debug.s
# target to generate assembly for a file
src/debug.cpp.s:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/debug.cpp.s
.PHONY : src/debug.cpp.s
src/loger.obj: src/loger.cpp.obj
.PHONY : src/loger.obj
# target to build an object file
src/loger.cpp.obj:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/loger.cpp.obj
.PHONY : src/loger.cpp.obj
src/loger.i: src/loger.cpp.i
.PHONY : src/loger.i
# target to preprocess a source file
src/loger.cpp.i:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/loger.cpp.i
.PHONY : src/loger.cpp.i
src/loger.s: src/loger.cpp.s
.PHONY : src/loger.s
# target to generate assembly for a file
src/loger.cpp.s:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/loger.cpp.s
.PHONY : src/loger.cpp.s
src/pattern/Observer.obj: src/pattern/Observer.cpp.obj
.PHONY : src/pattern/Observer.obj
# target to build an object file
src/pattern/Observer.cpp.obj:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/pattern/Observer.cpp.obj
.PHONY : src/pattern/Observer.cpp.obj
src/pattern/Observer.i: src/pattern/Observer.cpp.i
.PHONY : src/pattern/Observer.i
# target to preprocess a source file
src/pattern/Observer.cpp.i:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/pattern/Observer.cpp.i
.PHONY : src/pattern/Observer.cpp.i
src/pattern/Observer.s: src/pattern/Observer.cpp.s
.PHONY : src/pattern/Observer.s
# target to generate assembly for a file
src/pattern/Observer.cpp.s:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/pattern/Observer.cpp.s
.PHONY : src/pattern/Observer.cpp.s
src/pattern/signleton.obj: src/pattern/signleton.cpp.obj
.PHONY : src/pattern/signleton.obj
# target to build an object file
src/pattern/signleton.cpp.obj:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/pattern/signleton.cpp.obj
.PHONY : src/pattern/signleton.cpp.obj
src/pattern/signleton.i: src/pattern/signleton.cpp.i
.PHONY : src/pattern/signleton.i
# target to preprocess a source file
src/pattern/signleton.cpp.i:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/pattern/signleton.cpp.i
.PHONY : src/pattern/signleton.cpp.i
src/pattern/signleton.s: src/pattern/signleton.cpp.s
.PHONY : src/pattern/signleton.s
# target to generate assembly for a file
src/pattern/signleton.cpp.s:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/pattern/signleton.cpp.s
.PHONY : src/pattern/signleton.cpp.s
src/utils.obj: src/utils.cpp.obj
.PHONY : src/utils.obj
# target to build an object file
src/utils.cpp.obj:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/utils.cpp.obj
.PHONY : src/utils.cpp.obj
src/utils.i: src/utils.cpp.i
.PHONY : src/utils.i
# target to preprocess a source file
src/utils.cpp.i:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/utils.cpp.i
.PHONY : src/utils.cpp.i
src/utils.s: src/utils.cpp.s
.PHONY : src/utils.s
# target to generate assembly for a file
src/utils.cpp.s:
$(MAKE) -f CMakeFiles\General.dir\build.make CMakeFiles/General.dir/src/utils.cpp.s
.PHONY : src/utils.cpp.s
# Help Target
help:
@echo The following are some of the valid targets for this Makefile:
@echo ... all (the default if no target is provided)
@echo ... clean
@echo ... depend
@echo ... General
@echo ... edit_cache
@echo ... rebuild_cache
@echo ... src/debug.obj
@echo ... src/debug.i
@echo ... src/debug.s
@echo ... src/loger.obj
@echo ... src/loger.i
@echo ... src/loger.s
@echo ... src/pattern/Observer.obj
@echo ... src/pattern/Observer.i
@echo ... src/pattern/Observer.s
@echo ... src/pattern/signleton.obj
@echo ... src/pattern/signleton.i
@echo ... src/pattern/signleton.s
@echo ... src/utils.obj
@echo ... src/utils.i
@echo ... src/utils.s
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles\Makefile.cmake 0
.PHONY : cmake_check_build_system

View File

@ -0,0 +1,44 @@
# Install script for directory: D:/project/c++/General
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/General")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "Debug")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
if(CMAKE_INSTALL_COMPONENT)
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
else()
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
file(WRITE "D:/project/c++/General/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")

Binary file not shown.

16
inc/debug.h Normal file
View File

@ -0,0 +1,16 @@
//
// Created by admin on 2019/4/11.
//
#ifndef __DEBUG__
#define __DEBUG__
#include <stdio.h>
#include <string.h>
#include <string>
#include <iostream>
using namespace std;
int dumpObj(void *dst,int rowNum,int num,bool ifAsii,char *out);
int PrintDumpObjvoid (void *dst,int rowNum,int num,bool ifAsii);
#endif //SHARE_PRT_TEST_DEBUG_H

43
inc/loger.h Normal file
View File

@ -0,0 +1,43 @@
//
// Created by bt110 on 2019/8/19.
//
#ifndef CPP11FEATURETEST_LOGER_H
#define CPP11FEATURETEST_LOGER_H
#include <stdio.h>
#include <string>
#include <time.h>
#include <fstream>
#include <iostream>
using namespace std;
namespace Loger{
typedef enum Mode{
Mode_Daily, // 每天保存一次日志
MODE_Monthly, // 每个月保存一次日志
MODE_Weekly // 每周保存一次日志
}ESaveMode;
typedef class _C_Loger {
private:
string mCurrentPath;
FILE *mFile; // 日志文件
ESaveMode mMode; // 工作模式
string mCurrentDate; // 当天
int error;
public:
_C_Loger(FILE *p);
_C_Loger(string path);
int Debug();
int Log();
int LogFile();
void operator+(const string&);
void operator<<(const string&);
}Loger;
}
#endif //CPP11FEATURETEST_LOGER_H

23
inc/utils.h Normal file
View File

@ -0,0 +1,23 @@
//
// Created by 29019 on 2019/5/2.
//
#ifndef CUTILS_UTILS_H
#define CUTILS_UTILS_H
#include "utils.h"
#include <string>
#include "debug.h"
using namespace std;
#define RELEASE_MEMORY(x) \
if(nullptr == x) \
{ \
delete(x); \
x = nullptr;\
}
string itos(int x);
#endif //CUTILS_UTILS_H

14
obj/inc/Observer.h Normal file
View File

@ -0,0 +1,14 @@
//
// Created by 29019 on 2019/12/21.
//
#ifndef GENERAL_OBSERVER_H
#define GENERAL_OBSERVER_H
class Observer {
};
#endif //GENERAL_OBSERVER_H

16
obj/inc/debug.h Normal file
View File

@ -0,0 +1,16 @@
//
// Created by admin on 2019/4/11.
//
#ifndef __DEBUG__
#define __DEBUG__
#include <stdio.h>
#include <string.h>
#include <string>
#include <iostream>
using namespace std;
int dumpObj(void *dst,int rowNum,int num,bool ifAsii,char *out);
int PrintDumpObjvoid (void *dst,int rowNum,int num,bool ifAsii);
#endif //SHARE_PRT_TEST_DEBUG_H

43
obj/inc/loger.h Normal file
View File

@ -0,0 +1,43 @@
//
// Created by bt110 on 2019/8/19.
//
#ifndef CPP11FEATURETEST_LOGER_H
#define CPP11FEATURETEST_LOGER_H
#include <stdio.h>
#include <string>
#include <time.h>
#include <fstream>
#include <iostream>
using namespace std;
namespace Loger{
typedef enum Mode{
Mode_Daily, // 每天保存一次日志
MODE_Monthly, // 每个月保存一次日志
MODE_Weekly // 每周保存一次日志
}ESaveMode;
typedef class _C_Loger {
private:
string mCurrentPath;
FILE *mFile; // 日志文件
ESaveMode mMode; // 工作模式
string mCurrentDate; // 当天
int error;
public:
_C_Loger(FILE *p);
_C_Loger(string path);
int Debug();
int Log();
int LogFile();
void operator+(const string&);
void operator<<(const string&);
}Loger;
}
#endif //CPP11FEATURETEST_LOGER_H

31
obj/inc/signleton.h Normal file
View File

@ -0,0 +1,31 @@
//
// Created by 29019 on 2019/12/17.
//
#ifndef GENERAL_SIGNLETON_H
#define GENERAL_SIGNLETON_H
#include <memory>
#include <vector>
using namespace std;
template <typename T> class Singletone
{
public:
static Singletone<T> Instance(){
if(mInstance.get() == nullptr){
mInstance = std::unique_ptr<T>();
}
return mInstance;
}
private:
Singletone<T>(){};
~Singletone<T>(){};
Singletone &operator=(const Singletone&){};
static unique_ptr<T> mInstance;
};
#define DECLARE_SINGLETON(type) \
friend class unique_ptr<type> mInstacnePtr; \
friend class Singletone<type> ;
#endif //GENERAL_SIGNLETON_H

23
obj/inc/utils.h Normal file
View File

@ -0,0 +1,23 @@
//
// Created by 29019 on 2019/5/2.
//
#ifndef CUTILS_UTILS_H
#define CUTILS_UTILS_H
#include "utils.h"
#include <string>
#include "debug.h"
using namespace std;
#define RELEASE_MEMORY(x) \
if(nullptr == x) \
{ \
delete(x); \
x = nullptr;\
}
string itos(int x);
#endif //CUTILS_UTILS_H

BIN
obj/libGeneral.a Normal file

Binary file not shown.

179
src/debug.cpp Normal file
View File

@ -0,0 +1,179 @@
//
// Created by admin on 2019/4/11.
//
#include "debug.h"
int PrintDumpObjvoid (void *dst,int rowNum,int num,bool ifAsii){
char out [2048] = {0};
if (NULL == out) {
return -1;
}
int row = num / rowNum;
int left = num %rowNum;
if (left != 0){
row += 1;
}
char lineStr[5];
sprintf(out,"LN: ",strlen("LN: "));
//char out[10240] = "LN: " ;
for (int z = 1;z < rowNum + 1; z++) {
char tmp[4] = {0};
sprintf(tmp,"%02d ",z);
strcat(out,tmp);
}
strcat(out," ");
if (ifAsii) {
for (int z = 1;z < rowNum + 1; z++) {
char tmp[4] = {0};
sprintf(tmp,"%02d ",z);
strcat(out,tmp);
}
}
strcat(out,"\r\n");
for(int i = 0;i < row;i ++) {
string rowstr;
char tmp[3] = {0};
sprintf(tmp,"%02x",i + 1);
rowstr += string(tmp) + ": ";
//last row
if (i == row -1 && left != 0){
for (int z = 0;z < rowNum; z++) {
char tmp[3] = {0};
if (z < left){
sprintf(tmp,"%02x",((unsigned char)(((unsigned char *)dst)[ z + i * rowNum])));
}else{
sprintf(tmp," ");
}
rowstr += string(tmp) + " ";
if (z == left - 1) {
if (!ifAsii)
rowstr += "\r\n";
}
}
rowstr += " ";
if(ifAsii) {
for (int z = 0;z < left; z++) {
char tmp[3] = {0};
sprintf(tmp,"%c",((unsigned char)(((unsigned char *)dst)[ z + i * rowNum])));
rowstr += string(tmp) + " ";
if (z == left - 1){
rowstr += "\r\n";
}
}
}
}else{
for (int z = 0;z < rowNum; z++) {
char tmp[3] = {0};
sprintf(tmp,"%02x",((unsigned char)(((unsigned char *)dst)[ z + i * rowNum])));
rowstr += string(tmp) + " ";
if (!ifAsii){
if (z == rowNum - 1){
rowstr += "\r\n";
}
}
}
rowstr += " ";
if(ifAsii){
for (int z = 0;z < rowNum; z++) {
char tmp[1] = {0};
sprintf(tmp,"%c",((unsigned char)(((unsigned char *)dst)[ z + i * rowNum])));
rowstr += string(tmp) + " ";
if (z == rowNum - 1){
rowstr += "\r\n";
}
}
}
}
strcat(out,rowstr.c_str());
}
cout << out << "\r\n";
return 0;
}
int dumpObj(void *dst,int rowNum,int num,bool ifAsii,char *out) {
if (NULL == out) {
return -1;
}
int row = num / rowNum;
int left = num %rowNum;
if (left != 0){
row += 1;
}
char lineStr[5];
sprintf(out,"LN: ",strlen("LN: "));
//char out[10240] = "LN: " ;
for (int z = 1;z < rowNum + 1; z++) {
char tmp[4] = {0};
sprintf(tmp,"%02d ",z);
strcat(out,tmp);
}
strcat(out," ");
if (ifAsii) {
for (int z = 1;z < rowNum + 1; z++) {
char tmp[4] = {0};
sprintf(tmp,"%02d ",z);
strcat(out,tmp);
}
}
strcat(out,"\r\n");
for(int i = 0;i < row;i ++) {
string rowstr;
char tmp[3] = {0};
sprintf(tmp,"%02x",i + 1);
rowstr += string(tmp) + ": ";
//last row
if (i == row -1 && left != 0){
for (int z = 0;z < rowNum; z++) {
char tmp[3] = {0};
if (z < left){
sprintf(tmp,"%02x",((unsigned char)(((unsigned char *)dst)[ z + i * rowNum])));
}else{
sprintf(tmp," ");
}
rowstr += string(tmp) + " ";
if (z == left - 1) {
if (!ifAsii)
rowstr += "\r\n";
}
}
rowstr += " ";
if(ifAsii) {
for (int z = 0;z < left; z++) {
char tmp[3] = {0};
sprintf(tmp,"%c",((unsigned char)(((unsigned char *)dst)[ z + i * rowNum])));
rowstr += string(tmp) + " ";
if (z == left - 1){
rowstr += "\r\n";
}
}
}
}else{
for (int z = 0;z < rowNum; z++) {
char tmp[3] = {0};
sprintf(tmp,"%02x",((unsigned char)(((unsigned char *)dst)[ z + i * rowNum])));
rowstr += string(tmp) + " ";
if (!ifAsii){
if (z == rowNum - 1){
rowstr += "\r\n";
}
}
}
rowstr += " ";
if(ifAsii){
for (int z = 0;z < rowNum; z++) {
char tmp[1] = {0};
sprintf(tmp,"%c",((unsigned char)(((unsigned char *)dst)[ z + i * rowNum])));
rowstr += string(tmp) + " ";
if (z == rowNum - 1){
rowstr += "\r\n";
}
}
}
}
strcat(out,rowstr.c_str());
}
cout << out << "\r\n";
return 0;
}

69
src/loger.cpp Normal file
View File

@ -0,0 +1,69 @@
//
// Created by bt110 on 2019/8/19.
//
#include "loger.h"
using namespace Loger;
string getTimeDate()
{
time_t timep;
time (&timep);
char tmp[64];
strftime(tmp, sizeof(tmp), "%Y-%m-%d",localtime(&timep) );
return string(tmp);
}
string getTime()
{
time_t timep;
time (&timep);
char tmp[64];
strftime(tmp, sizeof(tmp), "%Y-%m-%d %H:%M:%S",localtime(&timep) );
return string(tmp);
}
void _C_Loger::operator<<(const string& wb){
// 还没有过天
if(getTimeDate() == this->mCurrentDate){
string tmp = getTime();
tmp += ":";
tmp += wb;
tmp += "\n";
fwrite(tmp.c_str(),tmp.size(),1,this->mFile);
fflush(this->mFile);
}else{ // 已经过天了
this->mCurrentDate = getTimeDate();
string path = getTimeDate() + ".log";
this->mFile = fopen(path.c_str(),"w+");
if (this->mFile == nullptr){
this->error = true;
}
}
}
bool file_existed(string path) {
fstream _file;
_file.open(path.c_str(),ios::in);
if(!_file)
{
return false;
}
else
{
_file.close();
return true;
}
}
_C_Loger::_C_Loger(FILE *p){
this->mFile = p;
this->mCurrentDate = getTime();
}
_C_Loger::_C_Loger(string path) {
this->mCurrentDate = getTimeDate();
this->mCurrentPath = path + this->mCurrentDate;
this->mFile = fopen(this->mCurrentPath.c_str(),"a+");
if(! this->mFile){
fprintf(stderr,"error open log files %s code %d,please check file path",this->mCurrentPath.c_str(),this->mFile,errno);
exit(0);
}else{
}
}

33
src/pattern/Observer.cpp Normal file
View File

@ -0,0 +1,33 @@
//
// Created by 29019 on 2019/12/21.
//
#include "Observer.h"
int Observed::AddObserver(Observer *p) {
if(nullptr == p){
return -1;
}
for(std::vector<Observer*>::iterator itr = m_vObservers.begin();
itr != m_vObservers.end();itr++){
if(((Observer*)*itr) == p){
return 0;
}
}
this->m_vObservers.push_back(p);
}
int Observed::DeleteObserver(Observer *p) {
for(std::vector<Observer*>::iterator itr = m_vObservers.begin();
itr != m_vObservers.end();itr++){
if(((Observer*)*itr) == p){
return 0;
}
}
return 0;
}
int Observed::NoticeObserver() {
return 0;
}

31
src/pattern/Observer.h Normal file
View File

@ -0,0 +1,31 @@
//
// Created by 29019 on 2019/12/21.
//
#ifndef GENERAL_OBSERVER_H
#define GENERAL_OBSERVER_H
#include <memory>
#include <vector>
class Observer;
template <typename T> class Observed{
public:
virtual ~Observed(){};
int AddObserver(Observer *); // 添加观察者
int DeleteObserver(Observer *); // 删除观察者
int NoticeObserver();
protected:
std::vector<Observer*> m_vObservers;
};
class Observer
{
public:
void OnNotifyData();
private:
};
#endif //GENERAL_OBSERVER_H

View File

@ -0,0 +1,5 @@
//
// Created by 29019 on 2019/12/17.
//
#include "signleton.h"

31
src/pattern/signleton.h Normal file
View File

@ -0,0 +1,31 @@
//
// Created by 29019 on 2019/12/17.
//
#ifndef GENERAL_SIGNLETON_H
#define GENERAL_SIGNLETON_H
#include <memory>
#include <vector>
using namespace std;
template <typename T> class Singletone
{
public:
static Singletone<T> Instance(){
if(mInstance.get() == nullptr){
mInstance = std::unique_ptr<T>();
}
return mInstance;
}
private:
Singletone<T>(){};
~Singletone<T>(){};
Singletone &operator=(const Singletone&){};
static unique_ptr<T> mInstance;
};
#define DECLARE_SINGLETON(type) \
friend class unique_ptr<type> mInstacnePtr; \
friend class Singletone<type> ;
#endif //GENERAL_SIGNLETON_H

9
src/utils.cpp Normal file
View File

@ -0,0 +1,9 @@
//
// Created by 29019 on 2019/5/2.
//
#include "utils.h"
string itos(int x){
char buf[100] = {0};
itoa(x,buf,10);
return string(buf);
}