1c20c4f04f227a7a83243c5fcfc2def081a94c89
[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 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
29
30 DEPEND="
31         http? ( net-misc/curl:= )
32         polly? ( media-sound/pulseaudio )
33         ssl? (
34                 !libressl? ( dev-libs/openssl:0= )
35                 libressl? ( dev-libs/libressl:0= )
36         )
37         dev-libs/aws-c-common
38         dev-libs/aws-checksums
39         dev-libs/aws-c-event-stream
40         sys-libs/zlib
41 "
42 RDEPEND="
43         ${DEPEND}
44         ${PYTHON_DEPS}
45 "
46
47 src_configure() {
48         local mybuildtargets="core"
49
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"
64                                 fi
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"
71                                 if ! use "sns"; then
72                                         mybuildtargets+=";sns"
73                                 fi
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"
132                         else
133                                 mybuildtargets+=";${module}"
134                         fi
135                 fi
136         done
137
138         local mycmakeargs=(
139                 -DBUILD_DEPS=NO
140                 -DBUILD_ONLY="${mybuildtargets}"
141                 -DBUILD_SHARED_LIBS=$(usex !static-libs)
142                 -DCPP_STANDARD=17
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)
148         )
149         cmake-utils_src_configure
150 }