From e8720a00fd12c8e3b745f60b1de97a634ca84ee7 Mon Sep 17 00:00:00 2001 From: Derek Diamond Date: Tue, 11 May 2021 18:31:22 +0200 Subject: [PATCH 1/6] Give message with line and column of CSV file if data conversion fails --- src/Microsoft.Data.Analysis/DataFrame.cs | 10 +- .../Strings.Designer.cs | 11 +- src/Microsoft.Data.Analysis/Strings.resx | 3 + .../v1/query/client-MicrosoftVS/query.json | 1 + src/Native/out/build/x64-Debug/CMakeCache.txt | 372 +++++++++ .../3.19.20122902-MSVC_2/CMakeCCompiler.cmake | 77 ++ .../CMakeCXXCompiler.cmake | 89 +++ .../CMakeDetermineCompilerABI_C.bin | Bin 0 -> 51200 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 51200 bytes .../CMakeRCCompiler.cmake | 6 + .../3.19.20122902-MSVC_2/CMakeSystem.cmake | 15 + .../CompilerIdC/CMakeCCompilerId.c | 721 ++++++++++++++++++ .../CompilerIdC/CMakeCCompilerId.exe | Bin 0 -> 96256 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 710 +++++++++++++++++ .../CompilerIdCXX/CMakeCXXCompilerId.exe | Bin 0 -> 96256 bytes .../x64-Debug/CMakeFiles/ShowIncludes/foo.h | 1 + .../x64-Debug/CMakeFiles/ShowIncludes/main.c | 2 + .../x64-Debug/CMakeFiles/cmake.check_cache | 1 + .../build/x64-Debug/VSInheritEnvironments.txt | 1 + 19 files changed, 2018 insertions(+), 2 deletions(-) create mode 100644 src/Native/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json create mode 100644 src/Native/out/build/x64-Debug/CMakeCache.txt create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCCompiler.cmake create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCXXCompiler.cmake create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_C.bin create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeRCCompiler.cmake create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeSystem.cmake create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdC/CMakeCCompilerId.c create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdC/CMakeCCompilerId.exe create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/ShowIncludes/foo.h create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/ShowIncludes/main.c create mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/cmake.check_cache create mode 100644 src/Native/out/build/x64-Debug/VSInheritEnvironments.txt diff --git a/src/Microsoft.Data.Analysis/DataFrame.cs b/src/Microsoft.Data.Analysis/DataFrame.cs index 8eb04797aa..216a7fa75d 100644 --- a/src/Microsoft.Data.Analysis/DataFrame.cs +++ b/src/Microsoft.Data.Analysis/DataFrame.cs @@ -511,7 +511,15 @@ public DataFrame Append(IEnumerable row = null, bool inPlace = false) } if (value != null) { - value = Convert.ChangeType(value, column.DataType); + try + { + value = Convert.ChangeType(value, column.DataType); + } + catch (Exception ex) + { + throw new ArgumentException(string.Format(Strings.ValueConversionError, column.Name, ret.Columns.RowCount + 1, ex.Message), ex); + } + if (value is null) { throw new ArgumentException(string.Format(Strings.MismatchedValueType, column.DataType), value.GetType().ToString()); diff --git a/src/Microsoft.Data.Analysis/Strings.Designer.cs b/src/Microsoft.Data.Analysis/Strings.Designer.cs index ff3cd6cadd..79a8ed1194 100644 --- a/src/Microsoft.Data.Analysis/Strings.Designer.cs +++ b/src/Microsoft.Data.Analysis/Strings.Designer.cs @@ -365,7 +365,7 @@ internal static string NotSupportedColumnType { return ResourceManager.GetString("NotSupportedColumnType", resourceCulture); } } - + /// /// Looks up a localized string similar to Delimiters is null.. /// @@ -419,5 +419,14 @@ internal static string StreamDoesntSupportReading { return ResourceManager.GetString("StreamDoesntSupportReading", resourceCulture); } } + + /// + /// Looks up a localized string similar to Unable to convert value for column: {0} row: {1}: {2}. + /// + internal static string ValueConversionError { + get { + return ResourceManager.GetString("ValueConversionError", resourceCulture); + } + } } } diff --git a/src/Microsoft.Data.Analysis/Strings.resx b/src/Microsoft.Data.Analysis/Strings.resx index de91078cec..058a527cde 100644 --- a/src/Microsoft.Data.Analysis/Strings.resx +++ b/src/Microsoft.Data.Analysis/Strings.resx @@ -237,4 +237,7 @@ Stream doesn't support reading + + Unable to convert value for column: {0} row: {1}: {2} + \ No newline at end of file diff --git a/src/Native/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json b/src/Native/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json new file mode 100644 index 0000000000..308f68dd8c --- /dev/null +++ b/src/Native/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json @@ -0,0 +1 @@ +{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2}]} \ No newline at end of file diff --git a/src/Native/out/build/x64-Debug/CMakeCache.txt b/src/Native/out/build/x64-Debug/CMakeCache.txt new file mode 100644 index 0000000000..1d8081bbd8 --- /dev/null +++ b/src/Native/out/build/x64-Debug/CMakeCache.txt @@ -0,0 +1,372 @@ +# This is the CMakeCache file. +# For build in directory: c:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native/out/build/x64-Debug +# It was generated by CMake: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/lib.exe + +//No help, variable specified on the command line. +CMAKE_BUILD_TYPE:STRING=Debug + +//CXX compiler +CMAKE_CXX_COMPILER:STRING=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3 /GR /EHsc + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1 + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib + +//C compiler +CMAKE_C_COMPILER:STRING=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3 + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1 + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING=/machine:x64 + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//No help, variable specified on the command line. +CMAKE_INSTALL_PREFIX:PATH=C:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native/out/install/x64-Debug + +//Path to a program. +CMAKE_LINKER:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/link.exe + +//make program +CMAKE_MAKE_PROGRAM:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING=/machine:x64 + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL + +//Path to a program. +CMAKE_MT:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/mt.exe + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//RC compiler +CMAKE_RC_COMPILER:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/rc.exe + +//Flags for Windows Resource Compiler during all build types. +CMAKE_RC_FLAGS:STRING=-DWIN32 + +//Flags for Windows Resource Compiler during DEBUG builds. +CMAKE_RC_FLAGS_DEBUG:STRING=-D_DEBUG + +//Flags for Windows Resource Compiler during MINSIZEREL builds. +CMAKE_RC_FLAGS_MINSIZEREL:STRING= + +//Flags for Windows Resource Compiler during RELEASE builds. +CMAKE_RC_FLAGS_RELEASE:STRING= + +//Flags for Windows Resource Compiler during RELWITHDEBINFO builds. +CMAKE_RC_FLAGS_RELWITHDEBINFO:STRING= + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING=/machine:x64 + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING=/machine:x64 + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=C:/Users/DerekDiamond/source/repos/vcpkg/scripts/buildsystems/vcpkg.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=C:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native/out/build/x64-Debug + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=C:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native + +//Automatically copy dependencies into the output directory for +// executables. +VCPKG_APPLOCAL_DEPS:BOOL=ON + +//Vcpkg target triplet (ex. x86-windows) +VCPKG_TARGET_TRIPLET:STRING=x64-windows + +//Enables messages from the VCPKG toolchain for debugging purposes. +VCPKG_VERBOSE:BOOL=OFF + +//(experimental) Add USES_TERMINAL to VCPKG_APPLOCAL_DEPS to force +// serialization. +X_VCPKG_APPLOCAL_DEPS_SERIALIZED:BOOL=OFF + +//Path to a program. +_VCPKG_CL:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe + +//The directory which contains the installed libraries for each +// triplet +_VCPKG_INSTALLED_DIR:PATH=C:/Users/DerekDiamond/source/repos/vcpkg/installed + + +######################## +# INTERNAL cache entries +######################## + +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=c:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native/out/build/x64-Debug +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=19 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=20122902 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cpack.exe +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/ctest.exe +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=C:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MT +CMAKE_MT-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_COMPILER +CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1 +CMAKE_RC_COMPILER_WORKS:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_FLAGS +CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_FLAGS_DEBUG +CMAKE_RC_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_FLAGS_MINSIZEREL +CMAKE_RC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_FLAGS_RELEASE +CMAKE_RC_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RC_FLAGS_RELWITHDEBINFO +CMAKE_RC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.19 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_TOOLCHAIN_FILE +CMAKE_TOOLCHAIN_FILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Install the dependencies listed in your manifest: +//\n If this is off, you will have to manually install your dependencies. +//\n See https://github.com/microsoft/vcpkg/tree/master/docs/specifications/manifests.md +// for more info. +//\n +VCPKG_MANIFEST_INSTALL:INTERNAL=OFF +//ADVANCED property for variable: VCPKG_VERBOSE +VCPKG_VERBOSE-ADVANCED:INTERNAL=1 +//Making sure VCPKG_MANIFEST_MODE doesn't change +_INTERNAL_CHECK_VCPKG_MANIFEST_MODE:INTERNAL=OFF +//_vcpkg_get_directory_name_of_file_above: _VCPKG_ROOT_DIR +_VCPKG_ROOT_DIR:INTERNAL=C:/Users/DerekDiamond/source/repos/vcpkg + diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCCompiler.cmake b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCCompiler.cmake new file mode 100644 index 0000000000..2f866960cc --- /dev/null +++ b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCCompiler.cmake @@ -0,0 +1,77 @@ +set(CMAKE_C_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "MSVC") +set(CMAKE_C_COMPILER_VERSION "19.28.29914.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "90") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_std_99;c_std_11;c_function_prototypes;c_variadic_macros;c_restrict;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_variadic_macros;c_restrict") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Windows") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_C_SIMULATE_VERSION "") +set(CMAKE_C_COMPILER_ARCHITECTURE_ID x64) + +set(MSVC_C_ARCHITECTURE_ID x64) + +set(CMAKE_AR "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/lib.exe") +set(CMAKE_C_COMPILER_AR "") +set(CMAKE_RANLIB "") +set(CMAKE_C_COMPILER_RANLIB "") +set(CMAKE_LINKER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/link.exe") +set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/mt.exe") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +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 "Note: including file: ") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCXXCompiler.cmake b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000000..b263e5f9cf --- /dev/null +++ b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCXXCompiler.cmake @@ -0,0 +1,89 @@ +set(CMAKE_CXX_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "MSVC") +set(CMAKE_CXX_COMPILER_VERSION "19.28.29914.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;cxx_std_20") +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 "cxx_std_20") + +set(CMAKE_CXX_PLATFORM_ID "Windows") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_CXX_SIMULATE_VERSION "") +set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID x64) + +set(MSVC_CXX_ARCHITECTURE_ID x64) + +set(CMAKE_AR "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/lib.exe") +set(CMAKE_CXX_COMPILER_AR "") +set(CMAKE_RANLIB "") +set(CMAKE_CXX_COMPILER_RANLIB "") +set(CMAKE_LINKER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/link.exe") +set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/mt.exe") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +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_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +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 "Note: including file: ") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_C.bin b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_C.bin new file mode 100644 index 0000000000000000000000000000000000000000..8b9cff66887c4c4cb7b53d9e0a5d75012354010e GIT binary patch literal 51200 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 literal 0 HcmV?d00001 diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_CXX.bin b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_CXX.bin new file mode 100644 index 0000000000000000000000000000000000000000..345ecc4abe80ad5e41531e7e0b14e558d97b7803 GIT binary patch literal 51200 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 e17%z8LDZvs4~%Wf+9Yhs+hj$(>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__) && defined(__INTEL_DPCPP_COMPILER__) +# define COMPILER_ID "IntelDPCPP" +# 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(__INTEL_DPCPP_COMPILER__) + +#elif defined(__clang__) && defined(__INTEL_CLANG_COMPILER) +# define COMPILER_ID "IntelClang" +# 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(__INTEL_CLANG_COMPILER) + +#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__) || defined(__ICCV850__) || defined(__ICC8051__)) +# 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" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# 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" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# 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 + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# 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 diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdC/CMakeCCompilerId.exe b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdC/CMakeCCompilerId.exe new file mode 100644 index 0000000000000000000000000000000000000000..90d7b73bc39613ecca0a2ae18e59fd03d8fb0dd7 GIT binary patch literal 96256 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

q#X78HuYg#xkW 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 & 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__) && defined(__INTEL_DPCPP_COMPILER__) +# define COMPILER_ID "IntelDPCPP" +# 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(__INTEL_DPCPP_COMPILER__) + +#elif defined(__clang__) && defined(__INTEL_CLANG_COMPILER) +# define COMPILER_ID "IntelClang" +# 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(__INTEL_CLANG_COMPILER) + +#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__) || defined(__ICCV850__) || defined(__ICC8051__)) +# 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" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# 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" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# 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 + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# 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(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif 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; +} diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe new file mode 100644 index 0000000000000000000000000000000000000000..6bfd53efd453e55a3e9c1f458ddcb1aad3b3324d GIT binary patch literal 96256 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 q6~KH- Date: Sun, 16 May 2021 11:05:14 +0200 Subject: [PATCH 2/6] Allow parsing of DateTime data in CSV import --- src/Microsoft.Data.Analysis/DataFrame.IO.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Microsoft.Data.Analysis/DataFrame.IO.cs b/src/Microsoft.Data.Analysis/DataFrame.IO.cs index 1d39d08258..1253ed6149 100644 --- a/src/Microsoft.Data.Analysis/DataFrame.IO.cs +++ b/src/Microsoft.Data.Analysis/DataFrame.IO.cs @@ -47,6 +47,13 @@ private static Type GuessKind(int col, List read) ++nbline; continue; } + bool dateParse = DateTime.TryParse(val, out DateTime dateResult); + if (dateParse) + { + res = DetermineType(nbline == 0, typeof(DateTime), res); + ++nbline; + continue; + } res = DetermineType(nbline == 0, typeof(string), res); ++nbline; @@ -71,6 +78,8 @@ private static Type MaxKind(Type a, Type b) return typeof(float); if (a == typeof(bool) || b == typeof(bool)) return typeof(bool); + if (a == typeof(DateTime) || b == typeof(DateTime)) + return typeof(DateTime); return typeof(string); } @@ -165,6 +174,10 @@ private static DataFrameColumn CreateColumn(Type kind, string[] columnNames, int { ret = new UInt16DataFrameColumn(GetColumnName(columnNames, columnIndex)); } + else if (kind == typeof(DateTime)) + { + ret = new PrimitiveDataFrameColumn(GetColumnName(columnNames, columnIndex)); + } else { throw new NotSupportedException(nameof(kind)); From 277772059f652bcc77ea984f39205dd591c49975 Mon Sep 17 00:00:00 2001 From: DerekDiamond Date: Fri, 14 May 2021 11:06:13 +0200 Subject: [PATCH 3/6] Delete query.json --- src/Microsoft.Data.Analysis/DataFrame.cs | 2 +- .../DateTimeComputation.cs | 314 ++++++++ .../PrimitiveDataFrameColumnComputations.cs | 5 + .../PrimitiveDataFrameColumnComputations.tt | 5 + .../v1/query/client-MicrosoftVS/query.json | 1 - src/Native/out/build/x64-Debug/CMakeCache.txt | 372 --------- .../3.19.20122902-MSVC_2/CMakeCCompiler.cmake | 77 -- .../CMakeCXXCompiler.cmake | 89 --- .../CMakeDetermineCompilerABI_C.bin | Bin 51200 -> 0 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 51200 -> 0 bytes .../CMakeRCCompiler.cmake | 6 - .../3.19.20122902-MSVC_2/CMakeSystem.cmake | 15 - .../CompilerIdC/CMakeCCompilerId.c | 721 ------------------ .../CompilerIdC/CMakeCCompilerId.exe | Bin 96256 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 710 ----------------- .../CompilerIdCXX/CMakeCXXCompilerId.exe | Bin 96256 -> 0 bytes .../x64-Debug/CMakeFiles/ShowIncludes/foo.h | 1 - .../x64-Debug/CMakeFiles/ShowIncludes/main.c | 2 - .../x64-Debug/CMakeFiles/cmake.check_cache | 1 - .../build/x64-Debug/VSInheritEnvironments.txt | 1 - .../DataFrame.IOTests.cs | 66 ++ .../DataFrameTests.cs | 176 +++++ 22 files changed, 567 insertions(+), 1997 deletions(-) create mode 100644 src/Microsoft.Data.Analysis/DateTimeComputation.cs delete mode 100644 src/Native/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json delete mode 100644 src/Native/out/build/x64-Debug/CMakeCache.txt delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCCompiler.cmake delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCXXCompiler.cmake delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_C.bin delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeRCCompiler.cmake delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeSystem.cmake delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdC/CMakeCCompilerId.c delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdC/CMakeCCompilerId.exe delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/ShowIncludes/foo.h delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/ShowIncludes/main.c delete mode 100644 src/Native/out/build/x64-Debug/CMakeFiles/cmake.check_cache delete mode 100644 src/Native/out/build/x64-Debug/VSInheritEnvironments.txt diff --git a/src/Microsoft.Data.Analysis/DataFrame.cs b/src/Microsoft.Data.Analysis/DataFrame.cs index 216a7fa75d..36e0f5f76c 100644 --- a/src/Microsoft.Data.Analysis/DataFrame.cs +++ b/src/Microsoft.Data.Analysis/DataFrame.cs @@ -517,7 +517,7 @@ public DataFrame Append(IEnumerable row = null, bool inPlace = false) } catch (Exception ex) { - throw new ArgumentException(string.Format(Strings.ValueConversionError, column.Name, ret.Columns.RowCount + 1, ex.Message), ex); + throw new FormatException(string.Format(Strings.ValueConversionError, column.Name, ret.Columns.RowCount + 1, ex.Message), ex); } if (value is null) diff --git a/src/Microsoft.Data.Analysis/DateTimeComputation.cs b/src/Microsoft.Data.Analysis/DateTimeComputation.cs new file mode 100644 index 0000000000..5335d30f87 --- /dev/null +++ b/src/Microsoft.Data.Analysis/DateTimeComputation.cs @@ -0,0 +1,314 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Generic; +using System.Text; + +namespace Microsoft.Data.Analysis +{ + internal class DateTimeComputation : IPrimitiveColumnComputation + { + public void Abs(PrimitiveColumnContainer column) + { + throw new NotSupportedException(); + } + + public void All(PrimitiveColumnContainer column, out bool ret) + { + throw new NotSupportedException(); + } + + public void Any(PrimitiveColumnContainer column, out bool ret) + { + throw new NotSupportedException(); + } + + public void CumulativeMax(PrimitiveColumnContainer column) + { + var ret = column.Buffers[0].ReadOnlySpan[0]; + for (int b = 0; b < column.Buffers.Count; b++) + { + var buffer = column.Buffers[b]; + var mutableBuffer = DataFrameBuffer.GetMutableBuffer(buffer); + var mutableSpan = mutableBuffer.Span; + var readOnlySpan = buffer.ReadOnlySpan; + for (int i = 0; i < readOnlySpan.Length; i++) + { + var val = readOnlySpan[i]; + + if (val > ret) + { + ret = val; + } + + mutableSpan[i] = ret; + } + column.Buffers[b] = mutableBuffer; + } + } + + public void CumulativeMax(PrimitiveColumnContainer column, IEnumerable rows) + { + var ret = default(DateTime); + var mutableBuffer = DataFrameBuffer.GetMutableBuffer(column.Buffers[0]); + var span = mutableBuffer.Span; + long minRange = 0; + long maxRange = ReadOnlyDataFrameBuffer.MaxCapacity; + long maxCapacity = maxRange; + IEnumerator enumerator = rows.GetEnumerator(); + if (enumerator.MoveNext()) + { + long row = enumerator.Current; + if (row < minRange || row >= maxRange) + { + int bufferIndex = (int)(row / maxCapacity); + mutableBuffer = DataFrameBuffer.GetMutableBuffer(column.Buffers[bufferIndex]); + span = mutableBuffer.Span; + minRange = checked(bufferIndex * maxCapacity); + maxRange = checked((bufferIndex + 1) * maxCapacity); + } + row -= minRange; + ret = span[(int)row]; + } + + while (enumerator.MoveNext()) + { + long row = enumerator.Current; + if (row < minRange || row >= maxRange) + { + int bufferIndex = (int)(row / maxCapacity); + mutableBuffer = DataFrameBuffer.GetMutableBuffer(column.Buffers[bufferIndex]); + span = mutableBuffer.Span; + minRange = checked(bufferIndex * maxCapacity); + maxRange = checked((bufferIndex + 1) * maxCapacity); + } + row -= minRange; + + var val = span[(int)row]; + + if (val > ret) + { + ret = val; + } + + span[(int)row] = ret; + } + } + + public void CumulativeMin(PrimitiveColumnContainer column) + { + var ret = column.Buffers[0].ReadOnlySpan[0]; + for (int b = 0; b < column.Buffers.Count; b++) + { + var buffer = column.Buffers[b]; + var mutableBuffer = DataFrameBuffer.GetMutableBuffer(buffer); + var mutableSpan = mutableBuffer.Span; + var readOnlySpan = buffer.ReadOnlySpan; + for (int i = 0; i < readOnlySpan.Length; i++) + { + var val = readOnlySpan[i]; + + if (val < ret) + { + ret = val; + } + + mutableSpan[i] = ret; + } + column.Buffers[b] = mutableBuffer; + } + } + + public void CumulativeMin(PrimitiveColumnContainer column, IEnumerable rows) + { + var ret = default(DateTime); + var mutableBuffer = DataFrameBuffer.GetMutableBuffer(column.Buffers[0]); + var span = mutableBuffer.Span; + long minRange = 0; + long maxRange = ReadOnlyDataFrameBuffer.MaxCapacity; + long maxCapacity = maxRange; + IEnumerator enumerator = rows.GetEnumerator(); + if (enumerator.MoveNext()) + { + long row = enumerator.Current; + if (row < minRange || row >= maxRange) + { + int bufferIndex = (int)(row / maxCapacity); + mutableBuffer = DataFrameBuffer.GetMutableBuffer(column.Buffers[bufferIndex]); + span = mutableBuffer.Span; + minRange = checked(bufferIndex * maxCapacity); + maxRange = checked((bufferIndex + 1) * maxCapacity); + } + row -= minRange; + ret = span[(int)row]; + } + + while (enumerator.MoveNext()) + { + long row = enumerator.Current; + if (row < minRange || row >= maxRange) + { + int bufferIndex = (int)(row / maxCapacity); + mutableBuffer = DataFrameBuffer.GetMutableBuffer(column.Buffers[bufferIndex]); + span = mutableBuffer.Span; + minRange = checked(bufferIndex * maxCapacity); + maxRange = checked((bufferIndex + 1) * maxCapacity); + } + row -= minRange; + + var val = span[(int)row]; + + if (val < ret) + { + ret = val; + } + + span[(int)row] = ret; + } + } + + public void CumulativeProduct(PrimitiveColumnContainer column) + { + throw new NotSupportedException(); + } + + public void CumulativeProduct(PrimitiveColumnContainer column, IEnumerable rows) + { + throw new NotSupportedException(); + } + + public void CumulativeSum(PrimitiveColumnContainer column) + { + throw new NotSupportedException(); + } + + public void CumulativeSum(PrimitiveColumnContainer column, IEnumerable rows) + { + throw new NotSupportedException(); + } + + public void Max(PrimitiveColumnContainer column, out DateTime ret) + { + ret = column.Buffers[0].ReadOnlySpan[0]; + for (int b = 0; b < column.Buffers.Count; b++) + { + var buffer = column.Buffers[b]; + var readOnlySpan = buffer.ReadOnlySpan; + for (int i = 0; i < readOnlySpan.Length; i++) + { + var val = readOnlySpan[i]; + + if (val > ret) + { + ret = val; + } + } + } + } + + public void Max(PrimitiveColumnContainer column, IEnumerable rows, out DateTime ret) + { + ret = default; + var readOnlySpan = column.Buffers[0].ReadOnlySpan; + long minRange = 0; + long maxRange = ReadOnlyDataFrameBuffer.MaxCapacity; + long maxCapacity = maxRange; + IEnumerator enumerator = rows.GetEnumerator(); + while (enumerator.MoveNext()) + { + long row = enumerator.Current; + if (row < minRange || row >= maxRange) + { + int bufferIndex = (int)(row / maxCapacity); + readOnlySpan = column.Buffers[bufferIndex].ReadOnlySpan; + minRange = checked(bufferIndex * maxCapacity); + maxRange = checked((bufferIndex + 1) * maxCapacity); + } + row -= minRange; + + var val = readOnlySpan[(int)row]; + + if (val > ret) + { + ret = val; + } + } + } + + public void Min(PrimitiveColumnContainer column, out DateTime ret) + { + ret = column.Buffers[0].ReadOnlySpan[0]; + for (int b = 0; b < column.Buffers.Count; b++) + { + var buffer = column.Buffers[b]; + var readOnlySpan = buffer.ReadOnlySpan; + for (int i = 0; i < readOnlySpan.Length; i++) + { + var val = readOnlySpan[i]; + + if (val < ret) + { + ret = val; + } + } + } + } + + public void Min(PrimitiveColumnContainer column, IEnumerable rows, out DateTime ret) + { + ret = default; + var readOnlySpan = column.Buffers[0].ReadOnlySpan; + long minRange = 0; + long maxRange = ReadOnlyDataFrameBuffer.MaxCapacity; + long maxCapacity = maxRange; + IEnumerator enumerator = rows.GetEnumerator(); + while (enumerator.MoveNext()) + { + long row = enumerator.Current; + if (row < minRange || row >= maxRange) + { + int bufferIndex = (int)(row / maxCapacity); + readOnlySpan = column.Buffers[bufferIndex].ReadOnlySpan; + minRange = checked(bufferIndex * maxCapacity); + maxRange = checked((bufferIndex + 1) * maxCapacity); + } + row -= minRange; + + var val = readOnlySpan[(int)row]; + + if (val < ret) + { + ret = val; + } + } + } + + public void Product(PrimitiveColumnContainer column, out DateTime ret) + { + throw new NotSupportedException(); + } + + public void Product(PrimitiveColumnContainer column, IEnumerable rows, out DateTime ret) + { + throw new NotSupportedException(); + } + + public void Sum(PrimitiveColumnContainer column, out DateTime ret) + { + throw new NotSupportedException(); + } + + public void Sum(PrimitiveColumnContainer column, IEnumerable rows, out DateTime ret) + { + throw new NotSupportedException(); + } + + public void Round(PrimitiveColumnContainer column) + { + throw new NotSupportedException(); + } + + } +} diff --git a/src/Microsoft.Data.Analysis/PrimitiveDataFrameColumnComputations.cs b/src/Microsoft.Data.Analysis/PrimitiveDataFrameColumnComputations.cs index 987209fa1a..fd93fd231e 100644 --- a/src/Microsoft.Data.Analysis/PrimitiveDataFrameColumnComputations.cs +++ b/src/Microsoft.Data.Analysis/PrimitiveDataFrameColumnComputations.cs @@ -99,6 +99,11 @@ public static IPrimitiveColumnComputation GetComputation() { return (IPrimitiveColumnComputation)new UShortComputation(); } + else if (typeof(T) == typeof(DateTime)) + { + return (IPrimitiveColumnComputation)new DateTimeComputation(); + } + throw new NotSupportedException(); } } diff --git a/src/Microsoft.Data.Analysis/PrimitiveDataFrameColumnComputations.tt b/src/Microsoft.Data.Analysis/PrimitiveDataFrameColumnComputations.tt index a2f82a8c2f..85a78cf1ed 100644 --- a/src/Microsoft.Data.Analysis/PrimitiveDataFrameColumnComputations.tt +++ b/src/Microsoft.Data.Analysis/PrimitiveDataFrameColumnComputations.tt @@ -55,6 +55,11 @@ namespace Microsoft.Data.Analysis return (IPrimitiveColumnComputation)new <#=type.ClassPrefix#>Computation(); } <# } #> + else if (typeof(T) == typeof(DateTime)) + { + return (IPrimitiveColumnComputation)new DateTimeComputation(); + } + throw new NotSupportedException(); } } diff --git a/src/Native/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json b/src/Native/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json deleted file mode 100644 index 308f68dd8c..0000000000 --- a/src/Native/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json +++ /dev/null @@ -1 +0,0 @@ -{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2}]} \ No newline at end of file diff --git a/src/Native/out/build/x64-Debug/CMakeCache.txt b/src/Native/out/build/x64-Debug/CMakeCache.txt deleted file mode 100644 index 1d8081bbd8..0000000000 --- a/src/Native/out/build/x64-Debug/CMakeCache.txt +++ /dev/null @@ -1,372 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: c:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native/out/build/x64-Debug -# It was generated by CMake: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//Path to a program. -CMAKE_AR:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/lib.exe - -//No help, variable specified on the command line. -CMAKE_BUILD_TYPE:STRING=Debug - -//CXX compiler -CMAKE_CXX_COMPILER:STRING=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe - -//Flags used by the CXX compiler during all build types. -CMAKE_CXX_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3 /GR /EHsc - -//Flags used by the CXX compiler during DEBUG builds. -CMAKE_CXX_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1 - -//Flags used by the CXX compiler during MINSIZEREL builds. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG - -//Flags used by the CXX compiler during RELEASE builds. -CMAKE_CXX_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG - -//Flags used by the CXX compiler during RELWITHDEBINFO builds. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG - -//Libraries linked by default with all C++ applications. -CMAKE_CXX_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib - -//C compiler -CMAKE_C_COMPILER:STRING=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe - -//Flags used by the C compiler during all build types. -CMAKE_C_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3 - -//Flags used by the C compiler during DEBUG builds. -CMAKE_C_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1 - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG - -//Flags used by the C compiler during RELEASE builds. -CMAKE_C_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG - -//Libraries linked by default with all C applications. -CMAKE_C_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib - -//Flags used by the linker during all build types. -CMAKE_EXE_LINKER_FLAGS:STRING=/machine:x64 - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL - -//Enable/Disable output of compile commands during generation. -CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= - -//No help, variable specified on the command line. -CMAKE_INSTALL_PREFIX:PATH=C:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native/out/install/x64-Debug - -//Path to a program. -CMAKE_LINKER:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/link.exe - -//make program -CMAKE_MAKE_PROGRAM:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe - -//Flags used by the linker during the creation of modules during -// all build types. -CMAKE_MODULE_LINKER_FLAGS:STRING=/machine:x64 - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL - -//Path to a program. -CMAKE_MT:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/mt.exe - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=Project - -//RC compiler -CMAKE_RC_COMPILER:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/rc.exe - -//Flags for Windows Resource Compiler during all build types. -CMAKE_RC_FLAGS:STRING=-DWIN32 - -//Flags for Windows Resource Compiler during DEBUG builds. -CMAKE_RC_FLAGS_DEBUG:STRING=-D_DEBUG - -//Flags for Windows Resource Compiler during MINSIZEREL builds. -CMAKE_RC_FLAGS_MINSIZEREL:STRING= - -//Flags for Windows Resource Compiler during RELEASE builds. -CMAKE_RC_FLAGS_RELEASE:STRING= - -//Flags for Windows Resource Compiler during RELWITHDEBINFO builds. -CMAKE_RC_FLAGS_RELWITHDEBINFO:STRING= - -//Flags used by the linker during the creation of shared libraries -// during all build types. -CMAKE_SHARED_LINKER_FLAGS:STRING=/machine:x64 - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING=/machine:x64 - -//Flags used by the linker during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//The CMake toolchain file -CMAKE_TOOLCHAIN_FILE:FILEPATH=C:/Users/DerekDiamond/source/repos/vcpkg/scripts/buildsystems/vcpkg.cmake - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Value Computed by CMake -Project_BINARY_DIR:STATIC=C:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native/out/build/x64-Debug - -//Value Computed by CMake -Project_SOURCE_DIR:STATIC=C:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native - -//Automatically copy dependencies into the output directory for -// executables. -VCPKG_APPLOCAL_DEPS:BOOL=ON - -//Vcpkg target triplet (ex. x86-windows) -VCPKG_TARGET_TRIPLET:STRING=x64-windows - -//Enables messages from the VCPKG toolchain for debugging purposes. -VCPKG_VERBOSE:BOOL=OFF - -//(experimental) Add USES_TERMINAL to VCPKG_APPLOCAL_DEPS to force -// serialization. -X_VCPKG_APPLOCAL_DEPS_SERIALIZED:BOOL=OFF - -//Path to a program. -_VCPKG_CL:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe - -//The directory which contains the installed libraries for each -// triplet -_VCPKG_INSTALLED_DIR:PATH=C:/Users/DerekDiamond/source/repos/vcpkg/installed - - -######################## -# INTERNAL cache entries -######################## - -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=c:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native/out/build/x64-Debug -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=19 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=20122902 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cpack.exe -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/ctest.exe -//ADVANCED property for variable: CMAKE_CXX_COMPILER -CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES -CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER -CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES -CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//Executable file format -CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS -CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Ninja -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL= -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=C:/Users/DerekDiamond/source/ExternalRepos/machinelearning/src/Native -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MT -CMAKE_MT-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_COMPILER -CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1 -CMAKE_RC_COMPILER_WORKS:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS -CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_DEBUG -CMAKE_RC_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_MINSIZEREL -CMAKE_RC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_RELEASE -CMAKE_RC_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_RELWITHDEBINFO -CMAKE_RC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.19 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_TOOLCHAIN_FILE -CMAKE_TOOLCHAIN_FILE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 -//Install the dependencies listed in your manifest: -//\n If this is off, you will have to manually install your dependencies. -//\n See https://github.com/microsoft/vcpkg/tree/master/docs/specifications/manifests.md -// for more info. -//\n -VCPKG_MANIFEST_INSTALL:INTERNAL=OFF -//ADVANCED property for variable: VCPKG_VERBOSE -VCPKG_VERBOSE-ADVANCED:INTERNAL=1 -//Making sure VCPKG_MANIFEST_MODE doesn't change -_INTERNAL_CHECK_VCPKG_MANIFEST_MODE:INTERNAL=OFF -//_vcpkg_get_directory_name_of_file_above: _VCPKG_ROOT_DIR -_VCPKG_ROOT_DIR:INTERNAL=C:/Users/DerekDiamond/source/repos/vcpkg - diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCCompiler.cmake b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCCompiler.cmake deleted file mode 100644 index 2f866960cc..0000000000 --- a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCCompiler.cmake +++ /dev/null @@ -1,77 +0,0 @@ -set(CMAKE_C_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "MSVC") -set(CMAKE_C_COMPILER_VERSION "19.28.29914.0") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "90") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_std_99;c_std_11;c_function_prototypes;c_variadic_macros;c_restrict;c_static_assert") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_variadic_macros;c_restrict") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") - -set(CMAKE_C_PLATFORM_ID "Windows") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "") -set(CMAKE_C_SIMULATE_VERSION "") -set(CMAKE_C_COMPILER_ARCHITECTURE_ID x64) - -set(MSVC_C_ARCHITECTURE_ID x64) - -set(CMAKE_AR "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/lib.exe") -set(CMAKE_C_COMPILER_AR "") -set(CMAKE_RANLIB "") -set(CMAKE_C_COMPILER_RANLIB "") -set(CMAKE_LINKER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/link.exe") -set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/mt.exe") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -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 "Note: including file: ") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCXXCompiler.cmake b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCXXCompiler.cmake deleted file mode 100644 index b263e5f9cf..0000000000 --- a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,89 +0,0 @@ -set(CMAKE_CXX_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "MSVC") -set(CMAKE_CXX_COMPILER_VERSION "19.28.29914.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;cxx_std_20") -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 "cxx_std_20") - -set(CMAKE_CXX_PLATFORM_ID "Windows") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") -set(CMAKE_CXX_SIMULATE_VERSION "") -set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID x64) - -set(MSVC_CXX_ARCHITECTURE_ID x64) - -set(CMAKE_AR "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/lib.exe") -set(CMAKE_CXX_COMPILER_AR "") -set(CMAKE_RANLIB "") -set(CMAKE_CXX_COMPILER_RANLIB "") -set(CMAKE_LINKER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/link.exe") -set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/mt.exe") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -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_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) - -foreach (lang C OBJC OBJCXX) - if (CMAKE_${lang}_COMPILER_ID_RUN) - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) - endforeach() - endif() -endforeach() - -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 "Note: including file: ") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "") -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_C.bin b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_C.bin deleted file mode 100644 index 8b9cff66887c4c4cb7b53d9e0a5d75012354010e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51200 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 diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_CXX.bin b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100644 index 345ecc4abe80ad5e41531e7e0b14e558d97b7803..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51200 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 e17%z8LDZvs4~%Wf+9Yhs+hj$(>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__) && defined(__INTEL_DPCPP_COMPILER__) -# define COMPILER_ID "IntelDPCPP" -# 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(__INTEL_DPCPP_COMPILER__) - -#elif defined(__clang__) && defined(__INTEL_CLANG_COMPILER) -# define COMPILER_ID "IntelClang" -# 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(__INTEL_CLANG_COMPILER) - -#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__) || defined(__ICCV850__) || defined(__ICC8051__)) -# 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" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# 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" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# 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 - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# 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 diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdC/CMakeCCompilerId.exe b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdC/CMakeCCompilerId.exe deleted file mode 100644 index 90d7b73bc39613ecca0a2ae18e59fd03d8fb0dd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96256 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

q#X78HuYg#xkW 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 & 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__) && defined(__INTEL_DPCPP_COMPILER__) -# define COMPILER_ID "IntelDPCPP" -# 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(__INTEL_DPCPP_COMPILER__) - -#elif defined(__clang__) && defined(__INTEL_CLANG_COMPILER) -# define COMPILER_ID "IntelClang" -# 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(__INTEL_CLANG_COMPILER) - -#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__) || defined(__ICCV850__) || defined(__ICC8051__)) -# 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" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# 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" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# 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 - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# 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(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L -# if defined(__INTEL_CXX11_MODE__) -# if defined(__cpp_aggregate_nsdmi) -# define CXX_STD 201402L -# else -# define CXX_STD 201103L -# endif -# else -# define CXX_STD 199711L -# endif -#elif 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; -} diff --git a/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe b/src/Native/out/build/x64-Debug/CMakeFiles/3.19.20122902-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe deleted file mode 100644 index 6bfd53efd453e55a3e9c1f458ddcb1aad3b3324d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96256 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 q6~KH-(column); } } + else if (dataType == typeof(DateTime)) + { + Assert.IsType>(column); + } else { throw new NotImplementedException("Unit test has to be updated"); @@ -384,6 +388,68 @@ void Verify(DataFrame df) Verify(df); } + [Fact] + public void TestReadCsvWithTypesDateTime() + { + string data = @"vendor_id,rate_code,passenger_count,trip_time_in_secs,trip_distance,payment_type,fare_amount,date +CMT,1,1,1271,3.8,CRD,17.5,1-june-2020 +CMT,1,1,474,1.5,CRD,8,2-june-2020 +CMT,1,1,637,1.4,CRD,8.5,3-june-2020 +,,,,,,, +CMT,1,1,181,0.6,CSH,4.5,4-june-2020"; + + void Verify(DataFrame df) + { + Assert.Equal(5, df.Rows.Count); + Assert.Equal(8, df.Columns.Count); + + Assert.True(typeof(string) == df.Columns[0].DataType); + Assert.True(typeof(short) == df.Columns[1].DataType); + Assert.True(typeof(int) == df.Columns[2].DataType); + Assert.True(typeof(long) == df.Columns[3].DataType); + Assert.True(typeof(float) == df.Columns[4].DataType); + Assert.True(typeof(string) == df.Columns[5].DataType); + Assert.True(typeof(double) == df.Columns[6].DataType); + Assert.True(typeof(DateTime) == df.Columns[7].DataType); + + Assert.Equal("vendor_id", df.Columns[0].Name); + Assert.Equal("rate_code", df.Columns[1].Name); + Assert.Equal("passenger_count", df.Columns[2].Name); + Assert.Equal("trip_time_in_secs", df.Columns[3].Name); + Assert.Equal("trip_distance", df.Columns[4].Name); + Assert.Equal("payment_type", df.Columns[5].Name); + Assert.Equal("fare_amount", df.Columns[6].Name); + Assert.Equal("date", df.Columns[7].Name); + VerifyColumnTypes(df); + + foreach (var column in df.Columns) + { + if (column.DataType != typeof(string)) + { + Assert.Equal(1, column.NullCount); + } + else + { + Assert.Equal(0, column.NullCount); + } + } + var nullRow = df.Rows[3]; + Assert.Equal("", nullRow[0]); + Assert.Null(nullRow[1]); + Assert.Null(nullRow[2]); + Assert.Null(nullRow[3]); + Assert.Null(nullRow[4]); + Assert.Equal("", nullRow[5]); + Assert.Null(nullRow[6]); + Assert.Null(nullRow[7]); + } + + DataFrame df = DataFrame.LoadCsv(GetStream(data), dataTypes: new Type[] { typeof(string), typeof(short), typeof(int), typeof(long), typeof(float), typeof(string), typeof(double), typeof(DateTime) }); + Verify(df); + df = DataFrame.LoadCsvFromString(data, dataTypes: new Type[] { typeof(string), typeof(short), typeof(int), typeof(long), typeof(float), typeof(string), typeof(double), typeof(DateTime) }); + Verify(df); + } + [Fact] public void TestReadCsvWithPipeSeparator() { diff --git a/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs b/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs index 34b676062a..60addbb5eb 100644 --- a/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs +++ b/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs @@ -125,6 +125,19 @@ public static DataFrame MakeDataFrameWithNumericAndStringColumns(int length, boo return df; } + public static DataFrame MakeDataFrameWithNumericStringAndDateTimeColumns(int length, bool withNulls = true) + { + DataFrame df = MakeDataFrameWithNumericAndStringColumns(length, withNulls); + + DataFrameColumn dateTimeColumn = new PrimitiveDataFrameColumn("DateTime", Enumerable.Range(0, length).Select(x => DateTime.Today.AddDays(x))); + df.Columns.Insert(df.Columns.Count, dateTimeColumn); + if (withNulls) + { + dateTimeColumn[length / 2] = null; + } + return df; + } + public static DataFrame MakeDataFrameWithNumericColumns(int length, bool withNulls = true) { DataFrameColumn byteColumn = new ByteDataFrameColumn("Byte", Enumerable.Range(0, length).Select(x => (byte)x)); @@ -798,6 +811,169 @@ public void TestComputations() } } + [Fact] + public void TestComputationsIncludingDateTime() + { + DataFrame df = MakeDataFrameWithNumericStringAndDateTimeColumns(10); + df["Int"][0] = -10; + Assert.Equal(-10, df.Columns["Int"][0]); + + DataFrameColumn absColumn = df.Columns["Int"].Abs(); + Assert.Equal(10, absColumn[0]); + Assert.Equal(-10, df.Columns["Int"][0]); + df.Columns["Int"].Abs(true); + Assert.Equal(10, df.Columns["Int"][0]); + + Assert.Throws(() => df.Columns["Byte"].All()); + Assert.Throws(() => df.Columns["Byte"].Any()); + Assert.Throws(() => df.Columns["Char"].All()); + Assert.Throws(() => df.Columns["Char"].Any()); + Assert.Throws(() => df.Columns["Decimal"].All()); + Assert.Throws(() => df.Columns["Decimal"].Any()); + Assert.Throws(() => df.Columns["Double"].All()); + Assert.Throws(() => df.Columns["Double"].Any()); + Assert.Throws(() => df.Columns["Float"].All()); + Assert.Throws(() => df.Columns["Float"].Any()); + Assert.Throws(() => df.Columns["Int"].All()); + Assert.Throws(() => df.Columns["Int"].Any()); + Assert.Throws(() => df.Columns["Long"].All()); + Assert.Throws(() => df.Columns["Long"].Any()); + Assert.Throws(() => df.Columns["Sbyte"].All()); + Assert.Throws(() => df.Columns["Sbyte"].Any()); + Assert.Throws(() => df.Columns["Short"].All()); + Assert.Throws(() => df.Columns["Short"].Any()); + Assert.Throws(() => df.Columns["Uint"].All()); + Assert.Throws(() => df.Columns["Uint"].Any()); + Assert.Throws(() => df.Columns["Ulong"].All()); + Assert.Throws(() => df.Columns["Ulong"].Any()); + Assert.Throws(() => df.Columns["Ushort"].All()); + Assert.Throws(() => df.Columns["Ushort"].Any()); + Assert.Throws(() => df.Columns["DateTime"].All()); + Assert.Throws(() => df.Columns["DateTime"].Any()); + + // Test the computation results + var maxDate = DateTime.Today.AddDays(100); + df.Columns["DateTime"][0] = maxDate; + DataFrameColumn dateTimeColumn = df.Columns["DateTime"].CumulativeMax(); + for (int i = 0; i < dateTimeColumn.Length; i++) + { + if (i == 5) + Assert.Null(dateTimeColumn[i]); + else + Assert.Equal(maxDate, (DateTime)dateTimeColumn[i]); + } + Assert.Equal(maxDate, dateTimeColumn.Max()); + + df.Columns["Double"][0] = 100.0; + DataFrameColumn doubleColumn = df.Columns["Double"].CumulativeMax(); + for (int i = 0; i < doubleColumn.Length; i++) + { + if (i == 5) + Assert.Null(doubleColumn[i]); + else + Assert.Equal(100.0, (double)doubleColumn[i]); + } + Assert.Equal(1.0, df.Columns["Double"][1]); + df.Columns["Double"].CumulativeMax(true); + for (int i = 0; i < df.Columns["Double"].Length; i++) + { + if (i == 5) + Assert.Null(df.Columns["Double"][i]); + else + Assert.Equal(100.0, (double)df.Columns["Double"][i]); + } + + df.Columns["Float"][0] = -10.0f; + DataFrameColumn floatColumn = df.Columns["Float"].CumulativeMin(); + for (int i = 0; i < floatColumn.Length; i++) + { + if (i == 5) + Assert.Null(floatColumn[i]); + else + Assert.Equal(-10.0f, (float)floatColumn[i]); + } + Assert.Equal(9.0f, df.Columns["Float"][9]); + df.Columns["Float"].CumulativeMin(true); + for (int i = 0; i < df.Columns["Float"].Length; i++) + { + if (i == 5) + Assert.Null(df.Columns["Float"][i]); + else + Assert.Equal(-10.0f, (float)df.Columns["Float"][i]); + } + + DataFrameColumn uintColumn = df.Columns["Uint"].CumulativeProduct(); + Assert.Equal((uint)0, uintColumn[8]); + Assert.Equal((uint)8, df.Columns["Uint"][8]); + df.Columns["Uint"].CumulativeProduct(true); + Assert.Equal((uint)0, df.Columns["Uint"][9]); + + DataFrameColumn ushortColumn = df.Columns["Ushort"].CumulativeSum(); + Assert.Equal((ushort)40, ushortColumn[9]); + Assert.Equal((ushort)9, df.Columns["Ushort"][9]); + df.Columns["Ushort"].CumulativeSum(true); + Assert.Equal((ushort)40, df.Columns["Ushort"][9]); + + Assert.Equal(100.0, df.Columns["Double"].Max()); + Assert.Equal(-10.0f, df.Columns["Float"].Min()); + Assert.Equal((uint)0, df.Columns["Uint"].Product()); + Assert.Equal((ushort)140, df.Columns["Ushort"].Sum()); + + df.Columns["Double"][0] = 100.1; + Assert.Equal(100.1, df.Columns["Double"][0]); + DataFrameColumn roundColumn = df.Columns["Double"].Round(); + Assert.Equal(100.0, roundColumn[0]); + Assert.Equal(100.1, df.Columns["Double"][0]); + df.Columns["Double"].Round(true); + Assert.Equal(100.0, df.Columns["Double"][0]); + + // Test that none of the numeric column types throw + for (int i = 0; i < df.Columns.Count; i++) + { + DataFrameColumn column = df.Columns[i]; + if (column.DataType == typeof(bool)) + { + Assert.Throws(() => column.CumulativeMax()); + Assert.Throws(() => column.CumulativeMin()); + Assert.Throws(() => column.CumulativeProduct()); + Assert.Throws(() => column.CumulativeSum()); + Assert.Throws(() => column.Max()); + Assert.Throws(() => column.Min()); + Assert.Throws(() => column.Product()); + Assert.Throws(() => column.Sum()); + continue; + } + else if (column.DataType == typeof(string)) + { + Assert.Throws(() => column.CumulativeMax()); + Assert.Throws(() => column.CumulativeMin()); + Assert.Throws(() => column.CumulativeProduct()); + Assert.Throws(() => column.CumulativeSum()); + Assert.Throws(() => column.Max()); + Assert.Throws(() => column.Min()); + Assert.Throws(() => column.Product()); + Assert.Throws(() => column.Sum()); + continue; + } + else if (column.DataType == typeof(DateTime)) + { + Assert.Throws(() => column.CumulativeProduct()); + Assert.Throws(() => column.CumulativeSum()); + Assert.Throws(() => column.Product()); + Assert.Throws(() => column.Sum()); + continue; + } + column.CumulativeMax(); + column.CumulativeMin(); + column.CumulativeProduct(); + column.CumulativeSum(); + column.Max(); + column.Min(); + column.Product(); + column.Sum(); + } + } + [Fact] public void TestOrderBy() { From 63f7c0f4045f83d46660447e56692394fd115271 Mon Sep 17 00:00:00 2001 From: Prashanth Govindarajan Date: Fri, 4 Jun 2021 11:21:02 -0700 Subject: [PATCH 4/6] Address comments --- src/Microsoft.Data.Analysis/DataFrame.cs | 9 +----- .../Strings.Designer.cs | 9 ------ src/Microsoft.Data.Analysis/Strings.resx | 3 -- .../DataFrame.IOTests.cs | 30 ++++++++++++------- .../DataFrameTests.cs | 2 +- 5 files changed, 21 insertions(+), 32 deletions(-) diff --git a/src/Microsoft.Data.Analysis/DataFrame.cs b/src/Microsoft.Data.Analysis/DataFrame.cs index 36e0f5f76c..a43ac69d27 100644 --- a/src/Microsoft.Data.Analysis/DataFrame.cs +++ b/src/Microsoft.Data.Analysis/DataFrame.cs @@ -511,14 +511,7 @@ public DataFrame Append(IEnumerable row = null, bool inPlace = false) } if (value != null) { - try - { - value = Convert.ChangeType(value, column.DataType); - } - catch (Exception ex) - { - throw new FormatException(string.Format(Strings.ValueConversionError, column.Name, ret.Columns.RowCount + 1, ex.Message), ex); - } + value = Convert.ChangeType(value, column.DataType); if (value is null) { diff --git a/src/Microsoft.Data.Analysis/Strings.Designer.cs b/src/Microsoft.Data.Analysis/Strings.Designer.cs index 79a8ed1194..682901e7d4 100644 --- a/src/Microsoft.Data.Analysis/Strings.Designer.cs +++ b/src/Microsoft.Data.Analysis/Strings.Designer.cs @@ -419,14 +419,5 @@ internal static string StreamDoesntSupportReading { return ResourceManager.GetString("StreamDoesntSupportReading", resourceCulture); } } - - /// - /// Looks up a localized string similar to Unable to convert value for column: {0} row: {1}: {2}. - /// - internal static string ValueConversionError { - get { - return ResourceManager.GetString("ValueConversionError", resourceCulture); - } - } } } diff --git a/src/Microsoft.Data.Analysis/Strings.resx b/src/Microsoft.Data.Analysis/Strings.resx index 058a527cde..de91078cec 100644 --- a/src/Microsoft.Data.Analysis/Strings.resx +++ b/src/Microsoft.Data.Analysis/Strings.resx @@ -237,7 +237,4 @@ Stream doesn't support reading - - Unable to convert value for column: {0} row: {1}: {2} - \ No newline at end of file diff --git a/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs b/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs index 6e2a3d53b2..7a32f61fb9 100644 --- a/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs +++ b/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs @@ -398,19 +398,22 @@ public void TestReadCsvWithTypesDateTime() ,,,,,,, CMT,1,1,181,0.6,CSH,4.5,4-june-2020"; - void Verify(DataFrame df) + void Verify(DataFrame df, bool verifyDataTypes) { Assert.Equal(5, df.Rows.Count); Assert.Equal(8, df.Columns.Count); - Assert.True(typeof(string) == df.Columns[0].DataType); - Assert.True(typeof(short) == df.Columns[1].DataType); - Assert.True(typeof(int) == df.Columns[2].DataType); - Assert.True(typeof(long) == df.Columns[3].DataType); - Assert.True(typeof(float) == df.Columns[4].DataType); - Assert.True(typeof(string) == df.Columns[5].DataType); - Assert.True(typeof(double) == df.Columns[6].DataType); - Assert.True(typeof(DateTime) == df.Columns[7].DataType); + if (verifyDataTypes) + { + Assert.True(typeof(string) == df.Columns[0].DataType); + Assert.True(typeof(short) == df.Columns[1].DataType); + Assert.True(typeof(int) == df.Columns[2].DataType); + Assert.True(typeof(long) == df.Columns[3].DataType); + Assert.True(typeof(float) == df.Columns[4].DataType); + Assert.True(typeof(string) == df.Columns[5].DataType); + Assert.True(typeof(double) == df.Columns[6].DataType); + Assert.True(typeof(DateTime) == df.Columns[7].DataType); + } Assert.Equal("vendor_id", df.Columns[0].Name); Assert.Equal("rate_code", df.Columns[1].Name); @@ -445,9 +448,14 @@ void Verify(DataFrame df) } DataFrame df = DataFrame.LoadCsv(GetStream(data), dataTypes: new Type[] { typeof(string), typeof(short), typeof(int), typeof(long), typeof(float), typeof(string), typeof(double), typeof(DateTime) }); - Verify(df); + Verify(df, true); df = DataFrame.LoadCsvFromString(data, dataTypes: new Type[] { typeof(string), typeof(short), typeof(int), typeof(long), typeof(float), typeof(string), typeof(double), typeof(DateTime) }); - Verify(df); + Verify(df, true); + // Verify without dataTypes + df = DataFrame.LoadCsv(GetStream(data)); + Verify(df, false); + df = DataFrame.LoadCsvFromString(data); + Verify(df, false); } [Fact] diff --git a/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs b/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs index 60addbb5eb..b82c60d888 100644 --- a/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs +++ b/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs @@ -129,7 +129,7 @@ public static DataFrame MakeDataFrameWithNumericStringAndDateTimeColumns(int len { DataFrame df = MakeDataFrameWithNumericAndStringColumns(length, withNulls); - DataFrameColumn dateTimeColumn = new PrimitiveDataFrameColumn("DateTime", Enumerable.Range(0, length).Select(x => DateTime.Today.AddDays(x))); + DataFrameColumn dateTimeColumn = new PrimitiveDataFrameColumn("DateTime", Enumerable.Range(0, length).Select(x => new DateTime(2021, 06, 04).AddDays(x))); df.Columns.Insert(df.Columns.Count, dateTimeColumn); if (withNulls) { From aa816b53b06a428c8710229c5b0aecb08396a806 Mon Sep 17 00:00:00 2001 From: Prashanth Govindarajan Date: Fri, 4 Jun 2021 11:45:44 -0700 Subject: [PATCH 5/6] Verify contents on date column --- test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs b/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs index 7a32f61fb9..b35d15b207 100644 --- a/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs +++ b/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs @@ -445,6 +445,13 @@ void Verify(DataFrame df, bool verifyDataTypes) Assert.Equal("", nullRow[5]); Assert.Null(nullRow[6]); Assert.Null(nullRow[7]); + + var dateTimeColumn = df.Columns["date"]; + Assert.Equal(new DateTime(2020, 06, 01), dateTimeColumn[0]); + Assert.Equal(new DateTime(2020, 06, 02), dateTimeColumn[1]); + Assert.Equal(new DateTime(2020, 06, 03), dateTimeColumn[2]); + Assert.Null(dateTimeColumn[3]); + Assert.Equal(new DateTime(2020, 06, 04), dateTimeColumn[4]); } DataFrame df = DataFrame.LoadCsv(GetStream(data), dataTypes: new Type[] { typeof(string), typeof(short), typeof(int), typeof(long), typeof(float), typeof(string), typeof(double), typeof(DateTime) }); From bc636d9e8c87365a966161d3269501acf27b9acd Mon Sep 17 00:00:00 2001 From: Prashanth Govindarajan Date: Fri, 4 Jun 2021 12:13:47 -0700 Subject: [PATCH 6/6] Change to a sample date --- test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs b/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs index b82c60d888..72e9e628da 100644 --- a/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs +++ b/test/Microsoft.Data.Analysis.Tests/DataFrameTests.cs @@ -125,11 +125,12 @@ public static DataFrame MakeDataFrameWithNumericAndStringColumns(int length, boo return df; } + internal static DateTime SampleDateTime = new DateTime(2021, 06, 04); public static DataFrame MakeDataFrameWithNumericStringAndDateTimeColumns(int length, bool withNulls = true) { DataFrame df = MakeDataFrameWithNumericAndStringColumns(length, withNulls); - DataFrameColumn dateTimeColumn = new PrimitiveDataFrameColumn("DateTime", Enumerable.Range(0, length).Select(x => new DateTime(2021, 06, 04).AddDays(x))); + DataFrameColumn dateTimeColumn = new PrimitiveDataFrameColumn("DateTime", Enumerable.Range(0, length).Select(x => SampleDateTime.AddDays(x))); df.Columns.Insert(df.Columns.Count, dateTimeColumn); if (withNulls) { @@ -852,7 +853,7 @@ public void TestComputationsIncludingDateTime() Assert.Throws(() => df.Columns["DateTime"].Any()); // Test the computation results - var maxDate = DateTime.Today.AddDays(100); + var maxDate = SampleDateTime.AddDays(100); df.Columns["DateTime"][0] = maxDate; DataFrameColumn dateTimeColumn = df.Columns["DateTime"].CumulativeMax(); for (int i = 0; i < dateTimeColumn.Length; i++)