Skip to content

Commit 752f567

Browse files
authored
Merge pull request #29819 from compnerd/swift-apis
build: add an option to optionally build tensorflow-swift-apis
2 parents e5a1d69 + 9b332a3 commit 752f567

File tree

6 files changed

+88
-4
lines changed

6 files changed

+88
-4
lines changed

utils/build-script

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ def validate_arguments(toolchain, args):
220220
'build_playgroundsupport',
221221
'build_pythonkit',
222222
'build_sourcekitlsp',
223+
'build_tensorflow_swift_apis',
223224
'build_toolchainbenchmarks',
224225
'tsan_libdispatch_test',
225226
]
@@ -268,9 +269,13 @@ def default_stdlib_deployment_targets(args):
268269
def apply_default_arguments(toolchain, args):
269270
# Infer if ninja is required
270271
ninja_required = (
271-
args.cmake_generator == 'Ninja' or args.build_foundation or
272-
args.build_pythonkit or args.build_sourcekitlsp or
273-
args.build_indexstoredb)
272+
args.build_foundation or
273+
args.build_indexstoredb or
274+
args.build_pythonkit or
275+
args.build_sourcekitlsp or
276+
args.build_tensorflow_swift_apis or
277+
args.cmake_generator == 'Ninja'
278+
)
274279
if ninja_required and toolchain.ninja is None:
275280
args.build_ninja = True
276281

@@ -820,6 +825,8 @@ class BuildScriptInvocation(object):
820825
product_classes.append(products.PlaygroundSupport)
821826
if self.args.build_pythonkit:
822827
product_classes.append(products.PythonKit)
828+
if self.args.build_tensorflow_swift_apis:
829+
product_classes.append(products.TensorFlowSwiftAPIs)
823830
if self.args.build_sourcekitlsp:
824831
product_classes.append(products.SourceKitLSP)
825832
if self.args.build_toolchainbenchmarks:

utils/build_swift/build_swift/driver_arguments.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,12 @@ def create_argument_parser():
605605
option('--pythonkit', store_true('build_pythonkit'),
606606
help='build PythonKit')
607607

608+
option('--tensorflow-swift-apis', store_true('build_tensorflow_swift_apis'),
609+
help='build TensorFlow Swift APIs')
610+
option('--install-tensorflow-swift-apis',
611+
store_true('install_tensorflow_swift_apis'),
612+
help='install TensorFlow Swift APIs')
613+
608614
option('--build-ninja', toggle_true,
609615
help='build the Ninja tool')
610616

utils/build_swift/tests/expected_options.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
'build_swift_stdlib_unittest_extra': False,
8787
'build_swiftpm': False,
8888
'build_swiftsyntax': False,
89+
'build_tensorflow_swift_apis': False,
8990
'build_libparser_only': False,
9091
'build_skstresstester': False,
9192
'build_swiftevolve': False,
@@ -99,6 +100,7 @@
99100
'install_sourcekitlsp': False,
100101
'install_skstresstester': False,
101102
'install_swiftevolve': False,
103+
'install_tensorflow_swift_apis': False,
102104
'build_toolchainbenchmarks': False,
103105
'build_tvos': True,
104106
'build_tvos_device': False,
@@ -455,6 +457,9 @@ class BuildScriptImplOption(_BaseOption):
455457
dest='install_playgroundsupport'),
456458
SetTrueOption('--install-pythonkit', dest='install_pythonkit'),
457459
SetTrueOption('--test-pythonkit', dest='test_pythonkit'),
460+
SetTrueOption('--tensorflow-swift-apis', dest='build_tensorflow_swift_apis'),
461+
SetTrueOption('--install-tensorflow-swift-apis',
462+
dest='install_tensorflow_swift_apis'),
458463
SetTrueOption('--skip-build'),
459464
SetTrueOption('--swiftpm', dest='build_swiftpm'),
460465
SetTrueOption('--swiftsyntax', dest='build_swiftsyntax'),

utils/swift_build_support/swift_build_support/products/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from .swiftevolve import SwiftEvolve
3030
from .swiftpm import SwiftPM
3131
from .swiftsyntax import SwiftSyntax
32+
from .tensorflow import TensorFlowSwiftAPIs
3233
from .tsan_libdispatch import TSanLibDispatch
3334
from .xctest import XCTest
3435

@@ -47,6 +48,7 @@
4748
'PythonKit',
4849
'Swift',
4950
'SwiftPM',
51+
'TensorFlowSwiftAPIs',
5052
'XCTest',
5153
'SwiftSyntax',
5254
'SKStressTester',
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# swift_build_support/products/tensorflow.py --------------------*- python -*-
2+
#
3+
# This source file is part of the Swift.org open source project
4+
#
5+
# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
6+
# Licensed under Apache License v2.0 with Runtime Library Exception
7+
#
8+
# See https://swift.org/LICENSE.txt for license information
9+
# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
10+
#
11+
# ----------------------------------------------------------------------------
12+
13+
from . import product
14+
from .. import shell
15+
16+
17+
class TensorFlowSwiftAPIs(product.Product):
18+
@classmethod
19+
def product_source_name(cls):
20+
return "tensorflow-swift-apis"
21+
22+
@classmethod
23+
def is_build_script_impl_product(cls):
24+
return False
25+
26+
def should_build(self, host_target):
27+
return self.args.build_tensorflow_swift_apis
28+
29+
def build(self, host_target):
30+
shell.call([
31+
self.toolchain.cmake,
32+
'-G', 'Ninja',
33+
'-D', 'BUILD_SHARED_LIBS=YES',
34+
'-D', 'CMAKE_INSTALL_PREFIX={}/usr'.format(
35+
self.args.install_destdir),
36+
'-D', 'CMAKE_MAKE_PROGRAM={}'.format(self.toolchain.ninja),
37+
'-D', 'CMAKE_Swift_COMPILER={}'.format(self.toolchain.swiftc),
38+
'-B', self.build_dir,
39+
'-S', self.source_dir,
40+
])
41+
shell.call([
42+
self.toolchain.cmake,
43+
'--build', self.build_dir,
44+
])
45+
46+
def should_test(self, host_target):
47+
return False
48+
49+
def test(self, host_target):
50+
pass
51+
52+
def should_install(self, host_target):
53+
return self.args.install_tensorflow_swift_apis
54+
55+
def install(self, host_target):
56+
shell.call([
57+
self.toolchain.cmake,
58+
'--build', self.build_dir,
59+
'--target', 'install',
60+
])

utils/update_checkout/update-checkout-config.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@
3939
"pythonkit": {
4040
"remote": { "id": "pvieito/PythonKit" }
4141
},
42+
"tensorflow-swift-apis": {
43+
"remote": { "id": "tensorflow/swift-apis" }
44+
},
4245
"indexstore-db": {
4346
"remote": { "id": "apple/indexstore-db" } },
4447
"sourcekit-lsp": {
@@ -72,7 +75,8 @@
7275
"indexstore-db": "master",
7376
"sourcekit-lsp": "master",
7477
"swift-format": "master",
75-
"pythonkit": "master"
78+
"pythonkit": "master",
79+
"tensorflow-swift-apis": "master"
7680
}
7781
},
7882
"next" : {

0 commit comments

Comments
 (0)