Skip to content
This repository was archived by the owner on Apr 23, 2025. It is now read-only.

Commit 4c6ceb7

Browse files
authored
build: add a CMake based build for the tensorflow-swift-models (#303)
This adds a CMake based build system for the models, enabling building the models on platforms where swift-package-manager does not currently function properly.
1 parent aefe174 commit 4c6ceb7

File tree

16 files changed

+255
-0
lines changed

16 files changed

+255
-0
lines changed

CMakeLists.txt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
cmake_minimum_required(VERSION 3.16)
2+
project(Models
3+
LANGUAGES Swift)
4+
5+
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules)
6+
7+
set(CMAKE_Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/swift)
8+
9+
include(SwiftSupport)
10+
11+
add_subdirectory(Support)
12+
add_subdirectory(Datasets)
13+
add_subdirectory(Models)
14+
add_subdirectory(MiniGo)
15+
add_subdirectory(GAN)
16+
add_subdirectory(DCGAN)
17+
add_subdirectory(FastStyleTransfer)
18+
add_subdirectory(Examples)

DCGAN/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
add_executable(DCGAN
2+
main.swift)
3+
target_link_libraries(DCGAN PRIVATE
4+
Datasets
5+
ModelSupport)
6+
7+
8+
install(TARGETS DCGAN
9+
DESTINATION bin)

Datasets/CMakeLists.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
add_library(Datasets
2+
CIFAR10/CIFAR10.swift
3+
DatasetUtilities.swift
4+
ImageClassificationDataset.swift
5+
Imagenette/Imagenette.swift
6+
Imagenette/Imagewoof.swift
7+
LabeledExample.swift
8+
MNIST/MNIST.swift)
9+
target_link_libraries(Datasets PUBLIC
10+
ModelSupport)
11+
set_target_properties(Datasets PROPERTIES
12+
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY})
13+
14+
15+
install(TARGETS Datasets
16+
ARCHIVE DESTINATION lib/swift/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>
17+
LIBRARY DESTINATION lib/swift/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>
18+
RUNTIME DESTINATION bin)
19+
get_swift_host_arch(swift_arch)
20+
install(FILES
21+
$<TARGET_PROPERTY:Datasets,Swift_MODULE_DIRECTORY>/Datasets.swiftdoc
22+
$<TARGET_PROPERTY:Datasets,Swift_MODULE_DIRECTORY>/Datasets.swiftmodule
23+
DESTINATION lib/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>/${swift_arch})

Examples/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
add_subdirectory(Custom-CIFAR10)
2+
add_subdirectory(ResNet-CIFAR10)
3+
add_subdirectory(LeNet-MNIST)
4+
add_subdirectory(MobileNet-Imagenette)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
add_executable(Custom-CIFAR10
2+
Models.swift
3+
main.swift)
4+
target_link_libraries(Custom-CIFAR10 PRIVATE
5+
ImageClassificationModels
6+
Datasets)
7+
8+
9+
install(TARGETS Custom-CIFAR10
10+
DESTINATION bin)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
add_executable(LeNet-MNIST
2+
main.swift)
3+
target_link_libraries(LeNet-MNIST PRIVATE
4+
ImageClassificationModels
5+
Datasets)
6+
7+
8+
install(TARGETS LeNet-MNIST
9+
DESTINATION bin)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
add_executable(MobileNet-Imagenette
2+
main.swift)
3+
target_link_libraries(MobileNet-Imagenette PRIVATE
4+
ImageClassificationModels
5+
Datasets)
6+
7+
8+
install(TARGETS MobileNet-Imagenette
9+
DESTINATION bin)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
add_executable(ResNet-CIFAR10
2+
main.swift)
3+
target_link_libraries(ResNet-CIFAR10 PRIVATE
4+
ImageClassificationModels
5+
Datasets)
6+
7+
8+
install(TARGETS ResNet-CIFAR10
9+
DESTINATION bin)

FastStyleTransfer/CMakeLists.txt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
add_library(FastStyleTransfer
2+
Layers/Helpers.swift
3+
Layers/Normalization.swift
4+
5+
Models/TransformerNet.swift
6+
7+
Utility/ImportableLayer.swift
8+
Utility/Resize.swift)
9+
target_link_libraries(FastStyleTransfer PUBLIC
10+
ModelSupport)
11+
set_target_properties(FastStyleTransfer PROPERTIES
12+
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY})
13+
14+
add_executable(FastStyleTransferDemo
15+
Demo/ColabDemo.ipynb
16+
Demo/Helpers.swift
17+
Demo/main.swift)
18+
target_link_libraries(FastStyleTransferDemo PRIVATE
19+
FastStyleTransfer)
20+
21+
22+
install(TARGETS FastStyleTransfer
23+
ARCHIVE DESTINATION lib/swift/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>
24+
LIBRARY DESTINATION lib/swift/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>
25+
RUNTIME DESTINATION bin)
26+
install(TARGETS FastStyleTransferDemo
27+
DESTINATION bin)
28+
get_swift_host_arch(swift_arch)
29+
install(FILES
30+
$<TARGET_PROPERTY:FastStyleTransfer,Swift_MODULE_DIRECTORY>/FastStyleTransfer.swiftdoc
31+
$<TARGET_PROPERTY:FastStyleTransfer,Swift_MODULE_DIRECTORY>/FastStyleTransfer.swiftmodule
32+
DESTINATION lib/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>/$<LOWER_CASE:${CMAKE_SYSTEM_NAME}>/${swift_arch})

GAN/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
add_executable(GAN
2+
main.swift)
3+
target_link_libraries(GAN PRIVATE
4+
Datasets
5+
ModelSupport)
6+
7+
8+
install(TARGETS GAN
9+
DESTINATION bin)

0 commit comments

Comments
 (0)