1 # Copyright 1999-2019 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
6 PYTHON_COMPAT=( python2_7 )
8 inherit cmake-utils python-single-r1
10 DESCRIPTION="AWS SDK for C++"
11 HOMEPAGE="https://aws.amazon.com/sdk-for-cpp/"
12 SRC_URI="https://github.com/aws/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
16 KEYWORDS="~amd64 ~x86"
19 access-management apigateway backup batch budgets chime cloud-desktop cloud-dev cloud-media cloud-mobile
20 cloudformation cloudfront cloudhsm cloudsearch cloudwatch cognito config dlm ec2 ecr ecs eks elasticache
21 elasticbeanstalk elasticloadbalancing elasticmapreduce email es events fsx globalaccelerator iot kinesis kms
22 lambda lex license-manager lightsail machinelearning macie managedblockchain marketplace opsworks organizations
23 other personalize polly queues rds rekognition resource-groups route53 s3 sagemaker secretsmanager securityhub
24 serverlessrepo shield sns sqs textract transcribe translate waf
27 IUSE="+http libressl +rtti +ssl static-libs test unity-build ${MODULES[*]}"
28 RESTRICT="!test? ( test )"
29 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
32 http? ( net-misc/curl:= )
33 polly? ( media-sound/pulseaudio )
35 !libressl? ( dev-libs/openssl:0= )
36 libressl? ( dev-libs/libressl:0= )
39 dev-libs/aws-checksums
40 dev-libs/aws-c-event-stream
49 local mybuildtargets="core"
51 for module in ${MODULES[@]}; do
52 if use ${module}; then
53 if [ "${module}" = "access-management" ] ; then
54 mybuildtargets+=";${module};acm;acm-pca;iam;identity-management;ram;sts"
55 elif [ "${module}" = "apigateway" ] ; then
56 mybuildtargets+=";${module};apigatewaymanagementapi;apigatewayv2"
57 elif [ "${module}" = "budgets" ] ; then
58 mybuildtargets+=";${module};ce;cur"
59 elif [ "${module}" = "cloud-desktop" ] ; then
60 mybuildtargets+=";appstream;workdocs;worklink;workmail;workspaces"
61 elif [ "${module}" = "cloud-dev" ] ; then
62 mybuildtargets+=";cloud9;codebuild;codecommit;codedeploy;codepipeline;codestar;xray"
63 if ! use "queues"; then
64 mybuildtargets+=";queues"
66 elif [ "${module}" = "cloud-media" ] ; then
67 mybuildtargets+=";elastictranscoder;mediaconnect;mediaconvert;medialive;mediapackage"
68 mybuildtargets+=";mediapackage-vod;mediastore;mediastore-data;mediatailor"
69 elif [ "${module}" = "cloud-mobile" ] ; then
70 mybuildtargets+=";amplify;appsync;devicefarm;mobile;mobileanalytics;pinpoint"
71 mybuildtargets+=";pinpoint-email;sms-voice"
73 mybuildtargets+=";sns"
75 elif [ "${module}" = "cloudhsm" ] ; then
76 mybuildtargets+=";${module};cloudhsmv2"
77 elif [ "${module}" = "cloudsearch" ] ; then
78 mybuildtargets+=";${module};cloudsearchdomain"
79 elif [ "${module}" = "cloudwatch" ] ; then
80 mybuildtargets+=";application-insights;appmesh;cloudtrail;guardduty;health;inspector"
81 mybuildtargets+=";logs;monitoring"
82 elif [ "${module}" = "cognito" ] ; then
83 mybuildtargets+=";cognito-identity;cognito-idp;cognito-sync"
84 elif [ "${module}" = "dynamodb" ] ; then
85 mybuildtargets+=";${module};dax;dynamodbstreams"
86 elif [ "${module}" = "ec2" ] ; then
87 mybuildtargets+=";${module};autoscaling;autoscaling-plans;application-autoscaling"
88 mybuildtargets+=";ec2-instance-connect;elasticfilesystem"
89 elif [ "${module}" = "elasticloadbalancing" ] ; then
90 mybuildtargets+=";${module};elasticloadbalancingv2"
91 elif [ "${module}" = "events" ] ; then
92 mybuildtargets+=";${module};eventbridge"
93 elif [ "${module}" = "iot" ] ; then
94 mybuildtargets+=";${module};greengrass;iot1click-devices;iot1click-projects"
95 mybuildtargets+=";iotanalytics;iot-data;iotevents;iotevents-data;iot-jobs-data"
96 mybuildtargets+=";iotthingsgraph"
97 elif [ "${module}" = "kinesis" ] ; then
98 mybuildtargets+=";${module};firehose;kinesisanalytics;kinesisanalyticsv2;kinesisvideo"
99 mybuildtargets+=";kinesis-video-archived-media;kinesis-video-media"
100 elif [ "${module}" = "lex" ] ; then
101 mybuildtargets+=";${module};lex-models"
102 elif [ "${module}" = "marketplace" ] ; then
103 mybuildtargets+=";marketplacecommerceanalytics;marketplace-entitlement"
104 mybuildtargets+=";meteringmarketplace;pricing"
105 elif [ "${module}" = "opsworks" ] ; then
106 mybuildtargets+=";${module};opsworkscm"
107 elif [ "${module}" = "other" ] ; then
108 mybuildtargets+=";AWSMigrationHub;alexaforbusiness;clouddirectory;comprehend"
109 mybuildtargets+=";comprehendmedical;connect;datapipeline;datasync;directconnect"
110 mybuildtargets+=";discovery;dms;docdb;ds;dynamodb;gamelift;glue;groundstation"
111 mybuildtargets+=";importexport;kafka;lakeformation;mq;mturk-requester;neptune"
112 mybuildtargets+=";quicksight;redshift;robomaker;sdb;service-quotas;servicecatalog"
113 mybuildtargets+=";servicediscovery;signer;sms;snowball;ssm;states;storagegateway"
114 mybuildtargets+=";support;swf"
115 elif [ "${module}" = "personalize" ] ; then
116 mybuildtargets+=";${module};personalize-events;personalize-runtime"
117 elif [ "${module}" = "polly" ] ; then
118 mybuildtargets+=";${module};text-to-speech"
119 elif [ "${module}" = "rds" ] ; then
120 mybuildtargets+=";${module};pi;rds-data"
121 elif [ "${module}" = "resource-groups" ] ; then
122 mybuildtargets+=";${module};resourcegroupstaggingapi"
123 elif [ "${module}" = "route53" ] ; then
124 mybuildtargets+=";${module};route53domains;route53resolver"
125 elif [ "${module}" = "s3" ] ; then
126 mybuildtargets+=";${module};athena;awstransfer;glacier;s3-encryption;s3control;transfer"
127 elif [ "${module}" = "sagemaker" ] ; then
128 mybuildtargets+=";${module};sagemaker-runtime"
129 elif [ "${module}" = "transcribe" ] ; then
130 mybuildtargets+=";${module};transcribestreaming"
131 elif [ "${module}" = "waf" ] ; then
132 mybuildtargets+=";${module};fms;waf-regional"
134 mybuildtargets+=";${module}"
141 -DBUILD_ONLY="${mybuildtargets}"
142 -DBUILD_SHARED_LIBS=$(usex !static-libs)
144 -DENABLE_RTTI=$(usex rtti)
145 -DENABLE_TESTING=$(usex test)
146 -DENABLE_UNITY_BUILD=$(usex unity-build)
147 -DNO_ENCRYPTION=$(usex !ssl)
148 -DNO_HTTP_CLIENT=$(usex !http)
150 cmake-utils_src_configure