]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
22778: [CEA 1298] Python file compilation should be done at build time, not install...
authoreap <eap@opencascade.com>
Tue, 30 Dec 2014 13:49:35 +0000 (16:49 +0300)
committerabn <adrien.bruneton@cea.fr>
Mon, 12 Jan 2015 10:08:12 +0000 (11:08 +0100)
salome_adm/cmake_files/SalomeMacros.cmake

index 15d2ca90e3165a366e3dc5187aec3b9c9d6df411..4d51741efbf2aed4cbea426df830fb07e1114eb8 100644 (file)
@@ -120,10 +120,25 @@ MACRO(SALOME_INSTALL_SCRIPTS file_list path)
     INSTALL(FILES ${PREFIX}${file} DESTINATION ${path} PERMISSIONS ${PERMS})
     GET_FILENAME_COMPONENT(ext ${file} EXT)
     IF(ext STREQUAL .py)
-      INSTALL(CODE "MESSAGE(STATUS \"py compiling ${CMAKE_INSTALL_PREFIX}/${path}/${file_name}\")")
-      INSTALL(CODE "SET(CMD \"import py_compile ; py_compile.compile('${CMAKE_INSTALL_PREFIX}/${path}/${file_name}')\")")
-      INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"\${CMD}\")")
-      INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -O -c \"\${CMD}\")")
+      # FILE TIMESTAMP command appears in cmake-2.8.11
+      IF(${CMAKE_VERSION} VERSION_LESS "2.8.11")
+        INSTALL(CODE "MESSAGE(STATUS \"py compiling ${CMAKE_INSTALL_PREFIX}/${path}/${file_name}\")")
+        INSTALL(CODE "SET(CMD \"import py_compile ; py_compile.compile('${CMAKE_INSTALL_PREFIX}/${path}/${file_name}')\")")
+        INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"\${CMD}\")")
+        INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -O -c \"\${CMD}\")")
+      ELSE(${CMAKE_VERSION} VERSION_LESS "2.8.11")
+        GET_FILENAME_COMPONENT(file_we ${file_name} NAME_WE)
+        INSTALL(CODE "SET(CMD \"import py_compile ; py_compile.compile('${CMAKE_INSTALL_PREFIX}/${path}/${file_name}')\")")
+        INSTALL(CODE "FILE(TIMESTAMP \"${CMAKE_CURRENT_SOURCE_DIR}/${file}\"            py_time)")
+        INSTALL(CODE "FILE(TIMESTAMP \"${CMAKE_INSTALL_PREFIX}/${path}/${file_we}.pyc\" pyc_time)")
+        INSTALL(CODE "FILE(TIMESTAMP \"${CMAKE_INSTALL_PREFIX}/${path}/${file_we}.pyo\" pyo_time)")
+        #INSTALL(CODE "MESSAGE(STATUS \"\${py_time} \${pyc_time} \")")
+        INSTALL(CODE "STRING(COMPARE LESS \${pyc_time} \${py_time} to_install_pyc)")
+        INSTALL(CODE "STRING(COMPARE LESS \${pyo_time} \${py_time} to_install_pyo)")
+        INSTALL(CODE "IF (\${to_install_pyc} OR \${to_install_pyo}) \n MESSAGE(STATUS \"py compiling ${CMAKE_INSTALL_PREFIX}/${path}/${file_name}\") \n ENDIF()")
+        INSTALL(CODE "IF (\${to_install_pyc}) \n EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"\${CMD}\") \n ENDIF()")
+        INSTALL(CODE "IF (\${to_install_pyo}) \n EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -O -c \"\${CMD}\") \n ENDIF()")
+      ENDIF(${CMAKE_VERSION} VERSION_LESS "2.8.11")
     ENDIF(ext STREQUAL .py)
   ENDFOREACH(file ${file_list})
 ENDMACRO(SALOME_INSTALL_SCRIPTS)