Skip to content

Commit da5d141

Browse files
authored
Build and link image utils as libraries in cmake (#54)
1 parent ab12e99 commit da5d141

File tree

5 files changed

+46
-27
lines changed

5 files changed

+46
-27
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ add_subdirectory("tutorials/intermediate/bidirectional_recurrent_neural_network"
4646
add_subdirectory("tutorials/intermediate/language_model")
4747

4848
# Advanced
49+
add_subdirectory("tutorials/advanced/utils")
4950
add_subdirectory("tutorials/advanced/generative_adversarial_network")
5051
add_subdirectory("tutorials/advanced/variational_autoencoder")
5152
add_subdirectory("tutorials/advanced/neural_style_transfer")

tutorials/advanced/generative_adversarial_network/CMakeLists.txt

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,9 @@ endif()
1010
set(EXECUTABLE_NAME generative-adversarial-network)
1111

1212
add_executable(${EXECUTABLE_NAME})
13-
target_sources(${EXECUTABLE_NAME} PRIVATE main.cpp
14-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/src/save_image.cpp
15-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/save_image.h
16-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/external/stb_image_write.h
17-
)
18-
19-
target_include_directories(${EXECUTABLE_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../utils/include
20-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/external)
13+
target_sources(${EXECUTABLE_NAME} PRIVATE main.cpp)
2114

22-
target_link_libraries(${EXECUTABLE_NAME} "${TORCH_LIBRARIES}")
15+
target_link_libraries(${EXECUTABLE_NAME} "${TORCH_LIBRARIES}" save-image)
2316

2417
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
2518
CXX_STANDARD 14

tutorials/advanced/neural_style_transfer/CMakeLists.txt

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,11 @@ set(EXECUTABLE_NAME neural-style-transfer)
1212
add_executable(${EXECUTABLE_NAME})
1313
target_sources(${EXECUTABLE_NAME} PRIVATE src/main.cpp
1414
src/vggnet.cpp
15-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/src/save_image.cpp
16-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/src/load_image.cpp
1715
include/vggnet.h
18-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/save_image.h
19-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/load_image.h
20-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/external/stb_image_write.h
21-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/external/stb_image.h
22-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/external/stb_image_resize.h
2316
)
24-
target_include_directories(${EXECUTABLE_NAME} PRIVATE include
25-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include
26-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/external)
17+
target_include_directories(${EXECUTABLE_NAME} PRIVATE include)
2718

28-
target_link_libraries(${EXECUTABLE_NAME} "${TORCH_LIBRARIES}")
19+
target_link_libraries(${EXECUTABLE_NAME} "${TORCH_LIBRARIES}" save-image load-image)
2920

3021
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
3122
CXX_STANDARD 14
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
2+
3+
project(image-utils VERSION 1.0.0 LANGUAGES CXX)
4+
5+
if(NOT Torch_FOUND)
6+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake")
7+
find_package(Torch REQUIRED PATHS "${CMAKE_CURRENT_SOURCE_DIR}/../../../libtorch")
8+
endif()
9+
10+
add_library(load-image SHARED)
11+
target_sources(load-image PRIVATE include/external/stb_image.h
12+
include/external/stb_image_resize.h
13+
PUBLIC src/load_image.cpp
14+
include/load_image.h)
15+
16+
target_include_directories(load-image PUBLIC include
17+
include/external)
18+
19+
target_link_libraries(load-image ${TORCH_LIBRARIES})
20+
21+
set_target_properties(load-image PROPERTIES
22+
CXX_STANDARD 14
23+
CXX_STANDARD_REQUIRED YES
24+
)
25+
26+
add_library(save-image SHARED)
27+
target_sources(save-image PRIVATE include/external/stb_image_write.h
28+
PUBLIC src/save_image.cpp
29+
include/save_image.h)
30+
31+
target_include_directories(save-image PUBLIC include
32+
include/external)
33+
34+
target_link_libraries(save-image ${TORCH_LIBRARIES})
35+
36+
set_target_properties(save-image PROPERTIES
37+
CXX_STANDARD 14
38+
CXX_STANDARD_REQUIRED YES
39+
)

tutorials/advanced/variational_autoencoder/CMakeLists.txt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,11 @@ set(EXECUTABLE_NAME variational-autoencoder)
1212
add_executable(${EXECUTABLE_NAME})
1313
target_sources(${EXECUTABLE_NAME} PRIVATE src/main.cpp
1414
src/variational_autoencoder.cpp
15-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/src/save_image.cpp
1615
include/variational_autoencoder.h
17-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/save_image.h
18-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/external/stb_image_write.h
1916
)
20-
target_include_directories(${EXECUTABLE_NAME} PRIVATE include
21-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include
22-
${CMAKE_CURRENT_SOURCE_DIR}/../utils/include/external)
17+
target_include_directories(${EXECUTABLE_NAME} PRIVATE include)
2318

24-
target_link_libraries(${EXECUTABLE_NAME} "${TORCH_LIBRARIES}")
19+
target_link_libraries(${EXECUTABLE_NAME} "${TORCH_LIBRARIES}" save-image)
2520

2621
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
2722
CXX_STANDARD 14

0 commit comments

Comments
 (0)