Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required(VERSION 3.0.0)
- include(ExternalProject)
- include(ProcessorCount)
- ProcessorCount(PROC_COUNT)
- add_subdirectory(wheel/)
- project(ThirdParty)
- set(PYTHON_CONF_COMPILERS CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER})
- SET(PYTHON_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/PatchedPython )
- SET(PYTHON_ROOT_DIR ${CMAKE_CURRENT_BINARY_DIR}/PatchedPython )
- SET(PYTHON_INTERPRETER ${PYTHON_ROOT_DIR}/bin/python3.3m )
- SET(PYTHON_INCLUDE_DIR ${PYTHON_ROOT_DIR}/include/python3.3m )
- SET(PYTHON_LIBRARY_NAME libpython3.3m.a )
- SET(PYTHON_LIBRARY ${PYTHON_ROOT_DIR}/build/${PYTHON_LIBRARY_NAME} )
- set_property ( GLOBAL PROPERTY PYTHON_INTERPRETER ${PYTHON_INTERPRETER})
- set_property ( GLOBAL PROPERTY PYTHON_SRC_DIR ${PYTHON_SRC_DIR})
- set(PYTHON_CONFIGURE ${PYTHON_SRC_DIR}/configure ${PYTHON_CONF_COMPILERS} --prefix=<INSTALL_DIR> --disable-shared --disable-ipv6 --without-doc-strings --with-valgrind LIBS=-lrt)
- ExternalProject_Add(PatchedPythonBuild
- SOURCE_DIR ${PYTHON_SRC_DIR}
- INSTALL_DIR ${PYTHON_ROOT_DIR}
- BINARY_DIR ${PYTHON_ROOT_DIR}/build
- CONFIGURE_COMMAND ${CMAKE_COMMAND} -E echo "Configure python: ${PYTHON_CONFIGURE}"
- COMMAND ${PYTHON_CONFIGURE}
- BUILD_COMMAND ${CMAKE_COMMAND} -E echo "Make python: make"
- COMMAND ${MAKE}
- )
- ExternalProject_Add_Step(PatchedPythonBuild makeIncludeLinks
- COMMAND ${CMAKE_COMMAND} -E create_symlink ${PYTHON_ROOT_DIR}/include/python3.3m ${PYTHON_ROOT_DIR}/include/python3.3
- COMMENT "Make include link from python3.3m to python3.3"
- DEPENDEES install
- )
- add_library( ThirdPartyPython INTERFACE )
- target_link_libraries(ThirdPartyPython INTERFACE ${PYTHON_LIBRARY}
- z
- util
- )
- target_include_directories(ThirdPartyPython INTERFACE
- ${PYTHON_INCLUDE_DIR}
- )
- add_dependencies( ThirdPartyPython PatchedPythonBuild )
- set( boost_URL ${CMAKE_CURRENT_SOURCE_DIR}/boost/boost_1_67_0.tar.bz2 )
- set( boost_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/boost )
- set( boost_INCLUDE_DIR ${boost_INSTALL}/include )
- set( boost_LIB_DIR ${boost_INSTALL}/lib )
- set( boost_PYTHON_LIB ${boost_LIB_DIR}/libboost_python33.a )
- set( boost_CONFIGURE ./bootstrap.sh)
- set( boost_CONFIG_ARGS --prefix=<INSTALL_DIR> --with-python=${PYTHON_INTERPRETER} --without-icu )
- ExternalProject_Add(ExternalBoostBuild
- PREFIX boost
- URL ${boost_URL}
- BUILD_IN_SOURCE 1
- CONFIGURE_COMMAND ${CMAKE_COMMAND} -E echo "Configure boost: ${boost_CONFIGURE} ${boost_CONFIG_ARGS}"
- COMMAND ${boost_CONFIGURE} ${boost_CONFIG_ARGS}
- BUILD_COMMAND
- ./b2 install link=static variant=release threading=multi runtime-link=static --ignore-site-config --with-python
- INSTALL_COMMAND ""
- INSTALL_DIR ${boost_INSTALL}
- DEPENDS PatchedPythonBuild
- )
- add_library( ThirdPartyBoost INTERFACE )
- target_link_libraries(ThirdPartyBoost INTERFACE ${boost_PYTHON_LIB})
- target_include_directories(ThirdPartyBoost INTERFACE ${boost_INCLUDE_DIR})
- add_dependencies( ThirdPartyBoost ExternalBoostBuild )
- add_dependencies( ThirdPartyBoost PatchedPythonBuild )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement