THRIFT-3322 CMake generated "make check" failes on python_test
Patch: Claudius Heine
diff --git a/test/py/CMakeLists.txt b/test/py/CMakeLists.txt
index 6c907bf..3756a46 100755
--- a/test/py/CMakeLists.txt
+++ b/test/py/CMakeLists.txt
@@ -17,32 +17,17 @@
# under the License.
#
+add_test(NAME python_test_generate
+ COMMAND ${CMAKE_COMMAND}
+ -DTHRIFTCOMPILER=$<TARGET_FILE:thrift-compiler>
+ -DMY_PROJECT_DIR=${PROJECT_SOURCE_DIR}
+ -DMY_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/generate.cmake
+)
+
add_test(NAME python_test
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/RunClientServer.py
- DEPENDS gen-py-default/ThriftTest/ThriftTest.py
+ DEPENDS python_test_generate
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
-add_custom_command(OUTPUT gen-py-default/ThriftTest/ThriftTest.py
- COMMAND thrift-compiler --gen gen-py-default -out gen-py-default ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
-)
-
-add_custom_command(OUTPUT gen-py-slots/ThriftTest/ThriftTest.py
- COMMAND thrift-compiler --gen py:slots -out gen-py-slots ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
-)
-
-add_custom_command(OUTPUT gen-py-newstyle/ThriftTest/ThriftTest.py
- COMMAND thrift-compiler --gen py:new_style -out gen-py-newstyle ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
-)
-
-add_custom_command(OUTPUT gen-py-newstyleslots/ThriftTest/ThriftTest.py
- COMMAND thrift-compiler --gen py:new_style,slots -out gen-py-newstyleslots ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
-)
-
-add_custom_command(OUTPUT gen-py-dynamic/ThriftTest/ThriftTest.py
- COMMAND thrift-compiler --gen py:dynamic -out gen-py-dynamic ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
-)
-
-add_custom_command(OUTPUT gen-py-dynamicslots/ThriftTest/ThriftTest.py
- COMMAND thrift-compiler --gen py:dynamic,slots -out gen-py-dynamicslots ${PROJECT_SOURCE_DIR}/test/ThriftTest.thrift
-)
diff --git a/test/py/generate.cmake b/test/py/generate.cmake
new file mode 100644
index 0000000..a0b94d6
--- /dev/null
+++ b/test/py/generate.cmake
@@ -0,0 +1,24 @@
+macro(GENERATE FILENAME GENERATOR OUTPUTDIR)
+ file(MAKE_DIRECTORY ${MY_CURRENT_SOURCE_DIR}/${OUTPUTDIR})
+ execute_process(COMMAND ${THRIFTCOMPILER} --gen ${GENERATOR} -out ${OUTPUTDIR} ${FILENAME}
+ WORKING_DIRECTORY ${MY_CURRENT_SOURCE_DIR}
+ RESULT_VARIABLE CMD_RESULT)
+ if(CMD_RESULT)
+ message(FATAL_ERROR "Error generating ${FILENAME} with generator ${GENERATOR}")
+ endif()
+endmacro(GENERATE)
+
+generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py gen-py-default)
+generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py:slots gen-py-slots)
+generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py:new_style gen-py-newstyle)
+generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py:new_style,slots gen-py-newstyleslots)
+generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py:dynamic gen-py-dynamic)
+generate(${MY_PROJECT_DIR}/test/ThriftTest.thrift py:dynamic,slots gen-py-dynamicslots)
+
+generate(${MY_PROJECT_DIR}/test/DebugProtoTest.thrift py gen-py-default)
+generate(${MY_PROJECT_DIR}/test/DebugProtoTest.thrift py:slots gen-py-slots)
+generate(${MY_PROJECT_DIR}/test/DebugProtoTest.thrift py:new_style gen-py-newstyle)
+generate(${MY_PROJECT_DIR}/test/DebugProtoTest.thrift py:new_style,slots gen-py-newstyleslots)
+generate(${MY_PROJECT_DIR}/test/DebugProtoTest.thrift py:dynamic gen-py-dynamic)
+generate(${MY_PROJECT_DIR}/test/DebugProtoTest.thrift py:dynamic,slots gen-py-dynamicslots)
+