build: kindly ask python not to polute src/

Type: make
Change-Id: I1ec82e0f3c19dee79f942996339240c73d4e380c
Signed-off-by: Damjan Marion <damarion@cisco.com>
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1730e7b..8463120 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -73,6 +73,7 @@
 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${VPP_RUNTIME_DIR})
 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${VPP_LIBRARY_DIR})
 set(VPP_BINARY_DIR ${CMAKE_BINARY_DIR}/CMakeFiles)
+set(PYENV PYTHONPYCACHEPREFIX=${CMAKE_BINARY_DIR}/CMakeFile/__pycache__)
 
 if (CMAKE_BUILD_TYPE)
   add_compile_options(-g -fPIC -Werror -Wall)
diff --git a/src/cmake/api.cmake b/src/cmake/api.cmake
index 007a906..831c2b1 100644
--- a/src/cmake/api.cmake
+++ b/src/cmake/api.cmake
@@ -38,7 +38,7 @@
   add_custom_command (
     OUTPUT ${OUTPUT_HEADERS}
     COMMAND mkdir -p ${output_dir}
-    COMMAND ${VPP_APIGEN}
+    COMMAND ${PYENV} ${VPP_APIGEN}
     ARGS ${includedir} --includedir ${CMAKE_SOURCE_DIR} --input ${CMAKE_CURRENT_SOURCE_DIR}/${file} --outputdir ${output_dir} --output ${output_name}
     DEPENDS ${VPP_APIGEN} ${CMAKE_CURRENT_SOURCE_DIR}/${file}
     COMMENT "Generating API header ${output_name}"
@@ -63,7 +63,7 @@
   endif()
   add_custom_command (OUTPUT ${output_name}
     COMMAND mkdir -p ${output_dir}
-    COMMAND ${VPP_APIGEN}
+    COMMAND ${PYENV} ${VPP_APIGEN}
     ARGS ${includedir} --includedir ${CMAKE_SOURCE_DIR} --input ${CMAKE_CURRENT_SOURCE_DIR}/${file} JSON --output ${output_name}
     DEPENDS ${VPP_APIGEN} ${CMAKE_CURRENT_SOURCE_DIR}/${file}
     COMMENT "Generating API header ${output_name}"
@@ -94,7 +94,7 @@
   add_custom_command(
     OUTPUT ${output_name}
     WORKING_DIRECTORY ${VPP_BINARY_DIR}/vpp-api/vapi
-    COMMAND ${VPP_VAPI_C_GEN}
+    COMMAND ${PYENV} ${VPP_VAPI_C_GEN}
     ARGS --remove-path ${input}
     DEPENDS ${input} ${VPP_VAPI_C_GEN_DEPENDS}
     COMMENT "Generating VAPI C header ${output_name}"
@@ -121,7 +121,7 @@
   add_custom_command(
     OUTPUT ${output_name}
     WORKING_DIRECTORY ${VPP_BINARY_DIR}/vpp-api/vapi
-    COMMAND ${VPP_VAPI_CPP_GEN}
+    COMMAND ${PYENV} ${VPP_VAPI_CPP_GEN}
     ARGS --gen-h-prefix=vapi --remove-path ${input}
     DEPENDS ${input} ${VPP_VAPI_CPP_GEN_DEPENDS}
     COMMENT "Generating VAPI C++ header ${output_name}"
diff --git a/src/vpp-api/vapi/CMakeLists.txt b/src/vpp-api/vapi/CMakeLists.txt
index 626971f..53034bd 100644
--- a/src/vpp-api/vapi/CMakeLists.txt
+++ b/src/vpp-api/vapi/CMakeLists.txt
@@ -69,7 +69,7 @@
   add_custom_command(
     OUTPUT fake.api.vapi.h
     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vapi_c_gen.py
+    COMMAND ${PYENV} ${CMAKE_CURRENT_SOURCE_DIR}/vapi_c_gen.py
     ARGS --remove-path ${CMAKE_CURRENT_SOURCE_DIR}/fake.api.json
     DEPENDS fake.api.json
     COMMENT "Generating fake VAPI C header ${output_name}"
@@ -78,7 +78,7 @@
   add_custom_command(
     OUTPUT fake.api.vapi.hpp
     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vapi_cpp_gen.py
+    COMMAND ${PYENV} ${CMAKE_CURRENT_SOURCE_DIR}/vapi_cpp_gen.py
     ARGS --remove-path ${CMAKE_CURRENT_SOURCE_DIR}/fake.api.json
     DEPENDS fake.api.json
     COMMENT "Generating fake VAPI C++ header ${output_name}"