diff --git a/Makefile b/Makefile new file mode 100644 --- /dev/null +++ b/Makefile @@ -0,0 +1 @@ +include ../Makefile.common diff --git a/abi_libs b/abi_libs new file mode 100644 --- /dev/null +++ b/abi_libs @@ -0,0 +1 @@ +libcpd.so.0 diff --git a/abi_symbols b/abi_symbols new file mode 100644 --- /dev/null +++ b/abi_symbols @@ -0,0 +1,24 @@ +libcpd.so.0:_ZN3cpd11RigidResult11denormalizeERKNS_13NormalizationE +libcpd.so.0:_ZN3cpd12AffineResult11denormalizeERKNS_13NormalizationE +libcpd.so.0:_ZN3cpd13NormalizationC1ERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES5_b +libcpd.so.0:_ZN3cpd13NormalizationC2ERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES5_b +libcpd.so.0:_ZN3cpd14GaussTransform12make_defaultEv +libcpd.so.0:_ZN3cpd14default_sigma2ERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES4_ +libcpd.so.0:_ZN3cpd16matrix_from_pathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE +libcpd.so.0:_ZN3cpd27apply_transformation_matrixEN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEERKS2_ +libcpd.so.0:_ZN3cpd5rigidERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES4_ +libcpd.so.0:_ZN3cpd6Result11denormalizeERKNS_13NormalizationE +libcpd.so.0:_ZN3cpd6affineERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES4_ +libcpd.so.0:_ZN3cpd7versionEv +libcpd.so.0:_ZN3cpd8Nonrigid4initERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES5_ +libcpd.so.0:_ZN3cpd8affinityERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES4_d +libcpd.so.0:_ZN3cpd8nonrigidERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES4_ +libcpd.so.0:_ZNK3cpd11RigidResult6matrixEv +libcpd.so.0:_ZNK3cpd12AffineResult6matrixEv +libcpd.so.0:_ZNK3cpd17GaussTransformFgt16create_transformERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEEd +libcpd.so.0:_ZNK3cpd17GaussTransformFgt7computeERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES5_dd +libcpd.so.0:_ZNK3cpd20GaussTransformDirect7computeERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES5_dd +libcpd.so.0:_ZNK3cpd5Rigid11compute_oneERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES5_RKNS_13ProbabilitiesEd +libcpd.so.0:_ZNK3cpd6Affine11compute_oneERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES5_RKNS_13ProbabilitiesEd +libcpd.so.0:_ZNK3cpd8Nonrigid11compute_oneERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEES5_RKNS_13ProbabilitiesEd +libcpd.so.0:_ZNK3cpd8Nonrigid20modify_probabilitiesERNS_13ProbabilitiesE diff --git a/abi_used_libs b/abi_used_libs new file mode 100644 --- /dev/null +++ b/abi_used_libs @@ -0,0 +1,5 @@ +libc.so.6 +libfgt.so.0 +libgcc_s.so.1 +libm.so.6 +libstdc++.so.6 diff --git a/abi_used_symbols b/abi_used_symbols new file mode 100644 --- /dev/null +++ b/abi_used_symbols @@ -0,0 +1,78 @@ +libc.so.6:__stack_chk_fail +libc.so.6:calloc +libc.so.6:free +libc.so.6:malloc +libc.so.6:memcpy +libc.so.6:memmove +libc.so.6:memset +libc.so.6:realloc +libfgt.so.0:_ZN3fgt10DirectTreeC1EN5Eigen3RefIKNS1_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELi0ENS1_11OuterStrideILin1EEEEEdd +libfgt.so.0:_ZN3fgt4IfgtC1EN5Eigen3RefIKNS1_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELi0ENS1_11OuterStrideILin1EEEEEdd +libfgt.so.0:_ZN3fgt9Transform7computeEN5Eigen3RefIKNS1_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELi0ENS1_11OuterStrideILin1EEEEE +libfgt.so.0:_ZN3fgt9Transform7computeEN5Eigen3RefIKNS1_6MatrixIdLin1ELin1ELi1ELin1ELin1EEELi0ENS1_11OuterStrideILin1EEEEENS2_IKNS3_IdLin1ELi1ELi0ELin1ELi1EEELi0ENS1_11InnerStrideILi1EEEEE +libgcc_s.so.1:_Unwind_Resume +libm.so.6:exp +libm.so.6:log +libm.so.6:pow +libm.so.6:sqrt +libstdc++.so.6:_ZNKSt12__basic_fileIcE7is_openEv +libstdc++.so.6:_ZNKSt5ctypeIcE13_M_widen_initEv +libstdc++.so.6:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv +libstdc++.so.6:_ZNSdD2Ev +libstdc++.so.6:_ZNSi10_M_extractIdEERSiRT_ +libstdc++.so.6:_ZNSi4peekEv +libstdc++.so.6:_ZNSi6ignoreEv +libstdc++.so.6:_ZNSo9_M_insertImEERSoT_ +libstdc++.so.6:_ZNSt12__basic_fileIcED1Ev +libstdc++.so.6:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode +libstdc++.so.6:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv +libstdc++.so.6:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev +libstdc++.so.6:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev +libstdc++.so.6:_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE +libstdc++.so.6:_ZNSt13runtime_errorD1Ev +libstdc++.so.6:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev +libstdc++.so.6:_ZNSt6chrono3_V212system_clock3nowEv +libstdc++.so.6:_ZNSt6localeC1Ev +libstdc++.so.6:_ZNSt6localeD1Ev +libstdc++.so.6:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm +libstdc++.so.6:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm +libstdc++.so.6:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev +libstdc++.so.6:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev +libstdc++.so.6:_ZNSt8ios_baseC2Ev +libstdc++.so.6:_ZNSt8ios_baseD2Ev +libstdc++.so.6:_ZNSt9bad_allocD1Ev +libstdc++.so.6:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E +libstdc++.so.6:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate +libstdc++.so.6:_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l +libstdc++.so.6:_ZSt16__throw_bad_castv +libstdc++.so.6:_ZSt17__throw_bad_allocv +libstdc++.so.6:_ZSt19__throw_logic_errorPKc +libstdc++.so.6:_ZSt20__throw_length_errorPKc +libstdc++.so.6:_ZSt25__throw_bad_function_callv +libstdc++.so.6:_ZSt28__throw_bad_array_new_lengthv +libstdc++.so.6:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_ +libstdc++.so.6:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc +libstdc++.so.6:_ZTISt13runtime_error +libstdc++.so.6:_ZTISt9bad_alloc +libstdc++.so.6:_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE +libstdc++.so.6:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE +libstdc++.so.6:_ZTVN10__cxxabiv117__class_type_infoE +libstdc++.so.6:_ZTVN10__cxxabiv120__si_class_type_infoE +libstdc++.so.6:_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE +libstdc++.so.6:_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE +libstdc++.so.6:_ZTVSt13basic_filebufIcSt11char_traitsIcEE +libstdc++.so.6:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE +libstdc++.so.6:_ZTVSt15basic_streambufIcSt11char_traitsIcEE +libstdc++.so.6:_ZTVSt9bad_alloc +libstdc++.so.6:_ZTVSt9basic_iosIcSt11char_traitsIcEE +libstdc++.so.6:_ZdlPv +libstdc++.so.6:_Znwm +libstdc++.so.6:__cxa_allocate_exception +libstdc++.so.6:__cxa_begin_catch +libstdc++.so.6:__cxa_end_catch +libstdc++.so.6:__cxa_free_exception +libstdc++.so.6:__cxa_guard_acquire +libstdc++.so.6:__cxa_guard_release +libstdc++.so.6:__cxa_rethrow +libstdc++.so.6:__cxa_throw +libstdc++.so.6:__gxx_personality_v0 diff --git a/files/build-shared-lib.patch b/files/build-shared-lib.patch new file mode 100644 --- /dev/null +++ b/files/build-shared-lib.patch @@ -0,0 +1,25 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -66,7 +66,9 @@ else() + list(APPEND library-src src/gauss_transform_make_default.cpp) + endif() + ++include(GNUInstallDirs) ++ +-add_library(Library-C++ STATIC ${library-src}) ++add_library(Library-C++ SHARED ${library-src}) + set_target_properties(Library-C++ PROPERTIES + OUTPUT_NAME cpd + VERSION ${CPD_VERSION} +@@ -102,9 +104,9 @@ endif() + + + # Install +-install(TARGETS Library-C++ DESTINATION lib EXPORT cpd-targets) ++install(TARGETS Library-C++ DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT cpd-targets) + install(DIRECTORY include/cpd DESTINATION include) +-install(EXPORT cpd-targets NAMESPACE Cpd:: DESTINATION lib/cmake/cpd) ++install(EXPORT cpd-targets NAMESPACE Cpd:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cpd) + + + # Docs diff --git a/files/find-fgt-correctly.patch b/files/find-fgt-correctly.patch new file mode 100644 --- /dev/null +++ b/files/find-fgt-correctly.patch @@ -0,0 +1,13 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -25,9 +25,9 @@ endif() + + + # Upstream ++find_package(Fgt QUIET) + set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + find_package(Eigen3 REQUIRED) +-find_package(Fgt QUIET) + option(WITH_FGT "Build with fgt" ${Fgt_FOUND}) + if(WITH_FGT) + find_package(Fgt REQUIRED) diff --git a/package.yml b/package.yml new file mode 100644 --- /dev/null +++ b/package.yml @@ -0,0 +1,31 @@ +name : cpd +version : 0.5.3 +release : 1 +source : + - https://github.com/gadomski/cpd/archive/refs/tags/v0.5.3.tar.gz : d5230b2c20f2b3f3400b42a099efe937008eabf06b281484090d250f12529e8c +homepage : https://www.gadom.ski/cpd/ +license : GPL-2.0-or-later +component : programming.library +summary : C++ implementation of the Coherent Point Drift point set registration algorithm +description: | + Coherent Point Drift (CPD) is a point-set registration algorithm, originally developed by Andriy Myronenko et al. This is a C++ library that runs CPD. + CPD can be compared to Iterative Closest Point, another point-set registration algorithm that is widely used. While ICP minimizes point-to-point distances, CPD uses a Gaussian Mixture Model to minimize the error between a point and all other points. +avx2 : yes +builddeps : + - pkgconfig(eigen3) + - pkgconfig(jsoncpp) + - fgt-devel +setup : | + %patch -p1 < $pkgfiles/build-shared-lib.patch + %patch -p1 < $pkgfiles/find-fgt-correctly.patch + %cmake_ninja \ + -DBUILD_SHARED_LIBS=ON \ + -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3 +build : | + %ninja_build +install : | + %ninja_install +check : | + if [[ -z "${AVX2BUILD}" ]]; then + %ninja_check + fi diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml new file mode 100644 --- /dev/null +++ b/pspec_x86_64.xml @@ -0,0 +1,68 @@ + + + cpd + https://www.gadom.ski/cpd/ + + Martin Reboredo + yakoyoku@gmail.com + + GPL-2.0-or-later + programming.library + C++ implementation of the Coherent Point Drift point set registration algorithm + Coherent Point Drift (CPD) is a point-set registration algorithm, originally developed by Andriy Myronenko et al. This is a C++ library that runs CPD. +CPD can be compared to Iterative Closest Point, another point-set registration algorithm that is widely used. While ICP minimizes point-to-point distances, CPD uses a Gaussian Mixture Model to minimize the error between a point and all other points. + + https://getsol.us/sources/README.Solus + + + cpd + C++ implementation of the Coherent Point Drift point set registration algorithm + Coherent Point Drift (CPD) is a point-set registration algorithm, originally developed by Andriy Myronenko et al. This is a C++ library that runs CPD. +CPD can be compared to Iterative Closest Point, another point-set registration algorithm that is widely used. While ICP minimizes point-to-point distances, CPD uses a Gaussian Mixture Model to minimize the error between a point and all other points. + + programming.library + + /usr/lib64/haswell/libcpd.so.0 + /usr/lib64/haswell/libcpd.so.0.5.3 + /usr/lib64/libcpd.so.0 + /usr/lib64/libcpd.so.0.5.3 + + + + cpd-devel + Development files for cpd + Coherent Point Drift (CPD) is a point-set registration algorithm, originally developed by Andriy Myronenko et al. This is a C++ library that runs CPD. +CPD can be compared to Iterative Closest Point, another point-set registration algorithm that is widely used. While ICP minimizes point-to-point distances, CPD uses a Gaussian Mixture Model to minimize the error between a point and all other points. + + programming.devel + + cpd + + + /usr/include/cpd/affine.hpp + /usr/include/cpd/gauss_transform.hpp + /usr/include/cpd/gauss_transform_fgt.hpp + /usr/include/cpd/matrix.hpp + /usr/include/cpd/nonrigid.hpp + /usr/include/cpd/normalization.hpp + /usr/include/cpd/rigid.hpp + /usr/include/cpd/transform.hpp + /usr/include/cpd/utils.hpp + /usr/include/cpd/version.hpp + /usr/lib/cmake/cpd/cpd-config-version.cmake + /usr/lib/cmake/cpd/cpd-config.cmake + /usr/lib64/cmake/cpd/cpd-targets-relwithdebinfo.cmake + /usr/lib64/cmake/cpd/cpd-targets.cmake + /usr/lib64/libcpd.so + + + + + 2021-11-18 + 0.5.3 + Packaging update + Martin Reboredo + yakoyoku@gmail.com + + + \ No newline at end of file