Forked from
atlas / athena
121448 commits behind the upstream repository.
-
Tulay Cuhadar Donszelmann authored
Former-commit-id: fbd3484b
Tulay Cuhadar Donszelmann authoredFormer-commit-id: fbd3484b
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
CMakeLists.txt 5.41 KiB
# $Id: CMakeLists.txt 790212 2016-12-16 17:43:15Z ssnyder $
# The name of the package:
atlas_subdir( AtlasPyFwdBwdPorts )
# In "release mode" return right away:
if( ATLAS_RELEASE_MODE )
return()
endif()
# for setuptools
find_package( pytools )
# Helper macro for building and installing the packages. Documentation
# to be written later...
function( _setup_python_package name file md5 )
# Parse the optional argument(s):
cmake_parse_arguments( ARG "SINGLE_VERSION" ""
"DEPENDS;EXTRA_ARGS;PATCH" ${ARGN} )
# Extra argument(s) for the installation:
if( ARG_SINGLE_VERSION )
set( _extraArg )
else()
set( _extraArg --single-version-externally-managed )
endif()
if ( ARG_PATCH )
set( _patchCmd PATCH_COMMAND patch -p1 < ${ARG_PATCH} )
endif()
# Build the package with the help of python's distutils:
ExternalProject_Add( ${name}
PREFIX ${CMAKE_BINARY_DIR}
URL ${file}
URL_MD5 ${md5}
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E echo
"Configuring the build of ${name}"
${_patchCmd}
BUILD_COMMAND ${CMAKE_BINARY_DIR}/atlas_build_run.sh
python setup.py ${ARG_EXTRA_ARGS} build
INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory
${CMAKE_PYTHON_OUTPUT_DIRECTORY}
COMMAND ${CMAKE_COMMAND} -E make_directory
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND ${CMAKE_BINARY_DIR}/atlas_build_run.sh
python setup.py ${ARG_EXTRA_ARGS} install
--prefix ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}
--exec-prefix ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}
--root /
--install-lib ${CMAKE_PYTHON_OUTPUT_DIRECTORY}
--install-scripts ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
${_extraArg} )
# Make the package target depend on this one:
add_dependencies( Package_AtlasPyFwdBwdPorts ${name} )
# Add possible extra dependencies:
if( ARG_DEPENDS )
add_dependencies( ${name} ${ARG_DEPENDS} )
endif()
# Get the package directory:
atlas_get_package_dir( pkgDir )
# Add some metadata to the target:
set_property( TARGET ${name} PROPERTY LABEL AtlasPyFwdBwdPorts )
set_property( TARGET ${name} PROPERTY FOLDER ${pkgDir} )
# Generate the package installer script:
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/pkgbuildInstall.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${name}PkgbuildInstall.cmake
@ONLY )
# Use this script for installing the package:
install( SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/${name}PkgbuildInstall.cmake )
endfunction( _setup_python_package )
# Install Beaker:
_setup_python_package( Beaker
${CMAKE_CURRENT_SOURCE_DIR}/src/Beaker-1.5.4.tar.gz
de84e7511119dc0b8eb4ac177d3e2512
)
# Install affinity:
_setup_python_package( affinity
${CMAKE_CURRENT_SOURCE_DIR}/src/affinity-0.1.0.tar.gz
cc610cdb05ca675b4089ce2f05796f57
)
# Install bunch:
_setup_python_package( bunch
${CMAKE_CURRENT_SOURCE_DIR}/src/bunch-1.0.0.tar.gz
944d2e8f222ed032961daa34c5b5151c
)
# Install datadiff:
_setup_python_package( datadiff
${CMAKE_CURRENT_SOURCE_DIR}/src/datadiff-1.1.1.tar.gz
48a2e9b85332b8252c8401205ff02756
)
# Install extensions:
_setup_python_package( extensions
${CMAKE_CURRENT_SOURCE_DIR}/src/extensions-0.4.tar.gz
e498fe6da146aefb677c3e8a210fbb29
SINGLE_VERSION )
# Install futures:
_setup_python_package( futures
${CMAKE_CURRENT_SOURCE_DIR}/src/futures-2.1.2.tar.gz
a6fa247e3c5fe3d60d8e12f1b873cc88
)
# Install grin:
_setup_python_package( grin
${CMAKE_CURRENT_SOURCE_DIR}/src/grin-1.2.1.tar.gz
d894426dfbf70bc105388c2a51348199
)
# Install jsonpickle:
_setup_python_package( jsonpickle
${CMAKE_CURRENT_SOURCE_DIR}/src/jsonpickle-0.4.0.tar.gz
63916228294218ca6e53fd1b16b626fa
DEPENDS simplejson
SINGLE_VERSION )
# Install keyring:
_setup_python_package( keyring
${CMAKE_CURRENT_SOURCE_DIR}/src/keyring-0.5.1.tar.gz
a2f0dcea7185580c163ef2db1f4fbe0c
SINGLE_VERSION )
# Install pip:
_setup_python_package( pip
${CMAKE_CURRENT_SOURCE_DIR}/src/pip-1.1.tar.gz
62a9f08dd5dc69d76734568a6c040508
)
# Install pycrypto:
_setup_python_package( pycrypto
${CMAKE_CURRENT_SOURCE_DIR}/src/pycrypto-2.6.1.tar.gz
55a61a054aa66812daf5161a0d5d7eda
PATCH ${CMAKE_CURRENT_SOURCE_DIR}/src/pycrypto-warning.patch
SINGLE_VERSION )
# Install pyflakes:
_setup_python_package( pyflakes
${CMAKE_CURRENT_SOURCE_DIR}/src/pyflakes-1.5.0.tar.gz
84a99f05e5409f8196325dda3f5a1b9a
SINGLE_VERSION )
# Install flake8:
_setup_python_package( flake8
${CMAKE_CURRENT_SOURCE_DIR}/src/flake8-3.3.0.tar.gz
3df622aac9bad27c04f34164609bbed8
DEPENDS pyflakes
SINGLE_VERSION )
# Install pyinotify:
_setup_python_package( pyinotify
${CMAKE_CURRENT_SOURCE_DIR}/src/pyinotify-0.9.1.tar.gz
bd06a9feac312414e57d92c781bda539
SINGLE_VERSION )
# Install pyyaml:
_setup_python_package( pyyaml
${CMAKE_CURRENT_SOURCE_DIR}/src/pyyaml-3.10.tar.gz
45e5b429265d7815699be439adc8b37e
EXTRA_ARGS --without-libyaml
SINGLE_VERSION )
# Install simplejson:
_setup_python_package( simplejson
${CMAKE_CURRENT_SOURCE_DIR}/src/simplejson-2.1.6.tar.gz
2f8351f6e6fe7ef25744805dfa56c0d5
)
# Install gcovr:
_setup_python_package( gcovr
${CMAKE_CURRENT_SOURCE_DIR}/src/gcovr-3.3.tar.gz
85af705ca6e1187d2bae967d26810c55
SINGLE_VERSION )
# Install scandir:
_setup_python_package( scandir
${CMAKE_CURRENT_SOURCE_DIR}/src/scandir-1.6.tar.gz
0180ddb97c96cbb2d4f25d2ae11c64ac
)
# Clean up:
unset( _setup_python_package )