blob: f445a73a418645b68a4f8c0411ff001e262babed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
vcpkg_buildpath_length_warning(37)
#the port produces some empty dlls when building shared libraries, since some components do not export anything, breaking the internal build itself
if(VCPKG_TARGET_IS_WINDOWS)
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO openMVG/openMVG
REF 01193a245ee3c36458e650b1cf4402caad8983ef # v2.1
SHA512 ee98ca26426e7129917c920cd59817cb5d4faf1f5aa12f4085f9ac431875e9ec23ffee7792d65286bad4b922c474c56d5c2f2008b38fddf1ede096644f13ad47
PATCHES
build_fixes.patch
0001-eigen_3.4.0.patch
fast-c-language.diff
no-absolute-paths.patch
)
file(REMOVE_RECURSE
"${SOURCE_PATH}/src/cmakeFindModules/FindEigen.cmake"
"${SOURCE_PATH}/src/cmakeFindModules/FindFlann.cmake"
"${SOURCE_PATH}/src/cmakeFindModules/FindLemon.cmake"
"${SOURCE_PATH}/src/cmakeFindModules/FindClp.cmake"
"${SOURCE_PATH}/src/cmakeFindModules/FindCoinUtils.cmake"
"${SOURCE_PATH}/src/cmakeFindModules/FindOsi.cmake"
"${SOURCE_PATH}/src/nonFree/sift/vl"
"${SOURCE_PATH}/src/third_party/CppUnitLite"
"${SOURCE_PATH}/src/third_party/ceres-solver"
"${SOURCE_PATH}/src/third_party/cxsparse"
"${SOURCE_PATH}/src/third_party/eigen"
"${SOURCE_PATH}/src/third_party/flann"
"${SOURCE_PATH}/src/third_party/jpeg"
"${SOURCE_PATH}/src/third_party/lemon"
"${SOURCE_PATH}/src/third_party/png"
"${SOURCE_PATH}/src/third_party/tiff"
"${SOURCE_PATH}/src/third_party/zlib"
)
file(MAKE_DIRECTORY "${SOURCE_PATH}/src/dependencies/cereal/include/_placeholder")
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
opencv OpenMVG_USE_OPENCV
opencv OpenMVG_USE_OCVSIFT
opencv VCPKG_LOCK_FIND_PACKAGE_OpenCV
openmp OpenMVG_USE_OPENMP
software OpenMVG_BUILD_SOFTWARES
software OpenMVG_BUILD_GUI_SOFTWARES
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" OpenMVG_BUILD_SHARED)
vcpkg_find_acquire_program(PKGCONFIG)
set(ENV{PKG_CONFIG} "${PKGCONFIG}")
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}/src"
OPTIONS
${FEATURE_OPTIONS}
-DOpenMVG_BUILD_SHARED=${OpenMVG_BUILD_SHARED}
-DOpenMVG_BUILD_COVERAGE=OFF
-DOpenMVG_BUILD_DOC=OFF
-DOpenMVG_BUILD_EXAMPLES=OFF
-DOpenMVG_BUILD_OPENGL_EXAMPLES=OFF
-DOpenMVG_BUILD_TESTS=OFF
-DOpenMVG_USE_LIGT=OFF
"-DFLANN_INCLUDE_DIR_HINTS=${CURRENT_INSTALLED_DIR}/include"
"-DLEMON_INCLUDE_DIR_HINTS=${CURRENT_INSTALLED_DIR}/include"
-DVCPKG_LOCK_FIND_PACKAGE_cereal=ON
-DVCPKG_LOCK_FIND_PACKAGE_Ceres=ON
-DVCPKG_LOCK_FIND_PACKAGE_Eigen3=ON
-DVCPKG_LOCK_FIND_PACKAGE_Flann=ON
-DVCPKG_LOCK_FIND_PACKAGE_JPEG=ON
-DVCPKG_LOCK_FIND_PACKAGE_PNG=ON
-DVCPKG_LOCK_FIND_PACKAGE_TIFF=ON
OPTIONS_DEBUG
-DOpenMVG_USE_OPENCV=OFF
-DOpenMVG_BUILD_SOFTWARES=OFF
-DOpenMVG_BUILD_GUI_SOFTWARES=OFF
MAYBE_UNUSED_VARIABLES
FLANN_INCLUDE_DIR_HINTS # Must be "defined"
LEMON_INCLUDE_DIR_HINTS # Must be "defined"
VCPKG_LOCK_FIND_PACKAGE_OpenCV
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/openMVG")
file(REMOVE_RECURSE
"${CURRENT_PACKAGES_DIR}/debug/include"
"${CURRENT_PACKAGES_DIR}/debug/share"
"${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/cereal"
"${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/glfw"
"${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/osi_clp"
"${CURRENT_PACKAGES_DIR}/include/openMVG/image/image_test"
"${CURRENT_PACKAGES_DIR}/include/openMVG/exif/image_data"
)
if("software" IN_LIST FEATURES)
if(VCPKG_TARGET_IS_OSX)
vcpkg_copy_tools(TOOL_NAMES
openMVG_main_AlternativeVO.app
ui_openMVG_MatchesViewer.app
)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/openMVG_main_AlternativeVO.app")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/ui_openMVG_MatchesViewer.app")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/openMVG_main_AlternativeVO.app")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/ui_openMVG_MatchesViewer.app")
else()
vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES
openMVG_main_AlternativeVO
ui_openMVG_MatchesViewer
)
endif()
vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES
openMVG_main_ChangeLocalOrigin
openMVG_main_ColHarmonize
openMVG_main_ComputeClusters
openMVG_main_ComputeFeatures
openMVG_main_ComputeMatches
openMVG_main_ComputeSfM_DataColor
openMVG_main_ComputeStructureFromKnownPoses
openMVG_main_ComputeVLAD
openMVG_main_ConvertList
openMVG_main_ConvertSfM_DataFormat
openMVG_main_evalQuality
openMVG_main_ExportCameraFrustums
openMVG_main_exportKeypoints
openMVG_main_exportMatches
openMVG_main_exportTracks
openMVG_main_ExportUndistortedImages
openMVG_main_FrustumFiltering
openMVG_main_geodesy_registration_to_gps_position
openMVG_main_ListMatchingPairs
openMVG_main_MatchesToTracks
openMVG_main_openMVG2Agisoft
openMVG_main_openMVG2CMPMVS
openMVG_main_openMVG2Colmap
openMVG_main_openMVG2MESHLAB
openMVG_main_openMVG2MVE2
openMVG_main_openMVG2MVSTEXTURING
openMVG_main_openMVG2NVM
openMVG_main_openMVG2openMVS
openMVG_main_openMVG2PMVS
openMVG_main_openMVG2WebGL
openMVG_main_openMVGSpherical2Cubic
openMVG_main_PointsFiltering
openMVG_main_SfMInit_ImageListing
openMVG_main_SfMInit_ImageListingFromKnownPoses
openMVG_main_SfM_Localization
openMVG_main_SplitMatchFileIntoMatchFiles
ui_openMVG_control_points_registration
openMVG_main_GeometricFilter
openMVG_main_PairGenerator
openMVG_main_SfM
)
if("opencv" IN_LIST FEATURES)
vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES
openMVG_main_ComputeFeatures_OpenCV)
endif()
file(COPY "${CURRENT_PACKAGES_DIR}/share/${PORT}/sensor_width_camera_database.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
file(COPY_FILE "${SOURCE_PATH}/src/software/SfM/tutorial_demo.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/tutorial_demo.py")
file(COPY_FILE "${SOURCE_PATH}/src/software/SfM/SfM_GlobalPipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/SfM_GlobalPipeline.py")
file(COPY_FILE "${SOURCE_PATH}/src/software/SfM/SfM_SequentialPipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/SfM_SequentialPipeline.py")
file(COPY_FILE "${SOURCE_PATH}/src/software/SfM/import/SfM_StructurePipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/SfM_StructurePipeline.py")
endif()
set(third_party_notices "")
file(GLOB files "${SOURCE_PATH}/src/third_party/*/README.openMVG")
foreach(file IN LISTS files)
cmake_path(GET file PARENT_PATH parent_path)
cmake_path(GET parent_path FILENAME component)
set(extra_file "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${component}")
file(COPY_FILE "${file}" "${extra_file}")
list(APPEND third_party_notices "${extra_file}")
endforeach()
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" ${third_party_notices})
|