From f1915c185d8a55c6e98c86366afe6794b77870ae Mon Sep 17 00:00:00 2001 From: Rostislav Khlebnikov Date: Thu, 17 Sep 2015 13:46:59 +0100 Subject: [PATCH] Enabling debug python build Signed-off-by: Rostislav Khlebnikov --- .gitignore | 1 + CMakeExternals/CTK.cmake | 11 +++++++++++ CMakeExternals/Python-2.7.3.patch | 25 +++++++++++++++++++++++++ CMakeExternals/Python.cmake | 11 +++++++++++ CMakeExternals/SimpleITK.cmake | 2 ++ SuperBuild.cmake | 4 +++- 6 files changed, 53 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b7e517e..97c6bed 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,4 @@ Icon ## Linux *~ superbuild +sb diff --git a/CMakeExternals/CTK.cmake b/CMakeExternals/CTK.cmake index 1996adf..63b3c68 100644 --- a/CMakeExternals/CTK.cmake +++ b/CMakeExternals/CTK.cmake @@ -33,6 +33,8 @@ if(MITK_USE_CTK) -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR} -DPYTHON_INCLUDE_DIR2:PATH=${PYTHON_INCLUDE_DIR2} -DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY} + -DPYTHON_LIBRARY_DEBUG:FILEPATH=${PYTHON_LIBRARY} + -DPYTHON_DEBUG_LIBRARY:FILEPATH=${PYTHON_LIBRARY} ) else() list(APPEND ctk_optional_cache_args @@ -77,6 +79,13 @@ if(MITK_USE_CTK) set(ctk_patch_command ${PATCH_COMMAND} -N -p1 -i ${CMAKE_CURRENT_LIST_DIR}/CTK.patch) endif() + set(ctk_additional_c_flags) + set(ctk_additional_cxx_flags) + if(MSVC_VERSION) + set(ctk_additional_c_flags /bigobj /MP) + set(ctk_additional_cxx_flags /bigobj /MP) + endif() + ExternalProject_Add(${proj} LIST_SEPARATOR ${sep} URL ${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/CTK_${revision_tag}.tar.gz @@ -91,6 +100,8 @@ if(MITK_USE_CTK) ${ep_common_args} ${ctk_optional_cache_args} ${ctk_qt_args} + -DADDITIONAL_C_FLAGS:STRING=${ctk_additional_c_flags} + -DADDITIONAL_CXX_FLAGS:STRING=${ctk_additional_cxx_flags} # The CTK PluginFramework cannot cope with # a non-empty CMAKE_DEBUG_POSTFIX for the plugin # libraries yet. diff --git a/CMakeExternals/Python-2.7.3.patch b/CMakeExternals/Python-2.7.3.patch index f865570..4f443e2 100644 --- a/CMakeExternals/Python-2.7.3.patch +++ b/CMakeExternals/Python-2.7.3.patch @@ -26,3 +26,28 @@ diff -urNb Python-2.7.3/Lib/distutils/msvc9compiler.py Python-src/Lib/distutils/ if mfinfo is not None: mffilename, mfid = mfinfo out_arg = '-outputresource:%s;%s' % (output_filename, mfid) + +diff -urNb Python-2.7.3/PC/pyconfig.h Python-src/PC/pyconfig.h +--- Python-2.7.3/PC/pyconfig.h 2012-04-10 01:07:29.000000000 +0200 ++++ Python-src/PC/pyconfig.h 2015-01-13 21:03:33.021871739 +0100 +@@ -323,7 +323,7 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ + their Makefile (other compilers are generally + taken care of by distutils.) */ + # ifdef _DEBUG +-# pragma comment(lib,"python27_d.lib") ++# pragma comment(lib,"python27.lib") + # else + # pragma comment(lib,"python27.lib") + # endif /* _DEBUG */ +@@ -364,9 +364,11 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ + # endif + #endif + ++/* + #ifdef _DEBUG + # define Py_DEBUG + #endif ++*/ + + + #ifdef MS_WIN32 diff --git a/CMakeExternals/Python.cmake b/CMakeExternals/Python.cmake index 4ac359e..ead2bbe 100644 --- a/CMakeExternals/Python.cmake +++ b/CMakeExternals/Python.cmake @@ -122,6 +122,14 @@ if( MITK_USE_Python AND NOT MITK_USE_SYSTEM_PYTHON ) if(WIN32) set(_python_install_dir -DCMAKE_INSTALL_PREFIX:PATH=${ep_prefix}/lib/python${MITK_PYTHON_MAJOR_VERSION}.${MITK_PYTHON_MINOR_VERSION}) endif() + + if (MSVC) + set(_python_build_command ${CMAKE_COMMAND} --build --config Release) # always build release + set(_python_install_command ${CMAKE_COMMAND} --build --config Release --target INSTALL) # always build release + else() + set(_python_build_command ${CMAKE_COMMAND} --build ) + set(_python_install_command ${CMAKE_COMMAND} --build --target INSTALL) # always build release + endif() # CMake build environment for python from: # https://github.com/davidsansome/python-cmake-buildsystem @@ -132,6 +140,8 @@ if( MITK_USE_Python AND NOT MITK_USE_SYSTEM_PYTHON ) # fix to build python on i686 and i386 with the python cmake build system, # the x86 path must be set as default PATCH_COMMAND ${PATCH_COMMAND} -N -p1 -i ${CMAKE_CURRENT_LIST_DIR}/python-cmake-buildsystem-47845c55.patch + BUILD_COMMAND ${_python_build_command} + INSTALL_COMMAND ${_python_install_command} CMAKE_ARGS ${ep_common_args} CMAKE_CACHE_ARGS @@ -196,6 +206,7 @@ ${PYTHON_EXECUTABLE} -m compileall set(PYTHON_INCLUDE_DIR "${Python_DIR}/include") set(PYTHON_INCLUDE_DIR2 "${PYTHON_INCLUDE_DIR}") set(PYTHON_LIBRARY "${Python_DIR}/libs/python${MITK_PYTHON_MAJOR_VERSION}${MITK_PYTHON_MINOR_VERSION}.lib") +# set(PYTHON_LIBRARY_DEBUG "${Python_DIR}/libs/python${MITK_PYTHON_MAJOR_VERSION}${MITK_PYTHON_MINOR_VERSION}_d.lib") set(MITK_PYTHON_SITE_DIR "${Python_DIR}/Lib/site-packages") # pre compile all *.py files in the runtime after install step diff --git a/CMakeExternals/SimpleITK.cmake b/CMakeExternals/SimpleITK.cmake index 972da24..a3bb699 100644 --- a/CMakeExternals/SimpleITK.cmake +++ b/CMakeExternals/SimpleITK.cmake @@ -39,6 +39,8 @@ if(MITK_USE_SimpleITK) -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR} -DPYTHON_INCLUDE_DIR2:PATH=${PYTHON_INCLUDE_DIR2} -DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY} + -DPYTHON_LIBRARY_DEBUG:FILEPATH=${PYTHON_LIBRARY} + -DPYTHON_DEBUG_LIBRARY:FILEPATH=${PYTHON_LIBRARY} ) if(NOT MITK_USE_SYSTEM_PYTHON) list(APPEND proj_DEPENDENCIES Python) diff --git a/SuperBuild.cmake b/SuperBuild.cmake index 7fd30eb..2c80abe 100644 --- a/SuperBuild.cmake +++ b/SuperBuild.cmake @@ -182,7 +182,7 @@ set(ep_common_args -DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER} -DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} - "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} ${MITK_CXX11_FLAG}" + -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} #debug flags -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG} @@ -327,6 +327,8 @@ if(MITK_USE_Python) -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE} -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR} -DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY} + -DPYTHON_LIBRARY_DEBUG:FILEPATH=${PYTHON_LIBRARY} + -DPYTHON_DEBUG_LIBRARY:FILEPATH=${PYTHON_LIBRARY} -DPYTHON_INCLUDE_DIR2:PATH=${PYTHON_INCLUDE_DIR2} -DMITK_USE_SYSTEM_PYTHON:BOOL=${MITK_USE_SYSTEM_PYTHON} ) -- 1.8.4.msysgit.0