reduce compile time after each time cmake configure is executed (swig)

This commit is contained in:
wmayer
2018-08-21 13:20:58 +02:00
parent 7a5a17c744
commit 826b437940

View File

@@ -90,7 +90,27 @@ generate_from_xml(UnitPy)
generate_from_xml(QuantityPy)
if(SWIG_FOUND)
execute_process(COMMAND ${SWIG_EXECUTABLE} -python -external-runtime ${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.h)
# Create the file swigpyrun.hh and then compare with the file swigpyrun.h.
# If the files are different or if swigpyrun.h doesn't exist then copy swigpyrun.hh.
# This is to avoid to having to build the target each time cmake configure is executed.
execute_process(COMMAND ${SWIG_EXECUTABLE} -python -external-runtime ${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.hh)
if (EXISTS "${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.h")
execute_process(
COMMAND ${CMAKE_COMMAND} -E compare_files ${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.hh
${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.h
RESULT_VARIABLE DIFFERENT_FILES
OUTPUT_QUIET
ERROR_QUIET
)
if (DIFFERENT_FILES)
execute_process(COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.hh"
"${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.h")
endif()
else()
execute_process(COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.hh"
"${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.h")
endif()
add_definitions(-DHAVE_SWIG=1)
endif(SWIG_FOUND)