├── .gitattributes ├── CMakeLists.txt ├── LICENSE ├── README.md ├── Results.xlsx ├── images ├── KITTI │ └── 2011_09_26 │ │ └── image_00 │ │ └── data │ │ ├── 0000000000.png │ │ ├── 0000000001.png │ │ ├── 0000000002.png │ │ ├── 0000000003.png │ │ ├── 0000000004.png │ │ ├── 0000000005.png │ │ ├── 0000000006.png │ │ ├── 0000000007.png │ │ ├── 0000000008.png │ │ └── 0000000009.png └── keypoints.png ├── out └── build │ └── x64-Debug │ ├── .cmake │ └── api │ │ └── v1 │ │ └── query │ │ └── client-MicrosoftVS │ │ └── query.json │ ├── CMakeCache.txt │ ├── CMakeFiles │ ├── 3.15.19101501-MSVC_2 │ │ ├── CMakeCCompiler.cmake │ │ ├── CMakeCXXCompiler.cmake │ │ ├── CMakeDetermineCompilerABI_C.bin │ │ ├── CMakeDetermineCompilerABI_CXX.bin │ │ ├── CMakeRCCompiler.cmake │ │ ├── CMakeSystem.cmake │ │ ├── CompilerIdC │ │ │ ├── CMakeCCompilerId.c │ │ │ ├── CMakeCCompilerId.exe │ │ │ └── CMakeCCompilerId.obj │ │ └── CompilerIdCXX │ │ │ ├── CMakeCXXCompilerId.cpp │ │ │ ├── CMakeCXXCompilerId.exe │ │ │ └── CMakeCXXCompilerId.obj │ ├── CMakeOutput.log │ ├── ShowIncludes │ │ ├── foo.h │ │ ├── main.c │ │ └── main.obj │ └── cmake.check_cache │ └── VSInheritEnvironments.txt ├── results ├── output-matches.gif └── outputX-matches.gif └── src ├── MidTermProject_Camera_Student.cpp ├── dataStructures.h ├── matching2D.hpp └── matching2D_Student.cpp /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8 FATAL_ERROR) 2 | 3 | add_definitions(-std=c++11) 4 | 5 | set(CXX_FLAGS "-Wall") 6 | set(CMAKE_CXX_FLAGS, "${CXX_FLAGS}") 7 | 8 | project(camera_fusion) 9 | 10 | find_package(OpenCV 4.1 REQUIRED) 11 | 12 | include_directories(${OpenCV_INCLUDE_DIRS}) 13 | link_directories(${OpenCV_LIBRARY_DIRS}) 14 | add_definitions(${OpenCV_DEFINITIONS}) 15 | 16 | # Executable for create matrix exercise 17 | add_executable (2D_feature_tracking src/matching2D_Student.cpp src/MidTermProject_Camera_Student.cpp) 18 | target_link_libraries (2D_feature_tracking ${OpenCV_LIBRARIES}) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Udacity 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 2D Feature Tracking 2 | 3 | 4 | 5 | This project focusses on building the feature tracking part and test various detector/descriptor combinations to see which ones perform best. It consists of four parts: 6 | 7 | * First, we will focus on loading images, setting up data structures, and putting everything into a ring buffer to optimize memory load. 8 | * Then, we will integrate several keypoint detectors - SHI-TOMASI, HARRIS, FAST, BRISK, ORB, AKAZE, and SIFT and compare them concerning the number of keypoints and speed. 9 | * In the next part, we will then focus on descriptor extraction and matching using brute force and also the FLANN approach. 10 | * In the last part, once the code framework is complete, we will test the various algorithms in different combinations and compare them about some performance measures. 11 | 12 | 13 | ## Dependencies for Running Locally 14 | * cmake >= 2.8 15 | * All OSes: [click here for installation instructions](https://cmake.org/install/) 16 | * make >= 4.1 (Linux, Mac), 3.81 (Windows) 17 | * Linux: make is installed by default on most Linux distros 18 | * Mac: [install Xcode command line tools to get make](https://developer.apple.com/xcode/features/) 19 | * Windows: [Click here for installation instructions](http://gnuwin32.sourceforge.net/packages/make.htm) 20 | * OpenCV >= 4.1 21 | * This must be compiled from source using the `-D OPENCV_ENABLE_NONFREE=ON` cmake flag for testing the SIFT and SURF detectors. 22 | * The OpenCV 4.1.0 source code can be found [here](https://github.com/opencv/opencv/tree/4.1.0) 23 | * gcc/g++ >= 5.4 24 | * Linux: gcc / g++ is installed by default on most Linux distros 25 | * Mac: same deal as make - [install Xcode command line tools](https://developer.apple.com/xcode/features/) 26 | * Windows: recommend using [MinGW](http://www.mingw.org/) 27 | 28 | ## Basic Build Instructions 29 | 30 | 1. Clone this repo. 31 | 2. Make a build directory in the top level directory: `mkdir build && cd build` 32 | 3. Compile: `cmake .. && make` 33 | 4. Run it: `./2D_feature_tracking`. 34 | -------------------------------------------------------------------------------- /Results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/Results.xlsx -------------------------------------------------------------------------------- /images/KITTI/2011_09_26/image_00/data/0000000000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/images/KITTI/2011_09_26/image_00/data/0000000000.png -------------------------------------------------------------------------------- /images/KITTI/2011_09_26/image_00/data/0000000001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/images/KITTI/2011_09_26/image_00/data/0000000001.png -------------------------------------------------------------------------------- /images/KITTI/2011_09_26/image_00/data/0000000002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/images/KITTI/2011_09_26/image_00/data/0000000002.png -------------------------------------------------------------------------------- /images/KITTI/2011_09_26/image_00/data/0000000003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/images/KITTI/2011_09_26/image_00/data/0000000003.png -------------------------------------------------------------------------------- /images/KITTI/2011_09_26/image_00/data/0000000004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/images/KITTI/2011_09_26/image_00/data/0000000004.png -------------------------------------------------------------------------------- /images/KITTI/2011_09_26/image_00/data/0000000005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/images/KITTI/2011_09_26/image_00/data/0000000005.png -------------------------------------------------------------------------------- /images/KITTI/2011_09_26/image_00/data/0000000006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/images/KITTI/2011_09_26/image_00/data/0000000006.png -------------------------------------------------------------------------------- /images/KITTI/2011_09_26/image_00/data/0000000007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/images/KITTI/2011_09_26/image_00/data/0000000007.png -------------------------------------------------------------------------------- /images/KITTI/2011_09_26/image_00/data/0000000008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/images/KITTI/2011_09_26/image_00/data/0000000008.png -------------------------------------------------------------------------------- /images/KITTI/2011_09_26/image_00/data/0000000009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/images/KITTI/2011_09_26/image_00/data/0000000009.png -------------------------------------------------------------------------------- /images/keypoints.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/images/keypoints.png -------------------------------------------------------------------------------- /out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json: -------------------------------------------------------------------------------- 1 | {"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2}]} -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeCache.txt: -------------------------------------------------------------------------------- 1 | # This is the CMakeCache file. 2 | # For build in directory: c:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking/out/build/x64-Debug 3 | # It was generated by CMake: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe 4 | # You can edit this file to change values found and used by cmake. 5 | # If you do not want to change any of the values, simply exit the editor. 6 | # If you do want to change a value, simply edit, save, and exit the editor. 7 | # The syntax for the file is as follows: 8 | # KEY:TYPE=VALUE 9 | # KEY is the name of a variable in the cache. 10 | # TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. 11 | # VALUE is the current value for the KEY. 12 | 13 | ######################## 14 | # EXTERNAL cache entries 15 | ######################## 16 | 17 | //Choose the type of build, options are: None Debug Release RelWithDebInfo 18 | // MinSizeRel ... 19 | CMAKE_BUILD_TYPE:STRING=Debug 20 | 21 | //No help, variable specified on the command line. 22 | CMAKE_CXX_COMPILER:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe 23 | 24 | //Flags used by the CXX compiler during all build types. 25 | CMAKE_CXX_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3 /GR /EHsc 26 | 27 | //Flags used by the CXX compiler during DEBUG builds. 28 | CMAKE_CXX_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1 29 | 30 | //Flags used by the CXX compiler during MINSIZEREL builds. 31 | CMAKE_CXX_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG 32 | 33 | //Flags used by the CXX compiler during RELEASE builds. 34 | CMAKE_CXX_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG 35 | 36 | //Flags used by the CXX compiler during RELWITHDEBINFO builds. 37 | CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG 38 | 39 | //Libraries linked by default with all C++ applications. 40 | 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 41 | 42 | //No help, variable specified on the command line. 43 | CMAKE_C_COMPILER:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe 44 | 45 | //Flags used by the C compiler during all build types. 46 | CMAKE_C_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3 47 | 48 | //Flags used by the C compiler during DEBUG builds. 49 | CMAKE_C_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1 50 | 51 | //Flags used by the C compiler during MINSIZEREL builds. 52 | CMAKE_C_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG 53 | 54 | //Flags used by the C compiler during RELEASE builds. 55 | CMAKE_C_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG 56 | 57 | //Flags used by the C compiler during RELWITHDEBINFO builds. 58 | CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG 59 | 60 | //Libraries linked by default with all C applications. 61 | 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 62 | 63 | //Flags used by the linker during all build types. 64 | CMAKE_EXE_LINKER_FLAGS:STRING=/machine:x64 65 | 66 | //Flags used by the linker during DEBUG builds. 67 | CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL 68 | 69 | //Flags used by the linker during MINSIZEREL builds. 70 | CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO 71 | 72 | //Flags used by the linker during RELEASE builds. 73 | CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO 74 | 75 | //Flags used by the linker during RELWITHDEBINFO builds. 76 | CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL 77 | 78 | //Enable/Disable output of compile commands during generation. 79 | CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF 80 | 81 | //No help, variable specified on the command line. 82 | CMAKE_INSTALL_PREFIX:PATH=C:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking/out/install/x64-Debug 83 | 84 | //Path to a program. 85 | CMAKE_LINKER:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/link.exe 86 | 87 | //make program 88 | CMAKE_MAKE_PROGRAM:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe 89 | 90 | //Flags used by the linker during the creation of modules during 91 | // all build types. 92 | CMAKE_MODULE_LINKER_FLAGS:STRING=/machine:x64 93 | 94 | //Flags used by the linker during the creation of modules during 95 | // DEBUG builds. 96 | CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL 97 | 98 | //Flags used by the linker during the creation of modules during 99 | // MINSIZEREL builds. 100 | CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO 101 | 102 | //Flags used by the linker during the creation of modules during 103 | // RELEASE builds. 104 | CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO 105 | 106 | //Flags used by the linker during the creation of modules during 107 | // RELWITHDEBINFO builds. 108 | CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL 109 | 110 | //Path to a program. 111 | CMAKE_MT:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/mt.exe 112 | 113 | //Value Computed by CMake 114 | CMAKE_PROJECT_DESCRIPTION:STATIC= 115 | 116 | //Value Computed by CMake 117 | CMAKE_PROJECT_HOMEPAGE_URL:STATIC= 118 | 119 | //Value Computed by CMake 120 | CMAKE_PROJECT_NAME:STATIC=camera_fusion 121 | 122 | //RC compiler 123 | CMAKE_RC_COMPILER:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/rc.exe 124 | 125 | //Flags for Windows Resource Compiler during all build types. 126 | CMAKE_RC_FLAGS:STRING=-DWIN32 127 | 128 | //Flags for Windows Resource Compiler during DEBUG builds. 129 | CMAKE_RC_FLAGS_DEBUG:STRING=-D_DEBUG 130 | 131 | //Flags for Windows Resource Compiler during MINSIZEREL builds. 132 | CMAKE_RC_FLAGS_MINSIZEREL:STRING= 133 | 134 | //Flags for Windows Resource Compiler during RELEASE builds. 135 | CMAKE_RC_FLAGS_RELEASE:STRING= 136 | 137 | //Flags for Windows Resource Compiler during RELWITHDEBINFO builds. 138 | CMAKE_RC_FLAGS_RELWITHDEBINFO:STRING= 139 | 140 | //Flags used by the linker during the creation of shared libraries 141 | // during all build types. 142 | CMAKE_SHARED_LINKER_FLAGS:STRING=/machine:x64 143 | 144 | //Flags used by the linker during the creation of shared libraries 145 | // during DEBUG builds. 146 | CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL 147 | 148 | //Flags used by the linker during the creation of shared libraries 149 | // during MINSIZEREL builds. 150 | CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO 151 | 152 | //Flags used by the linker during the creation of shared libraries 153 | // during RELEASE builds. 154 | CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO 155 | 156 | //Flags used by the linker during the creation of shared libraries 157 | // during RELWITHDEBINFO builds. 158 | CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL 159 | 160 | //If set, runtime paths are not added when installing shared libraries, 161 | // but are added when building. 162 | CMAKE_SKIP_INSTALL_RPATH:BOOL=NO 163 | 164 | //If set, runtime paths are not added when using shared libraries. 165 | CMAKE_SKIP_RPATH:BOOL=NO 166 | 167 | //Flags used by the linker during the creation of static libraries 168 | // during all build types. 169 | CMAKE_STATIC_LINKER_FLAGS:STRING=/machine:x64 170 | 171 | //Flags used by the linker during the creation of static libraries 172 | // during DEBUG builds. 173 | CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= 174 | 175 | //Flags used by the linker during the creation of static libraries 176 | // during MINSIZEREL builds. 177 | CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= 178 | 179 | //Flags used by the linker during the creation of static libraries 180 | // during RELEASE builds. 181 | CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= 182 | 183 | //Flags used by the linker during the creation of static libraries 184 | // during RELWITHDEBINFO builds. 185 | CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= 186 | 187 | //If this value is on, makefiles will be generated without the 188 | // .SILENT directive, and all commands will be echoed to the console 189 | // during the make. This is useful for debugging only. With Visual 190 | // Studio IDE projects all commands are done without /nologo. 191 | CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE 192 | 193 | //The directory containing a CMake configuration file for OpenCV. 194 | OpenCV_DIR:PATH=OpenCV_DIR-NOTFOUND 195 | 196 | //Value Computed by CMake 197 | camera_fusion_BINARY_DIR:STATIC=C:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking/out/build/x64-Debug 198 | 199 | //Value Computed by CMake 200 | camera_fusion_SOURCE_DIR:STATIC=C:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking 201 | 202 | 203 | ######################## 204 | # INTERNAL cache entries 205 | ######################## 206 | 207 | //This is the directory where this CMakeCache.txt was created 208 | CMAKE_CACHEFILE_DIR:INTERNAL=c:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking/out/build/x64-Debug 209 | //Major version of cmake used to create the current loaded cache 210 | CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 211 | //Minor version of cmake used to create the current loaded cache 212 | CMAKE_CACHE_MINOR_VERSION:INTERNAL=15 213 | //Patch version of cmake used to create the current loaded cache 214 | CMAKE_CACHE_PATCH_VERSION:INTERNAL=19101501 215 | //Path to CMake executable. 216 | CMAKE_COMMAND:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe 217 | //Path to cpack program executable. 218 | CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cpack.exe 219 | //Path to ctest program executable. 220 | CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/ctest.exe 221 | //ADVANCED property for variable: CMAKE_CXX_COMPILER 222 | CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 223 | //ADVANCED property for variable: CMAKE_CXX_FLAGS 224 | CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 225 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG 226 | CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 227 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL 228 | CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 229 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE 230 | CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 231 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO 232 | CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 233 | //ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES 234 | CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 235 | //ADVANCED property for variable: CMAKE_C_COMPILER 236 | CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 237 | //ADVANCED property for variable: CMAKE_C_FLAGS 238 | CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 239 | //ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG 240 | CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 241 | //ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL 242 | CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 243 | //ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE 244 | CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 245 | //ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO 246 | CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 247 | //ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES 248 | CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 249 | //Executable file format 250 | CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown 251 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS 252 | CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 253 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG 254 | CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 255 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL 256 | CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 257 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE 258 | CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 259 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO 260 | CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 261 | //ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS 262 | CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 263 | //Name of external makefile project generator. 264 | CMAKE_EXTRA_GENERATOR:INTERNAL= 265 | //Name of generator. 266 | CMAKE_GENERATOR:INTERNAL=Ninja 267 | //Generator instance identifier. 268 | CMAKE_GENERATOR_INSTANCE:INTERNAL= 269 | //Name of generator platform. 270 | CMAKE_GENERATOR_PLATFORM:INTERNAL= 271 | //Name of generator toolset. 272 | CMAKE_GENERATOR_TOOLSET:INTERNAL= 273 | //Source directory with the top level CMakeLists.txt file for this 274 | // project 275 | CMAKE_HOME_DIRECTORY:INTERNAL=C:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking 276 | //ADVANCED property for variable: CMAKE_LINKER 277 | CMAKE_LINKER-ADVANCED:INTERNAL=1 278 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS 279 | CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 280 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG 281 | CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 282 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL 283 | CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 284 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE 285 | CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 286 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO 287 | CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 288 | //ADVANCED property for variable: CMAKE_MT 289 | CMAKE_MT-ADVANCED:INTERNAL=1 290 | //number of local generators 291 | CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 292 | //Platform information initialized 293 | CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 294 | //ADVANCED property for variable: CMAKE_RC_COMPILER 295 | CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1 296 | CMAKE_RC_COMPILER_WORKS:INTERNAL=1 297 | //ADVANCED property for variable: CMAKE_RC_FLAGS 298 | CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1 299 | //ADVANCED property for variable: CMAKE_RC_FLAGS_DEBUG 300 | CMAKE_RC_FLAGS_DEBUG-ADVANCED:INTERNAL=1 301 | //ADVANCED property for variable: CMAKE_RC_FLAGS_MINSIZEREL 302 | CMAKE_RC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 303 | //ADVANCED property for variable: CMAKE_RC_FLAGS_RELEASE 304 | CMAKE_RC_FLAGS_RELEASE-ADVANCED:INTERNAL=1 305 | //ADVANCED property for variable: CMAKE_RC_FLAGS_RELWITHDEBINFO 306 | CMAKE_RC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 307 | //Path to CMake installation. 308 | CMAKE_ROOT:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.15 309 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS 310 | CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 311 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG 312 | CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 313 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL 314 | CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 315 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE 316 | CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 317 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO 318 | CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 319 | //ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH 320 | CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 321 | //ADVANCED property for variable: CMAKE_SKIP_RPATH 322 | CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 323 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS 324 | CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 325 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG 326 | CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 327 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL 328 | CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 329 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE 330 | CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 331 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO 332 | CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 333 | //ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE 334 | CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 335 | 336 | -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CMakeCCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_C_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe") 2 | set(CMAKE_C_COMPILER_ARG1 "") 3 | set(CMAKE_C_COMPILER_ID "MSVC") 4 | set(CMAKE_C_COMPILER_VERSION "19.24.28314.0") 5 | set(CMAKE_C_COMPILER_VERSION_INTERNAL "") 6 | set(CMAKE_C_COMPILER_WRAPPER "") 7 | set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "90") 8 | set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_std_99;c_std_11;c_function_prototypes;c_variadic_macros") 9 | set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") 10 | set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_variadic_macros") 11 | set(CMAKE_C11_COMPILE_FEATURES "c_std_11") 12 | 13 | set(CMAKE_C_PLATFORM_ID "Windows") 14 | set(CMAKE_C_SIMULATE_ID "") 15 | set(CMAKE_C_COMPILER_FRONTEND_VARIANT "") 16 | set(CMAKE_C_SIMULATE_VERSION "") 17 | set(CMAKE_C_COMPILER_ARCHITECTURE_ID x64) 18 | set(MSVC_C_ARCHITECTURE_ID x64) 19 | 20 | set(CMAKE_AR "") 21 | set(CMAKE_C_COMPILER_AR "") 22 | set(CMAKE_RANLIB "") 23 | set(CMAKE_C_COMPILER_RANLIB "") 24 | set(CMAKE_LINKER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/link.exe") 25 | set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/mt.exe") 26 | set(CMAKE_COMPILER_IS_GNUCC ) 27 | set(CMAKE_C_COMPILER_LOADED 1) 28 | set(CMAKE_C_COMPILER_WORKS TRUE) 29 | set(CMAKE_C_ABI_COMPILED TRUE) 30 | set(CMAKE_COMPILER_IS_MINGW ) 31 | set(CMAKE_COMPILER_IS_CYGWIN ) 32 | if(CMAKE_COMPILER_IS_CYGWIN) 33 | set(CYGWIN 1) 34 | set(UNIX 1) 35 | endif() 36 | 37 | set(CMAKE_C_COMPILER_ENV_VAR "CC") 38 | 39 | if(CMAKE_COMPILER_IS_MINGW) 40 | set(MINGW 1) 41 | endif() 42 | set(CMAKE_C_COMPILER_ID_RUN 1) 43 | set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) 44 | set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) 45 | set(CMAKE_C_LINKER_PREFERENCE 10) 46 | 47 | # Save compiler ABI information. 48 | set(CMAKE_C_SIZEOF_DATA_PTR "8") 49 | set(CMAKE_C_COMPILER_ABI "") 50 | set(CMAKE_C_LIBRARY_ARCHITECTURE "") 51 | 52 | if(CMAKE_C_SIZEOF_DATA_PTR) 53 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") 54 | endif() 55 | 56 | if(CMAKE_C_COMPILER_ABI) 57 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") 58 | endif() 59 | 60 | if(CMAKE_C_LIBRARY_ARCHITECTURE) 61 | set(CMAKE_LIBRARY_ARCHITECTURE "") 62 | endif() 63 | 64 | set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "Note: including file: ") 65 | if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) 66 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") 67 | endif() 68 | 69 | 70 | 71 | 72 | 73 | set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "") 74 | set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "") 75 | set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "") 76 | set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 77 | -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CMakeCXXCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_CXX_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe") 2 | set(CMAKE_CXX_COMPILER_ARG1 "") 3 | set(CMAKE_CXX_COMPILER_ID "MSVC") 4 | set(CMAKE_CXX_COMPILER_VERSION "19.24.28314.0") 5 | set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") 6 | set(CMAKE_CXX_COMPILER_WRAPPER "") 7 | set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") 8 | 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") 9 | set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") 10 | 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") 11 | 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") 12 | set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") 13 | set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") 14 | 15 | set(CMAKE_CXX_PLATFORM_ID "Windows") 16 | set(CMAKE_CXX_SIMULATE_ID "") 17 | set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") 18 | set(CMAKE_CXX_SIMULATE_VERSION "") 19 | set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID x64) 20 | set(MSVC_CXX_ARCHITECTURE_ID x64) 21 | 22 | set(CMAKE_AR "") 23 | set(CMAKE_CXX_COMPILER_AR "") 24 | set(CMAKE_RANLIB "") 25 | set(CMAKE_CXX_COMPILER_RANLIB "") 26 | set(CMAKE_LINKER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/link.exe") 27 | set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/mt.exe") 28 | set(CMAKE_COMPILER_IS_GNUCXX ) 29 | set(CMAKE_CXX_COMPILER_LOADED 1) 30 | set(CMAKE_CXX_COMPILER_WORKS TRUE) 31 | set(CMAKE_CXX_ABI_COMPILED TRUE) 32 | set(CMAKE_COMPILER_IS_MINGW ) 33 | set(CMAKE_COMPILER_IS_CYGWIN ) 34 | if(CMAKE_COMPILER_IS_CYGWIN) 35 | set(CYGWIN 1) 36 | set(UNIX 1) 37 | endif() 38 | 39 | set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") 40 | 41 | if(CMAKE_COMPILER_IS_MINGW) 42 | set(MINGW 1) 43 | endif() 44 | set(CMAKE_CXX_COMPILER_ID_RUN 1) 45 | set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) 46 | set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) 47 | set(CMAKE_CXX_LINKER_PREFERENCE 30) 48 | set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) 49 | 50 | # Save compiler ABI information. 51 | set(CMAKE_CXX_SIZEOF_DATA_PTR "8") 52 | set(CMAKE_CXX_COMPILER_ABI "") 53 | set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") 54 | 55 | if(CMAKE_CXX_SIZEOF_DATA_PTR) 56 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") 57 | endif() 58 | 59 | if(CMAKE_CXX_COMPILER_ABI) 60 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") 61 | endif() 62 | 63 | if(CMAKE_CXX_LIBRARY_ARCHITECTURE) 64 | set(CMAKE_LIBRARY_ARCHITECTURE "") 65 | endif() 66 | 67 | set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "Note: including file: ") 68 | if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) 69 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") 70 | endif() 71 | 72 | 73 | 74 | 75 | 76 | set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "") 77 | set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") 78 | set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "") 79 | set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 80 | -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CMakeDetermineCompilerABI_C.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CMakeDetermineCompilerABI_C.bin -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CMakeDetermineCompilerABI_CXX.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CMakeDetermineCompilerABI_CXX.bin -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CMakeRCCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_RC_COMPILER "C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/rc.exe") 2 | set(CMAKE_RC_COMPILER_ARG1 "") 3 | set(CMAKE_RC_COMPILER_LOADED 1) 4 | set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC) 5 | set(CMAKE_RC_OUTPUT_EXTENSION .res) 6 | set(CMAKE_RC_COMPILER_ENV_VAR "RC") 7 | -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CMakeSystem.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_HOST_SYSTEM "Windows-10.0.18362") 2 | set(CMAKE_HOST_SYSTEM_NAME "Windows") 3 | set(CMAKE_HOST_SYSTEM_VERSION "10.0.18362") 4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64") 5 | 6 | 7 | 8 | set(CMAKE_SYSTEM "Windows-10.0.18362") 9 | set(CMAKE_SYSTEM_NAME "Windows") 10 | set(CMAKE_SYSTEM_VERSION "10.0.18362") 11 | set(CMAKE_SYSTEM_PROCESSOR "AMD64") 12 | 13 | set(CMAKE_CROSSCOMPILING "FALSE") 14 | 15 | set(CMAKE_SYSTEM_LOADED 1) 16 | -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdC/CMakeCCompilerId.c: -------------------------------------------------------------------------------- 1 | #ifdef __cplusplus 2 | # error "A C++ compiler has been selected for C." 3 | #endif 4 | 5 | #if defined(__18CXX) 6 | # define ID_VOID_MAIN 7 | #endif 8 | #if defined(__CLASSIC_C__) 9 | /* cv-qualifiers did not exist in K&R C */ 10 | # define const 11 | # define volatile 12 | #endif 13 | 14 | 15 | /* Version number components: V=Version, R=Revision, P=Patch 16 | Version date components: YYYY=Year, MM=Month, DD=Day */ 17 | 18 | #if defined(__INTEL_COMPILER) || defined(__ICC) 19 | # define COMPILER_ID "Intel" 20 | # if defined(_MSC_VER) 21 | # define SIMULATE_ID "MSVC" 22 | # endif 23 | # if defined(__GNUC__) 24 | # define SIMULATE_ID "GNU" 25 | # endif 26 | /* __INTEL_COMPILER = VRP */ 27 | # define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) 28 | # define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) 29 | # if defined(__INTEL_COMPILER_UPDATE) 30 | # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) 31 | # else 32 | # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) 33 | # endif 34 | # if defined(__INTEL_COMPILER_BUILD_DATE) 35 | /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ 36 | # define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) 37 | # endif 38 | # if defined(_MSC_VER) 39 | /* _MSC_VER = VVRR */ 40 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 41 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 42 | # endif 43 | # if defined(__GNUC__) 44 | # define SIMULATE_VERSION_MAJOR DEC(__GNUC__) 45 | # elif defined(__GNUG__) 46 | # define SIMULATE_VERSION_MAJOR DEC(__GNUG__) 47 | # endif 48 | # if defined(__GNUC_MINOR__) 49 | # define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) 50 | # endif 51 | # if defined(__GNUC_PATCHLEVEL__) 52 | # define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) 53 | # endif 54 | 55 | #elif defined(__PATHCC__) 56 | # define COMPILER_ID "PathScale" 57 | # define COMPILER_VERSION_MAJOR DEC(__PATHCC__) 58 | # define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) 59 | # if defined(__PATHCC_PATCHLEVEL__) 60 | # define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) 61 | # endif 62 | 63 | #elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) 64 | # define COMPILER_ID "Embarcadero" 65 | # define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) 66 | # define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) 67 | # define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) 68 | 69 | #elif defined(__BORLANDC__) 70 | # define COMPILER_ID "Borland" 71 | /* __BORLANDC__ = 0xVRR */ 72 | # define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) 73 | # define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) 74 | 75 | #elif defined(__WATCOMC__) && __WATCOMC__ < 1200 76 | # define COMPILER_ID "Watcom" 77 | /* __WATCOMC__ = VVRR */ 78 | # define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) 79 | # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) 80 | # if (__WATCOMC__ % 10) > 0 81 | # define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) 82 | # endif 83 | 84 | #elif defined(__WATCOMC__) 85 | # define COMPILER_ID "OpenWatcom" 86 | /* __WATCOMC__ = VVRP + 1100 */ 87 | # define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) 88 | # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) 89 | # if (__WATCOMC__ % 10) > 0 90 | # define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) 91 | # endif 92 | 93 | #elif defined(__SUNPRO_C) 94 | # define COMPILER_ID "SunPro" 95 | # if __SUNPRO_C >= 0x5100 96 | /* __SUNPRO_C = 0xVRRP */ 97 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) 98 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) 99 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) 100 | # else 101 | /* __SUNPRO_CC = 0xVRP */ 102 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) 103 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) 104 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) 105 | # endif 106 | 107 | #elif defined(__HP_cc) 108 | # define COMPILER_ID "HP" 109 | /* __HP_cc = VVRRPP */ 110 | # define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) 111 | # define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) 112 | # define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) 113 | 114 | #elif defined(__DECC) 115 | # define COMPILER_ID "Compaq" 116 | /* __DECC_VER = VVRRTPPPP */ 117 | # define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) 118 | # define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) 119 | # define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) 120 | 121 | #elif defined(__IBMC__) && defined(__COMPILER_VER__) 122 | # define COMPILER_ID "zOS" 123 | /* __IBMC__ = VRP */ 124 | # define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) 125 | # define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) 126 | # define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) 127 | 128 | #elif defined(__ibmxl__) && defined(__clang__) 129 | # define COMPILER_ID "XLClang" 130 | # define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) 131 | # define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) 132 | # define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) 133 | # define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) 134 | 135 | 136 | #elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 137 | # define COMPILER_ID "XL" 138 | /* __IBMC__ = VRP */ 139 | # define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) 140 | # define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) 141 | # define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) 142 | 143 | #elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 144 | # define COMPILER_ID "VisualAge" 145 | /* __IBMC__ = VRP */ 146 | # define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) 147 | # define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) 148 | # define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) 149 | 150 | #elif defined(__PGI) 151 | # define COMPILER_ID "PGI" 152 | # define COMPILER_VERSION_MAJOR DEC(__PGIC__) 153 | # define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) 154 | # if defined(__PGIC_PATCHLEVEL__) 155 | # define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) 156 | # endif 157 | 158 | #elif defined(_CRAYC) 159 | # define COMPILER_ID "Cray" 160 | # define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) 161 | # define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) 162 | 163 | #elif defined(__TI_COMPILER_VERSION__) 164 | # define COMPILER_ID "TI" 165 | /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ 166 | # define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) 167 | # define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) 168 | # define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) 169 | 170 | #elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) 171 | # define COMPILER_ID "Fujitsu" 172 | 173 | #elif defined(__ghs__) 174 | # define COMPILER_ID "GHS" 175 | /* __GHS_VERSION_NUMBER = VVVVRP */ 176 | # ifdef __GHS_VERSION_NUMBER 177 | # define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) 178 | # define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) 179 | # define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) 180 | # endif 181 | 182 | #elif defined(__TINYC__) 183 | # define COMPILER_ID "TinyCC" 184 | 185 | #elif defined(__BCC__) 186 | # define COMPILER_ID "Bruce" 187 | 188 | #elif defined(__SCO_VERSION__) 189 | # define COMPILER_ID "SCO" 190 | 191 | #elif defined(__ARMCC_VERSION) && !defined(__clang__) 192 | # define COMPILER_ID "ARMCC" 193 | #if __ARMCC_VERSION >= 1000000 194 | /* __ARMCC_VERSION = VRRPPPP */ 195 | # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) 196 | # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) 197 | # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) 198 | #else 199 | /* __ARMCC_VERSION = VRPPPP */ 200 | # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) 201 | # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) 202 | # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) 203 | #endif 204 | 205 | 206 | #elif defined(__clang__) && defined(__apple_build_version__) 207 | # define COMPILER_ID "AppleClang" 208 | # if defined(_MSC_VER) 209 | # define SIMULATE_ID "MSVC" 210 | # endif 211 | # define COMPILER_VERSION_MAJOR DEC(__clang_major__) 212 | # define COMPILER_VERSION_MINOR DEC(__clang_minor__) 213 | # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) 214 | # if defined(_MSC_VER) 215 | /* _MSC_VER = VVRR */ 216 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 217 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 218 | # endif 219 | # define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) 220 | 221 | #elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) 222 | # define COMPILER_ID "ARMClang" 223 | # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) 224 | # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) 225 | # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) 226 | # define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) 227 | 228 | #elif defined(__clang__) 229 | # define COMPILER_ID "Clang" 230 | # if defined(_MSC_VER) 231 | # define SIMULATE_ID "MSVC" 232 | # endif 233 | # define COMPILER_VERSION_MAJOR DEC(__clang_major__) 234 | # define COMPILER_VERSION_MINOR DEC(__clang_minor__) 235 | # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) 236 | # if defined(_MSC_VER) 237 | /* _MSC_VER = VVRR */ 238 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 239 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 240 | # endif 241 | 242 | #elif defined(__GNUC__) 243 | # define COMPILER_ID "GNU" 244 | # define COMPILER_VERSION_MAJOR DEC(__GNUC__) 245 | # if defined(__GNUC_MINOR__) 246 | # define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) 247 | # endif 248 | # if defined(__GNUC_PATCHLEVEL__) 249 | # define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) 250 | # endif 251 | 252 | #elif defined(_MSC_VER) 253 | # define COMPILER_ID "MSVC" 254 | /* _MSC_VER = VVRR */ 255 | # define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) 256 | # define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) 257 | # if defined(_MSC_FULL_VER) 258 | # if _MSC_VER >= 1400 259 | /* _MSC_FULL_VER = VVRRPPPPP */ 260 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) 261 | # else 262 | /* _MSC_FULL_VER = VVRRPPPP */ 263 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) 264 | # endif 265 | # endif 266 | # if defined(_MSC_BUILD) 267 | # define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) 268 | # endif 269 | 270 | #elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) 271 | # define COMPILER_ID "ADSP" 272 | #if defined(__VISUALDSPVERSION__) 273 | /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ 274 | # define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) 275 | # define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) 276 | # define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) 277 | #endif 278 | 279 | #elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) 280 | # define COMPILER_ID "IAR" 281 | # if defined(__VER__) && defined(__ICCARM__) 282 | # define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) 283 | # define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) 284 | # define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) 285 | # define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) 286 | # elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__)) 287 | # define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) 288 | # define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) 289 | # define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) 290 | # define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) 291 | # endif 292 | 293 | #elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) 294 | # define COMPILER_ID "SDCC" 295 | # if defined(__SDCC_VERSION_MAJOR) 296 | # define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) 297 | # define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) 298 | # define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) 299 | # else 300 | /* SDCC = VRP */ 301 | # define COMPILER_VERSION_MAJOR DEC(SDCC/100) 302 | # define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) 303 | # define COMPILER_VERSION_PATCH DEC(SDCC % 10) 304 | # endif 305 | 306 | 307 | /* These compilers are either not known or too old to define an 308 | identification macro. Try to identify the platform and guess that 309 | it is the native compiler. */ 310 | #elif defined(__hpux) || defined(__hpua) 311 | # define COMPILER_ID "HP" 312 | 313 | #else /* unknown compiler */ 314 | # define COMPILER_ID "" 315 | #endif 316 | 317 | /* Construct the string literal in pieces to prevent the source from 318 | getting matched. Store it in a pointer rather than an array 319 | because some compilers will just produce instructions to fill the 320 | array rather than assigning a pointer to a static array. */ 321 | char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; 322 | #ifdef SIMULATE_ID 323 | char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; 324 | #endif 325 | 326 | #ifdef __QNXNTO__ 327 | char const* qnxnto = "INFO" ":" "qnxnto[]"; 328 | #endif 329 | 330 | #if defined(__CRAYXE) || defined(__CRAYXC) 331 | char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; 332 | #endif 333 | 334 | #define STRINGIFY_HELPER(X) #X 335 | #define STRINGIFY(X) STRINGIFY_HELPER(X) 336 | 337 | /* Identify known platforms by name. */ 338 | #if defined(__linux) || defined(__linux__) || defined(linux) 339 | # define PLATFORM_ID "Linux" 340 | 341 | #elif defined(__CYGWIN__) 342 | # define PLATFORM_ID "Cygwin" 343 | 344 | #elif defined(__MINGW32__) 345 | # define PLATFORM_ID "MinGW" 346 | 347 | #elif defined(__APPLE__) 348 | # define PLATFORM_ID "Darwin" 349 | 350 | #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) 351 | # define PLATFORM_ID "Windows" 352 | 353 | #elif defined(__FreeBSD__) || defined(__FreeBSD) 354 | # define PLATFORM_ID "FreeBSD" 355 | 356 | #elif defined(__NetBSD__) || defined(__NetBSD) 357 | # define PLATFORM_ID "NetBSD" 358 | 359 | #elif defined(__OpenBSD__) || defined(__OPENBSD) 360 | # define PLATFORM_ID "OpenBSD" 361 | 362 | #elif defined(__sun) || defined(sun) 363 | # define PLATFORM_ID "SunOS" 364 | 365 | #elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) 366 | # define PLATFORM_ID "AIX" 367 | 368 | #elif defined(__hpux) || defined(__hpux__) 369 | # define PLATFORM_ID "HP-UX" 370 | 371 | #elif defined(__HAIKU__) 372 | # define PLATFORM_ID "Haiku" 373 | 374 | #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) 375 | # define PLATFORM_ID "BeOS" 376 | 377 | #elif defined(__QNX__) || defined(__QNXNTO__) 378 | # define PLATFORM_ID "QNX" 379 | 380 | #elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) 381 | # define PLATFORM_ID "Tru64" 382 | 383 | #elif defined(__riscos) || defined(__riscos__) 384 | # define PLATFORM_ID "RISCos" 385 | 386 | #elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) 387 | # define PLATFORM_ID "SINIX" 388 | 389 | #elif defined(__UNIX_SV__) 390 | # define PLATFORM_ID "UNIX_SV" 391 | 392 | #elif defined(__bsdos__) 393 | # define PLATFORM_ID "BSDOS" 394 | 395 | #elif defined(_MPRAS) || defined(MPRAS) 396 | # define PLATFORM_ID "MP-RAS" 397 | 398 | #elif defined(__osf) || defined(__osf__) 399 | # define PLATFORM_ID "OSF1" 400 | 401 | #elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) 402 | # define PLATFORM_ID "SCO_SV" 403 | 404 | #elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) 405 | # define PLATFORM_ID "ULTRIX" 406 | 407 | #elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) 408 | # define PLATFORM_ID "Xenix" 409 | 410 | #elif defined(__WATCOMC__) 411 | # if defined(__LINUX__) 412 | # define PLATFORM_ID "Linux" 413 | 414 | # elif defined(__DOS__) 415 | # define PLATFORM_ID "DOS" 416 | 417 | # elif defined(__OS2__) 418 | # define PLATFORM_ID "OS2" 419 | 420 | # elif defined(__WINDOWS__) 421 | # define PLATFORM_ID "Windows3x" 422 | 423 | # else /* unknown platform */ 424 | # define PLATFORM_ID 425 | # endif 426 | 427 | #elif defined(__INTEGRITY) 428 | # if defined(INT_178B) 429 | # define PLATFORM_ID "Integrity178" 430 | 431 | # else /* regular Integrity */ 432 | # define PLATFORM_ID "Integrity" 433 | # endif 434 | 435 | #else /* unknown platform */ 436 | # define PLATFORM_ID 437 | 438 | #endif 439 | 440 | /* For windows compilers MSVC and Intel we can determine 441 | the architecture of the compiler being used. This is because 442 | the compilers do not have flags that can change the architecture, 443 | but rather depend on which compiler is being used 444 | */ 445 | #if defined(_WIN32) && defined(_MSC_VER) 446 | # if defined(_M_IA64) 447 | # define ARCHITECTURE_ID "IA64" 448 | 449 | # elif defined(_M_X64) || defined(_M_AMD64) 450 | # define ARCHITECTURE_ID "x64" 451 | 452 | # elif defined(_M_IX86) 453 | # define ARCHITECTURE_ID "X86" 454 | 455 | # elif defined(_M_ARM64) 456 | # define ARCHITECTURE_ID "ARM64" 457 | 458 | # elif defined(_M_ARM) 459 | # if _M_ARM == 4 460 | # define ARCHITECTURE_ID "ARMV4I" 461 | # elif _M_ARM == 5 462 | # define ARCHITECTURE_ID "ARMV5I" 463 | # else 464 | # define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) 465 | # endif 466 | 467 | # elif defined(_M_MIPS) 468 | # define ARCHITECTURE_ID "MIPS" 469 | 470 | # elif defined(_M_SH) 471 | # define ARCHITECTURE_ID "SHx" 472 | 473 | # else /* unknown architecture */ 474 | # define ARCHITECTURE_ID "" 475 | # endif 476 | 477 | #elif defined(__WATCOMC__) 478 | # if defined(_M_I86) 479 | # define ARCHITECTURE_ID "I86" 480 | 481 | # elif defined(_M_IX86) 482 | # define ARCHITECTURE_ID "X86" 483 | 484 | # else /* unknown architecture */ 485 | # define ARCHITECTURE_ID "" 486 | # endif 487 | 488 | #elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) 489 | # if defined(__ICCARM__) 490 | # define ARCHITECTURE_ID "ARM" 491 | 492 | # elif defined(__ICCRX__) 493 | # define ARCHITECTURE_ID "RX" 494 | 495 | # elif defined(__ICCRH850__) 496 | # define ARCHITECTURE_ID "RH850" 497 | 498 | # elif defined(__ICCRL78__) 499 | # define ARCHITECTURE_ID "RL78" 500 | 501 | # elif defined(__ICCRISCV__) 502 | # define ARCHITECTURE_ID "RISCV" 503 | 504 | # elif defined(__ICCAVR__) 505 | # define ARCHITECTURE_ID "AVR" 506 | 507 | # elif defined(__ICC430__) 508 | # define ARCHITECTURE_ID "MSP430" 509 | 510 | # else /* unknown architecture */ 511 | # define ARCHITECTURE_ID "" 512 | # endif 513 | 514 | #elif defined(__ghs__) 515 | # if defined(__PPC64__) 516 | # define ARCHITECTURE_ID "PPC64" 517 | 518 | # elif defined(__ppc__) 519 | # define ARCHITECTURE_ID "PPC" 520 | 521 | # elif defined(__ARM__) 522 | # define ARCHITECTURE_ID "ARM" 523 | 524 | # elif defined(__x86_64__) 525 | # define ARCHITECTURE_ID "x64" 526 | 527 | # elif defined(__i386__) 528 | # define ARCHITECTURE_ID "X86" 529 | 530 | # else /* unknown architecture */ 531 | # define ARCHITECTURE_ID "" 532 | # endif 533 | #else 534 | # define ARCHITECTURE_ID 535 | #endif 536 | 537 | /* Convert integer to decimal digit literals. */ 538 | #define DEC(n) \ 539 | ('0' + (((n) / 10000000)%10)), \ 540 | ('0' + (((n) / 1000000)%10)), \ 541 | ('0' + (((n) / 100000)%10)), \ 542 | ('0' + (((n) / 10000)%10)), \ 543 | ('0' + (((n) / 1000)%10)), \ 544 | ('0' + (((n) / 100)%10)), \ 545 | ('0' + (((n) / 10)%10)), \ 546 | ('0' + ((n) % 10)) 547 | 548 | /* Convert integer to hex digit literals. */ 549 | #define HEX(n) \ 550 | ('0' + ((n)>>28 & 0xF)), \ 551 | ('0' + ((n)>>24 & 0xF)), \ 552 | ('0' + ((n)>>20 & 0xF)), \ 553 | ('0' + ((n)>>16 & 0xF)), \ 554 | ('0' + ((n)>>12 & 0xF)), \ 555 | ('0' + ((n)>>8 & 0xF)), \ 556 | ('0' + ((n)>>4 & 0xF)), \ 557 | ('0' + ((n) & 0xF)) 558 | 559 | /* Construct a string literal encoding the version number components. */ 560 | #ifdef COMPILER_VERSION_MAJOR 561 | char const info_version[] = { 562 | 'I', 'N', 'F', 'O', ':', 563 | 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', 564 | COMPILER_VERSION_MAJOR, 565 | # ifdef COMPILER_VERSION_MINOR 566 | '.', COMPILER_VERSION_MINOR, 567 | # ifdef COMPILER_VERSION_PATCH 568 | '.', COMPILER_VERSION_PATCH, 569 | # ifdef COMPILER_VERSION_TWEAK 570 | '.', COMPILER_VERSION_TWEAK, 571 | # endif 572 | # endif 573 | # endif 574 | ']','\0'}; 575 | #endif 576 | 577 | /* Construct a string literal encoding the internal version number. */ 578 | #ifdef COMPILER_VERSION_INTERNAL 579 | char const info_version_internal[] = { 580 | 'I', 'N', 'F', 'O', ':', 581 | 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', 582 | 'i','n','t','e','r','n','a','l','[', 583 | COMPILER_VERSION_INTERNAL,']','\0'}; 584 | #endif 585 | 586 | /* Construct a string literal encoding the version number components. */ 587 | #ifdef SIMULATE_VERSION_MAJOR 588 | char const info_simulate_version[] = { 589 | 'I', 'N', 'F', 'O', ':', 590 | 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', 591 | SIMULATE_VERSION_MAJOR, 592 | # ifdef SIMULATE_VERSION_MINOR 593 | '.', SIMULATE_VERSION_MINOR, 594 | # ifdef SIMULATE_VERSION_PATCH 595 | '.', SIMULATE_VERSION_PATCH, 596 | # ifdef SIMULATE_VERSION_TWEAK 597 | '.', SIMULATE_VERSION_TWEAK, 598 | # endif 599 | # endif 600 | # endif 601 | ']','\0'}; 602 | #endif 603 | 604 | /* Construct the string literal in pieces to prevent the source from 605 | getting matched. Store it in a pointer rather than an array 606 | because some compilers will just produce instructions to fill the 607 | array rather than assigning a pointer to a static array. */ 608 | char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; 609 | char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; 610 | 611 | 612 | 613 | 614 | #if !defined(__STDC__) 615 | # if (defined(_MSC_VER) && !defined(__clang__)) \ 616 | || (defined(__ibmxl__) || defined(__IBMC__)) 617 | # define C_DIALECT "90" 618 | # else 619 | # define C_DIALECT 620 | # endif 621 | #elif __STDC_VERSION__ >= 201000L 622 | # define C_DIALECT "11" 623 | #elif __STDC_VERSION__ >= 199901L 624 | # define C_DIALECT "99" 625 | #else 626 | # define C_DIALECT "90" 627 | #endif 628 | const char* info_language_dialect_default = 629 | "INFO" ":" "dialect_default[" C_DIALECT "]"; 630 | 631 | /*--------------------------------------------------------------------------*/ 632 | 633 | #ifdef ID_VOID_MAIN 634 | void main() {} 635 | #else 636 | # if defined(__CLASSIC_C__) 637 | int main(argc, argv) int argc; char *argv[]; 638 | # else 639 | int main(int argc, char* argv[]) 640 | # endif 641 | { 642 | int require = 0; 643 | require += info_compiler[argc]; 644 | require += info_platform[argc]; 645 | require += info_arch[argc]; 646 | #ifdef COMPILER_VERSION_MAJOR 647 | require += info_version[argc]; 648 | #endif 649 | #ifdef COMPILER_VERSION_INTERNAL 650 | require += info_version_internal[argc]; 651 | #endif 652 | #ifdef SIMULATE_ID 653 | require += info_simulate[argc]; 654 | #endif 655 | #ifdef SIMULATE_VERSION_MAJOR 656 | require += info_simulate_version[argc]; 657 | #endif 658 | #if defined(__CRAYXE) || defined(__CRAYXC) 659 | require += info_cray[argc]; 660 | #endif 661 | require += info_language_dialect_default[argc]; 662 | (void)argv; 663 | return require; 664 | } 665 | #endif 666 | -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdC/CMakeCCompilerId.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdC/CMakeCCompilerId.exe -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdC/CMakeCCompilerId.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdC/CMakeCCompilerId.obj -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.cpp: -------------------------------------------------------------------------------- 1 | /* This source file must have a .cpp extension so that all C++ compilers 2 | recognize the extension without flags. Borland does not know .cxx for 3 | example. */ 4 | #ifndef __cplusplus 5 | # error "A C compiler has been selected for C++." 6 | #endif 7 | 8 | 9 | /* Version number components: V=Version, R=Revision, P=Patch 10 | Version date components: YYYY=Year, MM=Month, DD=Day */ 11 | 12 | #if defined(__COMO__) 13 | # define COMPILER_ID "Comeau" 14 | /* __COMO_VERSION__ = VRR */ 15 | # define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) 16 | # define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) 17 | 18 | #elif defined(__INTEL_COMPILER) || defined(__ICC) 19 | # define COMPILER_ID "Intel" 20 | # if defined(_MSC_VER) 21 | # define SIMULATE_ID "MSVC" 22 | # endif 23 | # if defined(__GNUC__) 24 | # define SIMULATE_ID "GNU" 25 | # endif 26 | /* __INTEL_COMPILER = VRP */ 27 | # define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) 28 | # define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) 29 | # if defined(__INTEL_COMPILER_UPDATE) 30 | # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) 31 | # else 32 | # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) 33 | # endif 34 | # if defined(__INTEL_COMPILER_BUILD_DATE) 35 | /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ 36 | # define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) 37 | # endif 38 | # if defined(_MSC_VER) 39 | /* _MSC_VER = VVRR */ 40 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 41 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 42 | # endif 43 | # if defined(__GNUC__) 44 | # define SIMULATE_VERSION_MAJOR DEC(__GNUC__) 45 | # elif defined(__GNUG__) 46 | # define SIMULATE_VERSION_MAJOR DEC(__GNUG__) 47 | # endif 48 | # if defined(__GNUC_MINOR__) 49 | # define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) 50 | # endif 51 | # if defined(__GNUC_PATCHLEVEL__) 52 | # define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) 53 | # endif 54 | 55 | #elif defined(__PATHCC__) 56 | # define COMPILER_ID "PathScale" 57 | # define COMPILER_VERSION_MAJOR DEC(__PATHCC__) 58 | # define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) 59 | # if defined(__PATHCC_PATCHLEVEL__) 60 | # define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) 61 | # endif 62 | 63 | #elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) 64 | # define COMPILER_ID "Embarcadero" 65 | # define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) 66 | # define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) 67 | # define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) 68 | 69 | #elif defined(__BORLANDC__) 70 | # define COMPILER_ID "Borland" 71 | /* __BORLANDC__ = 0xVRR */ 72 | # define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) 73 | # define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) 74 | 75 | #elif defined(__WATCOMC__) && __WATCOMC__ < 1200 76 | # define COMPILER_ID "Watcom" 77 | /* __WATCOMC__ = VVRR */ 78 | # define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) 79 | # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) 80 | # if (__WATCOMC__ % 10) > 0 81 | # define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) 82 | # endif 83 | 84 | #elif defined(__WATCOMC__) 85 | # define COMPILER_ID "OpenWatcom" 86 | /* __WATCOMC__ = VVRP + 1100 */ 87 | # define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) 88 | # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) 89 | # if (__WATCOMC__ % 10) > 0 90 | # define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) 91 | # endif 92 | 93 | #elif defined(__SUNPRO_CC) 94 | # define COMPILER_ID "SunPro" 95 | # if __SUNPRO_CC >= 0x5100 96 | /* __SUNPRO_CC = 0xVRRP */ 97 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) 98 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) 99 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) 100 | # else 101 | /* __SUNPRO_CC = 0xVRP */ 102 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) 103 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) 104 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) 105 | # endif 106 | 107 | #elif defined(__HP_aCC) 108 | # define COMPILER_ID "HP" 109 | /* __HP_aCC = VVRRPP */ 110 | # define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) 111 | # define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) 112 | # define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) 113 | 114 | #elif defined(__DECCXX) 115 | # define COMPILER_ID "Compaq" 116 | /* __DECCXX_VER = VVRRTPPPP */ 117 | # define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) 118 | # define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) 119 | # define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) 120 | 121 | #elif defined(__IBMCPP__) && defined(__COMPILER_VER__) 122 | # define COMPILER_ID "zOS" 123 | /* __IBMCPP__ = VRP */ 124 | # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) 125 | # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) 126 | # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) 127 | 128 | #elif defined(__ibmxl__) && defined(__clang__) 129 | # define COMPILER_ID "XLClang" 130 | # define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) 131 | # define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) 132 | # define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) 133 | # define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) 134 | 135 | 136 | #elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 137 | # define COMPILER_ID "XL" 138 | /* __IBMCPP__ = VRP */ 139 | # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) 140 | # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) 141 | # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) 142 | 143 | #elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 144 | # define COMPILER_ID "VisualAge" 145 | /* __IBMCPP__ = VRP */ 146 | # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) 147 | # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) 148 | # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) 149 | 150 | #elif defined(__PGI) 151 | # define COMPILER_ID "PGI" 152 | # define COMPILER_VERSION_MAJOR DEC(__PGIC__) 153 | # define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) 154 | # if defined(__PGIC_PATCHLEVEL__) 155 | # define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) 156 | # endif 157 | 158 | #elif defined(_CRAYC) 159 | # define COMPILER_ID "Cray" 160 | # define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) 161 | # define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) 162 | 163 | #elif defined(__TI_COMPILER_VERSION__) 164 | # define COMPILER_ID "TI" 165 | /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ 166 | # define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) 167 | # define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) 168 | # define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) 169 | 170 | #elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) 171 | # define COMPILER_ID "Fujitsu" 172 | 173 | #elif defined(__ghs__) 174 | # define COMPILER_ID "GHS" 175 | /* __GHS_VERSION_NUMBER = VVVVRP */ 176 | # ifdef __GHS_VERSION_NUMBER 177 | # define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) 178 | # define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) 179 | # define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) 180 | # endif 181 | 182 | #elif defined(__SCO_VERSION__) 183 | # define COMPILER_ID "SCO" 184 | 185 | #elif defined(__ARMCC_VERSION) && !defined(__clang__) 186 | # define COMPILER_ID "ARMCC" 187 | #if __ARMCC_VERSION >= 1000000 188 | /* __ARMCC_VERSION = VRRPPPP */ 189 | # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) 190 | # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) 191 | # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) 192 | #else 193 | /* __ARMCC_VERSION = VRPPPP */ 194 | # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) 195 | # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) 196 | # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) 197 | #endif 198 | 199 | 200 | #elif defined(__clang__) && defined(__apple_build_version__) 201 | # define COMPILER_ID "AppleClang" 202 | # if defined(_MSC_VER) 203 | # define SIMULATE_ID "MSVC" 204 | # endif 205 | # define COMPILER_VERSION_MAJOR DEC(__clang_major__) 206 | # define COMPILER_VERSION_MINOR DEC(__clang_minor__) 207 | # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) 208 | # if defined(_MSC_VER) 209 | /* _MSC_VER = VVRR */ 210 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 211 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 212 | # endif 213 | # define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) 214 | 215 | #elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) 216 | # define COMPILER_ID "ARMClang" 217 | # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) 218 | # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) 219 | # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) 220 | # define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) 221 | 222 | #elif defined(__clang__) 223 | # define COMPILER_ID "Clang" 224 | # if defined(_MSC_VER) 225 | # define SIMULATE_ID "MSVC" 226 | # endif 227 | # define COMPILER_VERSION_MAJOR DEC(__clang_major__) 228 | # define COMPILER_VERSION_MINOR DEC(__clang_minor__) 229 | # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) 230 | # if defined(_MSC_VER) 231 | /* _MSC_VER = VVRR */ 232 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 233 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 234 | # endif 235 | 236 | #elif defined(__GNUC__) || defined(__GNUG__) 237 | # define COMPILER_ID "GNU" 238 | # if defined(__GNUC__) 239 | # define COMPILER_VERSION_MAJOR DEC(__GNUC__) 240 | # else 241 | # define COMPILER_VERSION_MAJOR DEC(__GNUG__) 242 | # endif 243 | # if defined(__GNUC_MINOR__) 244 | # define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) 245 | # endif 246 | # if defined(__GNUC_PATCHLEVEL__) 247 | # define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) 248 | # endif 249 | 250 | #elif defined(_MSC_VER) 251 | # define COMPILER_ID "MSVC" 252 | /* _MSC_VER = VVRR */ 253 | # define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) 254 | # define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) 255 | # if defined(_MSC_FULL_VER) 256 | # if _MSC_VER >= 1400 257 | /* _MSC_FULL_VER = VVRRPPPPP */ 258 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) 259 | # else 260 | /* _MSC_FULL_VER = VVRRPPPP */ 261 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) 262 | # endif 263 | # endif 264 | # if defined(_MSC_BUILD) 265 | # define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) 266 | # endif 267 | 268 | #elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) 269 | # define COMPILER_ID "ADSP" 270 | #if defined(__VISUALDSPVERSION__) 271 | /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ 272 | # define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) 273 | # define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) 274 | # define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) 275 | #endif 276 | 277 | #elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) 278 | # define COMPILER_ID "IAR" 279 | # if defined(__VER__) && defined(__ICCARM__) 280 | # define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) 281 | # define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) 282 | # define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) 283 | # define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) 284 | # elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__)) 285 | # define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) 286 | # define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) 287 | # define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) 288 | # define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) 289 | # endif 290 | 291 | 292 | /* These compilers are either not known or too old to define an 293 | identification macro. Try to identify the platform and guess that 294 | it is the native compiler. */ 295 | #elif defined(__hpux) || defined(__hpua) 296 | # define COMPILER_ID "HP" 297 | 298 | #else /* unknown compiler */ 299 | # define COMPILER_ID "" 300 | #endif 301 | 302 | /* Construct the string literal in pieces to prevent the source from 303 | getting matched. Store it in a pointer rather than an array 304 | because some compilers will just produce instructions to fill the 305 | array rather than assigning a pointer to a static array. */ 306 | char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; 307 | #ifdef SIMULATE_ID 308 | char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; 309 | #endif 310 | 311 | #ifdef __QNXNTO__ 312 | char const* qnxnto = "INFO" ":" "qnxnto[]"; 313 | #endif 314 | 315 | #if defined(__CRAYXE) || defined(__CRAYXC) 316 | char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; 317 | #endif 318 | 319 | #define STRINGIFY_HELPER(X) #X 320 | #define STRINGIFY(X) STRINGIFY_HELPER(X) 321 | 322 | /* Identify known platforms by name. */ 323 | #if defined(__linux) || defined(__linux__) || defined(linux) 324 | # define PLATFORM_ID "Linux" 325 | 326 | #elif defined(__CYGWIN__) 327 | # define PLATFORM_ID "Cygwin" 328 | 329 | #elif defined(__MINGW32__) 330 | # define PLATFORM_ID "MinGW" 331 | 332 | #elif defined(__APPLE__) 333 | # define PLATFORM_ID "Darwin" 334 | 335 | #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) 336 | # define PLATFORM_ID "Windows" 337 | 338 | #elif defined(__FreeBSD__) || defined(__FreeBSD) 339 | # define PLATFORM_ID "FreeBSD" 340 | 341 | #elif defined(__NetBSD__) || defined(__NetBSD) 342 | # define PLATFORM_ID "NetBSD" 343 | 344 | #elif defined(__OpenBSD__) || defined(__OPENBSD) 345 | # define PLATFORM_ID "OpenBSD" 346 | 347 | #elif defined(__sun) || defined(sun) 348 | # define PLATFORM_ID "SunOS" 349 | 350 | #elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) 351 | # define PLATFORM_ID "AIX" 352 | 353 | #elif defined(__hpux) || defined(__hpux__) 354 | # define PLATFORM_ID "HP-UX" 355 | 356 | #elif defined(__HAIKU__) 357 | # define PLATFORM_ID "Haiku" 358 | 359 | #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) 360 | # define PLATFORM_ID "BeOS" 361 | 362 | #elif defined(__QNX__) || defined(__QNXNTO__) 363 | # define PLATFORM_ID "QNX" 364 | 365 | #elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) 366 | # define PLATFORM_ID "Tru64" 367 | 368 | #elif defined(__riscos) || defined(__riscos__) 369 | # define PLATFORM_ID "RISCos" 370 | 371 | #elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) 372 | # define PLATFORM_ID "SINIX" 373 | 374 | #elif defined(__UNIX_SV__) 375 | # define PLATFORM_ID "UNIX_SV" 376 | 377 | #elif defined(__bsdos__) 378 | # define PLATFORM_ID "BSDOS" 379 | 380 | #elif defined(_MPRAS) || defined(MPRAS) 381 | # define PLATFORM_ID "MP-RAS" 382 | 383 | #elif defined(__osf) || defined(__osf__) 384 | # define PLATFORM_ID "OSF1" 385 | 386 | #elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) 387 | # define PLATFORM_ID "SCO_SV" 388 | 389 | #elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) 390 | # define PLATFORM_ID "ULTRIX" 391 | 392 | #elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) 393 | # define PLATFORM_ID "Xenix" 394 | 395 | #elif defined(__WATCOMC__) 396 | # if defined(__LINUX__) 397 | # define PLATFORM_ID "Linux" 398 | 399 | # elif defined(__DOS__) 400 | # define PLATFORM_ID "DOS" 401 | 402 | # elif defined(__OS2__) 403 | # define PLATFORM_ID "OS2" 404 | 405 | # elif defined(__WINDOWS__) 406 | # define PLATFORM_ID "Windows3x" 407 | 408 | # else /* unknown platform */ 409 | # define PLATFORM_ID 410 | # endif 411 | 412 | #elif defined(__INTEGRITY) 413 | # if defined(INT_178B) 414 | # define PLATFORM_ID "Integrity178" 415 | 416 | # else /* regular Integrity */ 417 | # define PLATFORM_ID "Integrity" 418 | # endif 419 | 420 | #else /* unknown platform */ 421 | # define PLATFORM_ID 422 | 423 | #endif 424 | 425 | /* For windows compilers MSVC and Intel we can determine 426 | the architecture of the compiler being used. This is because 427 | the compilers do not have flags that can change the architecture, 428 | but rather depend on which compiler is being used 429 | */ 430 | #if defined(_WIN32) && defined(_MSC_VER) 431 | # if defined(_M_IA64) 432 | # define ARCHITECTURE_ID "IA64" 433 | 434 | # elif defined(_M_X64) || defined(_M_AMD64) 435 | # define ARCHITECTURE_ID "x64" 436 | 437 | # elif defined(_M_IX86) 438 | # define ARCHITECTURE_ID "X86" 439 | 440 | # elif defined(_M_ARM64) 441 | # define ARCHITECTURE_ID "ARM64" 442 | 443 | # elif defined(_M_ARM) 444 | # if _M_ARM == 4 445 | # define ARCHITECTURE_ID "ARMV4I" 446 | # elif _M_ARM == 5 447 | # define ARCHITECTURE_ID "ARMV5I" 448 | # else 449 | # define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) 450 | # endif 451 | 452 | # elif defined(_M_MIPS) 453 | # define ARCHITECTURE_ID "MIPS" 454 | 455 | # elif defined(_M_SH) 456 | # define ARCHITECTURE_ID "SHx" 457 | 458 | # else /* unknown architecture */ 459 | # define ARCHITECTURE_ID "" 460 | # endif 461 | 462 | #elif defined(__WATCOMC__) 463 | # if defined(_M_I86) 464 | # define ARCHITECTURE_ID "I86" 465 | 466 | # elif defined(_M_IX86) 467 | # define ARCHITECTURE_ID "X86" 468 | 469 | # else /* unknown architecture */ 470 | # define ARCHITECTURE_ID "" 471 | # endif 472 | 473 | #elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) 474 | # if defined(__ICCARM__) 475 | # define ARCHITECTURE_ID "ARM" 476 | 477 | # elif defined(__ICCRX__) 478 | # define ARCHITECTURE_ID "RX" 479 | 480 | # elif defined(__ICCRH850__) 481 | # define ARCHITECTURE_ID "RH850" 482 | 483 | # elif defined(__ICCRL78__) 484 | # define ARCHITECTURE_ID "RL78" 485 | 486 | # elif defined(__ICCRISCV__) 487 | # define ARCHITECTURE_ID "RISCV" 488 | 489 | # elif defined(__ICCAVR__) 490 | # define ARCHITECTURE_ID "AVR" 491 | 492 | # elif defined(__ICC430__) 493 | # define ARCHITECTURE_ID "MSP430" 494 | 495 | # else /* unknown architecture */ 496 | # define ARCHITECTURE_ID "" 497 | # endif 498 | 499 | #elif defined(__ghs__) 500 | # if defined(__PPC64__) 501 | # define ARCHITECTURE_ID "PPC64" 502 | 503 | # elif defined(__ppc__) 504 | # define ARCHITECTURE_ID "PPC" 505 | 506 | # elif defined(__ARM__) 507 | # define ARCHITECTURE_ID "ARM" 508 | 509 | # elif defined(__x86_64__) 510 | # define ARCHITECTURE_ID "x64" 511 | 512 | # elif defined(__i386__) 513 | # define ARCHITECTURE_ID "X86" 514 | 515 | # else /* unknown architecture */ 516 | # define ARCHITECTURE_ID "" 517 | # endif 518 | #else 519 | # define ARCHITECTURE_ID 520 | #endif 521 | 522 | /* Convert integer to decimal digit literals. */ 523 | #define DEC(n) \ 524 | ('0' + (((n) / 10000000)%10)), \ 525 | ('0' + (((n) / 1000000)%10)), \ 526 | ('0' + (((n) / 100000)%10)), \ 527 | ('0' + (((n) / 10000)%10)), \ 528 | ('0' + (((n) / 1000)%10)), \ 529 | ('0' + (((n) / 100)%10)), \ 530 | ('0' + (((n) / 10)%10)), \ 531 | ('0' + ((n) % 10)) 532 | 533 | /* Convert integer to hex digit literals. */ 534 | #define HEX(n) \ 535 | ('0' + ((n)>>28 & 0xF)), \ 536 | ('0' + ((n)>>24 & 0xF)), \ 537 | ('0' + ((n)>>20 & 0xF)), \ 538 | ('0' + ((n)>>16 & 0xF)), \ 539 | ('0' + ((n)>>12 & 0xF)), \ 540 | ('0' + ((n)>>8 & 0xF)), \ 541 | ('0' + ((n)>>4 & 0xF)), \ 542 | ('0' + ((n) & 0xF)) 543 | 544 | /* Construct a string literal encoding the version number components. */ 545 | #ifdef COMPILER_VERSION_MAJOR 546 | char const info_version[] = { 547 | 'I', 'N', 'F', 'O', ':', 548 | 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', 549 | COMPILER_VERSION_MAJOR, 550 | # ifdef COMPILER_VERSION_MINOR 551 | '.', COMPILER_VERSION_MINOR, 552 | # ifdef COMPILER_VERSION_PATCH 553 | '.', COMPILER_VERSION_PATCH, 554 | # ifdef COMPILER_VERSION_TWEAK 555 | '.', COMPILER_VERSION_TWEAK, 556 | # endif 557 | # endif 558 | # endif 559 | ']','\0'}; 560 | #endif 561 | 562 | /* Construct a string literal encoding the internal version number. */ 563 | #ifdef COMPILER_VERSION_INTERNAL 564 | char const info_version_internal[] = { 565 | 'I', 'N', 'F', 'O', ':', 566 | 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', 567 | 'i','n','t','e','r','n','a','l','[', 568 | COMPILER_VERSION_INTERNAL,']','\0'}; 569 | #endif 570 | 571 | /* Construct a string literal encoding the version number components. */ 572 | #ifdef SIMULATE_VERSION_MAJOR 573 | char const info_simulate_version[] = { 574 | 'I', 'N', 'F', 'O', ':', 575 | 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', 576 | SIMULATE_VERSION_MAJOR, 577 | # ifdef SIMULATE_VERSION_MINOR 578 | '.', SIMULATE_VERSION_MINOR, 579 | # ifdef SIMULATE_VERSION_PATCH 580 | '.', SIMULATE_VERSION_PATCH, 581 | # ifdef SIMULATE_VERSION_TWEAK 582 | '.', SIMULATE_VERSION_TWEAK, 583 | # endif 584 | # endif 585 | # endif 586 | ']','\0'}; 587 | #endif 588 | 589 | /* Construct the string literal in pieces to prevent the source from 590 | getting matched. Store it in a pointer rather than an array 591 | because some compilers will just produce instructions to fill the 592 | array rather than assigning a pointer to a static array. */ 593 | char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; 594 | char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; 595 | 596 | 597 | 598 | 599 | #if defined(_MSC_VER) && defined(_MSVC_LANG) 600 | #define CXX_STD _MSVC_LANG 601 | #else 602 | #define CXX_STD __cplusplus 603 | #endif 604 | 605 | const char* info_language_dialect_default = "INFO" ":" "dialect_default[" 606 | #if CXX_STD > 201703L 607 | "20" 608 | #elif CXX_STD >= 201703L 609 | "17" 610 | #elif CXX_STD >= 201402L 611 | "14" 612 | #elif CXX_STD >= 201103L 613 | "11" 614 | #else 615 | "98" 616 | #endif 617 | "]"; 618 | 619 | /*--------------------------------------------------------------------------*/ 620 | 621 | int main(int argc, char* argv[]) 622 | { 623 | int require = 0; 624 | require += info_compiler[argc]; 625 | require += info_platform[argc]; 626 | #ifdef COMPILER_VERSION_MAJOR 627 | require += info_version[argc]; 628 | #endif 629 | #ifdef COMPILER_VERSION_INTERNAL 630 | require += info_version_internal[argc]; 631 | #endif 632 | #ifdef SIMULATE_ID 633 | require += info_simulate[argc]; 634 | #endif 635 | #ifdef SIMULATE_VERSION_MAJOR 636 | require += info_simulate_version[argc]; 637 | #endif 638 | #if defined(__CRAYXE) || defined(__CRAYXC) 639 | require += info_cray[argc]; 640 | #endif 641 | require += info_language_dialect_default[argc]; 642 | (void)argv; 643 | return require; 644 | } 645 | -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.obj -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/CMakeOutput.log: -------------------------------------------------------------------------------- 1 | The system is: Windows - 10.0.18362 - AMD64 2 | Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. 3 | Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe 4 | Build flags: 5 | Id flags: 6 | 7 | The output was: 8 | 0 9 | Microsoft (R) C/C++ Optimizing Compiler Version 19.24.28314 for x64 10 | Copyright (C) Microsoft Corporation. All rights reserved. 11 | 12 | CMakeCCompilerId.c 13 | Microsoft (R) Incremental Linker Version 14.24.28314.0 14 | Copyright (C) Microsoft Corporation. All rights reserved. 15 | 16 | /out:CMakeCCompilerId.exe 17 | CMakeCCompilerId.obj 18 | 19 | 20 | Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe" 21 | 22 | Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj" 23 | 24 | The C compiler identification is MSVC, found in "C:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking/out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdC/CMakeCCompilerId.exe" 25 | 26 | Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. 27 | Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/HostX64/x64/cl.exe 28 | Build flags: 29 | Id flags: 30 | 31 | The output was: 32 | 0 33 | Microsoft (R) C/C++ Optimizing Compiler Version 19.24.28314 for x64 34 | Copyright (C) Microsoft Corporation. All rights reserved. 35 | 36 | CMakeCXXCompilerId.cpp 37 | Microsoft (R) Incremental Linker Version 14.24.28314.0 38 | Copyright (C) Microsoft Corporation. All rights reserved. 39 | 40 | /out:CMakeCXXCompilerId.exe 41 | CMakeCXXCompilerId.obj 42 | 43 | 44 | Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe" 45 | 46 | Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj" 47 | 48 | The CXX compiler identification is MSVC, found in "C:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking/out/build/x64-Debug/CMakeFiles/3.15.19101501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe" 49 | 50 | Determining if the C compiler works passed with the following output: 51 | Change Dir: C:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking/out/build/x64-Debug/CMakeFiles/CMakeTmp 52 | 53 | Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe cmTC_41f9d && [1/2] Building C object CMakeFiles\cmTC_41f9d.dir\testCCompiler.c.obj 54 | [2/2] Linking C executable cmTC_41f9d.exe 55 | 56 | 57 | 58 | Detecting C compiler ABI info compiled with the following output: 59 | Change Dir: C:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking/out/build/x64-Debug/CMakeFiles/CMakeTmp 60 | 61 | Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe cmTC_79822 && [1/2] Building C object CMakeFiles\cmTC_79822.dir\CMakeCCompilerABI.c.obj 62 | [2/2] Linking C executable cmTC_79822.exe 63 | 64 | 65 | 66 | Determining if the CXX compiler works passed with the following output: 67 | Change Dir: C:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking/out/build/x64-Debug/CMakeFiles/CMakeTmp 68 | 69 | Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe cmTC_a9800 && [1/2] Building CXX object CMakeFiles\cmTC_a9800.dir\testCXXCompiler.cxx.obj 70 | [2/2] Linking CXX executable cmTC_a9800.exe 71 | 72 | 73 | 74 | Detecting CXX compiler ABI info compiled with the following output: 75 | Change Dir: C:/Manank/all/sensor-fusion/SFND_2D_Feature_Tracking/out/build/x64-Debug/CMakeFiles/CMakeTmp 76 | 77 | Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe cmTC_2a930 && [1/2] Building CXX object CMakeFiles\cmTC_2a930.dir\CMakeCXXCompilerABI.cpp.obj 78 | [2/2] Linking CXX executable cmTC_2a930.exe 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/ShowIncludes/foo.h: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/ShowIncludes/main.c: -------------------------------------------------------------------------------- 1 | #include "foo.h" 2 | int main(){} 3 | -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/ShowIncludes/main.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/out/build/x64-Debug/CMakeFiles/ShowIncludes/main.obj -------------------------------------------------------------------------------- /out/build/x64-Debug/CMakeFiles/cmake.check_cache: -------------------------------------------------------------------------------- 1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file 2 | -------------------------------------------------------------------------------- /out/build/x64-Debug/VSInheritEnvironments.txt: -------------------------------------------------------------------------------- 1 | msvc_x64_x64 -------------------------------------------------------------------------------- /results/output-matches.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/results/output-matches.gif -------------------------------------------------------------------------------- /results/outputX-matches.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manankshastri/2D-Feature-Tracking/7e7956844a6000411fdd3f3d2341c2e4559f0316/results/outputX-matches.gif -------------------------------------------------------------------------------- /src/MidTermProject_Camera_Student.cpp: -------------------------------------------------------------------------------- 1 | /* INCLUDES FOR THIS PROJECT */ 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | #include "dataStructures.h" 17 | #include "matching2D.hpp" 18 | 19 | using namespace std; 20 | 21 | /* MAIN PROGRAM */ 22 | int main(int argc, const char *argv[]) { 23 | 24 | /* INIT VARIABLES AND DATA STRUCTURES */ 25 | 26 | // data location 27 | string dataPath = "../"; 28 | 29 | // camera 30 | string imgBasePath = dataPath + "images/"; 31 | string imgPrefix = "KITTI/2011_09_26/image_00/data/000000"; // left camera, color 32 | string imgFileType = ".png"; 33 | int imgStartIndex = 0; // first file index to load (assumes Lidar and camera names have identical naming convention) 34 | int imgEndIndex = 9; // last file index to load 35 | int imgFillWidth = 4; // no. of digits which make up the file index (e.g. img-0001.png) 36 | 37 | // misc 38 | int dataBufferSize = 2; // no. of images which are held in memory (ring buffer) at the same time 39 | vector dataBuffer; // list of data frames which are held in memory at the same time 40 | bool bVis = false; // visualize results 41 | 42 | int matchedKeypoints = 0; 43 | 44 | // logging results 45 | // ofstream result1; 46 | 47 | // result1.open("../result1.csv", fstream::out | fstream::app); 48 | // result1<<"imgIndex"<<","<<"detectorType"<<","<<"descriptorType"<<","<<""<<"matchedKeypoints"<<","<<"totalTime"<<","< replace the following code with ring buffer of size dataBufferSize 66 | 67 | // push image into data frame buffer 68 | DataFrame frame; 69 | frame.cameraImg = imgGray; 70 | 71 | if (dataBuffer.size() < dataBufferSize) { 72 | dataBuffer.push_back(frame); // if the size is within the dataBufferSize; push a new image 73 | cout<<"Pushed a new image.."< keypoints; // create empty feature list for current image 88 | string detectorType = "FAST"; 89 | 90 | double detectorTime; 91 | int detectorKeypoints; 92 | 93 | //// STUDENT ASSIGNMENT 94 | //// TASK MP.2 -> add the following keypoint detectors in file matching2D.cpp and enable string-based selection based on detectorType 95 | //// -> HARRIS, FAST, BRISK, ORB, AKAZE, SIFT 96 | 97 | if (detectorType.compare("SHITOMASI") == 0) { 98 | detKeypointsShiTomasi(keypoints, imgGray, detectorTime, detectorKeypoints, true); 99 | } 100 | else if (detectorType.compare("HARRIS") == 0) { 101 | detKeypointsHarris(keypoints, imgGray, detectorTime, detectorKeypoints, true); 102 | } 103 | else if (detectorType.compare("FAST") == 0 || detectorType.compare("BRISK") == 0 || detectorType.compare("ORB") == 0 || 104 | detectorType.compare("AKAZE") == 0 || detectorType.compare("SIFT") == 0) { 105 | detKeypointsModern(keypoints, imgGray, detectorType, detectorTime, detectorKeypoints, true); 106 | } 107 | else { 108 | throw invalid_argument(detectorType + " is not a valid type!!"); 109 | } 110 | //// EOF STUDENT ASSIGNMENT 111 | 112 | //// STUDENT ASSIGNMENT 113 | //// TASK MP.3 -> only keep keypoints on the preceding vehicle 114 | 115 | // only keep keypoints on the preceding vehicle 116 | bool bFocusOnVehicle = true; 117 | cv::Rect vehicleRect(535, 180, 180, 150); 118 | 119 | if (bFocusOnVehicle) { 120 | vector filteredKeypoints; // to filter the keypoints based on the preceding vehicle 121 | 122 | for (auto it : keypoints) { 123 | if (vehicleRect.contains(it.pt)) { 124 | filteredKeypoints.push_back(it); 125 | } 126 | } 127 | keypoints = filteredKeypoints; 128 | cout<<"Filtered Keypoints: "<keypoints = keypoints; 148 | cout << "#2 : DETECT KEYPOINTS done" << endl; 149 | 150 | /* EXTRACT KEYPOINT DESCRIPTORS */ 151 | 152 | //// STUDENT ASSIGNMENT 153 | //// TASK MP.4 -> add the following descriptors in file matching2D.cpp and enable string-based selection based on descriptorType 154 | //// -> BRIEF, ORB, FREAK, AKAZE, SIFT 155 | 156 | cv::Mat descriptors; 157 | double descriptorTime; 158 | string descriptorType = "BRIEF"; // BRIEF, ORB, FREAK, AKAZE, SIFT 159 | descKeypoints((dataBuffer.end() - 1)->keypoints, (dataBuffer.end() - 1)->cameraImg, descriptors, descriptorType, descriptorTime); 160 | //// EOF STUDENT ASSIGNMENT 161 | 162 | // push descriptors for current frame to end of data buffer 163 | (dataBuffer.end() - 1)->descriptors = descriptors; 164 | 165 | cout << "#3 : EXTRACT DESCRIPTORS done" << endl; 166 | 167 | // wait until at least two images have been processed 168 | if (dataBuffer.size() > 1) { 169 | 170 | /* MATCH KEYPOINT DESCRIPTORS */ 171 | 172 | vector matches; 173 | string matcherType = "MAT_BF"; // MAT_BF, MAT_FLANN 174 | string descriptorType = "DES_BINARY"; // DES_BINARY, DES_HOG 175 | string selectorType = "SEL_KNN"; // SEL_NN, SEL_KNN 176 | 177 | //// STUDENT ASSIGNMENT 178 | //// TASK MP.5 -> add FLANN matching in file matching2D.cpp 179 | //// TASK MP.6 -> add KNN match selection and perform descriptor distance ratio filtering with t=0.8 in file matching2D.cpp 180 | 181 | matchDescriptors((dataBuffer.end() - 2)->keypoints, (dataBuffer.end() - 1)->keypoints, 182 | (dataBuffer.end() - 2)->descriptors, (dataBuffer.end() - 1)->descriptors, 183 | matches, descriptorType, matcherType, selectorType); 184 | 185 | //// EOF STUDENT ASSIGNMENT 186 | 187 | // store matches in current data frame 188 | (dataBuffer.end() - 1)->kptMatches = matches; 189 | matchedKeypoints += matches.size(); 190 | 191 | cout << "#4 : MATCH KEYPOINT DESCRIPTORS done" << endl; 192 | 193 | // visualize matches between current and previous image 194 | bVis = true; 195 | if (bVis) { 196 | cv::Mat matchImg = ((dataBuffer.end() - 1)->cameraImg).clone(); 197 | cv::drawMatches((dataBuffer.end() - 2)->cameraImg, (dataBuffer.end() - 2)->keypoints, 198 | (dataBuffer.end() - 1)->cameraImg, (dataBuffer.end() - 1)->keypoints, 199 | matches, matchImg, 200 | cv::Scalar::all(-1), cv::Scalar::all(-1), 201 | vector(), cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS); 202 | 203 | string windowName = "Matching keypoints between two camera images"; 204 | cv::namedWindow(windowName, 7); 205 | cv::imshow(windowName, matchImg); 206 | cout << "Press key to continue to next image" << endl; 207 | cv::waitKey(0); // wait for key to be pressed 208 | } 209 | bVis = false; 210 | 211 | } 212 | cout<<"\n---------------------\n"; 213 | // result1< 5 | #include 6 | 7 | 8 | struct DataFrame { // represents the available sensor information at the same time instance 9 | 10 | cv::Mat cameraImg; // camera image 11 | 12 | std::vector keypoints; // 2D keypoints within camera image 13 | cv::Mat descriptors; // keypoint descriptors 14 | std::vector kptMatches; // keypoint matches between previous and current frame 15 | }; 16 | 17 | 18 | #endif /* dataStructures_h */ 19 | -------------------------------------------------------------------------------- /src/matching2D.hpp: -------------------------------------------------------------------------------- 1 | #ifndef matching2D_hpp 2 | #define matching2D_hpp 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | #include "dataStructures.h" 20 | 21 | 22 | void detKeypointsHarris(std::vector &keypoints, cv::Mat &img, double &detectorTime, int &detectorKeypoints, bool bVis=false); 23 | void detKeypointsShiTomasi(std::vector &keypoints, cv::Mat &img, double &detectorTime, int &detectorKeypoints, bool bVis=false); 24 | void detKeypointsModern(std::vector &keypoints, cv::Mat &img, std::string detectorType, double &detectorTime, int &detectorKeypoints, bool bVis=false); 25 | void descKeypoints(std::vector &keypoints, cv::Mat &img, cv::Mat &descriptors, std::string descriptorType, double &descriptorTime); 26 | void matchDescriptors(std::vector &kPtsSource, std::vector &kPtsRef, cv::Mat &descSource, cv::Mat &descRef, 27 | std::vector &matches, std::string descriptorType, std::string matcherType, std::string selectorType); 28 | 29 | #endif /* matching2D_hpp */ 30 | -------------------------------------------------------------------------------- /src/matching2D_Student.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "matching2D.hpp" 3 | 4 | using namespace std; 5 | 6 | // Find best matches for keypoints in two camera images based on several matching methods 7 | void matchDescriptors(std::vector &kPtsSource, std::vector &kPtsRef, cv::Mat &descSource, cv::Mat &descRef, 8 | std::vector &matches, std::string descriptorType, std::string matcherType, std::string selectorType) { 9 | // configure matcher 10 | bool crossCheck = false; 11 | cv::Ptr matcher; 12 | 13 | if (matcherType.compare("MAT_BF") == 0) { 14 | int normType = descriptorType.compare("DES_BINARY") == 0 ? cv::NORM_HAMMING : cv::NORM_L2; 15 | matcher = cv::BFMatcher::create(normType, crossCheck); 16 | } 17 | else if (matcherType.compare("MAT_FLANN") == 0) { 18 | if (descSource.type() != CV_32F) { 19 | // OpenCV bug workaround : convert binary descriptors to floating point due to a bug in current OpenCV implementation 20 | descSource.convertTo(descSource, CV_32F); 21 | descRef.convertTo(descRef, CV_32F); 22 | } 23 | // FLANN matching 24 | matcher = cv::DescriptorMatcher::create(cv::DescriptorMatcher::FLANNBASED); 25 | cout<<"FLANN matching"<match(descSource, descRef, matches); // Finds the best match for each descriptor in desc1 32 | } 33 | else if (selectorType.compare("SEL_KNN") == 0) { 34 | // k nearest neighbors (k=2) 35 | vector> knn_matches; 36 | matcher->knnMatch(descSource, descRef, knn_matches, 2); // finds the 2 best matches 37 | 38 | // filter matches using descriptor distance ratio test 39 | double minDescDistRatio = 0.8; 40 | for (auto it = knn_matches.begin(); it != knn_matches.end(); ++it) { 41 | 42 | if ((*it)[0].distance < minDescDistRatio * (*it)[1].distance) { 43 | matches.push_back((*it)[0]); 44 | } 45 | } 46 | cout << "# keypoints removed = " << knn_matches.size() - matches.size() << endl; 47 | } 48 | } 49 | 50 | // Use one of several types of state-of-art descriptors to uniquely identify keypoints 51 | void descKeypoints(vector &keypoints, cv::Mat &img, cv::Mat &descriptors, string descriptorType, double &descriptorTime) { 52 | // select appropriate descriptor 53 | cv::Ptr extractor; 54 | if (descriptorType.compare("BRISK") == 0){ 55 | int threshold = 30; // FAST/AGAST detection threshold score. 56 | int octaves = 3; // detection octaves (use 0 to do single scale) 57 | float patternScale = 1.0f; // apply this scale to the pattern used for sampling the neighbourhood of a keypoint. 58 | 59 | extractor = cv::BRISK::create(threshold, octaves, patternScale); 60 | } 61 | else if (descriptorType.compare("BRIEF") == 0) { 62 | extractor = cv::xfeatures2d::BriefDescriptorExtractor::create(); 63 | } 64 | else if (descriptorType.compare("ORB") == 0) { 65 | extractor = cv::ORB::create(); 66 | } 67 | else if (descriptorType.compare("FREAK") == 0) { 68 | extractor = cv::xfeatures2d::FREAK::create(); 69 | } 70 | else if (descriptorType.compare("AKAZE") == 0) { 71 | extractor = cv::AKAZE::create(); 72 | } 73 | else if (descriptorType.compare("SIFT") == 0) { 74 | extractor = cv::xfeatures2d::SiftDescriptorExtractor::create(); 75 | } 76 | else { 77 | throw invalid_argument(descriptorType + "is not a valid type!!"); 78 | } 79 | 80 | // perform feature description 81 | descriptorTime = (double)cv::getTickCount(); 82 | extractor->compute(img, keypoints, descriptors); 83 | descriptorTime = ((double)cv::getTickCount() - descriptorTime) / cv::getTickFrequency(); 84 | descriptorTime = 1000 * descriptorTime / 1.0; 85 | cout << descriptorType << " descriptor extraction in " << descriptorTime << " ms" << endl; 86 | } 87 | 88 | // Detect keypoints in image using the traditional Shi-Thomasi detector 89 | void detKeypointsShiTomasi(vector &keypoints, cv::Mat &img, double &detectorTime, int &detectorKeypoints, bool bVis) { 90 | // compute detector parameters based on image size 91 | int blockSize = 4; // size of an average block for computing a derivative covariation matrix over each pixel neighborhood 92 | double maxOverlap = 0.0; // max. permissible overlap between two features in % 93 | double minDistance = (1.0 - maxOverlap) * blockSize; 94 | int maxCorners = img.rows * img.cols / max(1.0, minDistance); // max. num. of keypoints 95 | 96 | double qualityLevel = 0.01; // minimal accepted quality of image corners 97 | double k = 0.04; 98 | 99 | // Apply corner detection 100 | detectorTime = (double)cv::getTickCount(); 101 | vector corners; 102 | cv::goodFeaturesToTrack(img, corners, maxCorners, qualityLevel, minDistance, cv::Mat(), blockSize, false, k); 103 | 104 | // add corners to result vector 105 | for (auto it = corners.begin(); it != corners.end(); ++it) { 106 | 107 | cv::KeyPoint newKeyPoint; 108 | newKeyPoint.pt = cv::Point2f((*it).x, (*it).y); 109 | newKeyPoint.size = blockSize; 110 | keypoints.push_back(newKeyPoint); 111 | } 112 | 113 | detectorTime = ((double)cv::getTickCount() - detectorTime) / cv::getTickFrequency(); 114 | detectorTime = 1000 * detectorTime / 1.0; 115 | detectorKeypoints = keypoints.size(); 116 | cout << "Shi-Tomasi detection with n=" << detectorKeypoints << " keypoints in " << detectorTime << " ms" << endl; 117 | 118 | // visualize results 119 | if (bVis) { 120 | cv::Mat visImage = img.clone(); 121 | cv::drawKeypoints(img, keypoints, visImage, cv::Scalar::all(-1), cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS); 122 | string windowName = "Shi-Tomasi Corner Detector Results"; 123 | cv::namedWindow(windowName, 6); 124 | imshow(windowName, visImage); 125 | cv::waitKey(0); 126 | } 127 | } 128 | 129 | // Detect keypoints in image using Harris Corner Detector 130 | void detKeypointsHarris(vector &keypoints, cv::Mat &img, double &detectorTime, int &detectorKeypoints, bool bVis) { 131 | 132 | // detector parameters 133 | int blockSize = 2; // for every pixel, a blockSize x blockSize neighborhood is considered 134 | int apertureSize = 3; // aperture parametes for Sobel operator (must be odd) 135 | int minResponse = 100; // minimum value for a corner in thr 8bit scaled response matrix 136 | double k = 0.04; // Harris parameter 137 | 138 | // detect Harris corners and normalize output 139 | detectorTime = (double)cv::getTickCount(); 140 | cv::Mat dst, dst_norm, dst_norm_scaled; 141 | dst = cv::Mat::zeros(img.size(), CV_32FC1); 142 | cv::cornerHarris(img, dst, blockSize, apertureSize, k, cv::BORDER_DEFAULT); 143 | cv::normalize(dst, dst_norm, 0, 255, cv::NORM_MINMAX, CV_32FC1, cv::Mat()); 144 | cv::convertScaleAbs(dst_norm, dst_norm_scaled); 145 | 146 | // look for prominent corners and instantiate keypoints 147 | double maxOverlap = 0.0; // maximum permissible overlap between two features in %, used during non-max suppression 148 | for (size_t j = 0; j (j, i); 151 | if (response > minResponse){ 152 | // only store points above a threshold 153 | 154 | cv::KeyPoint newKeyPoint; 155 | newKeyPoint.pt = cv::Point2f(i, j); 156 | newKeyPoint.size = 2 * apertureSize; 157 | newKeyPoint.response = response; 158 | 159 | // perform non-maximum suppresion(NMS) in local neighborhood around new keypoint 160 | bool bOverlap = false; 161 | for (auto it = keypoints.begin(); it != keypoints.end(); ++it) { 162 | double kptOverlap = cv::KeyPoint::overlap(newKeyPoint, *it); 163 | 164 | if (kptOverlap > maxOverlap) { 165 | bOverlap = true; 166 | if (newKeyPoint.response > (*it).response) { 167 | // if overlap is > t and response is higher for a new kpt 168 | // replace old keypoint with new one 169 | *it = newKeyPoint; 170 | break; // quit loop over keypoint 171 | } 172 | } 173 | } 174 | 175 | if (!bOverlap) { 176 | // only add new keypoint if no overlap has been found 177 | keypoints.push_back(newKeyPoint); // store new keypoint in dynamic list 178 | } 179 | } 180 | } 181 | } 182 | 183 | detectorTime = ((double)cv::getTickCount() - detectorTime) / cv::getTickFrequency(); 184 | detectorTime = 1000 * detectorTime / 1.0; 185 | detectorKeypoints = keypoints.size(); 186 | cout << "Harris detection with n=" << detectorKeypoints << " keypoints in " << detectorTime << " ms" << endl; 187 | 188 | // visualize results 189 | if (bVis) { 190 | cv::Mat visImage = img.clone(); 191 | cv::drawKeypoints(img, keypoints, visImage, cv::Scalar::all(-1), cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS); 192 | string windowName = "Harris Corner Detector Results"; 193 | cv::namedWindow(windowName, 6); 194 | imshow(windowName, visImage); 195 | cv::waitKey(0); 196 | } 197 | } 198 | 199 | // Detect keypoints in image using the modern techniques - FAST, BRISK, ORB, AKAZE, SIFT 200 | void detKeypointsModern(vector &keypoints, cv::Mat &img, string detectorType, double &detectorTime, int &detectorKeypoints, bool bVis) { 201 | 202 | string windowName; 203 | cv::Ptr detector; 204 | 205 | if (detectorType.compare("FAST") == 0) { 206 | int threshold = 30; // difference between intensity of the central pixel and pixel of a circle around this pixel 207 | bool bNMS = true; // perform non-max suppresion on keypoints 208 | cv::FastFeatureDetector::DetectorType type = cv::FastFeatureDetector::TYPE_9_16; 209 | detector = cv::FastFeatureDetector::create(threshold, bNMS, type); 210 | 211 | detectorTime = (double)cv::getTickCount(); 212 | detector->detect(img, keypoints); 213 | detectorTime = ((double)cv::getTickCount() - detectorTime) / cv::getTickFrequency(); 214 | detectorTime = 1000 * detectorTime / 1.0; 215 | detectorKeypoints = keypoints.size(); 216 | 217 | cout<<"FAST Detector with n= " <detect(img, keypoints); 225 | 226 | detectorTime = ((double)cv::getTickCount() - detectorTime) / cv::getTickFrequency(); 227 | detectorTime = 1000 * detectorTime / 1.0; 228 | detectorKeypoints = keypoints.size(); 229 | cout<<"BRISK Detector with n= " <detect(img, keypoints); 237 | 238 | detectorTime = ((double)cv::getTickCount() - detectorTime) / cv::getTickFrequency(); 239 | detectorTime = 1000 * detectorTime / 1.0; 240 | detectorKeypoints = keypoints.size(); 241 | cout<<"ORB Detector with n= " <detect(img, keypoints); 249 | 250 | detectorTime = ((double)cv::getTickCount() - detectorTime) / cv::getTickFrequency(); 251 | detectorTime = 1000 * detectorTime / 1.0; 252 | detectorKeypoints = keypoints.size(); 253 | cout<<"AKAZE Detector with n= " <detect(img, keypoints); 261 | 262 | detectorTime = ((double)cv::getTickCount() - detectorTime) / cv::getTickFrequency(); 263 | detectorTime = 1000 * detectorTime / 1.0; 264 | detectorKeypoints = keypoints.size(); 265 | cout<<"SIFT Detector with n= " << detectorKeypoints <<" keypoints in "<