Advertisement
Guest User

Untitled

a guest
May 8th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 3.07 KB | None | 0 0
  1. cmake_minimum_required(VERSION 3.0.0)
  2.  
  3. include(ExternalProject)
  4. include(ProcessorCount)
  5. ProcessorCount(PROC_COUNT)
  6.  
  7. add_subdirectory(wheel/)
  8.  
  9. project(ThirdParty)
  10. set(PYTHON_CONF_COMPILERS CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER})
  11.  
  12. SET(PYTHON_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/PatchedPython )
  13. SET(PYTHON_ROOT_DIR ${CMAKE_CURRENT_BINARY_DIR}/PatchedPython )
  14. SET(PYTHON_INTERPRETER ${PYTHON_ROOT_DIR}/bin/python3.3m )
  15. SET(PYTHON_INCLUDE_DIR ${PYTHON_ROOT_DIR}/include/python3.3m )
  16. SET(PYTHON_LIBRARY_NAME libpython3.3m.a )
  17. SET(PYTHON_LIBRARY ${PYTHON_ROOT_DIR}/build/${PYTHON_LIBRARY_NAME} )
  18.  
  19. set_property ( GLOBAL PROPERTY PYTHON_INTERPRETER ${PYTHON_INTERPRETER})
  20. set_property ( GLOBAL PROPERTY PYTHON_SRC_DIR ${PYTHON_SRC_DIR})
  21.  
  22. set(PYTHON_CONFIGURE ${PYTHON_SRC_DIR}/configure ${PYTHON_CONF_COMPILERS} --prefix=<INSTALL_DIR> --disable-shared --disable-ipv6 --without-doc-strings --with-valgrind LIBS=-lrt)
  23.  
  24.  
  25. ExternalProject_Add(PatchedPythonBuild
  26.     SOURCE_DIR ${PYTHON_SRC_DIR}
  27.     INSTALL_DIR ${PYTHON_ROOT_DIR}
  28.     BINARY_DIR ${PYTHON_ROOT_DIR}/build
  29.     CONFIGURE_COMMAND ${CMAKE_COMMAND} -E echo "Configure python: ${PYTHON_CONFIGURE}"
  30.     COMMAND ${PYTHON_CONFIGURE}
  31.     BUILD_COMMAND ${CMAKE_COMMAND} -E echo "Make python: make"
  32.     COMMAND ${MAKE}
  33. )
  34.  
  35. ExternalProject_Add_Step(PatchedPythonBuild makeIncludeLinks
  36.   COMMAND  ${CMAKE_COMMAND} -E  create_symlink  ${PYTHON_ROOT_DIR}/include/python3.3m  ${PYTHON_ROOT_DIR}/include/python3.3
  37.   COMMENT "Make include link from python3.3m to python3.3"
  38.   DEPENDEES install
  39.   )
  40.  
  41. add_library( ThirdPartyPython INTERFACE )
  42.  
  43. target_link_libraries(ThirdPartyPython INTERFACE ${PYTHON_LIBRARY}
  44.     z
  45.     util
  46.     )
  47. target_include_directories(ThirdPartyPython INTERFACE
  48.     ${PYTHON_INCLUDE_DIR}
  49.     )
  50.  
  51. add_dependencies( ThirdPartyPython PatchedPythonBuild )
  52.  
  53.  
  54. set( boost_URL ${CMAKE_CURRENT_SOURCE_DIR}/boost/boost_1_67_0.tar.bz2 )
  55. set( boost_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/boost )
  56. set( boost_INCLUDE_DIR ${boost_INSTALL}/include )
  57. set( boost_LIB_DIR ${boost_INSTALL}/lib )
  58. set( boost_PYTHON_LIB ${boost_LIB_DIR}/libboost_python33.a )
  59. set( boost_CONFIGURE ./bootstrap.sh)
  60. set( boost_CONFIG_ARGS --prefix=<INSTALL_DIR> --with-python=${PYTHON_INTERPRETER} --without-icu )
  61.  
  62. ExternalProject_Add(ExternalBoostBuild
  63.         PREFIX boost
  64.         URL ${boost_URL}
  65.         BUILD_IN_SOURCE 1
  66.         CONFIGURE_COMMAND ${CMAKE_COMMAND} -E echo "Configure boost: ${boost_CONFIGURE} ${boost_CONFIG_ARGS}"
  67.         COMMAND ${boost_CONFIGURE} ${boost_CONFIG_ARGS}
  68.         BUILD_COMMAND
  69.         ./b2 install link=static variant=release threading=multi runtime-link=static --ignore-site-config --with-python
  70.         INSTALL_COMMAND ""
  71.         INSTALL_DIR ${boost_INSTALL}
  72.         DEPENDS PatchedPythonBuild
  73.         )
  74.  
  75.  
  76. add_library( ThirdPartyBoost INTERFACE )
  77.  
  78. target_link_libraries(ThirdPartyBoost INTERFACE  ${boost_PYTHON_LIB})
  79. target_include_directories(ThirdPartyBoost INTERFACE ${boost_INCLUDE_DIR})
  80.  
  81. add_dependencies( ThirdPartyBoost ExternalBoostBuild )
  82. add_dependencies( ThirdPartyBoost PatchedPythonBuild )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement