1ce4d2c80bf72189b952221a8b7ca6bc97304849
[gentoo.git] / dev-libs / aws-sdk-cpp / aws-sdk-cpp-1.7.178.ebuild
1 # Copyright 1999-2019 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 PYTHON_COMPAT=( python2_7 )
7
8 inherit cmake-utils python-single-r1
9
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"
13
14 LICENSE="Apache-2.0"
15 SLOT="0"
16 KEYWORDS="~amd64 ~x86"
17
18 MODULES=(
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
25 )
26
27 IUSE="+http libressl +rtti +ssl static-libs test unity-build ${MODULES[*]}"
28 RESTRICT="!test? ( test )"
29 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
30
31 DEPEND="
32         http? ( net-misc/curl:= )
33         polly? ( media-sound/pulseaudio )
34         ssl? (
35                 !libressl? ( dev-libs/openssl:0= )
36                 libressl? ( dev-libs/libressl:0= )
37         )
38         dev-libs/aws-c-common
39         dev-libs/aws-checksums
40         dev-libs/aws-c-event-stream
41         sys-libs/zlib
42 "
43 RDEPEND="
44         ${DEPEND}
45         ${PYTHON_DEPS}
46 "
47
48 src_configure() {
49         local mybuildtargets="core"
50
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"
65                                 fi
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"
72                                 if ! use "sns"; then
73                                         mybuildtargets+=";sns"
74                                 fi
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"
133                         else
134                                 mybuildtargets+=";${module}"
135                         fi
136                 fi
137         done
138
139         local mycmakeargs=(
140                 -DBUILD_DEPS=NO
141                 -DBUILD_ONLY="${mybuildtargets}"
142                 -DBUILD_SHARED_LIBS=$(usex !static-libs)
143                 -DCPP_STANDARD=17
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)
149         )
150         cmake-utils_src_configure
151 }