Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
LegacyPackaging.cmake
Go to the documentation of this file.
1 if ( MITK_DOC_FILES )
2  # create a python list for the import documents to include in
3  # packaging
4 
5  # specially handle the first element
6  list( GET MITK_DOC_FILES 0 d )
7  file(TO_NATIVE_PATH "${d}" d )
8  set( MITK_DOC_FILES_AS_LIST "[r'${d}'")
9  set( _doc_list "${MITK_DOC_FILES}" )
10  list( REMOVE_AT _doc_list 0 )
11 
12  foreach( d ${_doc_list} )
13  file(TO_NATIVE_PATH "${d}" d )
14  set( MITK_DOC_FILES_AS_LIST "${MITK_DOC_FILES_AS_LIST},r'${d}'")
15  endforeach()
16  set( MITK_DOC_FILES_AS_LIST "${MITK_DOC_FILES_AS_LIST}]")
17 
18 endif()
19 
20 # Step 1:
21 # Do initial configuration of setup.py with variable a available
22 # at configuration time.
23 set(MITK_BINARY_MODULE "@MITK_BINARY_MODULE@")
24 set(MITK_RUNTIME_PATH "@MITK_RUNTIME_PATH@")
25 set(PYTHON_LIB_DEPENDENCIES "@PYTHON_LIB_DEPENDENCIES@")
26 set(TMP_MITK_BINARY_MODULE "@MITK_BINARY_MODULE@" )
27 configure_file(
28  "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/setup.py.in"
29  "${CMAKE_CURRENT_BINARY_DIR}/Packaging/setup.py.in" )
30 set(MITK_BINARY_MODULE)
31 
32 # Step 2:
33 # Do file configuration during compilation with generator expressions
34 mitkFunctionGetLibrarySearchPaths(MITK_RUNTIME_PATH release)
35 
36 add_custom_command(TARGET ${SWIG_MODULE_pyMITK_REAL_NAME}
37  POST_BUILD
38  WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
39  COMMAND ${CMAKE_COMMAND}
40  "-DMITK_BINARY_MODULE=$<TARGET_FILE_NAME:${SWIG_MODULE_pyMITK_REAL_NAME}>"
41  "-DMITK_CMAKE_RUNTIME_OUTPUT_DIRECTORY=${MITK_CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
42  "-\"DMITK_RUNTIME_PATH=${MITK_RUNTIME_PATH}\""
43  "-DCONFIGUREBUILDTIME_filename=${CMAKE_CURRENT_BINARY_DIR}/Packaging/setup.py.in"
44  "-DCONFIGUREBUILDTIME_out_filename=${CMAKE_CURRENT_BINARY_DIR}/Packaging/setup.py"
45  -P "${MITK_SOURCE_DIR}/CMake/mitkSWIGConfigurePythonfileBuildtime.cmake"
46  COMMENT "Generating setup.py..."
47  )
48 
49 configure_file(
50  "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/__init__.py"
51  "${CMAKE_CURRENT_BINARY_DIR}/__init__.py"
52  COPYONLY )
53 
54 # Hopefully being able to turn this option on at some point in future.
55 option(MITK_PYTHON_USE_VIRTUALENV "Create a Python Virtual Environment for testing." OFF)
56 mark_as_advanced(MITK_PYTHON_USE_VIRTUALENV)
57 
58 set(VIRTUAL_PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE})
59 if (MITK_PYTHON_USE_VIRTUALENV)
60 
61  # Executable to setup a new Python virtual environment
62  find_package( PythonVirtualEnv REQUIRED )
63 
64  sitk_enforce_forbid_downloads( MITK_PYTHON_USE_VIRTUALENV )
65 
66  if (MITK_PYTHON_WHEEL AND PYTHON_VIRTUALENV_VERSION_STRING VERSION_LESS "13")
67  message(SEND_ERROR "In sufficient version of virutalenv for \
68  building wheels. Require virtualenv>=13.0.")
69  endif()
70 
71  #
72  # Setup Python Virtual Environment for testing and packaging
73  #
74  set( PythonVirtualenvHome "${${CMAKE_PROJECT_NAME}_BINARY_DIR}/Testing/Installation/PythonVirtualenv" )
75 
76  # virtualenv places the python executable in different
77  # locations. Also note than on windows installations where python is
78  # installed only for a single user the may be a missing dll issue.
79  if( WIN32 )
80  set( VIRTUAL_PYTHON_EXECUTABLE
81  "${PythonVirtualenvHome}/Scripts/python")
82  else( )
83  set( VIRTUAL_PYTHON_EXECUTABLE "${PythonVirtualenvHome}/bin/python" )
84  endif()
85  set(MITK_PYTHON_TEST_EXECUTABLE "${VIRTUAL_PYTHON_EXECUTABLE}"
86  CACHE INTERNAL "Python executable for testing." FORCE )
87 
88  # configure a scripts which creates the virtualenv and installs numpy
89  configure_file(
90  "${CMAKE_CURRENT_SOURCE_DIR}/PythonVirtualEnvInstall.cmake.in"
91  "${CMAKE_CURRENT_BINARY_DIR}/PythonVirtualEnvInstall.cmake"
92  @ONLY )
93 
94  set( PythonVirtualEnv_ALL "" )
95  if ( BUILD_TESTING )
96  set( PythonVirtualEnv_ALL "ALL" )
97  endif()
98 
99  add_custom_target( PythonVirtualEnv ${PythonVirtualEnv_ALL}
100  DEPENDS "${VIRTUAL_PYTHON_EXECUTABLE}"
101  SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/PythonVirtualEnvInstall.cmake.in )
102 
103  add_custom_command( OUTPUT "${VIRTUAL_PYTHON_EXECUTABLE}"
104  COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/PythonVirtualEnvInstall.cmake"
105  DEPENDS
106  "${SWIG_MODULE_pyMITK_REAL_NAME}"
107  "${CMAKE_CURRENT_BINARY_DIR}/PythonVirtualEnvInstall.cmake"
108  COMMENT "Creating python virtual enviroment..."
109  )
110 endif()
111 
112 # Packaging for distribution
113 add_subdirectory(dist)
mitkFunctionGetLibrarySearchPaths(search_path, intermediate_dir)
static bool in(Reader::Char c, Reader::Char c1, Reader::Char c2, Reader::Char c3, Reader::Char c4)
Definition: jsoncpp.cpp:244
#define BUILD_TESTING
const std::string TARGET