@@ -44,6 +44,7 @@ tasks.register("generate-smithy-build") {
4444 val filteredServiceList = filteredServices.split(" ," ).map { it.trim() }.filter { it.isNotEmpty() }
4545 val c2jMapStr: String = project.findProperty(" c2jMap" )?.toString() ? : " {}"
4646 val namespaceMappings: String = project.findProperty(" namespaceMappings" )?.toString() ? : " {}"
47+ val generateModels: Boolean = project.findProperty(" generateModels" )?.toString()?.toBoolean() ? : false
4748
4849 fileTree(models).filter { it.isFile }.files.forEach eachFile@{ file ->
4950 val model = Model .assembler()
@@ -58,21 +59,25 @@ tasks.register("generate-smithy-build") {
5859
5960 if (filteredServiceList.isNotEmpty() && sdkId !in filteredServiceList) return @eachFile
6061
62+ var pluginsNode = Node .objectNode()
63+ .withMember(" smithy-cpp-codegen-paginators" , Node .objectNodeBuilder()
64+ .withMember(" c2jMap" , Node .from(c2jMapStr))
65+ .withMember(" namespaceMappings" , Node .from(namespaceMappings))
66+ .build())
67+ .withMember(" smithy-cpp-codegen-waiters" , Node .objectNodeBuilder()
68+ .withMember(" c2jMap" , Node .from(c2jMapStr))
69+ .withMember(" namespaceMappings" , Node .from(namespaceMappings))
70+ .build())
71+ if (generateModels) {
72+ pluginsNode = pluginsNode.withMember(" smithy-cpp-codegen-models" , Node .objectNodeBuilder()
73+ .withMember(" c2jMap" , Node .from(c2jMapStr))
74+ .withMember(" namespaceMappings" , Node .from(namespaceMappings))
75+ .build())
76+ }
77+
6178 val projectionContents = Node .objectNodeBuilder()
6279 .withMember(" imports" , Node .fromStrings(" ${models.absolutePath}${File .separator}${file.name} " ))
63- .withMember(" plugins" , Node .objectNode()
64- .withMember(" smithy-cpp-codegen-paginators" , Node .objectNodeBuilder()
65- .withMember(" c2jMap" , Node .from(c2jMapStr))
66- .withMember(" namespaceMappings" , Node .from(namespaceMappings))
67- .build())
68- .withMember(" smithy-cpp-codegen-waiters" , Node .objectNodeBuilder()
69- .withMember(" c2jMap" , Node .from(c2jMapStr))
70- .withMember(" namespaceMappings" , Node .from(namespaceMappings))
71- .build())
72- .withMember(" smithy-cpp-codegen-models" , Node .objectNodeBuilder()
73- .withMember(" c2jMap" , Node .from(c2jMapStr))
74- .withMember(" namespaceMappings" , Node .from(namespaceMappings))
75- .build()))
80+ .withMember(" plugins" , pluginsNode)
7681 .build()
7782
7883 projectionsBuilder.withMember(" $sdkId .${service.version.lowercase()} " , projectionContents)
@@ -82,20 +87,23 @@ tasks.register("generate-smithy-build") {
8287 val legacyServices = mapOf (" importexport" to " ImportExport" , " sdb" to " SimpleDB" )
8388 legacyServices.forEach { (c2jName, serviceName) ->
8489 if (filteredServiceList.isEmpty() || c2jName in filteredServiceList) {
85- val mockProjectionContents = Node .objectNodeBuilder()
86- .withMember(" plugins" , Node .objectNode()
87- .withMember(" smithy-cpp-codegen-paginators" , Node .objectNodeBuilder()
88- .withMember(" c2jMap" , Node .from(c2jMapStr))
89- .withMember(" namespaceMappings" , Node .from(namespaceMappings))
90- .build())
90+ var legacyPluginsNode = Node .objectNode()
91+ .withMember(" smithy-cpp-codegen-paginators" , Node .objectNodeBuilder()
92+ .withMember(" c2jMap" , Node .from(c2jMapStr))
93+ .withMember(" namespaceMappings" , Node .from(namespaceMappings))
94+ .build())
9195 .withMember(" smithy-cpp-codegen-waiters" , Node .objectNodeBuilder()
9296 .withMember(" c2jMap" , Node .from(c2jMapStr))
9397 .withMember(" namespaceMappings" , Node .from(namespaceMappings))
9498 .build())
95- .withMember(" smithy-cpp-codegen-models" , Node .objectNodeBuilder()
99+ if (generateModels) {
100+ legacyPluginsNode = legacyPluginsNode.withMember(" smithy-cpp-codegen-models" , Node .objectNodeBuilder()
96101 .withMember(" c2jMap" , Node .from(c2jMapStr))
97102 .withMember(" namespaceMappings" , Node .from(namespaceMappings))
98- .build()))
103+ .build())
104+ }
105+ val mockProjectionContents = Node .objectNodeBuilder()
106+ .withMember(" plugins" , legacyPluginsNode)
99107 .build()
100108 projectionsBuilder.withMember(" $c2jName .mock" , mockProjectionContents)
101109 }
@@ -104,21 +112,24 @@ tasks.register("generate-smithy-build") {
104112 // S3-CRT: Uses S3 model but generates with S3Crt namespace
105113 if (filteredServiceList.isEmpty() || " s3-crt" in filteredServiceList) {
106114 fileTree(models).filter { it.isFile && it.name == " s3.json" }.files.firstOrNull()?.let { s3ModelFile ->
115+ var s3CrtPluginsNode = Node .objectNode()
116+ .withMember(" smithy-cpp-codegen-paginators" , Node .objectNodeBuilder()
117+ .withMember(" c2jMap" , Node .from(c2jMapStr))
118+ .withMember(" namespaceMappings" , Node .from(namespaceMappings))
119+ .build())
120+ .withMember(" smithy-cpp-codegen-waiters" , Node .objectNodeBuilder()
121+ .withMember(" c2jMap" , Node .from(c2jMapStr))
122+ .withMember(" namespaceMappings" , Node .from(namespaceMappings))
123+ .build())
124+ if (generateModels) {
125+ s3CrtPluginsNode = s3CrtPluginsNode.withMember(" smithy-cpp-codegen-models" , Node .objectNodeBuilder()
126+ .withMember(" c2jMap" , Node .from(c2jMapStr))
127+ .withMember(" namespaceMappings" , Node .from(namespaceMappings))
128+ .build())
129+ }
107130 val s3CrtProjectionContents = Node .objectNodeBuilder()
108131 .withMember(" imports" , Node .fromStrings(s3ModelFile.absolutePath))
109- .withMember(" plugins" , Node .objectNode()
110- .withMember(" smithy-cpp-codegen-paginators" , Node .objectNodeBuilder()
111- .withMember(" c2jMap" , Node .from(c2jMapStr))
112- .withMember(" namespaceMappings" , Node .from(namespaceMappings))
113- .build())
114- .withMember(" smithy-cpp-codegen-waiters" , Node .objectNodeBuilder()
115- .withMember(" c2jMap" , Node .from(c2jMapStr))
116- .withMember(" namespaceMappings" , Node .from(namespaceMappings))
117- .build())
118- .withMember(" smithy-cpp-codegen-models" , Node .objectNodeBuilder()
119- .withMember(" c2jMap" , Node .from(c2jMapStr))
120- .withMember(" namespaceMappings" , Node .from(namespaceMappings))
121- .build()))
132+ .withMember(" plugins" , s3CrtPluginsNode)
122133 .build()
123134 projectionsBuilder.withMember(" s3-crt.2006-03-01" , s3CrtProjectionContents)
124135 }
0 commit comments