From 383e53ccf9de4febbf7256e69e2bde67f28bfe57 Mon Sep 17 00:00:00 2001 From: Russell Harmon Date: Thu, 7 Nov 2013 22:04:25 -0800 Subject: [PATCH] Propery do slice2py serially during build --- ice/CMakeLists.txt | 67 +++++++++++++++++++------------------------ python/CMakeLists.txt | 8 ++++-- 2 files changed, 34 insertions(+), 41 deletions(-) diff --git a/ice/CMakeLists.txt b/ice/CMakeLists.txt index 293fcec..2ceae0c 100644 --- a/ice/CMakeLists.txt +++ b/ice/CMakeLists.txt @@ -17,59 +17,50 @@ set(SLICE_PY_MODULE_COPIED "${RUMINATE_BINARY_DIR}/python/${SLICE_PY_MODULE_NAME get_filename_component(SLICE_PY_MODULE_DIR "${SLICE_PY_MODULE}" PATH) get_filename_component(SLICE_PY_MODULE_COPIED_DIR "${SLICE_PY_MODULE_COPIED}" PATH) +add_custom_target(generate_nothing) +set(PREVIOUS_SLICE2PY_OUTPUT_TARGET generate_nothing) + foreach(slice_file_with_extension ${SLICE_FILES}) - get_filename_component(slice_file "${slice_file_with_extension}" NAME_WE) - set(GENERATED_CPP_FILE "${CMAKE_CURRENT_BINARY_DIR}/${slice_file}.cpp") - set(GENERATED_H_FILE "${CMAKE_CURRENT_BINARY_DIR}/${slice_file}.h") - set(GENERATED_PY_FILE "${CMAKE_CURRENT_BINARY_DIR}/${slice_file}_ice.py") - set(COPIED_PY_FILE "${RUMINATE_BINARY_DIR}/python/${slice_file}_ice.py") + set(slice_file "${CMAKE_CURRENT_SOURCE_DIR}/${slice_file_with_extension}") + get_filename_component(slice_file_name "${slice_file_with_extension}" NAME_WE) + set(GENERATED_CPP_FILE "${CMAKE_CURRENT_BINARY_DIR}/${slice_file_name}.cpp") + set(GENERATED_H_FILE "${CMAKE_CURRENT_BINARY_DIR}/${slice_file_name}.h") + set(GENERATED_PY_FILE "${CMAKE_CURRENT_BINARY_DIR}/${slice_file_name}_ice.py") + set(COPIED_PY_FILE "${RUMINATE_BINARY_DIR}/python/${slice_file_name}_ice.py") add_custom_command( - OUTPUT ${GENERATED_CPP_FILE} ${GENERATED_H_FILE} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND ${ICE_SLICE2CPP} - ARGS -I ${ICE_SLICE_DIR} ${SLICE_OPTIONS} -I ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${slice_file}.ice + OUTPUT "${GENERATED_CPP_FILE}" "${GENERATED_H_FILE}" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + COMMAND "${ICE_SLICE2CPP}" + ARGS -I "${ICE_SLICE_DIR}" ${SLICE_OPTIONS} -I "${CMAKE_CURRENT_SOURCE_DIR}" "${slice_file}" COMMENT "Compiling ${slice_file_with_extension} to c++" - MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${slice_file}.ice - ) - - add_custom_command( - OUTPUT ${GENERATED_PY_FILE} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND ${ICE_SLICE2PY} - ARGS -I ${ICE_SLICE_DIR} ${SLICE_OPTIONS} -I ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${slice_file}.ice - COMMENT "Compiling ${slice_file_with_extension} to python" - MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${slice_file}.ice + MAIN_DEPENDENCY "${slice_file}" ) add_custom_command( - OUTPUT ${GENERATED_PY_FILE} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND ${ICE_SLICE2PY} - ARGS -I ${ICE_SLICE_DIR} ${SLICE_OPTIONS} -I ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${slice_file}.ice + OUTPUT "${GENERATED_PY_FILE}" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + COMMAND "${ICE_SLICE2PY}" + ARGS -I "${ICE_SLICE_DIR}" ${SLICE_OPTIONS} -I "${CMAKE_CURRENT_SOURCE_DIR}" "${slice_file}" COMMENT "Compiling ${slice_file_with_extension} to python" - MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${slice_file}.ice + MAIN_DEPENDENCY "${slice_file}" + DEPENDS "${PREVIOUS_SLICE2PY_OUTPUT_TARGET}" ) add_custom_command( - OUTPUT ${COPIED_PY_FILE} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND ${CMAKE_COMMAND} - ARGS -E copy ${GENERATED_PY_FILE} ${COPIED_PY_FILE} - MAIN_DEPENDENCY ${GENERATED_PY_FILE} + OUTPUT "${COPIED_PY_FILE}" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + COMMAND "${CMAKE_COMMAND}" + ARGS -E copy "${GENERATED_PY_FILE}" "${COPIED_PY_FILE}" + MAIN_DEPENDENCY "${GENERATED_PY_FILE}" ) - get_filename_component(slice_file_name "${slice_file_with_extension}" NAME) + set(SLICE2PY_OUTPUT_TARGET "generate_${slice_file_name}") + add_custom_target("${SLICE2PY_OUTPUT_TARGET}" DEPENDS "${GENERATED_PY_FILE}") - set(SLICE2PY_OUTPUT_TARGET generate_${slice_file_name}) - if(PREVIOUS_SLICE2PY_OUTPUT_TARGET) - add_custom_target(${SLICE2PY_OUTPUT_TARGET} DEPENDS ${PREVIOUS_SLICE2PY_OUTPUT_TARGET} ${GENERATED_PY_FILE}) - else(PREVIOUS_SLICE2PY_OUTPUT_TARGET) - add_custom_target(${SLICE2PY_OUTPUT_TARGET} DEPENDS ${GENERATED_PY_FILE}) - endif(PREVIOUS_SLICE2PY_OUTPUT_TARGET) + set(SLICE2PY_COPIED_TARGET "copy_${slice_file_name}") + add_custom_target("${SLICE2PY_COPIED_TARGET}" DEPENDS "${SLICE2PY_OUTPUT_TARGET}" "${COPIED_PY_FILE}") - set(SLICE2PY_COPIED_TARGET copy_${slice_file_name}) - add_custom_target(${SLICE2PY_COPIED_TARGET} DEPENDS ${SLICE2PY_OUTPUT_TARGET} ${COPIED_PY_FILE}) set(PREVIOUS_SLICE2PY_OUTPUT_TARGET "${SLICE2PY_OUTPUT_TARGET}") list(APPEND SLICE2CPP_OUTPUT_FILES "${GENERATED_CPP_FILE}" "${GENERATED_H_FILE}") diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index f28aa85..81f3c33 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -11,7 +11,7 @@ set(PYTHON_FILES foreach(python_file_src ${PYTHON_FILES}) get_filename_component(python_file_name "${python_file_src}" NAME) - set(python_file_dest ${CMAKE_CURRENT_BINARY_DIR}/${python_file_name}) + set(python_file_dest "${CMAKE_CURRENT_BINARY_DIR}/${python_file_name}") add_custom_command( OUTPUT "${python_file_dest}" @@ -24,13 +24,15 @@ foreach(python_file_src ${PYTHON_FILES}) list(APPEND PYTHON_COPIED_FILES "${python_file_dest}") endforeach(python_file_src ${PYTHON_FILES}) +set(DEBUGSVR "${CMAKE_CURRENT_BINARY_DIR}/ruminate-dbgsvr") + configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/ruminate-dbgsvr.in" - "${CMAKE_CURRENT_BINARY_DIR}/ruminate-dbgsvr" + "${DEBUGSVR}" @ONLY ) -list(APPEND PYTHON_COPIED_FILES "${CMAKE_CURRENT_BINARY_DIR}/ruminate-dbgsvr") +list(APPEND PYTHON_COPIED_FILES "${DBGSVR}") add_custom_target(copy_py_files DEPENDS copy_ice_py ${PYTHON_COPIED_FILES})