~neon/project-neon/printer-applet

« back to all changes in this revision

Viewing changes to cmake-modules/PythonMacros.cmake

  • Committer: Jonathan Riddell
  • Date: 2008-03-24 00:53:35 UTC
  • Revision ID: git-v1:1a8383f25060c9c9682766319f2e68a7621e5768
add printer-applet, a replacement for kjobviewer.  a Python app.  please test.

svn path=/trunk/kdereview/printer-applet/; revision=789361

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Python macros
 
2
# ~~~~~~~~~~~~~
 
3
# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
 
4
#
 
5
# Redistribution and use is allowed according to the terms of the BSD license.
 
6
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
 
7
#
 
8
# This file defines the following macros:
 
9
#
 
10
# PYTHON_INSTALL (SOURCE_FILE DESINATION_DIR)
 
11
#     Install the SOURCE_FILE, which is a Python .py file, into the
 
12
#     destination directory during install. The file will be byte compiled
 
13
#     and both the .py file and .pyc file will be installed.
 
14
 
 
15
GET_FILENAME_COMPONENT(PYTHON_MACROS_MODULE_PATH ${CMAKE_CURRENT_LIST_FILE}  PATH)
 
16
 
 
17
MACRO(PYTHON_INSTALL SOURCE_FILE DESINATION_DIR)
 
18
  ADD_CUSTOM_TARGET(compile_python_files ALL)
 
19
 
 
20
  # Install the source file.
 
21
  INSTALL(FILES ${SOURCE_FILE} DESTINATION ${DESINATION_DIR})
 
22
 
 
23
  # Byte compile and install the .pyc file.        
 
24
  GET_FILENAME_COMPONENT(_absfilename ${SOURCE_FILE} ABSOLUTE)
 
25
  GET_FILENAME_COMPONENT(_filename ${SOURCE_FILE} NAME)
 
26
  GET_FILENAME_COMPONENT(_filenamebase ${SOURCE_FILE} NAME_WE)
 
27
  GET_FILENAME_COMPONENT(_basepath ${SOURCE_FILE} PATH)
 
28
  SET(_bin_py ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filename})
 
29
  SET(_bin_pyc ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/${_filenamebase}.pyc)
 
30
 
 
31
  FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_basepath})
 
32
 
 
33
  SET(_message "-DMESSAGE=Byte-compiling ${_bin_py}")
 
34
 
 
35
  GET_FILENAME_COMPONENT(_abs_bin_py ${_bin_py} ABSOLUTE)
 
36
  IF(_abs_bin_py STREQUAL ${_absfilename})    # Don't copy the file onto itself.
 
37
    ADD_CUSTOM_COMMAND(
 
38
      TARGET compile_python_files
 
39
      COMMAND ${CMAKE_COMMAND} ${_message} -P ${PYTHON_MACROS_MODULE_PATH}/print_status.cmake
 
40
      COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_MACROS_MODULE_PATH}/PythonCompile.py ${_bin_py}
 
41
      DEPENDS ${_absfilename}
 
42
    )
 
43
  ELSE(_abs_bin_py STREQUAL ${_absfilename})
 
44
    ADD_CUSTOM_COMMAND(
 
45
      TARGET compile_python_files
 
46
      COMMAND ${CMAKE_COMMAND} ${_message} -P ${PYTHON_MACROS_MODULE_PATH}/print_status.cmake
 
47
      COMMAND ${CMAKE_COMMAND} -E copy ${_absfilename} ${_bin_py}
 
48
      COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_MACROS_MODULE_PATH}/PythonCompile.py ${_bin_py}
 
49
      DEPENDS ${_absfilename}
 
50
    )
 
51
  ENDIF(_abs_bin_py STREQUAL ${_absfilename})
 
52
 
 
53
  INSTALL(FILES ${_bin_pyc} DESTINATION ${DESINATION_DIR})
 
54
ENDMACRO(PYTHON_INSTALL)