icd: Move handwritten code into .cpp file

Takes the hand written portions of the mock_icd_generator.py and puts them
in a .cpp file, then moves the code gen into function_declarations.h and
function_definitions.h.

This move makes it easier to maintain the C++ code that exists because it
no longer lives in a python file. This commit does not make adding custom
code easier, as it still is in the python file. The intent of this commit
is to create a baseline that would allow such code to be put inside of C++
instead of python.

Additionally, this commit removes egregious over engineering in the
mock icd CMakeLists.txt. Things removed are macros that are only called
once, foreach loops over single items, and replacing variables that had no
solid reason to be a variable.
9 files changed
tree: a289dd7d1fb7a38a783c5e54a044c822aef8582d
  1. .github/
  2. build-android/
  3. build-gn/
  4. cmake/
  5. common/
  6. cube/
  7. external/
  8. icd/
  9. scripts/
  10. tests/
  11. vulkaninfo/
  12. windows-runtime-installer/
  13. .clang-format
  14. .cmake-format.py
  15. .gitattributes
  16. .gitignore
  17. .gn
  18. BUILD.gn
  19. BUILD.md
  20. CMakeLists.txt
  21. CODE_OF_CONDUCT.md
  22. CONTRIBUTING.md
  23. GOVERNANCE.md
  24. LICENSE.txt
  25. mac_common.cmake
  26. README.md
README.md

KhronosGroup/Vulkan-Tools

This project provides Vulkan tools and utilities that can assist development by enabling developers to verify their applications correct use of the Vulkan API.

Intro

The following components are available in this repository:

Contact Information

Information for Developing or Contributing:

Please see the CONTRIBUTING.md file in this repository for more details. Please see the GOVERNANCE.md file in this repository for repository management details.

How to Build and Run

BUILD.md includes directions for building all components as well as running the vkcube demo applications.

Version Tagging Scheme

Updates to the Vulkan-Tools repository which correspond to a new Vulkan specification release are tagged using the following format: v<version> (e.g., v1.1.96).

Note: Marked version releases have undergone thorough testing but do not imply the same quality level as SDK tags. SDK tags follow the sdk-<version>.<patch> format (e.g., sdk-1.1.92.0).

This scheme was adopted following the 1.1.96 Vulkan specification release.

License

This work is released as open source under a Apache-style license from Khronos including a Khronos copyright.

See LICENSE.txt for a full list of licenses used in this repository.

Acknowledgements

While this project has been developed primarily by LunarG, Inc., there are many other companies and individuals making this possible: Valve Corporation, funding project development; Google providing significant contributions to the validation layers; Khronos providing oversight and hosting of the project.