Skip to content

Commit 69e9cde

Browse files
committedMar 14, 2025
SwigBinding: Add alicevision_swig_add_library helper function
1 parent cec0fa6 commit 69e9cde

File tree

10 files changed

+146
-462
lines changed

10 files changed

+146
-462
lines changed
 

‎src/aliceVision/CMakeLists.txt

+10-51
Original file line numberDiff line numberDiff line change
@@ -82,58 +82,17 @@ if (ALICEVISION_BUILD_PHOTOMETRICSTEREO)
8282
endif()
8383

8484

85-
if(ALICEVISION_BUILD_SWIG_BINDING)
86-
set_property(SOURCE aliceVision.i PROPERTY CPLUSPLUS ON)
87-
set_property(SOURCE aliceVision.i PROPERTY SWIG_MODULE_NAME pyalicevision)
88-
89-
swig_add_library(pyalicevision
90-
TYPE MODULE
91-
LANGUAGE python
85+
if (ALICEVISION_BUILD_SWIG_BINDING)
86+
alicevision_swig_add_library(pyalicevision
9287
SOURCES aliceVision.i
93-
)
94-
95-
if (CMAKE_SYSTEM_NAME MATCHES "Linux" OR UNIX)
96-
list(APPEND SWIG_EXTRA_COMPILE_OPTIONS "-DLINUXPLATFORM")
97-
endif()
98-
99-
set_property(
100-
TARGET pyalicevision
101-
PROPERTY SWIG_COMPILE_OPTIONS -doxygen ${SWIG_EXTRA_COMPILE_OPTIONS}
102-
)
103-
104-
target_include_directories(pyalicevision
105-
PRIVATE
106-
../include
107-
${ALICEVISION_ROOT}/include
108-
${Python3_INCLUDE_DIRS}
109-
${Python3_NumPy_INCLUDE_DIRS}
110-
)
111-
set_property(
112-
TARGET pyalicevision
113-
PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON
114-
)
115-
set_property(
116-
TARGET pyalicevision
117-
PROPERTY COMPILE_OPTIONS -std=c++20
118-
)
119-
120-
target_link_libraries(pyalicevision
121-
PUBLIC
122-
aliceVision_numeric
123-
${Python3_LIBRARIES}
124-
)
125-
install(
126-
TARGETS
127-
pyalicevision
128-
129-
DESTINATION
130-
${CMAKE_INSTALL_BINDIR}
131-
)
132-
install(
133-
FILES
134-
${CMAKE_CURRENT_BINARY_DIR}/pyalicevision.py
135-
DESTINATION
136-
${CMAKE_INSTALL_BINDIR}
88+
PUBLIC_LINKS
89+
aliceVision_numeric
90+
${Python3_LIBRARIES}
91+
PRIVATE_INCLUDE_DIRS
92+
../include
93+
${ALICEVISION_ROOT}/include
94+
${Python3_INCLUDE_DIRS}
95+
${Python3_NumPy_INCLUDE_DIRS}
13796
)
13897
endif()
13998

‎src/aliceVision/camera/CMakeLists.txt

+9-50
Original file line numberDiff line numberDiff line change
@@ -61,56 +61,15 @@ alicevision_add_test(equidistant_test.cpp NAME "camera_equidistant"
6161

6262
# SWIG Binding
6363
if (ALICEVISION_BUILD_SWIG_BINDING)
64-
set_property(SOURCE Camera.i PROPERTY CPLUSPLUS ON)
65-
set_property(SOURCE Camera.i PROPERTY SWIG_MODULE_NAME camera)
66-
67-
swig_add_library(camera
68-
TYPE MODULE
69-
LANGUAGE python
64+
alicevision_swig_add_library(camera
7065
SOURCES Camera.i
71-
)
72-
73-
if (CMAKE_SYSTEM_NAME MATCHES "Linux" OR UNIX)
74-
list(APPEND SWIG_EXTRA_COMPILE_OPTIONS "-DLINUXPLATFORM")
75-
endif()
76-
77-
set_property(
78-
TARGET camera
79-
PROPERTY SWIG_COMPILE_OPTIONS -doxygen ${SWIG_EXTRA_COMPILE_OPTIONS}
80-
)
81-
82-
target_include_directories(camera
83-
PRIVATE
84-
../include
85-
${ALICEVISION_ROOT}/include
86-
${Python3_INCLUDE_DIRS}
87-
${Python3_NumPy_INCLUDE_DIRS}
88-
)
89-
set_property(
90-
TARGET camera
91-
PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON
92-
)
93-
set_property(
94-
TARGET camera
95-
PROPERTY COMPILE_OPTIONS -std=c++20
96-
)
97-
98-
target_link_libraries(camera
99-
PUBLIC
100-
aliceVision_camera
101-
${Python3_LIBRARIES}
102-
)
103-
104-
install(
105-
TARGETS
106-
camera
107-
DESTINATION
108-
${CMAKE_INSTALL_BINDIR}
109-
)
110-
install(
111-
FILES
112-
${CMAKE_CURRENT_BINARY_DIR}/camera.py
113-
DESTINATION
114-
${CMAKE_INSTALL_BINDIR}
66+
PUBLIC_LINKS
67+
aliceVision_camera
68+
${Python3_LIBRARIES}
69+
PRIVATE_INCLUDE_DIRS
70+
../include
71+
${ALICEVISION_ROOT}/include
72+
${Python3_INCLUDE_DIRS}
73+
${Python3_NumPy_INCLUDE_DIRS}
11574
)
11675
endif()

‎src/aliceVision/geometry/CMakeLists.txt

+9-50
Original file line numberDiff line numberDiff line change
@@ -38,56 +38,15 @@ alicevision_add_test(frustumIntersection_test.cpp
3838

3939
# SWIG Binding
4040
if (ALICEVISION_BUILD_SWIG_BINDING)
41-
set_property(SOURCE Geometry.i PROPERTY CPLUSPLUS ON)
42-
set_property(SOURCE Geometry.i PROPERTY SWIG_MODULE_NAME geometry)
43-
44-
swig_add_library(geometry
45-
TYPE MODULE
46-
LANGUAGE python
41+
alicevision_swig_add_library(geometry
4742
SOURCES Geometry.i
48-
)
49-
50-
if (CMAKE_SYSTEM_NAME MATCHES "Linux" OR UNIX)
51-
list(APPEND SWIG_EXTRA_COMPILE_OPTIONS "-DLINUXPLATFORM")
52-
endif()
53-
54-
set_property(
55-
TARGET geometry
56-
PROPERTY SWIG_COMPILE_OPTIONS -doxygen ${SWIG_EXTRA_COMPILE_OPTIONS}
57-
)
58-
59-
target_include_directories(geometry
60-
PRIVATE
61-
../include
62-
${ALICEVISION_ROOT}/include
63-
${Python3_INCLUDE_DIRS}
64-
${Python3_NumPy_INCLUDE_DIRS}
65-
)
66-
set_property(
67-
TARGET geometry
68-
PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON
69-
)
70-
set_property(
71-
TARGET geometry
72-
PROPERTY COMPILE_OPTIONS -std=c++20
73-
)
74-
75-
target_link_libraries(geometry
76-
PUBLIC
77-
aliceVision_geometry
78-
${Python3_LIBRARIES}
79-
)
80-
81-
install(
82-
TARGETS
83-
geometry
84-
DESTINATION
85-
${CMAKE_INSTALL_BINDIR}
86-
)
87-
install(
88-
FILES
89-
${CMAKE_CURRENT_BINARY_DIR}/geometry.py
90-
DESTINATION
91-
${CMAKE_INSTALL_BINDIR}
43+
PUBLIC_LINKS
44+
aliceVision_geometry
45+
${Python3_LIBRARIES}
46+
PRIVATE_INCLUDE_DIRS
47+
../include
48+
${ALICEVISION_ROOT}/include
49+
${Python3_INCLUDE_DIRS}
50+
${Python3_NumPy_INCLUDE_DIRS}
9251
)
9352
endif()

‎src/aliceVision/hdr/CMakeLists.txt

+13-54
Original file line numberDiff line numberDiff line change
@@ -51,60 +51,19 @@ alicevision_add_test(hdrLaguerre_test.cpp
5151

5252
# SWIG Binding
5353
if (ALICEVISION_BUILD_SWIG_BINDING)
54-
set_property(SOURCE Hdr.i PROPERTY CPLUSPLUS ON)
55-
set_property(SOURCE Hdr.i PROPERTY SWIG_MODULE_NAME hdr)
56-
57-
swig_add_library(hdr
58-
TYPE MODULE
59-
LANGUAGE python
54+
alicevision_swig_add_library(hdr
6055
SOURCES Hdr.i
61-
)
62-
63-
if (CMAKE_SYSTEM_NAME MATCHES "Linux" OR UNIX)
64-
list(APPEND SWIG_EXTRA_COMPILE_OPTIONS "-DLINUXPLATFORM")
65-
endif()
66-
67-
set_property(
68-
TARGET hdr
69-
PROPERTY SWIG_COMPILE_OPTIONS -doxygen ${SWIG_EXTRA_COMPILE_OPTIONS}
70-
)
71-
72-
target_include_directories(hdr
73-
PRIVATE
74-
../include
75-
${ALICEVISION_ROOT}/include
76-
${Python3_INCLUDE_DIRS}
77-
${Python3_NumPy_INCLUDE_DIRS}
78-
)
79-
set_property(
80-
TARGET hdr
81-
PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON
82-
)
83-
set_property(
84-
TARGET hdr
85-
PROPERTY COMPILE_OPTIONS -std=c++20
86-
)
87-
88-
target_link_libraries(hdr
89-
PUBLIC
90-
aliceVision_hdr
91-
aliceVision_system
92-
aliceVision_numeric
93-
aliceVision_image
94-
aliceVision_sfmData
95-
${Python3_LIBRARIES}
96-
)
97-
98-
install(
99-
TARGETS
100-
hdr
101-
DESTINATION
102-
${CMAKE_INSTALL_BINDIR}
103-
)
104-
install(
105-
FILES
106-
${CMAKE_CURRENT_BINARY_DIR}/hdr.py
107-
DESTINATION
108-
${CMAKE_INSTALL_BINDIR}
56+
PUBLIC_LINKS
57+
aliceVision_hdr
58+
aliceVision_system
59+
aliceVision_numeric
60+
aliceVision_image
61+
aliceVision_sfmData
62+
${Python3_LIBRARIES}
63+
PRIVATE_INCLUDE_DIRS
64+
../include
65+
${ALICEVISION_ROOT}/include
66+
${Python3_INCLUDE_DIRS}
67+
${Python3_NumPy_INCLUDE_DIRS}
10968
)
11069
endif()

‎src/aliceVision/numeric/CMakeLists.txt

+11-52
Original file line numberDiff line numberDiff line change
@@ -37,56 +37,15 @@ alicevision_add_test(gps_test.cpp NAME "numeric_gps" LINKS aliceVision_numeric)
3737

3838
# SWIG Binding
3939
if (ALICEVISION_BUILD_SWIG_BINDING)
40-
set_property(SOURCE numeric.i PROPERTY CPLUSPLUS ON)
41-
set_property(SOURCE numeric.i PROPERTY SWIG_MODULE_NAME numeric)
42-
43-
swig_add_library(numeric
44-
TYPE MODULE
45-
LANGUAGE python
40+
alicevision_swig_add_library(numeric
4641
SOURCES numeric.i
47-
)
48-
49-
if (CMAKE_SYSTEM_NAME MATCHES "Linux" OR UNIX)
50-
list(APPEND SWIG_EXTRA_COMPILE_OPTIONS "-DLINUXPLATFORM")
51-
endif()
52-
53-
set_property(
54-
TARGET numeric
55-
PROPERTY SWIG_COMPILE_OPTIONS -doxygen ${SWIG_EXTRA_COMPILE_OPTIONS}
56-
)
57-
58-
target_include_directories(numeric
59-
PRIVATE
60-
../include
61-
${ALICEVISION_ROOT}/include
62-
${Python3_INCLUDE_DIRS}
63-
${Python3_NumPy_INCLUDE_DIRS}
64-
)
65-
set_property(
66-
TARGET numeric
67-
PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON
68-
)
69-
set_property(
70-
TARGET numeric
71-
PROPERTY COMPILE_OPTIONS -std=c++20
72-
)
73-
74-
target_link_libraries(numeric
75-
PUBLIC
76-
aliceVision_numeric
77-
${Python3_LIBRARIES}
78-
)
79-
80-
install(
81-
TARGETS
82-
numeric
83-
DESTINATION
84-
${CMAKE_INSTALL_BINDIR}
85-
)
86-
install(
87-
FILES
88-
${CMAKE_CURRENT_BINARY_DIR}/numeric.py
89-
DESTINATION
90-
${CMAKE_INSTALL_BINDIR}
91-
)
92-
endif()
42+
PUBLIC_LINKS
43+
aliceVision_numeric
44+
${Python3_LIBRARIES}
45+
PRIVATE_INCLUDE_DIRS
46+
../include
47+
${ALICEVISION_ROOT}/include
48+
${Python3_INCLUDE_DIRS}
49+
${Python3_NumPy_INCLUDE_DIRS}
50+
)
51+
endif()

0 commit comments

Comments
 (0)