Revision 2a134bd5

b/cmake/Modules/GrMiscUtils.cmake
84 84
    LIST(REMOVE_AT _cmake_source_dirs 0)
85 85
    LIST(REMOVE_AT _cmake_binary_dirs 0)
86 86
ENDMACRO(GR_INCLUDE_SUBDIRECTORY)
87

88
########################################################################
89
# Create an always-built target with a unique name
90
# Usage: GR_UNIQUE_TARGET(<description> <dependencies list>)
91
########################################################################
92
FUNCTION(GR_UNIQUE_TARGET desc)
93
    INCLUDE(GrPython)
94
    FILE(RELATIVE_PATH reldir ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
95
    EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import re, hashlib
96
unique = hashlib.md5('${reldir}${ARGN}').hexdigest()[:5]
97
print re.sub('\\W', '_', '${desc} ${reldir} ' + unique)"
98
    OUTPUT_VARIABLE _target OUTPUT_STRIP_TRAILING_WHITESPACE)
99
    ADD_CUSTOM_TARGET(${_target} ALL DEPENDS ${ARGN})
100
ENDFUNCTION(GR_UNIQUE_TARGET)
b/cmake/Modules/GrPython.cmake
51 51
#make the path to the executable appear in the cmake gui
52 52
SET(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE} CACHE FILEPATH "python interpreter")
53 53

54
IF(NOT PYTHONINTERP_FOUND)
55
    MESSAGE(FATAL_ERROR "Error: Python interpretor required by the build system.")
56
ENDIF(NOT PYTHONINTERP_FOUND)
57

58 54
########################################################################
59 55
# Check for the existence of a python module:
60 56
# - desc a string description of the check
......
95 91
FILE(TO_CMAKE_PATH ${GR_PYTHON_DIR} GR_PYTHON_DIR)
96 92

97 93
########################################################################
94
# Create an always-built target with a unique name
95
# Usage: GR_UNIQUE_TARGET(<description> <dependencies list>)
96
########################################################################
97
FUNCTION(GR_UNIQUE_TARGET desc)
98
    FILE(RELATIVE_PATH reldir ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
99
    EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import re, hashlib
100
unique = hashlib.md5('${reldir}${ARGN}').hexdigest()[:5]
101
print(re.sub('\\W', '_', '${desc} ${reldir} ' + unique))"
102
    OUTPUT_VARIABLE _target OUTPUT_STRIP_TRAILING_WHITESPACE)
103
    ADD_CUSTOM_TARGET(${_target} ALL DEPENDS ${ARGN})
104
ENDFUNCTION(GR_UNIQUE_TARGET)
105

106
########################################################################
98 107
# Install python sources (also builds and installs byte-compiled python)
99 108
########################################################################
100 109
FUNCTION(GR_PYTHON_INSTALL)
......
163 172

164 173
    ENDIF()
165 174

166
    INCLUDE(GrMiscUtils) #unique target
167 175
    GR_UNIQUE_TARGET("pygen" ${python_install_gen_targets})
168 176

169 177
ENDFUNCTION(GR_PYTHON_INSTALL)

Also available in: Unified diff