1 // mock-program.cpp 2 // 3 // Copyright (c) 2017 Steven Watanabe 4 // 5 // Distributed under the Boost Software License Version 1.0. (See 6 // accompanying file LICENSE_1_0.txt or copy at 7 // http://www.boost.org/LICENSE_1_0.txt) 8 9 // This program does nothing except to exec a python script 10 11 #include <vector> 12 #include <iostream> 13 #include <stdio.h> 14 #include "config.h" 15 16 #if defined(_WIN32) 17 #include <process.h> 18 #define execv _execv 19 #else 20 #include <unistd.h> 21 #endif 22 23 #ifndef PY_SCRIPT 24 #error PY_SCRIPT must be defined to the absolute path to the script to run 25 #endif 26 27 #ifndef PYTHON_CMD 28 #error PYTHON_CMD must be defined to the absolute path to the python interpreter 29 #endif 30 main(int argc,char ** argv)31int main(int argc, char ** argv) 32 { 33 std::vector<char *> args; 34 char python_cmd[] = PYTHON_CMD; 35 char script[] = PY_SCRIPT; 36 args.push_back(python_cmd); 37 args.push_back(script); 38 args.insert(args.end(), argv + 1, argv + argc); 39 args.push_back(NULL); 40 execv(python_cmd, &args[0]); 41 perror("exec"); 42 } 43