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 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
31 http? ( net-misc/curl:= )
32 polly? ( media-sound/pulseaudio )
34 !libressl? ( dev-libs/openssl:0= )
35 libressl? ( dev-libs/libressl:0= )
38 dev-libs/aws-checksums
39 dev-libs/aws-c-event-stream
48 local mybuildtargets="core"
50 for module in ${MODULES[@]}; do
51 if use ${module}; then
52 if [ "${module}" = "access-management" ] ; then
53 mybuildtargets+=";${module};acm;acm-pca;iam;identity-management;ram;sts"
54 elif [ "${module}" = "apigateway" ] ; then
55 mybuildtargets+=";${module};apigatewaymanagementapi;apigatewayv2"
56 elif [ "${module}" = "budgets" ] ; then
57 mybuildtargets+=";${module};ce;cur"
58 elif [ "${module}" = "cloud-desktop" ] ; then
59 mybuildtargets+=";appstream;workdocs;worklink;workmail;workspaces"
60 elif [ "${module}" = "cloud-dev" ] ; then
61 mybuildtargets+=";cloud9;codebuild;codecommit;codedeploy;codepipeline;codestar;xray"
62 if ! use "queues"; then
63 mybuildtargets+=";queues"
65 elif [ "${module}" = "cloud-media" ] ; then
66 mybuildtargets+=";elastictranscoder;mediaconnect;mediaconvert;medialive;mediapackage"
67 mybuildtargets+=";mediapackage-vod;mediastore;mediastore-data;mediatailor"
68 elif [ "${module}" = "cloud-mobile" ] ; then
69 mybuildtargets+=";amplify;appsync;devicefarm;mobile;mobileanalytics;pinpoint"
70 mybuildtargets+=";pinpoint-email;sms-voice"
72 mybuildtargets+=";sns"
74 elif [ "${module}" = "cloudhsm" ] ; then
75 mybuildtargets+=";${module};cloudhsmv2"
76 elif [ "${module}" = "cloudsearch" ] ; then
77 mybuildtargets+=";${module};cloudsearchdomain"
78 elif [ "${module}" = "cloudwatch" ] ; then
79 mybuildtargets+=";application-insights;appmesh;cloudtrail;guardduty;health;inspector"
80 mybuildtargets+=";logs;monitoring"
81 elif [ "${module}" = "cognito" ] ; then
82 mybuildtargets+=";cognito-identity;cognito-idp;cognito-sync"
83 elif [ "${module}" = "dynamodb" ] ; then
84 mybuildtargets+=";${module};dax;dynamodbstreams"
85 elif [ "${module}" = "ec2" ] ; then
86 mybuildtargets+=";${module};autoscaling;autoscaling-plans;application-autoscaling"
87 mybuildtargets+=";ec2-instance-connect;elasticfilesystem"
88 elif [ "${module}" = "elasticloadbalancing" ] ; then
89 mybuildtargets+=";${module};elasticloadbalancingv2"
90 elif [ "${module}" = "events" ] ; then
91 mybuildtargets+=";${module};eventbridge"
92 elif [ "${module}" = "iot" ] ; then
93 mybuildtargets+=";${module};greengrass;iot1click-devices;iot1click-projects"
94 mybuildtargets+=";iotanalytics;iot-data;iotevents;iotevents-data;iot-jobs-data"
95 mybuildtargets+=";iotthingsgraph"
96 elif [ "${module}" = "kinesis" ] ; then
97 mybuildtargets+=";${module};firehose;kinesisanalytics;kinesisanalyticsv2;kinesisvideo"
98 mybuildtargets+=";kinesis-video-archived-media;kinesis-video-media"
99 elif [ "${module}" = "lex" ] ; then
100 mybuildtargets+=";${module};lex-models"
101 elif [ "${module}" = "marketplace" ] ; then
102 mybuildtargets+=";marketplacecommerceanalytics;marketplace-entitlement"
103 mybuildtargets+=";meteringmarketplace;pricing"
104 elif [ "${module}" = "opsworks" ] ; then
105 mybuildtargets+=";${module};opsworkscm"
106 elif [ "${module}" = "other" ] ; then
107 mybuildtargets+=";AWSMigrationHub;alexaforbusiness;clouddirectory;comprehend"
108 mybuildtargets+=";comprehendmedical;connect;datapipeline;datasync;directconnect"
109 mybuildtargets+=";discovery;dms;docdb;ds;dynamodb;gamelift;glue;groundstation"
110 mybuildtargets+=";importexport;kafka;lakeformation;mq;mturk-requester;neptune"
111 mybuildtargets+=";quicksight;redshift;robomaker;sdb;service-quotas;servicecatalog"
112 mybuildtargets+=";servicediscovery;signer;sms;snowball;ssm;states;storagegateway"
113 mybuildtargets+=";support;swf"
114 elif [ "${module}" = "personalize" ] ; then
115 mybuildtargets+=";${module};personalize-events;personalize-runtime"
116 elif [ "${module}" = "polly" ] ; then
117 mybuildtargets+=";${module};text-to-speech"
118 elif [ "${module}" = "rds" ] ; then
119 mybuildtargets+=";${module};pi;rds-data"
120 elif [ "${module}" = "resource-groups" ] ; then
121 mybuildtargets+=";${module};resourcegroupstaggingapi"
122 elif [ "${module}" = "route53" ] ; then
123 mybuildtargets+=";${module};route53domains;route53resolver"
124 elif [ "${module}" = "s3" ] ; then
125 mybuildtargets+=";${module};athena;awstransfer;glacier;s3-encryption;s3control;transfer"
126 elif [ "${module}" = "sagemaker" ] ; then
127 mybuildtargets+=";${module};sagemaker-runtime"
128 elif [ "${module}" = "transcribe" ] ; then
129 mybuildtargets+=";${module};transcribestreaming"
130 elif [ "${module}" = "waf" ] ; then
131 mybuildtargets+=";${module};fms;waf-regional"
133 mybuildtargets+=";${module}"
140 -DBUILD_ONLY="${mybuildtargets}"
141 -DBUILD_SHARED_LIBS=$(usex !static-libs)
143 -DENABLE_RTTI=$(usex rtti)
144 -DENABLE_TESTING=$(usex test)
145 -DENABLE_UNITY_BUILD=$(usex unity-build)
146 -DNO_ENCRYPTION=$(usex !ssl)
147 -DNO_HTTP_CLIENT=$(usex !http)
149 cmake-utils_src_configure