You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-libs/aws-sdk-cpp/aws-sdk-cpp-1.8.46.ebuild

184 lines
8.1 KiB

# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7..9} )
inherit cmake python-single-r1
DESCRIPTION="AWS SDK for C++"
HOMEPAGE="https://aws.amazon.com/sdk-for-cpp/"
SRC_URI="https://github.com/aws/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
MODULES=(
access-management apigateway appconfig backup batch budgets chime cloud-desktop cloud-dev cloud-media
cloud-mobile cloudformation cloudfront cloudhsm cloudsearch cloudwatch cognito config dlm ebs ec2 ecr ecs eks
elasticache elasticbeanstalk elasticinference elasticloadbalancing elasticmapreduce email es events forecast
frauddetector fsx globalaccelerator iot kendra kinesis kms lambda lex license-manager lightsail machinelearning
macie managedblockchain marketplace networkmanager opsworks organizations other outposts personalize polly qldb
queues rds rekognition resource-groups route53 s3 sagemaker secretsmanager securityhub serverlessrepo shield sns
sqs textract transcribe translate waf
)
IUSE="+http libressl pulseaudio +rtti +ssl static-libs test unity-build ${MODULES[*]}"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="!test? ( test )"
DEPEND="
http? ( net-misc/curl:= )
pulseaudio? ( media-sound/pulseaudio )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
)
dev-libs/aws-c-common
dev-libs/aws-checksums
dev-libs/aws-c-event-stream
sys-libs/zlib
"
RDEPEND="
${DEPEND}
${PYTHON_DEPS}
"
PATCHES=(
"${FILESDIR}"/${PN}-upgrade_android-build_build_and_test_android_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_binary-release-pipeline_lambda_publish_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_CI_ConstructReleaseDoc_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_CI_ExtractBuildArgs_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_CI_handle_release_notification_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_CI_move_release_doc_to_models_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_doc_crosslinks_generate_cross_link_data_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_scripts_build_3rdparty_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_scripts_build_example_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_scripts_dummy_web_server_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_scripts_endpoints_checker_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_scripts_gather_3rdparty_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_scripts_generate_sdks_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_scripts_renew_license_py-3.9.patch
"${FILESDIR}"/${PN}-upgrade_scripts_run_integration_tests_py-3.9.patch
)
src_configure() {
local mybuildtargets="core"
for module in ${MODULES[@]}; do
if use ${module}; then
if [ "${module}" = "access-management" ] ; then
mybuildtargets+=";${module};accessanalyzer;acm;acm-pca;dataexchange;iam"
mybuildtargets+=";identity-management;identitystore;ram;sso;sso-oidc;sts"
elif [ "${module}" = "apigateway" ] ; then
mybuildtargets+=";${module};apigatewaymanagementapi;apigatewayv2"
elif [ "${module}" = "budgets" ] ; then
mybuildtargets+=";${module};ce;cur"
elif [ "${module}" = "cloud-desktop" ] ; then
mybuildtargets+=";appstream;workdocs;worklink;workmail;workmailmessageflow;workspaces"
elif [ "${module}" = "cloud-dev" ] ; then
mybuildtargets+=";cloud9;codeartifact;codebuild;codecommit;codedeploy;codeguruprofiler"
mybuildtargets+=";codeguru-reviewer;codepipeline;codestar;codestar-connections"
mybuildtargets+=";codestar-notifications;honeycode;xray"
if ! use "queues"; then
mybuildtargets+=";queues"
fi
elif [ "${module}" = "cloud-media" ] ; then
mybuildtargets+=";elastictranscoder;mediaconnect;mediaconvert;medialive;mediapackage"
mybuildtargets+=";mediapackage-vod;mediastore;mediastore-data;mediatailor"
elif [ "${module}" = "cloud-mobile" ] ; then
mybuildtargets+=";amplify;appsync;devicefarm;mobile;mobileanalytics;pinpoint"
mybuildtargets+=";pinpoint-email;sms-voice"
if ! use "sns"; then
mybuildtargets+=";sns"
fi
elif [ "${module}" = "cloudhsm" ] ; then
mybuildtargets+=";${module};cloudhsmv2"
elif [ "${module}" = "cloudsearch" ] ; then
mybuildtargets+=";${module};cloudsearchdomain"
elif [ "${module}" = "cloudwatch" ] ; then
mybuildtargets+=";application-insights;appmesh;cloudtrail;compute-optimizer;guardduty"
mybuildtargets+=";health;inspector;logs;monitoring;synthetics"
elif [ "${module}" = "cognito" ] ; then
mybuildtargets+=";cognito-identity;cognito-idp;cognito-sync"
elif [ "${module}" = "dynamodb" ] ; then
mybuildtargets+=";${module};dax;dynamodbstreams"
elif [ "${module}" = "ec2" ] ; then
mybuildtargets+=";${module};autoscaling;autoscaling-plans;application-autoscaling"
mybuildtargets+=";ec2-instance-connect;elasticfilesystem;imagebuilder;savingsplans"
elif [ "${module}" = "elasticloadbalancing" ] ; then
mybuildtargets+=";${module};elasticloadbalancingv2"
elif [ "${module}" = "email" ] ; then
mybuildtargets+=";${module};sesv2"
elif [ "${module}" = "events" ] ; then
mybuildtargets+=";${module};eventbridge"
elif [ "${module}" = "forecast" ] ; then
mybuildtargets+=";${module};forecastquery"
elif [ "${module}" = "iot" ] ; then
mybuildtargets+=";${module};greengrass;iot1click-devices;iot1click-projects"
mybuildtargets+=";iotanalytics;iot-data;iotevents;iotevents-data;iot-jobs-data"
mybuildtargets+=";iotsecuretunneling;iotsitewise;iotthingsgraph"
elif [ "${module}" = "kinesis" ] ; then
mybuildtargets+=";${module};firehose;ivs;kinesisanalytics;kinesisanalyticsv2"
mybuildtargets+=";kinesisvideo;kinesis-video-archived-media;kinesis-video-media"
mybuildtargets+=";kinesis-video-signaling"
elif [ "${module}" = "lex" ] ; then
mybuildtargets+=";${module};lex-models"
elif [ "${module}" = "macie" ] ; then
mybuildtargets+=";${module};macie2"
elif [ "${module}" = "marketplace" ] ; then
mybuildtargets+=";marketplacecommerceanalytics;marketplace-catalog"
mybuildtargets+=";marketplace-entitlement;meteringmarketplace;pricing"
elif [ "${module}" = "opsworks" ] ; then
mybuildtargets+=";${module};opsworkscm"
elif [ "${module}" = "other" ] ; then
mybuildtargets+=";AWSMigrationHub;alexaforbusiness;appflow;braket;clouddirectory"
mybuildtargets+=";comprehend;comprehendmedical;connect;datapipeline;datasync"
mybuildtargets+=";directconnect;discovery;dms;docdb;ds;dynamodb;gamelift;glue"
mybuildtargets+=";groundstation;importexport;kafka;lakeformation"
mybuildtargets+=";migrationhub-config;mq;mturk-requester;neptune;quicksight;redshift"
mybuildtargets+=";robomaker;sdb;schemas;service-quotas;servicecatalog;servicediscovery"
mybuildtargets+=";signer;sms;snowball;ssm;states;storagegateway;support;swf"
elif [ "${module}" = "personalize" ] ; then
mybuildtargets+=";${module};personalize-events;personalize-runtime"
elif [ "${module}" = "polly" ] ; then
mybuildtargets+=";${module};text-to-speech"
elif [ "${module}" = "qldb" ] ; then
mybuildtargets+=";${module};qldb-session"
elif [ "${module}" = "rds" ] ; then
mybuildtargets+=";${module};pi;rds-data"
elif [ "${module}" = "resource-groups" ] ; then
mybuildtargets+=";${module};resourcegroupstaggingapi"
elif [ "${module}" = "route53" ] ; then
mybuildtargets+=";${module};route53domains;route53resolver"
elif [ "${module}" = "s3" ] ; then
mybuildtargets+=";${module};athena;awstransfer;glacier;s3-encryption;s3control;transfer"
elif [ "${module}" = "sagemaker" ] ; then
mybuildtargets+=";${module};sagemaker-a2i-runtime;sagemaker-runtime"
elif [ "${module}" = "transcribe" ] ; then
mybuildtargets+=";${module};transcribestreaming"
elif [ "${module}" = "waf" ] ; then
mybuildtargets+=";${module};fms;waf-regional;wafv2"
else
mybuildtargets+=";${module}"
fi
fi
done
local mycmakeargs=(
-DAUTORUN_UNIT_TESTS=$(usex test)
-DBUILD_DEPS=NO
-DBUILD_ONLY="${mybuildtargets}"
-DBUILD_SHARED_LIBS=$(usex !static-libs)
-DCPP_STANDARD=17
-DENABLE_RTTI=$(usex rtti)
-DENABLE_TESTING=$(usex test)
-DENABLE_UNITY_BUILD=$(usex unity-build)
-DNO_ENCRYPTION=$(usex !ssl)
-DNO_HTTP_CLIENT=$(usex !http)
)
cmake_src_configure
}