mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-06-07 14:32:49 +08:00
[OpenMVG/OpenMVS] fix tools (#12229)
This commit is contained in:
parent
68003004c0
commit
0a506f7c5e
@ -1,5 +1,5 @@
|
||||
Source: armadillo
|
||||
Version: 2019-04-16
|
||||
Port-Version: 9
|
||||
Port-Version: 10
|
||||
Description: Armadillo is a high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use
|
||||
Build-Depends: openblas (!osx), lapack
|
||||
Build-Depends: openblas, lapack
|
||||
|
@ -31,19 +31,10 @@ index 02c72b5..62d8c59 100644
|
||||
endif (MINIGLOG)
|
||||
|
||||
if (NOT SCHUR_SPECIALIZATIONS)
|
||||
@@ -582,7 +562,7 @@ include_directories(
|
||||
# Note that this is *not* propagated to clients, ie CERES_INCLUDE_DIRS
|
||||
# used by clients after find_package(Ceres) does not identify Eigen as
|
||||
# as system headers.
|
||||
-include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS})
|
||||
+include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}/Eigen)
|
||||
|
||||
if (SUITESPARSE)
|
||||
include_directories(${SUITESPARSE_INCLUDE_DIRS})
|
||||
@@ -917,8 +897,6 @@ install(FILES "${Ceres_BINARY_DIR}/CeresConfig-install.cmake"
|
||||
@@ -917,8 +897,5 @@ install(FILES "${Ceres_BINARY_DIR}/CeresConfig-install.cmake"
|
||||
DESTINATION ${RELATIVE_CMAKECONFIG_INSTALL_DIR})
|
||||
install(FILES "${Ceres_BINARY_DIR}/CeresConfigVersion.cmake"
|
||||
"${Ceres_SOURCE_DIR}/cmake/FindEigen.cmake"
|
||||
- "${Ceres_SOURCE_DIR}/cmake/FindEigen.cmake"
|
||||
- "${Ceres_SOURCE_DIR}/cmake/FindGlog.cmake"
|
||||
- "${Ceres_SOURCE_DIR}/cmake/FindGflags.cmake"
|
||||
DESTINATION ${RELATIVE_CMAKECONFIG_INSTALL_DIR})
|
||||
|
@ -1,22 +0,0 @@
|
||||
diff --git a/internal/ceres/blas.cc b/internal/ceres/blas.cc
|
||||
index 3ba63bb..071a26e 100644
|
||||
--- a/internal/ceres/blas.cc
|
||||
+++ b/internal/ceres/blas.cc
|
||||
@@ -33,7 +33,7 @@
|
||||
#include "glog/logging.h"
|
||||
|
||||
#ifndef CERES_NO_LAPACK
|
||||
-extern "C" void dsyrk_(char* uplo,
|
||||
+extern "C" void dsyrk(char* uplo,
|
||||
char* trans,
|
||||
int* n,
|
||||
int* k,
|
||||
@@ -64,7 +64,7 @@ void BLAS::SymmetricRankKUpdate(int num_rows,
|
||||
int k = transpose ? num_rows : num_cols;
|
||||
int lda = k;
|
||||
int ldc = n;
|
||||
- dsyrk_(&uplo,
|
||||
+ dsyrk(&uplo,
|
||||
&trans,
|
||||
&n,
|
||||
&k,
|
122
ports/ceres/0004_fix_find_eigen.patch
Normal file
122
ports/ceres/0004_fix_find_eigen.patch
Normal file
@ -0,0 +1,122 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 7033de0..5235baa 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -209,40 +209,40 @@ endif (IOS)
|
||||
unset(CERES_COMPILE_OPTIONS)
|
||||
|
||||
# Eigen.
|
||||
-find_package(Eigen REQUIRED)
|
||||
-if (EIGEN_FOUND)
|
||||
- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}")
|
||||
- if (EIGEN_VERSION VERSION_LESS 3.1.0)
|
||||
+find_package(Eigen3 REQUIRED)
|
||||
+if (EIGEN3_FOUND)
|
||||
+ message(STATUS "Found Eigen version ${EIGEN3_VERSION_STRING}: ${EIGEN3_INCLUDE_DIRS}")
|
||||
+ if (EIGEN3_VERSION_STRING VERSION_LESS 3.1.0)
|
||||
message(FATAL_ERROR "-- Ceres requires Eigen version >= 3.1.0 in order "
|
||||
"that Eigen/SparseCore be available, detected version of Eigen is: "
|
||||
- "${EIGEN_VERSION}")
|
||||
- endif (EIGEN_VERSION VERSION_LESS 3.1.0)
|
||||
+ "${EIGEN3_VERSION_STRING}")
|
||||
+ endif (EIGEN3_VERSION_STRING VERSION_LESS 3.1.0)
|
||||
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)" AND
|
||||
- EIGEN_VERSION VERSION_LESS 3.3.4)
|
||||
+ EIGEN3_VERSION_STRING VERSION_LESS 3.3.4)
|
||||
# As per issue #289: https://github.com/ceres-solver/ceres-solver/issues/289
|
||||
# the bundle_adjustment_test will fail for Eigen < 3.3.4 on aarch64.
|
||||
message(FATAL_ERROR "-- Ceres requires Eigen version >= 3.3.4 on aarch64. "
|
||||
- "Detected version of Eigen is: ${EIGEN_VERSION}.")
|
||||
+ "Detected version of Eigen is: ${EIGEN3_VERSION_STRING}.")
|
||||
endif()
|
||||
|
||||
if (EIGENSPARSE)
|
||||
- message("-- Enabling use of Eigen as a sparse linear algebra library.")
|
||||
+ message(STATUS "Enabling use of Eigen as a sparse linear algebra library.")
|
||||
list(APPEND CERES_COMPILE_OPTIONS CERES_USE_EIGEN_SPARSE)
|
||||
- if (EIGEN_VERSION VERSION_LESS 3.2.2)
|
||||
+ if (EIGEN3_VERSION_STRING VERSION_LESS 3.2.2)
|
||||
message(" WARNING:")
|
||||
message("")
|
||||
- message(" Your version of Eigen (${EIGEN_VERSION}) is older than ")
|
||||
+ message(" Your version of Eigen (${EIGEN3_VERSION_STRING}) is older than ")
|
||||
message(" version 3.2.2. The performance of SPARSE_NORMAL_CHOLESKY ")
|
||||
message(" and SPARSE_SCHUR linear solvers will suffer.")
|
||||
- endif (EIGEN_VERSION VERSION_LESS 3.2.2)
|
||||
+ endif (EIGEN3_VERSION_STRING VERSION_LESS 3.2.2)
|
||||
else (EIGENSPARSE)
|
||||
message("-- Disabling use of Eigen as a sparse linear algebra library.")
|
||||
message(" This does not affect the covariance estimation algorithm ")
|
||||
message(" which can still use the EIGEN_SPARSE_QR algorithm.")
|
||||
add_definitions(-DEIGEN_MPL2_ONLY)
|
||||
endif (EIGENSPARSE)
|
||||
-endif (EIGEN_FOUND)
|
||||
+endif (EIGEN3_FOUND)
|
||||
|
||||
if (LAPACK)
|
||||
find_package(LAPACK QUIET)
|
||||
@@ -562,7 +562,7 @@ include_directories(
|
||||
# Note that this is *not* propagated to clients, ie CERES_INCLUDE_DIRS
|
||||
# used by clients after find_package(Ceres) does not identify Eigen as
|
||||
# as system headers.
|
||||
-include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS})
|
||||
+include_directories(${EIGEN3_INCLUDE_DIRS})
|
||||
|
||||
if (SUITESPARSE)
|
||||
include_directories(${SUITESPARSE_INCLUDE_DIRS})
|
||||
diff --git a/cmake/CeresConfig.cmake.in b/cmake/CeresConfig.cmake.in
|
||||
index c4ed71f..b3d6a17 100644
|
||||
--- a/cmake/CeresConfig.cmake.in
|
||||
+++ b/cmake/CeresConfig.cmake.in
|
||||
@@ -202,39 +202,39 @@ set(CERES_VERSION @CERES_VERSION@ )
|
||||
|
||||
# Eigen.
|
||||
# Flag set during configuration and build of Ceres.
|
||||
-set(CERES_EIGEN_VERSION @EIGEN_VERSION@)
|
||||
+set(CERES_EIGEN_VERSION @EIGEN3_VERSION_STRING@)
|
||||
set(EIGEN_WAS_BUILT_WITH_CMAKE @FOUND_INSTALLED_EIGEN_CMAKE_CONFIGURATION@)
|
||||
# Append the locations of Eigen when Ceres was built to the search path hints.
|
||||
if (EIGEN_WAS_BUILT_WITH_CMAKE)
|
||||
set(Eigen3_DIR @Eigen3_DIR@)
|
||||
set(EIGEN_PREFER_EXPORTED_EIGEN_CMAKE_CONFIGURATION TRUE)
|
||||
else()
|
||||
- list(APPEND EIGEN_INCLUDE_DIR_HINTS @EIGEN_INCLUDE_DIR@)
|
||||
+ list(APPEND EIGEN_INCLUDE_DIR_HINTS @EIGEN3_INCLUDE_DIR@)
|
||||
endif()
|
||||
# Search quietly to control the timing of the error message if not found. The
|
||||
# search should be for an exact match, but for usability reasons do a soft
|
||||
# match and reject with an explanation below.
|
||||
-find_package(Eigen ${CERES_EIGEN_VERSION} QUIET)
|
||||
-if (EIGEN_FOUND)
|
||||
- if (NOT EIGEN_VERSION VERSION_EQUAL CERES_EIGEN_VERSION)
|
||||
+find_package(Eigen3 ${CERES_EIGEN_VERSION} QUIET)
|
||||
+if (EIGEN3_FOUND)
|
||||
+ if (NOT EIGEN3_VERSION_STRING VERSION_EQUAL CERES_EIGEN_VERSION)
|
||||
# CMake's VERSION check in FIND_PACKAGE() will accept any version >= the
|
||||
# specified version. However, only version = is supported. Improve
|
||||
# usability by explaining why we don't accept non-exact version matching.
|
||||
ceres_report_not_found("Found Eigen dependency, but the version of Eigen "
|
||||
- "found (${EIGEN_VERSION}) does not exactly match the version of Eigen "
|
||||
+ "found (${EIGEN3_VERSION_STRING}) does not exactly match the version of Eigen "
|
||||
"Ceres was compiled with (${CERES_EIGEN_VERSION}). This can cause subtle "
|
||||
"bugs by triggering violations of the One Definition Rule. See the "
|
||||
"Wikipedia article http://en.wikipedia.org/wiki/One_Definition_Rule "
|
||||
"for more details")
|
||||
endif ()
|
||||
message(STATUS "Found required Ceres dependency: "
|
||||
- "Eigen version ${CERES_EIGEN_VERSION} in ${EIGEN_INCLUDE_DIRS}")
|
||||
-else (EIGEN_FOUND)
|
||||
+ "Eigen version ${CERES_EIGEN_VERSION} in ${EIGEN3_INCLUDE_DIRS}")
|
||||
+else (EIGEN3_FOUND)
|
||||
ceres_report_not_found("Missing required Ceres "
|
||||
"dependency: Eigen version ${CERES_EIGEN_VERSION}, please set "
|
||||
- "EIGEN_INCLUDE_DIR.")
|
||||
-endif (EIGEN_FOUND)
|
||||
-list(APPEND CERES_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS})
|
||||
+ "EIGEN3_INCLUDE_DIR.")
|
||||
+endif (EIGEN3_FOUND)
|
||||
+list(APPEND CERES_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIRS})
|
||||
|
||||
# Glog.
|
||||
include (CMakeFindDependencyMacro)
|
@ -1,6 +1,6 @@
|
||||
Source: ceres
|
||||
Version: 1.14.0
|
||||
Port-Version: 8
|
||||
Port-Version: 9
|
||||
Build-Depends: glog, eigen3
|
||||
Homepage: https://github.com/ceres-solver/ceres-solver
|
||||
Description: non-linear optimization package
|
||||
|
@ -6,10 +6,6 @@ if(VCPKG_CRT_LINKAGE STREQUAL "static")
|
||||
set(MSVC_USE_STATIC_CRT_VALUE ON)
|
||||
endif()
|
||||
|
||||
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(ADDITIONAL_PATCH "0004_blas_linux_fix.patch")
|
||||
endif()
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO ceres-solver/ceres-solver
|
||||
@ -20,15 +16,14 @@ vcpkg_from_github(
|
||||
0001_cmakelists_fixes.patch
|
||||
0002_use_glog_target.patch
|
||||
0003_fix_exported_ceres_config.patch
|
||||
${ADDITIONAL_PATCH}
|
||||
0004_fix_find_eigen.patch
|
||||
)
|
||||
|
||||
file(REMOVE ${SOURCE_PATH}/cmake/FindCXSparse.cmake)
|
||||
file(REMOVE ${SOURCE_PATH}/cmake/FindGflags.cmake)
|
||||
file(REMOVE ${SOURCE_PATH}/cmake/FindGlog.cmake)
|
||||
#file(REMOVE ${SOURCE_PATH}/cmake/FindEigen.cmake)
|
||||
file(REMOVE ${SOURCE_PATH}/cmake/FindEigen.cmake)
|
||||
file(REMOVE ${SOURCE_PATH}/cmake/FindSuiteSparse.cmake)
|
||||
#file(REMOVE ${SOURCE_PATH}/cmake/FindTBB.cmake)
|
||||
|
||||
|
||||
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
"suitesparse" SUITESPARSE
|
||||
@ -52,7 +47,7 @@ vcpkg_configure_cmake(
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH CMake)
|
||||
else()
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib${LIB_SUFFIX}/cmake/Ceres)
|
||||
@ -61,7 +56,7 @@ endif()
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
# Changes target search path
|
||||
if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
file(READ ${CURRENT_PACKAGES_DIR}/share/ceres/CeresConfig.cmake CERES_TARGETS)
|
||||
string(REPLACE "get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${CERES_CURRENT_CONFIG_DIR}/../"
|
||||
"get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${CERES_CURRENT_CONFIG_DIR}/../../" CERES_TARGETS "${CERES_TARGETS}")
|
||||
@ -77,6 +72,4 @@ endif()
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||
|
||||
# Handle copyright of suitesparse and metis
|
||||
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ceres)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/share/ceres/LICENSE ${CURRENT_PACKAGES_DIR}/share/ceres/copyright)
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
|
@ -1,7 +1,7 @@
|
||||
Source: dlib
|
||||
Version: 19.21
|
||||
Port-Version: 2
|
||||
Build-Depends: libjpeg-turbo, libpng, openblas (!osx), lapack
|
||||
Port-Version: 3
|
||||
Build-Depends: libjpeg-turbo, libpng, openblas, lapack
|
||||
Homepage: https://github.com/davisking/dlib
|
||||
Description: Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++
|
||||
Default-Features: fftw3, sqlite3
|
||||
|
@ -1,5 +1,5 @@
|
||||
Source: eigen3
|
||||
Version: 3.3.7
|
||||
Port-Version: 6
|
||||
Port-Version: 7
|
||||
Homepage: http://eigen.tuxfamily.org
|
||||
Description: C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
|
||||
|
@ -25,16 +25,9 @@ vcpkg_configure_cmake(
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
vcpkg_fixup_cmake_targets()
|
||||
vcpkg_fixup_pkgconfig()
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||
|
||||
vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/share/eigen3/Eigen3Targets.cmake
|
||||
"set(_IMPORT_PREFIX " "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_DIR}/../..\" ABSOLUTE) #"
|
||||
)
|
||||
|
||||
vcpkg_fixup_pkgconfig()
|
||||
|
||||
file(GLOB INCLUDES ${CURRENT_PACKAGES_DIR}/include/eigen3/*)
|
||||
file(COPY ${INCLUDES} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/COPYING.README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
|
@ -1,7 +1,6 @@
|
||||
Source: ensmallen
|
||||
Version: 2.11.2
|
||||
Port-Version: 1
|
||||
Port-Version: 2
|
||||
Homepage: https://github.com/mlpack/ensmallen
|
||||
Description: A header-only C++ library for mathematical optimization.
|
||||
Build-Depends: openblas (!osx), lapack, armadillo
|
||||
|
||||
Build-Depends: openblas, lapack, armadillo
|
||||
|
@ -1,8 +1,9 @@
|
||||
Source: geogram
|
||||
Version: 1.7.5
|
||||
Port-Version: 1
|
||||
Homepage: https://gforge.inria.fr/projects/geogram/
|
||||
Description: Geogram is a programming library of geometric algorithms.
|
||||
Build-Depends: openblas (!osx), lapack
|
||||
Build-Depends: openblas, lapack
|
||||
|
||||
Feature: graphics
|
||||
Description: Build viewers and geogram_gfx library.
|
||||
|
@ -482,7 +482,7 @@ if(BLAS_FOUND)
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"lapack;-lm;-lgfortran"
|
||||
"lapack;m;gfortran"
|
||||
""
|
||||
""
|
||||
""
|
||||
|
@ -1,4 +1,4 @@
|
||||
Source: lapack
|
||||
Version: 1
|
||||
Version: 2
|
||||
Description: Metapackage for packages which provide LAPACK
|
||||
Build-Depends: clapack ((arm&windows)|uwp), lapack-reference(!uwp&!(arm&windows))
|
||||
Build-Depends: clapack ((arm&windows)|uwp), lapack-reference(!uwp&!(arm&windows))
|
||||
|
@ -1,468 +1,233 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindLAPACK
|
||||
----------
|
||||
|
||||
Find LAPACK library
|
||||
|
||||
This module finds an installed fortran library that implements the
|
||||
LAPACK linear-algebra interface (see http://www.netlib.org/lapack/).
|
||||
|
||||
The approach follows that taken for the autoconf macro file,
|
||||
acx_lapack.m4 (distributed at
|
||||
http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html).
|
||||
|
||||
Input Variables
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
The following variables may be set to influence this module's behavior:
|
||||
|
||||
``BLA_STATIC``
|
||||
if ``ON`` use static linkage
|
||||
|
||||
``BLA_VENDOR``
|
||||
If set, checks only the specified vendor, if not set checks all the
|
||||
possibilities. List of vendors valid in this module:
|
||||
|
||||
* ``Intel10_32`` (intel mkl v10 32 bit)
|
||||
* ``Intel10_64lp`` (intel mkl v10+ 64 bit, threaded code, lp64 model)
|
||||
* ``Intel10_64lp_seq`` (intel mkl v10+ 64 bit, sequential code, lp64 model)
|
||||
* ``Intel10_64ilp`` (intel mkl v10+ 64 bit, threaded code, ilp64 model)
|
||||
* ``Intel10_64ilp_seq`` (intel mkl v10+ 64 bit, sequential code, ilp64 model)
|
||||
* ``Intel`` (obsolete versions of mkl 32 and 64 bit)
|
||||
* ``OpenBLAS``
|
||||
* ``FLAME``
|
||||
* ``ACML``
|
||||
* ``Apple``
|
||||
* ``NAS``
|
||||
* ``Generic``
|
||||
|
||||
``BLA_F95``
|
||||
if ``ON`` tries to find BLAS95/LAPACK95
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module defines the following variables:
|
||||
|
||||
``LAPACK_FOUND``
|
||||
library implementing the LAPACK interface is found
|
||||
``LAPACK_LINKER_FLAGS``
|
||||
uncached list of required linker flags (excluding -l and -L).
|
||||
``LAPACK_LIBRARIES``
|
||||
uncached list of libraries (using full path name) to link against
|
||||
to use LAPACK
|
||||
``LAPACK95_LIBRARIES``
|
||||
uncached list of libraries (using full path name) to link against
|
||||
to use LAPACK95
|
||||
``LAPACK95_FOUND``
|
||||
library implementing the LAPACK95 interface is found
|
||||
|
||||
.. note::
|
||||
|
||||
C or CXX must be enabled to use Intel MKL
|
||||
|
||||
For example, to use Intel MKL libraries and/or Intel compiler:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set(BLA_VENDOR Intel10_64lp)
|
||||
find_package(LAPACK)
|
||||
#]=======================================================================]
|
||||
|
||||
set(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
|
||||
# Check the language being used
|
||||
if( NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED) )
|
||||
if(LAPACK_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "FindLAPACK requires Fortran, C, or C++ to be enabled.")
|
||||
else()
|
||||
message(STATUS "Looking for LAPACK... - NOT found (Unsupported languages)")
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (CMAKE_Fortran_COMPILER_LOADED)
|
||||
include(${CMAKE_ROOT}/Modules/CheckFortranFunctionExists.cmake)
|
||||
else ()
|
||||
include(${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
|
||||
endif ()
|
||||
include(${CMAKE_ROOT}/Modules/CMakePushCheckState.cmake)
|
||||
include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
|
||||
|
||||
cmake_push_check_state()
|
||||
set(CMAKE_REQUIRED_QUIET ${LAPACK_FIND_QUIETLY})
|
||||
|
||||
set(LAPACK_FOUND FALSE)
|
||||
set(LAPACK95_FOUND FALSE)
|
||||
|
||||
# TODO: move this stuff to separate module
|
||||
|
||||
macro(Check_Lapack_Libraries LIBRARIES _prefix _name _flags _list _blas _threads)
|
||||
# This macro checks for the existence of the combination of fortran libraries
|
||||
# given by _list. If the combination is found, this macro checks (using the
|
||||
# Check_Fortran_Function_Exists macro) whether can link against that library
|
||||
# combination using the name of a routine given by _name using the linker
|
||||
# flags given by _flags. If the combination of libraries is found and passes
|
||||
# the link test, LIBRARIES is set to the list of complete library paths that
|
||||
# have been found. Otherwise, LIBRARIES is set to FALSE.
|
||||
|
||||
# N.B. _prefix is the prefix applied to the names of all cached variables that
|
||||
# are generated internally and marked advanced by this macro.
|
||||
|
||||
set(_libraries_work TRUE)
|
||||
set(${LIBRARIES})
|
||||
set(${LIBRARIES}_RELEASE)
|
||||
set(_combined_name)
|
||||
if (NOT _libdir)
|
||||
if (WIN32)
|
||||
set(_libdir ENV LIB)
|
||||
elseif (APPLE)
|
||||
set(_libdir ENV DYLD_LIBRARY_PATH)
|
||||
else ()
|
||||
set(_libdir ENV LD_LIBRARY_PATH)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
list(APPEND _libdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
|
||||
|
||||
foreach(_library ${_list})
|
||||
set(_combined_name ${_combined_name}_${_library})
|
||||
|
||||
if(_libraries_work)
|
||||
if (BLA_STATIC)
|
||||
if (WIN32)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
endif ()
|
||||
if (APPLE)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
else ()
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
endif ()
|
||||
else ()
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
# for ubuntu's libblas3gf and liblapack3gf packages
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
|
||||
endif ()
|
||||
endif ()
|
||||
find_library(${_prefix}_${_library}_LIBRARY_RELEASE
|
||||
NAMES ${_library}
|
||||
PATHS ${_libdir}
|
||||
)
|
||||
mark_as_advanced(${_prefix}_${_library}_LIBRARY_RELEASE)
|
||||
find_library(${_prefix}_${_library}_LIBRARY_DEBUG
|
||||
NAMES ${_library}d
|
||||
PATHS ${_libdir}
|
||||
)
|
||||
mark_as_advanced(${_prefix}_${_library}_LIBRARY_DEBUG)
|
||||
select_library_configurations(${_prefix}_${_library})
|
||||
if(NOT ${_prefix}_${_library}_LIBRARY_RELEASE MATCHES "NOTFOUND")
|
||||
set(${LIBRARIES}_RELEASE ${${LIBRARIES}_RELEASE} ${${_prefix}_${_library}_LIBRARY_RELEASE})
|
||||
endif()
|
||||
set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
|
||||
set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(_libraries_work)
|
||||
# Test this combination of libraries.
|
||||
if(NOT "${_blas}" STREQUAL "")
|
||||
string(GENEX_STRIP "${_blas}" _test_blas)
|
||||
endif()
|
||||
if(UNIX AND BLA_STATIC)
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${_flags} "-Wl,--start-group" ${${LIBRARIES}_RELEASE} ${_test_blas} "-Wl,--end-group" ${_threads})
|
||||
else()
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}_RELEASE} ${_test_blas} ${_threads})
|
||||
endif()
|
||||
#message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
|
||||
#message("DEBUG: _test_blas = ${_test_blas} former ${_blas}")
|
||||
if (NOT CMAKE_Fortran_COMPILER_LOADED)
|
||||
check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
|
||||
else ()
|
||||
check_fortran_function_exists(${_name} ${_prefix}${_combined_name}_WORKS)
|
||||
endif ()
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
set(_test_blas)
|
||||
set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
|
||||
# message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
|
||||
endif()
|
||||
|
||||
if(_libraries_work)
|
||||
set(${LIBRARIES} ${${LIBRARIES}} "${_blas}" ${_threads})
|
||||
else()
|
||||
set(${LIBRARIES} FALSE)
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
|
||||
set(LAPACK_LINKER_FLAGS)
|
||||
set(LAPACK_LIBRARIES)
|
||||
set(LAPACK95_LIBRARIES)
|
||||
|
||||
|
||||
if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
|
||||
find_package(BLAS)
|
||||
else()
|
||||
find_package(BLAS REQUIRED)
|
||||
endif()
|
||||
|
||||
|
||||
if(BLAS_FOUND)
|
||||
set(LAPACK_LINKER_FLAGS ${BLAS_LINKER_FLAGS})
|
||||
if (NOT $ENV{BLA_VENDOR} STREQUAL "")
|
||||
set(BLA_VENDOR $ENV{BLA_VENDOR})
|
||||
else ()
|
||||
if(NOT BLA_VENDOR)
|
||||
set(BLA_VENDOR "All")
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
#intel lapack
|
||||
if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
|
||||
if (NOT WIN32)
|
||||
set(LAPACK_mkl_LM "-lm")
|
||||
set(LAPACK_mkl_LDL "-ldl")
|
||||
endif ()
|
||||
if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
|
||||
if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
|
||||
find_PACKAGE(Threads)
|
||||
else()
|
||||
find_package(Threads REQUIRED)
|
||||
endif()
|
||||
|
||||
if (BLA_VENDOR MATCHES "_64ilp")
|
||||
set(LAPACK_mkl_ILP_MODE "ilp64")
|
||||
else ()
|
||||
set(LAPACK_mkl_ILP_MODE "lp64")
|
||||
endif ()
|
||||
|
||||
set(LAPACK_SEARCH_LIBS "")
|
||||
|
||||
if (BLA_F95)
|
||||
set(LAPACK_mkl_SEARCH_SYMBOL "cheev_f95")
|
||||
set(_LIBRARIES LAPACK95_LIBRARIES)
|
||||
set(_BLAS_LIBRARIES ${BLAS95_LIBRARIES})
|
||||
|
||||
# old
|
||||
list(APPEND LAPACK_SEARCH_LIBS
|
||||
"mkl_lapack95")
|
||||
# new >= 10.3
|
||||
list(APPEND LAPACK_SEARCH_LIBS
|
||||
"mkl_intel_c")
|
||||
list(APPEND LAPACK_SEARCH_LIBS
|
||||
"mkl_lapack95_${LAPACK_mkl_ILP_MODE}")
|
||||
else()
|
||||
set(LAPACK_mkl_SEARCH_SYMBOL "cheev")
|
||||
set(_LIBRARIES LAPACK_LIBRARIES)
|
||||
set(_BLAS_LIBRARIES ${BLAS_LIBRARIES})
|
||||
|
||||
# old
|
||||
list(APPEND LAPACK_SEARCH_LIBS
|
||||
"mkl_lapack")
|
||||
endif()
|
||||
|
||||
# First try empty lapack libs
|
||||
if (NOT ${_LIBRARIES})
|
||||
check_lapack_libraries(
|
||||
${_LIBRARIES}
|
||||
LAPACK
|
||||
${LAPACK_mkl_SEARCH_SYMBOL}
|
||||
""
|
||||
""
|
||||
"${_BLAS_LIBRARIES}"
|
||||
""
|
||||
)
|
||||
endif ()
|
||||
# Then try the search libs
|
||||
foreach (IT ${LAPACK_SEARCH_LIBS})
|
||||
if (NOT ${_LIBRARIES})
|
||||
check_lapack_libraries(
|
||||
${_LIBRARIES}
|
||||
LAPACK
|
||||
${LAPACK_mkl_SEARCH_SYMBOL}
|
||||
""
|
||||
"${IT}"
|
||||
"${_BLAS_LIBRARIES}"
|
||||
"${CMAKE_THREAD_LIBS_INIT};${LAPACK_mkl_LM};${LAPACK_mkl_LDL}"
|
||||
)
|
||||
endif ()
|
||||
endforeach ()
|
||||
|
||||
unset(LAPACK_mkl_ILP_MODE)
|
||||
unset(LAPACK_mkl_SEARCH_SYMBOL)
|
||||
unset(LAPACK_mkl_LM)
|
||||
unset(LAPACK_mkl_LDL)
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
if (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT LAPACK_LIBRARIES)
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"goto2"
|
||||
"${BLAS_LIBRARIES}"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
if (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT LAPACK_LIBRARIES)
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"openblas"
|
||||
"${BLAS_LIBRARIES}"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT LAPACK_LIBRARIES)
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"flame"
|
||||
"${BLAS_LIBRARIES}"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
#acml lapack
|
||||
if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
|
||||
if (BLAS_LIBRARIES MATCHES ".+acml.+")
|
||||
set (LAPACK_LIBRARIES ${BLAS_LIBRARIES})
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# Apple LAPACK library?
|
||||
if (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT LAPACK_LIBRARIES)
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"Accelerate"
|
||||
"${BLAS_LIBRARIES}"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
|
||||
if ( NOT LAPACK_LIBRARIES )
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"vecLib"
|
||||
"${BLAS_LIBRARIES}"
|
||||
""
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
# Generic LAPACK library?
|
||||
if (BLA_VENDOR STREQUAL "Generic" OR
|
||||
BLA_VENDOR STREQUAL "ATLAS" OR
|
||||
BLA_VENDOR STREQUAL "All")
|
||||
if ( NOT LAPACK_LIBRARIES )
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"lapack"
|
||||
"${BLAS_LIBRARIES}"
|
||||
""
|
||||
)
|
||||
endif ()
|
||||
if ( NOT LAPACK_LIBRARIES )
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"lapack;libf2c"
|
||||
"${BLAS_LIBRARIES}"
|
||||
""
|
||||
)
|
||||
endif ()
|
||||
if ( NOT LAPACK_LIBRARIES )
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"lapack;f2c"
|
||||
"${BLAS_LIBRARIES}"
|
||||
""
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
else()
|
||||
message(STATUS "LAPACK requires BLAS")
|
||||
endif()
|
||||
|
||||
if(BLA_F95)
|
||||
if(LAPACK95_LIBRARIES)
|
||||
set(LAPACK95_FOUND TRUE)
|
||||
else()
|
||||
set(LAPACK95_FOUND FALSE)
|
||||
endif()
|
||||
if(NOT LAPACK_FIND_QUIETLY)
|
||||
if(LAPACK95_FOUND)
|
||||
message(STATUS "A library with LAPACK95 API found.")
|
||||
else()
|
||||
if(LAPACK_FIND_REQUIRED)
|
||||
message(FATAL_ERROR
|
||||
"A required library with LAPACK95 API not found. Please specify library location."
|
||||
)
|
||||
else()
|
||||
message(STATUS
|
||||
"A library with LAPACK95 API not found. Please specify library location."
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
set(LAPACK_FOUND "${LAPACK95_FOUND}")
|
||||
set(LAPACK_LIBRARIES "${LAPACK95_LIBRARIES}")
|
||||
else()
|
||||
if(LAPACK_LIBRARIES)
|
||||
set(LAPACK_FOUND TRUE)
|
||||
else()
|
||||
set(LAPACK_FOUND FALSE)
|
||||
endif()
|
||||
|
||||
if(NOT LAPACK_FIND_QUIETLY)
|
||||
if(LAPACK_FOUND)
|
||||
message(STATUS "A library with LAPACK API found.")
|
||||
else()
|
||||
if(LAPACK_FIND_REQUIRED)
|
||||
message(FATAL_ERROR
|
||||
"A required library with LAPACK API not found. Please specify library location."
|
||||
)
|
||||
else()
|
||||
message(STATUS
|
||||
"A library with LAPACK API not found. Please specify library location."
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
cmake_pop_check_state()
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
#.rst:
|
||||
# clapack config for vcpkg
|
||||
# ------------
|
||||
#
|
||||
# Find the clapack includes and library.
|
||||
#
|
||||
# Result Variables
|
||||
# ^^^^^^^^^^^^^^^^
|
||||
#
|
||||
# This script defines the following variables:
|
||||
#
|
||||
# ``CLAPACK_FOUND``
|
||||
# True if clapack library found
|
||||
#
|
||||
# ``CLAPACK_VERSION``
|
||||
# Containing the clapack version tag (manually defined)
|
||||
#
|
||||
# ``CLAPACK_INCLUDE_DIR``
|
||||
# Location of clapack headers
|
||||
#
|
||||
# ``CLAPACK_LIBRARY``
|
||||
# List of libraries to link with when using clapack
|
||||
#
|
||||
# Result Targets
|
||||
# ^^^^^^^^^^^^^^
|
||||
#
|
||||
# This script defines the following targets:
|
||||
#
|
||||
# ``clapack::clapack``
|
||||
# Target to use clapack
|
||||
#
|
||||
# Compatibility Variables
|
||||
# ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
#
|
||||
# This script defines the following variables for compatibility reasons:
|
||||
#
|
||||
# ``F2C_FOUND``
|
||||
# True if f2c (fortran-to-c wrap layer) library found
|
||||
#
|
||||
# ``F2C_INCLUDE_DIR``
|
||||
# Location of clapack headers
|
||||
#
|
||||
# ``F2C_LIBRARY``
|
||||
# Library containing the fortran-to-c wrap layer, necessary for clapack and automatically included when used
|
||||
#
|
||||
# ``LAPACK_FOUND``
|
||||
# True if clapack library found
|
||||
#
|
||||
# ``LAPACK_VERSION``
|
||||
# Containing the clapack version tag (manually defined)
|
||||
#
|
||||
# ``LAPACK_INCLUDE_DIR``
|
||||
# Location of clapack headers
|
||||
#
|
||||
# ``LAPACK_LIBRARY``
|
||||
# List of libraries to link with when using clapack
|
||||
#
|
||||
# Compatibility Targets
|
||||
# ^^^^^^^^^^^^^^
|
||||
#
|
||||
# This script defines the following targets for compatibility reasons:
|
||||
#
|
||||
# ``lapack``
|
||||
# Target to use lapack
|
||||
|
||||
include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
|
||||
include(${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
|
||||
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
||||
include(${CMAKE_ROOT}/Modules/CMakeFindDependencyMacro.cmake)
|
||||
|
||||
set(CLAPACK_VERSION "3.2.1")
|
||||
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
find_dependency(Threads)
|
||||
|
||||
if(UNIX)
|
||||
find_library(ADDITIONAL_LAPACK_LIBRARY m)
|
||||
set(PTHREAD_LINK_NAME "-pthread")
|
||||
endif()
|
||||
|
||||
if(NOT F2C_LIBRARY)
|
||||
find_library(F2C_LIBRARY_RELEASE NAMES f2c libf2c)
|
||||
find_library(F2C_LIBRARY_DEBUG NAMES f2cd libf2cd)
|
||||
select_library_configurations(F2C)
|
||||
|
||||
#keep a list of "pure" f2c libs, without dependencies
|
||||
set(oF2C_LIBRARY_RELEASE ${F2C_LIBRARY_RELEASE})
|
||||
set(oF2C_LIBRARY_DEBUG ${F2C_LIBRARY_DEBUG})
|
||||
set(oF2C_LIBRARY ${F2C_LIBRARY})
|
||||
|
||||
list(APPEND F2C_LIBRARY ${ADDITIONAL_LAPACK_LIBRARY})
|
||||
endif()
|
||||
|
||||
if(NOT LAPACK_LIBRARY)
|
||||
find_library(LAPACK_LIBRARY_RELEASE NAMES lapack)
|
||||
find_library(LAPACK_LIBRARY_DEBUG NAMES lapackd)
|
||||
|
||||
#keep a list of "pure" lapack libs, without dependencies
|
||||
set(oLAPACK_LIBRARY_RELEASE ${LAPACK_LIBRARY_RELEASE})
|
||||
set(oLAPACK_LIBRARY_DEBUG ${LAPACK_LIBRARY_DEBUG})
|
||||
select_library_configurations(oLAPACK)
|
||||
|
||||
list(APPEND LAPACK_LIBRARY_RELEASE ${F2C_LIBRARY_RELEASE})
|
||||
list(APPEND LAPACK_LIBRARY_DEBUG ${F2C_LIBRARY_DEBUG})
|
||||
|
||||
find_dependency(OpenBLAS)
|
||||
get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB_RELEASE)
|
||||
if(NOT _loc)
|
||||
get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY LOCATION_RELEASE)
|
||||
endif()
|
||||
set(LAPACK_BLAS_LIBRARY_RELEASE ${_loc})
|
||||
get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB_DEBUG)
|
||||
if(NOT _loc)
|
||||
get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY LOCATION_DEBUG)
|
||||
endif()
|
||||
set(LAPACK_BLAS_LIBRARY_DEBUG ${_loc})
|
||||
select_library_configurations(LAPACK_BLAS)
|
||||
list(APPEND LAPACK_LIBRARY_RELEASE ${LAPACK_BLAS_LIBRARY_RELEASE})
|
||||
list(APPEND LAPACK_LIBRARY_DEBUG ${LAPACK_BLAS_LIBRARY_DEBUG})
|
||||
|
||||
select_library_configurations(LAPACK)
|
||||
if(UNIX)
|
||||
list(APPEND LAPACK_LIBRARY ${PTHREAD_LINK_NAME})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT F2C_INCLUDE_DIR)
|
||||
find_path(F2C_INCLUDE_DIR NAMES f2c.h)
|
||||
endif()
|
||||
|
||||
if(NOT LAPACK_INCLUDE_DIR)
|
||||
find_path(LAPACK_INCLUDE_DIR NAMES clapack.h)
|
||||
endif()
|
||||
|
||||
list(APPEND LAPACK_INCLUDE_DIR ${F2C_INCLUDE_DIR})
|
||||
set(LAPACK_INCLUDE_DIR "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
|
||||
set(LAPACK_INCLUDE_DIRS "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
|
||||
set(CLAPACK_INCLUDE_DIR "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
|
||||
set(CLAPACK_INCLUDE_DIRS "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
|
||||
set(F2C_INCLUDE_DIRS "${F2C_INCLUDE_DIR}" CACHE PATH "" FORCE)
|
||||
|
||||
set(LAPACK_DLL_DIR ${LAPACK_INCLUDE_DIR})
|
||||
list(TRANSFORM LAPACK_DLL_DIR APPEND "/../bin")
|
||||
message(STATUS "LAPACK_DLL_DIR: ${LAPACK_DLL_DIR}")
|
||||
|
||||
if(WIN32)
|
||||
find_file(LAPACK_LIBRARY_RELEASE_DLL NAMES lapack.dll PATHS ${LAPACK_DLL_DIR})
|
||||
find_file(LAPACK_LIBRARY_DEBUG_FOLDER NAMES lapackd.dll PATHS ${LAPACK_DLL_DIR})
|
||||
find_file(F2C_LIBRARY_RELEASE_DLL NAMES f2c.dll libf2c.dll PATHS ${LAPACK_DLL_DIR})
|
||||
find_file(F2C_LIBRARY_DEBUG_DLL NAMES f2cd.dll libf2cd.dll PATHS ${LAPACK_DLL_DIR})
|
||||
endif()
|
||||
|
||||
set(LAPACK_BLAS_LIBRARY "${LAPACK_BLAS_LIBRARY}" CACHE STRING "" FORCE)
|
||||
set(F2C_LIBRARIES "${F2C_LIBRARY}" CACHE STRING "" FORCE)
|
||||
set(LAPACK_VERSION "${CLAPACK_VERSION}" CACHE STRING "" FORCE)
|
||||
set(LAPACK_LIBRARIES "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
|
||||
set(CLAPACK_LIBRARY "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
|
||||
set(CLAPACK_LIBRARIES "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
|
||||
|
||||
set(LAPACK_LIBRARY "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
|
||||
set(F2C_LIBRARY "${F2C_LIBRARY}" CACHE STRING "" FORCE)
|
||||
set(LAPACK_LIBRARY_RELEASE "${LAPACK_LIBRARY_RELEASE}" CACHE STRING "" FORCE)
|
||||
set(LAPACK_LIBRARY_DEBUG "${LAPACK_LIBRARY_DEBUG}" CACHE STRING "" FORCE)
|
||||
set(F2C_LIBRARY_RELEASE "${F2C_LIBRARY_RELEASE}" CACHE STRING "" FORCE)
|
||||
set(F2C_LIBRARY_DEBUG "${F2C_LIBRARY_DEBUG}" CACHE STRING "" FORCE)
|
||||
|
||||
find_package_handle_standard_args(LAPACK DEFAULT_MSG LAPACK_LIBRARY LAPACK_INCLUDE_DIR)
|
||||
mark_as_advanced(LAPACK_INCLUDE_DIR LAPACK_LIBRARY)
|
||||
|
||||
#TARGETS
|
||||
if(CLAPACK_FOUND AND NOT TARGET clapack::clapack)
|
||||
if(EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}")
|
||||
add_library(clapack::clapack SHARED IMPORTED)
|
||||
set_target_properties(clapack::clapack PROPERTIES
|
||||
IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE_DLL}"
|
||||
IMPORTED_IMPLIB_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
|
||||
INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
|
||||
IMPORTED_CONFIGURATIONS Release
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C")
|
||||
if(EXISTS "${LAPACK_LIBRARY_DEBUG_DLL}")
|
||||
set_property(TARGET clapack::clapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
|
||||
set_target_properties(clapack::clapack PROPERTIES
|
||||
IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}"
|
||||
IMPORTED_IMPLIB_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
else()
|
||||
add_library(clapack::clapack UNKNOWN IMPORTED)
|
||||
set_target_properties(clapack::clapack PROPERTIES
|
||||
IMPORTED_LOCATION_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
|
||||
INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
|
||||
IMPORTED_CONFIGURATIONS Release
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C")
|
||||
if(EXISTS "${LAPACK_LIBRARY_DEBUG}")
|
||||
set_property(TARGET clapack::clapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
|
||||
set_target_properties(clapack::clapack PROPERTIES
|
||||
IMPORTED_LOCATION_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CLAPACK_FOUND AND NOT TARGET lapack)
|
||||
if(EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}")
|
||||
add_library(lapack SHARED IMPORTED)
|
||||
set_target_properties(lapack PROPERTIES
|
||||
IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE_DLL}"
|
||||
IMPORTED_IMPLIB_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
|
||||
INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
|
||||
IMPORTED_CONFIGURATIONS Release
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C")
|
||||
if(EXISTS "${LAPACK_LIBRARY_DEBUG_DLL}")
|
||||
set_property(TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
|
||||
set_target_properties(lapack PROPERTIES
|
||||
IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}"
|
||||
IMPORTED_IMPLIB_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
else()
|
||||
add_library(lapack UNKNOWN IMPORTED)
|
||||
set_target_properties(lapack PROPERTIES
|
||||
IMPORTED_LOCATION_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
|
||||
IMPORTED_CONFIGURATIONS Release
|
||||
INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C")
|
||||
if(EXISTS "${LAPACK_LIBRARY_DEBUG}")
|
||||
set_property(TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
|
||||
set_target_properties(lapack PROPERTIES
|
||||
IMPORTED_LOCATION_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
@ -1,2 +1,10 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindLAPACK.cmake)
|
||||
set(LAPACK_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
list(REMOVE_ITEM ARGS "NO_MODULE")
|
||||
list(REMOVE_ITEM ARGS "CONFIG")
|
||||
list(REMOVE_ITEM ARGS "MODULE")
|
||||
|
||||
_find_package(${ARGS})
|
||||
|
||||
set(CMAKE_MODULE_PATH ${LAPACK_PREV_MODULE_PATH})
|
@ -1,9 +1,9 @@
|
||||
Source: mlpack
|
||||
Version: 3.2.2
|
||||
Port-Version: 5
|
||||
Port-Version: 6
|
||||
Homepage: https://github.com/mlpack/mlpack
|
||||
Description: mlpack is a fast, flexible machine learning library, written in C++, that aims to provide fast, extensible implementations of cutting-edge machine learning algorithms.
|
||||
Build-Depends: openblas (!osx), lapack, boost, armadillo, ensmallen, stb
|
||||
Build-Depends: openblas, lapack, boost, armadillo, ensmallen, stb
|
||||
|
||||
Feature: tools
|
||||
Description: Build command-line executables.
|
||||
|
@ -38,14 +38,56 @@ vcpkg_install_cmake()
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
if("tools" IN_LIST FEATURES)
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools)
|
||||
file(GLOB MLPACK_TOOLS ${CURRENT_PACKAGES_DIR}/bin/*.exe)
|
||||
file(COPY ${MLPACK_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
|
||||
file(REMOVE ${MLPACK_TOOLS})
|
||||
file(GLOB MLPACK_TOOLS_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
|
||||
file(REMOVE ${MLPACK_TOOLS_DEBUG})
|
||||
vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES
|
||||
mlpack_adaboost
|
||||
mlpack_approx_kfn
|
||||
mlpack_cf
|
||||
mlpack_dbscan
|
||||
mlpack_decision_stump
|
||||
mlpack_decision_tree
|
||||
mlpack_det
|
||||
mlpack_emst
|
||||
mlpack_fastmks
|
||||
mlpack_gmm_generate
|
||||
mlpack_gmm_probability
|
||||
mlpack_gmm_train
|
||||
mlpack_hmm_generate
|
||||
mlpack_hmm_loglik
|
||||
mlpack_hmm_train
|
||||
mlpack_hmm_viterbi
|
||||
mlpack_hoeffding_tree
|
||||
mlpack_kde
|
||||
mlpack_kernel_pca
|
||||
mlpack_kfn
|
||||
mlpack_kmeans
|
||||
mlpack_knn
|
||||
mlpack_krann
|
||||
mlpack_lars
|
||||
mlpack_linear_regression
|
||||
mlpack_linear_svm
|
||||
mlpack_lmnn
|
||||
mlpack_local_coordinate_coding
|
||||
mlpack_logistic_regression
|
||||
mlpack_lsh
|
||||
mlpack_mean_shift
|
||||
mlpack_nbc
|
||||
mlpack_nca
|
||||
mlpack_nmf
|
||||
mlpack_pca
|
||||
mlpack_perceptron
|
||||
mlpack_preprocess_binarize
|
||||
mlpack_preprocess_describe
|
||||
mlpack_preprocess_imputer
|
||||
mlpack_preprocess_scale
|
||||
mlpack_preprocess_split
|
||||
mlpack_radical
|
||||
mlpack_random_forest
|
||||
mlpack_range_search
|
||||
mlpack_softmax_regression
|
||||
mlpack_sparse_coding
|
||||
)
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/COPYRIGHT.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
file(INSTALL ${SOURCE_PATH}/COPYRIGHT.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
|
@ -1,5 +1,7 @@
|
||||
Source: nanogui
|
||||
Version: 2019-09-23
|
||||
Port-Version: 1
|
||||
Homepage: https://github.com/wjakob/nanogui
|
||||
Description: NanoGUI is a minimalistic cross-platform widget library for OpenGL 3.x or higher.
|
||||
Build-Depends: glfw3, nanovg, eigen3
|
||||
Build-Depends: glfw3, nanovg, eigen3
|
||||
Supports: !uwp
|
||||
|
@ -1,21 +1,20 @@
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
if(VCPKG_TARGET_IS_UWP)
|
||||
message(FATAL_ERROR "nanogui doesn't support UWP.")
|
||||
endif()
|
||||
vcpkg_fail_port_install(ON_TARGET "uwp")
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO wjakob/nanogui
|
||||
REF e9ec8a1a9861cf578d9c6e85a6420080aa715c03 #Commits on Sep 23, 2019
|
||||
REF e9ec8a1a9861cf578d9c6e85a6420080aa715c03 #Commits on Sep 23, 2019
|
||||
SHA512 36c93bf977862ced2df4030211e2b83625e60a11fc9fdb6c1f2996bb234758331d3f41a7fbafd25a5bca0239ed9bac9c93446a4a7fac4c5e6d7943af2be3e14a
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
fix-cmakelists.patch
|
||||
fix-cmakelists.patch
|
||||
)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
OPTIONS
|
||||
-DNANOGUI_EIGEN_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/eigen3
|
||||
-DEIGEN_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/eigen3
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
@ -23,4 +22,4 @@ vcpkg_copy_pdbs()
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
|
||||
# Handle copyright
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
|
@ -1,816 +0,0 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindBLAS
|
||||
--------
|
||||
|
||||
Find Basic Linear Algebra Subprograms (BLAS) library
|
||||
|
||||
This module finds an installed Fortran library that implements the
|
||||
BLAS linear-algebra interface (see http://www.netlib.org/blas/). The
|
||||
list of libraries searched for is taken from the ``autoconf`` macro file,
|
||||
``acx_blas.m4`` (distributed at
|
||||
http://ac-archive.sourceforge.net/ac-archive/acx_blas.html).
|
||||
|
||||
Input Variables
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
The following variables may be set to influence this module's behavior:
|
||||
|
||||
``BLA_STATIC``
|
||||
if ``ON`` use static linkage
|
||||
|
||||
``BLA_VENDOR``
|
||||
If set, checks only the specified vendor, if not set checks all the
|
||||
possibilities. List of vendors valid in this module:
|
||||
|
||||
* Goto
|
||||
* OpenBLAS
|
||||
* FLAME
|
||||
* ATLAS PhiPACK
|
||||
* CXML
|
||||
* DXML
|
||||
* SunPerf
|
||||
* SCSL
|
||||
* SGIMATH
|
||||
* IBMESSL
|
||||
* Intel10_32 (intel mkl v10 32 bit)
|
||||
* Intel10_64lp (intel mkl v10+ 64 bit, threaded code, lp64 model)
|
||||
* Intel10_64lp_seq (intel mkl v10+ 64 bit, sequential code, lp64 model)
|
||||
* Intel10_64ilp (intel mkl v10+ 64 bit, threaded code, ilp64 model)
|
||||
* Intel10_64ilp_seq (intel mkl v10+ 64 bit, sequential code, ilp64 model)
|
||||
* Intel (obsolete versions of mkl 32 and 64 bit)
|
||||
* ACML
|
||||
* ACML_MP
|
||||
* ACML_GPU
|
||||
* Apple
|
||||
* NAS
|
||||
* Generic
|
||||
|
||||
``BLA_F95``
|
||||
if ``ON`` tries to find the BLAS95 interfaces
|
||||
|
||||
``BLA_PREFER_PKGCONFIG``
|
||||
if set ``pkg-config`` will be used to search for a BLAS library first
|
||||
and if one is found that is preferred
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module defines the following variables:
|
||||
|
||||
``BLAS_FOUND``
|
||||
library implementing the BLAS interface is found
|
||||
``BLAS_LINKER_FLAGS``
|
||||
uncached list of required linker flags (excluding ``-l`` and ``-L``).
|
||||
``BLAS_LIBRARIES``
|
||||
uncached list of libraries (using full path name) to link against
|
||||
to use BLAS (may be empty if compiler implicitly links BLAS)
|
||||
``BLAS95_LIBRARIES``
|
||||
uncached list of libraries (using full path name) to link against
|
||||
to use BLAS95 interface
|
||||
``BLAS95_FOUND``
|
||||
library implementing the BLAS95 interface is found
|
||||
|
||||
.. note::
|
||||
|
||||
C or CXX must be enabled to use Intel Math Kernel Library (MKL)
|
||||
|
||||
For example, to use Intel MKL libraries and/or Intel compiler:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set(BLA_VENDOR Intel10_64lp)
|
||||
find_package(BLAS)
|
||||
|
||||
Hints
|
||||
^^^^^
|
||||
|
||||
Set ``MKLROOT`` environment variable to a directory that contains an MKL
|
||||
installation.
|
||||
|
||||
#]=======================================================================]
|
||||
|
||||
include(${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
|
||||
include(${CMAKE_ROOT}/Modules/CheckFortranFunctionExists.cmake)
|
||||
include(${CMAKE_ROOT}/Modules/CMakePushCheckState.cmake)
|
||||
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
||||
cmake_push_check_state()
|
||||
set(CMAKE_REQUIRED_QUIET ${BLAS_FIND_QUIETLY})
|
||||
|
||||
set(_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
|
||||
# Check the language being used
|
||||
if( NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED) )
|
||||
if(BLAS_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "FindBLAS requires Fortran, C, or C++ to be enabled.")
|
||||
else()
|
||||
message(STATUS "Looking for BLAS... - NOT found (Unsupported languages)")
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(BLA_PREFER_PKGCONFIG)
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PKGC_BLAS blas)
|
||||
if(PKGC_BLAS_FOUND)
|
||||
set(BLAS_FOUND ${PKGC_BLAS_FOUND})
|
||||
set(BLAS_LIBRARIES "${PKGC_BLAS_LINK_LIBRARIES}")
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags _list _thread)
|
||||
# This macro checks for the existence of the combination of fortran libraries
|
||||
# given by _list. If the combination is found, this macro checks (using the
|
||||
# Check_Fortran_Function_Exists macro) whether can link against that library
|
||||
# combination using the name of a routine given by _name using the linker
|
||||
# flags given by _flags. If the combination of libraries is found and passes
|
||||
# the link test, LIBRARIES is set to the list of complete library paths that
|
||||
# have been found. Otherwise, LIBRARIES is set to FALSE.
|
||||
|
||||
# N.B. _prefix is the prefix applied to the names of all cached variables that
|
||||
# are generated internally and marked advanced by this macro.
|
||||
|
||||
set(_libdir ${ARGN})
|
||||
|
||||
set(_libraries_work TRUE)
|
||||
set(${LIBRARIES})
|
||||
set(_combined_name)
|
||||
if (NOT _libdir)
|
||||
if (WIN32)
|
||||
set(_libdir ENV LIB)
|
||||
elseif (APPLE)
|
||||
set(_libdir ENV DYLD_LIBRARY_PATH)
|
||||
else ()
|
||||
set(_libdir ENV LD_LIBRARY_PATH)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
list(APPEND _libdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
|
||||
|
||||
foreach(_library ${_list})
|
||||
set(_combined_name ${_combined_name}_${_library})
|
||||
if(NOT "${_thread}" STREQUAL "")
|
||||
set(_combined_name ${_combined_name}_thread)
|
||||
endif()
|
||||
if(_libraries_work)
|
||||
if (BLA_STATIC)
|
||||
if (WIN32)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
endif ()
|
||||
if (APPLE)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
else ()
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
endif ()
|
||||
else ()
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
# for ubuntu's libblas3gf and liblapack3gf packages
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
|
||||
endif ()
|
||||
endif ()
|
||||
find_library(${_prefix}_${_library}_LIBRARY
|
||||
NAMES ${_library}
|
||||
PATHS ${_libdir}
|
||||
)
|
||||
mark_as_advanced(${_prefix}_${_library}_LIBRARY)
|
||||
set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
|
||||
set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
|
||||
endif()
|
||||
endforeach()
|
||||
if(_libraries_work)
|
||||
# Test this combination of libraries.
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_thread})
|
||||
# message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
|
||||
if (CMAKE_Fortran_COMPILER_LOADED)
|
||||
check_fortran_function_exists("${_name}" ${_prefix}${_combined_name}_WORKS)
|
||||
else()
|
||||
check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
|
||||
endif()
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
|
||||
endif()
|
||||
if(_libraries_work)
|
||||
if("${_list}" STREQUAL "")
|
||||
set(${LIBRARIES} "${LIBRARIES}-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
|
||||
else()
|
||||
set(${LIBRARIES} ${${LIBRARIES}} ${_thread}) # for static link
|
||||
endif()
|
||||
else()
|
||||
set(${LIBRARIES} FALSE)
|
||||
endif()
|
||||
#message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
|
||||
endmacro()
|
||||
|
||||
set(BLAS_LINKER_FLAGS)
|
||||
set(BLAS_LIBRARIES)
|
||||
set(BLAS95_LIBRARIES)
|
||||
if (NOT $ENV{BLA_VENDOR} STREQUAL "")
|
||||
set(BLA_VENDOR $ENV{BLA_VENDOR})
|
||||
else ()
|
||||
if(NOT BLA_VENDOR)
|
||||
set(BLA_VENDOR "All")
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
if (BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
# Implicitly linked BLAS libraries
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
""
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
#BLAS in intel mkl 10+ library? (em64t 64bit)
|
||||
if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
|
||||
if (NOT BLAS_LIBRARIES)
|
||||
|
||||
# System-specific settings
|
||||
if (WIN32)
|
||||
if (BLA_STATIC)
|
||||
set(BLAS_mkl_DLL_SUFFIX "")
|
||||
else()
|
||||
set(BLAS_mkl_DLL_SUFFIX "_dll")
|
||||
endif()
|
||||
else()
|
||||
# Switch to GNU Fortran support layer if needed (but not on Apple, where MKL does not provide it)
|
||||
if(CMAKE_Fortran_COMPILER_LOADED AND CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND NOT APPLE)
|
||||
set(BLAS_mkl_INTFACE "gf")
|
||||
set(BLAS_mkl_THREADING "gnu")
|
||||
set(BLAS_mkl_OMP "gomp")
|
||||
else()
|
||||
set(BLAS_mkl_INTFACE "intel")
|
||||
set(BLAS_mkl_THREADING "intel")
|
||||
set(BLAS_mkl_OMP "iomp5")
|
||||
endif()
|
||||
set(BLAS_mkl_LM "-lm")
|
||||
set(BLAS_mkl_LDL "-ldl")
|
||||
endif()
|
||||
|
||||
if (BLA_VENDOR MATCHES "_64ilp")
|
||||
set(BLAS_mkl_ILP_MODE "ilp64")
|
||||
else ()
|
||||
set(BLAS_mkl_ILP_MODE "lp64")
|
||||
endif ()
|
||||
|
||||
if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
|
||||
if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
|
||||
find_package(Threads)
|
||||
else()
|
||||
find_package(Threads REQUIRED)
|
||||
endif()
|
||||
|
||||
set(BLAS_SEARCH_LIBS "")
|
||||
|
||||
if(BLA_F95)
|
||||
set(BLAS_mkl_SEARCH_SYMBOL sgemm_f95)
|
||||
set(_LIBRARIES BLAS95_LIBRARIES)
|
||||
if (WIN32)
|
||||
# Find the main file (32-bit or 64-bit)
|
||||
set(BLAS_SEARCH_LIBS_WIN_MAIN "")
|
||||
if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
|
||||
list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
|
||||
"mkl_blas95${BLAS_mkl_DLL_SUFFIX} mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
|
||||
endif()
|
||||
if (BLA_VENDOR MATCHES "^Intel10_64i?lp" OR BLA_VENDOR STREQUAL "All")
|
||||
list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
|
||||
"mkl_blas95_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX} mkl_intel_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX}")
|
||||
endif ()
|
||||
|
||||
# Add threading/sequential libs
|
||||
set(BLAS_SEARCH_LIBS_WIN_THREAD "")
|
||||
if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
|
||||
list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
|
||||
"mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
|
||||
endif()
|
||||
if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
|
||||
# old version
|
||||
list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
|
||||
"libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
|
||||
# mkl >= 10.3
|
||||
list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
|
||||
"libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
|
||||
endif()
|
||||
|
||||
# Cartesian product of the above
|
||||
foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
|
||||
foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
|
||||
endforeach()
|
||||
endforeach()
|
||||
else ()
|
||||
if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
|
||||
# old version
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
|
||||
|
||||
# mkl >= 10.3
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
|
||||
endif ()
|
||||
if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
|
||||
# old version
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_blas95 mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
|
||||
|
||||
# mkl >= 10.3
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
|
||||
endif ()
|
||||
if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
|
||||
endif ()
|
||||
endif ()
|
||||
else ()
|
||||
set(BLAS_mkl_SEARCH_SYMBOL sgemm)
|
||||
set(_LIBRARIES BLAS_LIBRARIES)
|
||||
if (WIN32)
|
||||
# Find the main file (32-bit or 64-bit)
|
||||
set(BLAS_SEARCH_LIBS_WIN_MAIN "")
|
||||
if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
|
||||
list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
|
||||
"mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
|
||||
endif()
|
||||
if (BLA_VENDOR MATCHES "^Intel10_64i?lp" OR BLA_VENDOR STREQUAL "All")
|
||||
list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
|
||||
"mkl_intel_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX}")
|
||||
endif ()
|
||||
|
||||
# Add threading/sequential libs
|
||||
set(BLAS_SEARCH_LIBS_WIN_THREAD "")
|
||||
if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
|
||||
# old version
|
||||
list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
|
||||
"libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
|
||||
# mkl >= 10.3
|
||||
list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
|
||||
"libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
|
||||
endif()
|
||||
if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
|
||||
list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
|
||||
"mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
|
||||
endif()
|
||||
|
||||
# Cartesian product of the above
|
||||
foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
|
||||
foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
|
||||
endforeach()
|
||||
endforeach()
|
||||
else ()
|
||||
if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
|
||||
# old version
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
|
||||
|
||||
# mkl >= 10.3
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
|
||||
endif ()
|
||||
if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
|
||||
# old version
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
|
||||
|
||||
# mkl >= 10.3
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
|
||||
endif ()
|
||||
if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
|
||||
endif ()
|
||||
|
||||
#older vesions of intel mkl libs
|
||||
if (BLA_VENDOR STREQUAL "Intel" OR BLA_VENDOR STREQUAL "All")
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl")
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_ia32")
|
||||
list(APPEND BLAS_SEARCH_LIBS
|
||||
"mkl_em64t")
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (DEFINED ENV{MKLROOT})
|
||||
if (BLA_VENDOR STREQUAL "Intel10_32")
|
||||
set(_BLAS_MKLROOT_LIB_DIR "$ENV{MKLROOT}/lib/ia32")
|
||||
elseif (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$")
|
||||
set(_BLAS_MKLROOT_LIB_DIR "$ENV{MKLROOT}/lib/intel64")
|
||||
endif ()
|
||||
endif ()
|
||||
if (_BLAS_MKLROOT_LIB_DIR)
|
||||
if (WIN32)
|
||||
string(APPEND _BLAS_MKLROOT_LIB_DIR "_win")
|
||||
elseif (APPLE)
|
||||
string(APPEND _BLAS_MKLROOT_LIB_DIR "_mac")
|
||||
else ()
|
||||
string(APPEND _BLAS_MKLROOT_LIB_DIR "_lin")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
foreach (IT ${BLAS_SEARCH_LIBS})
|
||||
string(REPLACE " " ";" SEARCH_LIBS ${IT})
|
||||
if (NOT ${_LIBRARIES})
|
||||
check_fortran_libraries(
|
||||
${_LIBRARIES}
|
||||
BLAS
|
||||
${BLAS_mkl_SEARCH_SYMBOL}
|
||||
""
|
||||
"${SEARCH_LIBS}"
|
||||
"${CMAKE_THREAD_LIBS_INIT};${BLAS_mkl_LM};${BLAS_mkl_LDL}"
|
||||
"${_BLAS_MKLROOT_LIB_DIR}"
|
||||
)
|
||||
endif ()
|
||||
endforeach ()
|
||||
|
||||
endif ()
|
||||
unset(BLAS_mkl_ILP_MODE)
|
||||
unset(BLAS_mkl_INTFACE)
|
||||
unset(BLAS_mkl_THREADING)
|
||||
unset(BLAS_mkl_OMP)
|
||||
unset(BLAS_mkl_DLL_SUFFIX)
|
||||
unset(BLAS_mkl_LM)
|
||||
unset(BLAS_mkl_LDL)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if(BLA_F95)
|
||||
find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS95_LIBRARIES)
|
||||
set(BLAS95_FOUND ${BLAS_FOUND})
|
||||
if(BLAS_FOUND)
|
||||
set(BLAS_LIBRARIES "${BLAS95_LIBRARIES}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
# gotoblas (http://www.tacc.utexas.edu/tacc-projects/gotoblas2)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"goto2"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
if (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
# OpenBLAS (http://www.openblas.net)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"openblas"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
find_package(Threads)
|
||||
# OpenBLAS (http://www.openblas.net)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"openblas"
|
||||
"${CMAKE_THREAD_LIBS_INIT}"
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
# FLAME's blis library (https://github.com/flame/blis)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"blis"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
if (BLA_VENDOR STREQUAL "ATLAS" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
# BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
dgemm
|
||||
""
|
||||
"f77blas;atlas"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
# BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
|
||||
if (BLA_VENDOR STREQUAL "PhiPACK" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"sgemm;dgemm;blas"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
# BLAS in Alpha CXML library?
|
||||
if (BLA_VENDOR STREQUAL "CXML" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"cxml"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
# BLAS in Alpha DXML library? (now called CXML, see above)
|
||||
if (BLA_VENDOR STREQUAL "DXML" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"dxml"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
# BLAS in Sun Performance library?
|
||||
if (BLA_VENDOR STREQUAL "SunPerf" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
"-xlic_lib=sunperf"
|
||||
"sunperf;sunmath"
|
||||
""
|
||||
)
|
||||
if(BLAS_LIBRARIES)
|
||||
set(BLAS_LINKER_FLAGS "-xlic_lib=sunperf")
|
||||
endif()
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
# BLAS in SCSL library? (SGI/Cray Scientific Library)
|
||||
if (BLA_VENDOR STREQUAL "SCSL" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"scsl"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
# BLAS in SGIMATH library?
|
||||
if (BLA_VENDOR STREQUAL "SGIMATH" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"complib.sgimath"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
# BLAS in IBM ESSL library? (requires generic BLAS lib, too)
|
||||
if (BLA_VENDOR STREQUAL "IBMESSL" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"essl;blas"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
#BLAS in acml library?
|
||||
if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
|
||||
if( ((BLA_VENDOR STREQUAL "ACML") AND (NOT BLAS_ACML_LIB_DIRS)) OR
|
||||
((BLA_VENDOR STREQUAL "ACML_MP") AND (NOT BLAS_ACML_MP_LIB_DIRS)) OR
|
||||
((BLA_VENDOR STREQUAL "ACML_GPU") AND (NOT BLAS_ACML_GPU_LIB_DIRS))
|
||||
)
|
||||
# try to find acml in "standard" paths
|
||||
if( WIN32 )
|
||||
file( GLOB _ACML_ROOT "C:/AMD/acml*/ACML-EULA.txt" )
|
||||
else()
|
||||
file( GLOB _ACML_ROOT "/opt/acml*/ACML-EULA.txt" )
|
||||
endif()
|
||||
if( WIN32 )
|
||||
file( GLOB _ACML_GPU_ROOT "C:/AMD/acml*/GPGPUexamples" )
|
||||
else()
|
||||
file( GLOB _ACML_GPU_ROOT "/opt/acml*/GPGPUexamples" )
|
||||
endif()
|
||||
list(GET _ACML_ROOT 0 _ACML_ROOT)
|
||||
list(GET _ACML_GPU_ROOT 0 _ACML_GPU_ROOT)
|
||||
if( _ACML_ROOT )
|
||||
get_filename_component( _ACML_ROOT ${_ACML_ROOT} PATH )
|
||||
if( SIZEOF_INTEGER EQUAL 8 )
|
||||
set( _ACML_PATH_SUFFIX "_int64" )
|
||||
else()
|
||||
set( _ACML_PATH_SUFFIX "" )
|
||||
endif()
|
||||
if( CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
|
||||
set( _ACML_COMPILER32 "ifort32" )
|
||||
set( _ACML_COMPILER64 "ifort64" )
|
||||
elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "SunPro" )
|
||||
set( _ACML_COMPILER32 "sun32" )
|
||||
set( _ACML_COMPILER64 "sun64" )
|
||||
elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "PGI" )
|
||||
set( _ACML_COMPILER32 "pgi32" )
|
||||
if( WIN32 )
|
||||
set( _ACML_COMPILER64 "win64" )
|
||||
else()
|
||||
set( _ACML_COMPILER64 "pgi64" )
|
||||
endif()
|
||||
elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "Open64" )
|
||||
# 32 bit builds not supported on Open64 but for code simplicity
|
||||
# We'll just use the same directory twice
|
||||
set( _ACML_COMPILER32 "open64_64" )
|
||||
set( _ACML_COMPILER64 "open64_64" )
|
||||
elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" )
|
||||
set( _ACML_COMPILER32 "nag32" )
|
||||
set( _ACML_COMPILER64 "nag64" )
|
||||
else()
|
||||
set( _ACML_COMPILER32 "gfortran32" )
|
||||
set( _ACML_COMPILER64 "gfortran64" )
|
||||
endif()
|
||||
|
||||
if( BLA_VENDOR STREQUAL "ACML_MP" )
|
||||
set(_ACML_MP_LIB_DIRS
|
||||
"${_ACML_ROOT}/${_ACML_COMPILER32}_mp${_ACML_PATH_SUFFIX}/lib"
|
||||
"${_ACML_ROOT}/${_ACML_COMPILER64}_mp${_ACML_PATH_SUFFIX}/lib" )
|
||||
else()
|
||||
set(_ACML_LIB_DIRS
|
||||
"${_ACML_ROOT}/${_ACML_COMPILER32}${_ACML_PATH_SUFFIX}/lib"
|
||||
"${_ACML_ROOT}/${_ACML_COMPILER64}${_ACML_PATH_SUFFIX}/lib" )
|
||||
endif()
|
||||
endif()
|
||||
elseif(BLAS_${BLA_VENDOR}_LIB_DIRS)
|
||||
set(_${BLA_VENDOR}_LIB_DIRS ${BLAS_${BLA_VENDOR}_LIB_DIRS})
|
||||
endif()
|
||||
|
||||
if( BLA_VENDOR STREQUAL "ACML_MP" )
|
||||
foreach( BLAS_ACML_MP_LIB_DIRS ${_ACML_MP_LIB_DIRS})
|
||||
check_fortran_libraries (
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
"" "acml_mp;acml_mv" "" ${BLAS_ACML_MP_LIB_DIRS}
|
||||
)
|
||||
if( BLAS_LIBRARIES )
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
elseif( BLA_VENDOR STREQUAL "ACML_GPU" )
|
||||
foreach( BLAS_ACML_GPU_LIB_DIRS ${_ACML_GPU_LIB_DIRS})
|
||||
check_fortran_libraries (
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
"" "acml;acml_mv;CALBLAS" "" ${BLAS_ACML_GPU_LIB_DIRS}
|
||||
)
|
||||
if( BLAS_LIBRARIES )
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
foreach( BLAS_ACML_LIB_DIRS ${_ACML_LIB_DIRS} )
|
||||
check_fortran_libraries (
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
"" "acml;acml_mv" "" ${BLAS_ACML_LIB_DIRS}
|
||||
)
|
||||
if( BLAS_LIBRARIES )
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# Either acml or acml_mp should be in LD_LIBRARY_PATH but not both
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"acml;acml_mv"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"acml_mp;acml_mv"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"acml;acml_mv;CALBLAS"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif () # ACML
|
||||
|
||||
# Apple BLAS library?
|
||||
if (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
dgemm
|
||||
""
|
||||
"Accelerate"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
|
||||
if ( NOT BLAS_LIBRARIES )
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
dgemm
|
||||
""
|
||||
"vecLib"
|
||||
""
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# Generic BLAS library?
|
||||
if (BLA_VENDOR STREQUAL "Generic" OR BLA_VENDOR STREQUAL "All")
|
||||
if(NOT BLAS_LIBRARIES)
|
||||
check_fortran_libraries(
|
||||
BLAS_LIBRARIES
|
||||
BLAS
|
||||
sgemm
|
||||
""
|
||||
"blas"
|
||||
""
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
if(NOT BLA_F95)
|
||||
find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS_LIBRARIES)
|
||||
endif()
|
||||
|
||||
# On compilers that implicitly link BLAS (such as ftn, cc, and CC on Cray HPC machines)
|
||||
# we used a placeholder for empty BLAS_LIBRARIES to get through our logic above.
|
||||
if (BLAS_LIBRARIES STREQUAL "BLAS_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
|
||||
set(BLAS_LIBRARIES "")
|
||||
endif()
|
||||
|
||||
cmake_pop_check_state()
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
|
@ -13,6 +13,7 @@
|
||||
|
||||
#ifdef NEEDBUNDERSCORE
|
||||
#define BLASFUNC(FUNC) FUNC##_
|
||||
|
||||
#else
|
||||
#define BLASFUNC(FUNC) FUNC
|
||||
#endif
|
||||
@ -57,18 +58,3 @@ typedef int blasint;
|
||||
predefined macros with some compilers (e.g. GCC 4.7 on Linux). This occurs
|
||||
as a side effect of including either <features.h> or <stdc-predef.h>. */
|
||||
#include <stdio.h>
|
||||
#ifndef OPENBLAS_COMPLEX_STRUCT
|
||||
#define OPENBLAS_COMPLEX_STRUCT
|
||||
typedef struct { float real, imag; } openblas_complex_float;
|
||||
typedef struct { double real, imag; } openblas_complex_double;
|
||||
typedef struct { xdouble real, imag; } openblas_complex_xdouble;
|
||||
#define openblas_make_complex_float(real, imag) {(real), (imag)}
|
||||
#define openblas_make_complex_double(real, imag) {(real), (imag)}
|
||||
#define openblas_make_complex_xdouble(real, imag) {(real), (imag)}
|
||||
#define openblas_complex_float_real(z) ((z).real)
|
||||
#define openblas_complex_float_imag(z) ((z).imag)
|
||||
#define openblas_complex_double_real(z) ((z).real)
|
||||
#define openblas_complex_double_imag(z) ((z).imag)
|
||||
#define openblas_complex_xdouble_real(z) ((z).real)
|
||||
#define openblas_complex_xdouble_imag(z) ((z).imag)
|
||||
#endif
|
@ -58,7 +58,7 @@ if(VCPKG_TARGET_IS_UWP)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
OPTIONS
|
||||
OPTIONS
|
||||
${COMMON_OPTIONS}
|
||||
-DCMAKE_SYSTEM_PROCESSOR=AMD64
|
||||
-DVS_WINRT_COMPONENT=TRUE
|
||||
@ -114,12 +114,8 @@ file(READ ${SOURCE_PATH}/cblas.h CBLAS_H)
|
||||
string(REPLACE "#include \"common.h\"" "#include \"openblas_common.h\"" CBLAS_H "${CBLAS_H}")
|
||||
file(WRITE ${CURRENT_PACKAGES_DIR}/include/cblas.h "${CBLAS_H}")
|
||||
|
||||
# openblas is BSD
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/blas)
|
||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindBLAS.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/blas)
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
|
@ -1,2 +0,0 @@
|
||||
message(STATUS "Using VCPKG FindBLAS. Remove if CMake has been updated to account for Threads in OpenBLAS!")
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindBLAS.cmake)
|
@ -1,7 +1,8 @@
|
||||
Source: openmvg
|
||||
Version: 1.5
|
||||
Port-Version: 1
|
||||
Description: open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.
|
||||
Build-Depends: coinutils, clp, osi, liblemon, flann, eigen3, ceres, cereal, libjpeg-turbo, tiff, libpng, zlib, suitesparse
|
||||
Build-Depends: coinutils, clp, osi, liblemon, flann, eigen3, ceres[suitesparse,cxsparse], cereal, libjpeg-turbo, tiff, libpng, zlib, vlfeat
|
||||
|
||||
Feature: opencv
|
||||
Build-Depends: opencv[contrib]
|
||||
@ -9,3 +10,7 @@ Description: opencv support for openmvg
|
||||
|
||||
Feature: openmp
|
||||
Description: openmp support for openmvg
|
||||
|
||||
Feature: software
|
||||
Build-Depends: qt5-base, qt5-svg
|
||||
Description: build openMVG tools
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,13 +0,0 @@
|
||||
diff --git a/src/cmakeFindModules/OpenMVGConfig.cmake.in b/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
index e7dfbfd..357a25c 100644
|
||||
--- a/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
+++ b/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
@@ -61,7 +61,7 @@ set(CMAKE_MODULE_PATH ${CURRENT_CONFIG_INSTALL_DIR})
|
||||
|
||||
# Build the absolute root install directory as a relative path
|
||||
get_filename_component(CURRENT_ROOT_INSTALL_DIR
|
||||
- ${CMAKE_MODULE_PATH}/../../../ ABSOLUTE)
|
||||
+ ${CMAKE_MODULE_PATH}/../../ ABSOLUTE)
|
||||
if (NOT EXISTS ${CURRENT_ROOT_INSTALL_DIR})
|
||||
OPENMVG_REPORT_NOT_FOUND(
|
||||
"OpenMVG install root: ${CURRENT_ROOT_INSTALL_DIR}, "
|
@ -3,22 +3,33 @@ 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
|
||||
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
||||
|
||||
if("software" IN_LIST FEATURES AND VCPKG_CRT_LINKAGE STREQUAL static)
|
||||
message(FATAL_ERROR "OpenMVG software currently cannot be built with static CRT linking. Please open an issue if you require this feature.")
|
||||
endif()
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO openMVG/openMVG
|
||||
REF 606d1c9e82123dd50de282128151a50bf42262fc # v1.5
|
||||
SHA512 eddcf4c5f86541112840a6d89bbf360d30b085c2b3ff3e39b357030a465163b465e89d01474f8dbd65b66f8bccfc1f54a58963324f622482e2960f00214b2b75
|
||||
PATCHES
|
||||
fixcmake.patch
|
||||
fix-config-cmake.patch
|
||||
build_fixes.patch
|
||||
)
|
||||
|
||||
set(OpenMVG_USE_OPENMP OFF)
|
||||
if("openmp" IN_LIST FEATURES)
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
message(WARNING "OpenMP feature is broken on Windows, disabled until fixed https://github.com/openMVG/openMVG/issues/1765")
|
||||
else()
|
||||
set(OpenMVG_USE_OPENMP ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
openmp OpenMVG_USE_OPENMP
|
||||
openmp ENABLE_OPENMP
|
||||
opencv OpenMVG_USE_OPENCV
|
||||
opencv OpenMVG_USE_OCVSIFT
|
||||
opencv ENABLE_OPENCV
|
||||
software OpenMVG_BUILD_SOFTWARES
|
||||
software OpenMVG_BUILD_GUI_SOFTWARES
|
||||
)
|
||||
|
||||
# remove some deps to prevent conflict
|
||||
@ -44,13 +55,12 @@ vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}/src
|
||||
PREFER_NINJA
|
||||
OPTIONS ${FEATURE_OPTIONS}
|
||||
-DOpenMVG_USE_OPENMP=${OpenMVG_USE_OPENMP}
|
||||
-DOpenMVG_BUILD_SHARED=OFF
|
||||
-DOpenMVG_BUILD_TESTS=OFF
|
||||
-DOpenMVG_BUILD_DOC=OFF
|
||||
-DOpenMVG_BUILD_EXAMPLES=OFF
|
||||
-DOpenMVG_BUILD_OPENGL_EXAMPLES=OFF
|
||||
-DOpenMVG_BUILD_SOFTWARES=OFF
|
||||
-DOpenMVG_BUILD_GUI_SOFTWARES=OFF
|
||||
-DOpenMVG_BUILD_COVERAGE=OFF
|
||||
-DOpenMVG_USE_INTERNAL_CLP=OFF
|
||||
-DOpenMVG_USE_INTERNAL_COINUTILS=OFF
|
||||
@ -64,28 +74,102 @@ vcpkg_configure_cmake(
|
||||
|
||||
vcpkg_install_cmake()
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH share/openMVG/cmake)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||
|
||||
#remove extra deprecated cmake target files left in unappropriate folders
|
||||
file(GLOB REMOVE_CMAKE ${CURRENT_PACKAGES_DIR}/lib/*.cmake)
|
||||
file(REMOVE_RECURSE ${REMOVE_CMAKE})
|
||||
file(GLOB REMOVE_CMAKE ${CURRENT_PACKAGES_DIR}/debug/lib/*.cmake)
|
||||
file(REMOVE_RECURSE ${REMOVE_CMAKE})
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/openMVG/image/image_test
|
||||
${CURRENT_PACKAGES_DIR}/include/openMVG/exif/image_data)
|
||||
${CURRENT_PACKAGES_DIR}/include/openMVG/exif/image_data
|
||||
${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/nonFree/sift/vl)
|
||||
|
||||
if(OpenMVG_BUILD_SHARED)
|
||||
# release
|
||||
file(GLOB DLL_FILES ${CURRENT_PACKAGES_DIR}/lib/*.dll)
|
||||
file(COPY ${DLL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
|
||||
file(REMOVE_RECURSE ${DLL_FILES})
|
||||
# debug
|
||||
file(GLOB DLL_FILES ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll)
|
||||
file(COPY ${DLL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
|
||||
file(REMOVE_RECURSE ${DLL_FILES})
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
# release
|
||||
file(GLOB DLL_FILES ${CURRENT_PACKAGES_DIR}/lib/*.dll)
|
||||
file(COPY ${DLL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
|
||||
file(REMOVE_RECURSE ${DLL_FILES})
|
||||
endif()
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
# debug
|
||||
file(GLOB DLL_FILES ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll)
|
||||
file(COPY ${DLL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
|
||||
file(REMOVE_RECURSE ${DLL_FILES})
|
||||
endif()
|
||||
endif()
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
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_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_GlobalSfM
|
||||
openMVG_main_IncrementalSfM
|
||||
openMVG_main_IncrementalSfM2
|
||||
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
|
||||
)
|
||||
if("opencv" IN_LIST FEATURES)
|
||||
vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES
|
||||
openMVG_main_ComputeFeatures_OpenCV
|
||||
)
|
||||
endif()
|
||||
|
||||
file(COPY ${SOURCE_PATH}/src/openMVG/exif/sensor_width_database/sensor_width_camera_database.txt DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
|
||||
set(OPENMVG_SOFTWARE_SFM_BUILD_DIR ${CURRENT_INSTALLED_DIR}/tools/${PORT})
|
||||
set(OPENMVG_CAMERA_SENSOR_WIDTH_DIRECTORY ${CURRENT_INSTALLED_DIR}/tools/${PORT})
|
||||
configure_file("${SOURCE_PATH}/src/software/SfM/tutorial_demo.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/tutorial_demo.py" @ONLY)
|
||||
configure_file("${SOURCE_PATH}/src/software/SfM/SfM_GlobalPipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/SfM_GlobalPipeline.py" @ONLY)
|
||||
configure_file("${SOURCE_PATH}/src/software/SfM/SfM_SequentialPipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/SfM_SequentialPipeline.py" @ONLY)
|
||||
message(STATUS "To use tools, you need graphviz installed and manually added to path (to have neato executable)")
|
||||
endif()
|
||||
|
||||
# Handle copyright
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
|
@ -1,5 +1,13 @@
|
||||
Source: openmvs
|
||||
Version: 1.1-1
|
||||
Version: 1.1
|
||||
Port-Version: 2
|
||||
Description: OpenMVS: open Multi-View Stereo reconstruction library
|
||||
Homepage: https://cdcseacave.github.io/openMVS
|
||||
Build-Depends: zlib, boost-iostreams, boost-program-options, boost-system, boost-serialization, eigen3, ceres, opencv, cgal[core], glew, glfw3, vcglib
|
||||
Build-Depends: zlib, boost-iostreams, boost-program-options, boost-system, boost-serialization, eigen3, opencv, cgal[core], glew, glfw3, vcglib, openmvg[software] (!(windows&static)), libpng, tiff
|
||||
|
||||
Feature: cuda
|
||||
Build-Depends: cuda
|
||||
Description: cuda support for openmvs
|
||||
|
||||
Feature: openmp
|
||||
Description: openmp support for openmvs
|
||||
|
408
ports/openmvs/fix-build.patch
Normal file
408
ports/openmvs/fix-build.patch
Normal file
@ -0,0 +1,408 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 7966ed5..4e0f673 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -63,7 +63,7 @@ INCLUDE_DIRECTORIES("${OpenMVS_SOURCE_DIR}")
|
||||
SET(OpenMVS_EXTRA_LIBS "")
|
||||
if(OpenMVS_USE_OPENMP)
|
||||
SET(OpenMP_LIBS "")
|
||||
- FIND_PACKAGE(OpenMP)
|
||||
+ FIND_PACKAGE(OpenMP REQUIRED)
|
||||
if(OPENMP_FOUND)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||
ADD_DEFINITIONS(-D_USE_OPENMP)
|
||||
@@ -83,7 +83,7 @@ if(OpenMVS_USE_OPENGL)
|
||||
if(POLICY CMP0072)
|
||||
cmake_policy(SET CMP0072 NEW)
|
||||
endif()
|
||||
- FIND_PACKAGE(OpenGL)
|
||||
+ FIND_PACKAGE(OpenGL REQUIRED)
|
||||
if(OPENGL_FOUND)
|
||||
INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
|
||||
ADD_DEFINITIONS(${OpenGL_DEFINITIONS} -D_USE_OPENGL)
|
||||
@@ -94,7 +94,7 @@ if(OpenMVS_USE_OPENGL)
|
||||
endif()
|
||||
|
||||
if(OpenMVS_USE_CUDA)
|
||||
- FIND_PACKAGE(CUDA)
|
||||
+ FIND_PACKAGE(CUDA REQUIRED)
|
||||
if(CUDA_FOUND)
|
||||
INCLUDE_DIRECTORIES(${CUDA_INCLUDE_DIRS})
|
||||
ADD_DEFINITIONS(-D_USE_CUDA)
|
||||
@@ -108,7 +108,7 @@ else()
|
||||
endif()
|
||||
|
||||
if(OpenMVS_USE_BREAKPAD)
|
||||
- FIND_PACKAGE(BREAKPAD)
|
||||
+ FIND_PACKAGE(BREAKPAD REQUIRED)
|
||||
if(BREAKPAD_FOUND)
|
||||
INCLUDE_DIRECTORIES(${BREAKPAD_INCLUDE_DIRS})
|
||||
ADD_DEFINITIONS(${BREAKPAD_DEFINITIONS} -D_USE_BREAKPAD)
|
||||
@@ -119,7 +119,7 @@ if(OpenMVS_USE_BREAKPAD)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-FIND_PACKAGE(Boost ${SYSTEM_PACKAGE_REQUIRED} COMPONENTS iostreams program_options system serialization)
|
||||
+FIND_PACKAGE(Boost COMPONENTS iostreams program_options system serialization REQUIRED)
|
||||
if(Boost_FOUND)
|
||||
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
|
||||
ADD_DEFINITIONS(${Boost_DEFINITIONS} -D_USE_BOOST)
|
||||
@@ -127,14 +127,14 @@ if(Boost_FOUND)
|
||||
SET(_USE_BOOST TRUE)
|
||||
endif()
|
||||
|
||||
-FIND_PACKAGE(Eigen ${SYSTEM_PACKAGE_REQUIRED})
|
||||
-if(EIGEN_FOUND)
|
||||
- INCLUDE_DIRECTORIES(${EIGEN_INCLUDE_DIRS})
|
||||
- ADD_DEFINITIONS(${EIGEN_DEFINITIONS} -D_USE_EIGEN)
|
||||
+FIND_PACKAGE(Eigen3 REQUIRED)
|
||||
+if(EIGEN3_FOUND)
|
||||
+ INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIRS})
|
||||
+ ADD_DEFINITIONS(${EIGEN3_DEFINITIONS} -D_USE_EIGEN)
|
||||
SET(_USE_EIGEN TRUE)
|
||||
endif()
|
||||
|
||||
-FIND_PACKAGE(OpenCV ${SYSTEM_PACKAGE_REQUIRED})
|
||||
+FIND_PACKAGE(OpenCV REQUIRED)
|
||||
if(OpenCV_FOUND)
|
||||
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
|
||||
ADD_DEFINITIONS(${OpenCV_DEFINITIONS})
|
||||
@@ -170,7 +170,9 @@ ADD_DEFINITIONS(${OpenMVS_DEFINITIONS})
|
||||
|
||||
# Add modules
|
||||
ADD_SUBDIRECTORY(libs)
|
||||
+if(OpenMVS_BUILD_TOOLS)
|
||||
ADD_SUBDIRECTORY(apps)
|
||||
+endif()
|
||||
ADD_SUBDIRECTORY(docs)
|
||||
|
||||
if(OpenMVS_USE_CERES)
|
||||
@@ -188,7 +190,7 @@ export(TARGETS Common IO Math MVS FILE "${PROJECT_BINARY_DIR}/OpenMVSTargets.cma
|
||||
# Export the package for use from the build-tree
|
||||
# (this registers the build-tree with a global CMake-registry)
|
||||
export(PACKAGE OpenMVS)
|
||||
-
|
||||
+
|
||||
# Create the OpenMVSConfig.cmake and OpenMVSConfigVersion files
|
||||
file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${INSTALL_INCLUDE_DIR}")
|
||||
# ... for the build tree
|
||||
@@ -199,7 +201,7 @@ set(CONF_INCLUDE_DIRS "${INSTALL_CMAKE_DIR}/${REL_INCLUDE_DIR}")
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build/OpenMVSConfig.cmake.in" "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMVSConfig.cmake" @ONLY)
|
||||
# ... for both
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build/OpenMVSConfigVersion.cmake.in" "${PROJECT_BINARY_DIR}/OpenMVSConfigVersion.cmake" @ONLY)
|
||||
-
|
||||
+
|
||||
# Install the OpenMVSConfig.cmake and OpenMVSConfigVersion.cmake
|
||||
install(FILES
|
||||
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMVSConfig.cmake"
|
||||
diff --git a/MvgMvsPipeline.py b/MvgMvsPipeline.py.in
|
||||
similarity index 97%
|
||||
rename from MvgMvsPipeline.py
|
||||
rename to MvgMvsPipeline.py.in
|
||||
index f4914bf..23d03e6 100644
|
||||
--- a/MvgMvsPipeline.py
|
||||
+++ b/MvgMvsPipeline.py.in
|
||||
@@ -91,12 +91,12 @@ def find(afile):
|
||||
return None
|
||||
|
||||
# Try to find openMVG and openMVS binaries in PATH
|
||||
-OPENMVG_BIN = whereis("openMVG_main_SfMInit_ImageListing")
|
||||
-OPENMVS_BIN = whereis("ReconstructMesh")
|
||||
+OPENMVG_BIN = "@OPENMVG_TOOLS_PATH@"
|
||||
+OPENMVS_BIN = "@OPENMVS_TOOLS_PATH@"
|
||||
|
||||
# Try to find openMVG camera sensor database
|
||||
-CAMERA_SENSOR_DB_FILE = "sensor_width_camera_database.txt"
|
||||
-CAMERA_SENSOR_DB_DIRECTORY = find(CAMERA_SENSOR_DB_FILE)
|
||||
+CAMERA_SENSOR_DB_FILE = "@SENSOR_WIDTH_CAMERA_DATABASE_TXT_PATH@"
|
||||
+CAMERA_SENSOR_DB_DIRECTORY = "@OPENMVG_TOOLS_PATH@"
|
||||
|
||||
# Ask user for openMVG and openMVS directories if not found
|
||||
if not OPENMVG_BIN:
|
||||
@@ -175,10 +175,10 @@ class StepsStore:
|
||||
["-i", "%input_dir%", "-o", "%matches_dir%", "-d", "%camera_file_params%"]],
|
||||
["Compute features", # 1
|
||||
os.path.join(OPENMVG_BIN, "openMVG_main_ComputeFeatures"),
|
||||
- ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-m", "SIFT", "-n", "4"]],
|
||||
+ ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-m", "SIFT"]],
|
||||
["Compute matches", # 2
|
||||
os.path.join(OPENMVG_BIN, "openMVG_main_ComputeMatches"),
|
||||
- ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-n", "HNSWL2", "-r", ".8"]],
|
||||
+ ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-n", "AUTO", "-r", ".8"]],
|
||||
["Incremental reconstruction", # 3
|
||||
os.path.join(OPENMVG_BIN, "openMVG_main_IncrementalSfM"),
|
||||
["-i", "%matches_dir%/sfm_data.json", "-m", "%matches_dir%", "-o", "%reconstruction_dir%"]],
|
||||
diff --git a/apps/Viewer/CMakeLists.txt b/apps/Viewer/CMakeLists.txt
|
||||
index c519040..934cd50 100644
|
||||
--- a/apps/Viewer/CMakeLists.txt
|
||||
+++ b/apps/Viewer/CMakeLists.txt
|
||||
@@ -16,18 +16,6 @@ else()
|
||||
MESSAGE("-- Can't find GLEW. Continuing without it.")
|
||||
RETURN()
|
||||
endif()
|
||||
-if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
- FIND_PACKAGE(PkgConfig QUIET)
|
||||
- pkg_search_module(GLFW QUIET glfw3)
|
||||
- if(GLFW_FOUND)
|
||||
- INCLUDE_DIRECTORIES(${GLFW_INCLUDE_DIRS})
|
||||
- ADD_DEFINITIONS(${GLFW_DEFINITIONS})
|
||||
- MESSAGE(STATUS "GLFW3 ${GLFW_VERSION} found (include: ${GLFW_INCLUDE_DIRS})")
|
||||
- else()
|
||||
- MESSAGE("-- Can't find GLFW3. Continuing without it.")
|
||||
- RETURN()
|
||||
- endif()
|
||||
-else()
|
||||
FIND_PACKAGE(glfw3 QUIET)
|
||||
if(glfw3_FOUND)
|
||||
INCLUDE_DIRECTORIES(${glfw3_INCLUDE_DIRS})
|
||||
@@ -37,7 +25,6 @@ else()
|
||||
MESSAGE("-- Can't find GLFW3. Continuing without it.")
|
||||
RETURN()
|
||||
endif()
|
||||
-endif()
|
||||
|
||||
# List sources files
|
||||
FILE(GLOB PCH_C "Common.cpp")
|
||||
diff --git a/build/OpenMVSConfig.cmake.in b/build/OpenMVSConfig.cmake.in
|
||||
index 96b8fe2..454e846 100644
|
||||
--- a/build/OpenMVSConfig.cmake.in
|
||||
+++ b/build/OpenMVSConfig.cmake.in
|
||||
@@ -3,16 +3,70 @@
|
||||
# OpenMVS_INCLUDE_DIRS - include directories for OpenMVS
|
||||
# OpenMVS_LIBRARIES - libraries to link against
|
||||
# OpenMVS_BINARIES - the binaries
|
||||
-
|
||||
+
|
||||
# Compute paths
|
||||
get_filename_component(OpenMVS_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
set(OpenMVS_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@")
|
||||
-
|
||||
+list(APPEND CMAKE_MODULE_PATH "${OpenMVS_CMAKE_DIR}")
|
||||
+
|
||||
+if (MSVC)
|
||||
+ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /GL")
|
||||
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")
|
||||
+ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
|
||||
+ set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
|
||||
+endif()
|
||||
+
|
||||
+set(CMAKE_CXX_STANDARD 14)
|
||||
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
+
|
||||
+include(CMakeFindDependencyMacro)
|
||||
+
|
||||
+if(@OpenMVS_USE_OPENMP@)
|
||||
+ find_dependency(OpenMP)
|
||||
+ add_definitions(-D_USE_OPENMP)
|
||||
+endif()
|
||||
+
|
||||
+if(@OpenMVS_USE_OPENGL@)
|
||||
+ find_dependency(OpenGL)
|
||||
+ add_definitions(${OpenGL_DEFINITIONS} -D_USE_OPENGL)
|
||||
+endif()
|
||||
+
|
||||
+if(@OpenMVS_USE_CUDA@)
|
||||
+ find_dependency(CUDA)
|
||||
+ add_definitions(-D_USE_CUDA)
|
||||
+ include_directories(${CUDA_INCLUDE_DIRS})
|
||||
+endif()
|
||||
+
|
||||
+if(@OpenMVS_USE_BREAKPAD@)
|
||||
+ find_dependency(BREAKPAD)
|
||||
+ add_definitions(${BREAKPAD_DEFINITIONS} -D_USE_BREAKPAD)
|
||||
+endif()
|
||||
+
|
||||
+find_dependency(Boost)
|
||||
+add_definitions(${Boost_DEFINITIONS} -D_USE_BOOST)
|
||||
+include_directories(${Boost_INCLUDE_DIRS})
|
||||
+find_dependency(Eigen3)
|
||||
+add_definitions(${EIGEN3_DEFINITIONS} -D_USE_EIGEN)
|
||||
+find_dependency(OpenCV)
|
||||
+add_definitions(${OpenCV_DEFINITIONS})
|
||||
+find_dependency(CGAL)
|
||||
+add_definitions(${CGAL_DEFINITIONS})
|
||||
+
|
||||
+find_dependency(VCG REQUIRED)
|
||||
+add_definitions(${VCG_DEFINITIONS})
|
||||
+
|
||||
+if(@OpenMVS_USE_CERES@)
|
||||
+ find_dependency(Ceres)
|
||||
+ add_definitions(${CERES_DEFINITIONS})
|
||||
+endif()
|
||||
+
|
||||
+add_definitions(@OpenMVS_DEFINITIONS@)
|
||||
+
|
||||
# Our library dependencies (contains definitions for IMPORTED targets)
|
||||
if(NOT TARGET MVS AND NOT OpenMVS_BINARY_DIR)
|
||||
include("${OpenMVS_CMAKE_DIR}/OpenMVSTargets.cmake")
|
||||
endif()
|
||||
-
|
||||
+
|
||||
# These are IMPORTED targets created by OpenMVSTargets.cmake
|
||||
set(OpenMVS_LIBRARIES MVS)
|
||||
set(OpenMVS_BINARIES InterfaceVisualSFM DensifyPointCloud ReconstructMesh RefineMesh TextureMesh)
|
||||
diff --git a/build/Utils.cmake b/build/Utils.cmake
|
||||
index f41c9d8..31cd292 100644
|
||||
--- a/build/Utils.cmake
|
||||
+++ b/build/Utils.cmake
|
||||
@@ -160,7 +160,7 @@ macro(GetOperatingSystemArchitectureBitness)
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES i686.*|i386.*|x86.*)
|
||||
set(X86 1)
|
||||
endif()
|
||||
-
|
||||
+
|
||||
if(NOT ${MY_VAR_PREFIX}_PACKAGE_REQUIRED)
|
||||
set(${MY_VAR_PREFIX}_PACKAGE_REQUIRED "REQUIRED")
|
||||
endif()
|
||||
@@ -173,30 +173,6 @@ macro(ComposePackageLibSuffix)
|
||||
set(PACKAGE_LIB_SUFFIX "")
|
||||
set(PACKAGE_LIB_SUFFIX_DBG "")
|
||||
set(PACKAGE_LIB_SUFFIX_REL "")
|
||||
- if(MSVC)
|
||||
- if("${MSVC_VERSION}" STREQUAL "1921")
|
||||
- set(PACKAGE_LIB_SUFFIX "/vc16")
|
||||
- elseif("${MSVC_VERSION}" STREQUAL "1916")
|
||||
- set(PACKAGE_LIB_SUFFIX "/vc15")
|
||||
- elseif("${MSVC_VERSION}" STREQUAL "1900")
|
||||
- set(PACKAGE_LIB_SUFFIX "/vc14")
|
||||
- elseif("${MSVC_VERSION}" STREQUAL "1800")
|
||||
- set(PACKAGE_LIB_SUFFIX "/vc12")
|
||||
- elseif("${MSVC_VERSION}" STREQUAL "1700")
|
||||
- set(PACKAGE_LIB_SUFFIX "/vc11")
|
||||
- elseif("${MSVC_VERSION}" STREQUAL "1600")
|
||||
- set(PACKAGE_LIB_SUFFIX "/vc10")
|
||||
- elseif("${MSVC_VERSION}" STREQUAL "1500")
|
||||
- set(PACKAGE_LIB_SUFFIX "/vc9")
|
||||
- endif()
|
||||
- if("${SYSTEM_BITNESS}" STREQUAL "64")
|
||||
- set(PACKAGE_LIB_SUFFIX "${PACKAGE_LIB_SUFFIX}/x64")
|
||||
- else()
|
||||
- set(PACKAGE_LIB_SUFFIX "${PACKAGE_LIB_SUFFIX}/x86")
|
||||
- endif()
|
||||
- set(PACKAGE_LIB_SUFFIX_DBG "${PACKAGE_LIB_SUFFIX}/Debug")
|
||||
- set(PACKAGE_LIB_SUFFIX_REL "${PACKAGE_LIB_SUFFIX}/Release")
|
||||
- endif()
|
||||
endmacro()
|
||||
|
||||
|
||||
@@ -511,7 +487,7 @@ macro(optimize_default_compiler_settings)
|
||||
endif()
|
||||
add_extra_compiler_option(-fdiagnostics-show-option)
|
||||
add_extra_compiler_option(-ftemplate-backtrace-limit=0)
|
||||
-
|
||||
+
|
||||
# The -Wno-long-long is required in 64bit systems when including sytem headers.
|
||||
if(X86_64)
|
||||
add_extra_compiler_option(-Wno-long-long)
|
||||
@@ -817,7 +793,7 @@ macro(ConfigCompilerAndLinker)
|
||||
else()
|
||||
set(cxx_rtti_support "${cxx_no_rtti_flags}")
|
||||
endif()
|
||||
-
|
||||
+
|
||||
SET(cxx_default "${cxx_exception_support} ${cxx_rtti_support}" CACHE PATH "Common compile CXX flags")
|
||||
SET(c_default "${CMAKE_C_FLAGS} ${cxx_base_flags}" CACHE PATH "Common compile C flags")
|
||||
endmacro()
|
||||
@@ -825,16 +801,12 @@ endmacro()
|
||||
# Initialize variables needed for a library type project.
|
||||
macro(ConfigLibrary)
|
||||
# Offer the user the choice of overriding the installation directories
|
||||
- set(INSTALL_LIB_DIR "lib/${PROJECT_NAME}" CACHE PATH "Installation directory for libraries")
|
||||
- set(INSTALL_BIN_DIR "bin/${PROJECT_NAME}" CACHE PATH "Installation directory for executables")
|
||||
- set(INSTALL_INCLUDE_DIR "include/${PROJECT_NAME}" CACHE PATH "Installation directory for header files")
|
||||
- if(WIN32 AND NOT CYGWIN)
|
||||
- set(DEF_INSTALL_CMAKE_DIR "CMake")
|
||||
- else()
|
||||
- set(DEF_INSTALL_CMAKE_DIR "lib/CMake/${PROJECT_NAME}")
|
||||
- endif()
|
||||
+ set(INSTALL_LIB_DIR "lib" CACHE PATH "Installation directory for libraries")
|
||||
+ set(INSTALL_BIN_DIR "bin" CACHE PATH "Installation directory for executables")
|
||||
+ set(INSTALL_INCLUDE_DIR "include/openmvs" CACHE PATH "Installation directory for header files")
|
||||
+ set(DEF_INSTALL_CMAKE_DIR "share/openmvs")
|
||||
set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
|
||||
-
|
||||
+
|
||||
# Make relative paths absolute (needed later on)
|
||||
foreach(p LIB BIN INCLUDE CMAKE)
|
||||
set(var INSTALL_${p}_DIR)
|
||||
diff --git a/libs/Common/CMakeLists.txt b/libs/Common/CMakeLists.txt
|
||||
index 2e6c1a4..6e1fa95 100644
|
||||
--- a/libs/Common/CMakeLists.txt
|
||||
+++ b/libs/Common/CMakeLists.txt
|
||||
@@ -18,6 +18,7 @@ set_target_pch(Common Common.h)
|
||||
|
||||
# Link its dependencies
|
||||
TARGET_LINK_LIBRARIES(Common ${Boost_LIBRARIES} ${OpenCV_LIBS})
|
||||
+TARGET_INCLUDE_DIRECTORIES(Common PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>)
|
||||
|
||||
# Install
|
||||
SET_TARGET_PROPERTIES(Common PROPERTIES
|
||||
diff --git a/libs/IO/CMakeLists.txt b/libs/IO/CMakeLists.txt
|
||||
index a354376..4fd478c 100644
|
||||
--- a/libs/IO/CMakeLists.txt
|
||||
+++ b/libs/IO/CMakeLists.txt
|
||||
@@ -43,7 +43,8 @@ cxx_library_with_type_no_pch(IO "Libs" "STATIC" "${cxx_default}"
|
||||
set_target_pch(IO Common.h)
|
||||
|
||||
# Link its dependencies
|
||||
-TARGET_LINK_LIBRARIES(IO Common ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARIES} ${EXIV2_LIBS})
|
||||
+TARGET_LINK_LIBRARIES(IO Common ${TIFF_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${EXIV2_LIBS})
|
||||
+TARGET_INCLUDE_DIRECTORIES(IO PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>)
|
||||
|
||||
# Install
|
||||
SET_TARGET_PROPERTIES(IO PROPERTIES
|
||||
diff --git a/libs/MVS/CMakeLists.txt b/libs/MVS/CMakeLists.txt
|
||||
index 14be620..867cfd5 100644
|
||||
--- a/libs/MVS/CMakeLists.txt
|
||||
+++ b/libs/MVS/CMakeLists.txt
|
||||
@@ -1,12 +1,12 @@
|
||||
# Find required packages
|
||||
-FIND_PACKAGE(CGAL ${SYSTEM_PACKAGE_REQUIRED})
|
||||
+FIND_PACKAGE(CGAL REQUIRED)
|
||||
if(CGAL_FOUND)
|
||||
include_directories(${CGAL_INCLUDE_DIRS})
|
||||
add_definitions(${CGAL_DEFINITIONS})
|
||||
link_directories(${CGAL_LIBRARY_DIRS})
|
||||
endif()
|
||||
|
||||
-FIND_PACKAGE(VCG ${SYSTEM_PACKAGE_REQUIRED})
|
||||
+FIND_PACKAGE(VCG REQUIRED)
|
||||
if(VCG_FOUND)
|
||||
include_directories(${VCG_INCLUDE_DIRS})
|
||||
add_definitions(${VCG_DEFINITIONS})
|
||||
@@ -14,12 +14,10 @@ endif()
|
||||
|
||||
set(CERES_LIBS "")
|
||||
if(OpenMVS_USE_CERES)
|
||||
- FIND_PACKAGE(CERES)
|
||||
+ FIND_PACKAGE(Ceres REQUIRED)
|
||||
if(CERES_FOUND)
|
||||
include_directories(${CERES_INCLUDE_DIRS})
|
||||
add_definitions(${CERES_DEFINITIONS})
|
||||
- else()
|
||||
- set(OpenMVS_USE_CERES OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -42,7 +40,8 @@ cxx_library_with_type_no_pch(MVS "Libs" "" "${cxx_default}"
|
||||
set_target_pch(MVS Common.h)
|
||||
|
||||
# Link its dependencies
|
||||
-TARGET_LINK_LIBRARIES(MVS PRIVATE Common Math IO ${CERES_LIBS} ${CGAL_LIBS} ${CUDA_CUDA_LIBRARY})
|
||||
+TARGET_LINK_LIBRARIES(MVS PRIVATE Common Math IO ${CERES_LIBS} CGAL::CGAL ${CUDA_CUDA_LIBRARY})
|
||||
+TARGET_INCLUDE_DIRECTORIES(MVS PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>)
|
||||
|
||||
# Install
|
||||
SET_TARGET_PROPERTIES(MVS PROPERTIES
|
||||
diff --git a/libs/Math/CMakeLists.txt b/libs/Math/CMakeLists.txt
|
||||
index d592bd0..f1fe4c6 100644
|
||||
--- a/libs/Math/CMakeLists.txt
|
||||
+++ b/libs/Math/CMakeLists.txt
|
||||
@@ -35,6 +35,7 @@ set_target_pch(Math Common.h)
|
||||
|
||||
# Link its dependencies
|
||||
TARGET_LINK_LIBRARIES(Math Common)
|
||||
+TARGET_INCLUDE_DIRECTORIES(Math PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>)
|
||||
|
||||
# Install
|
||||
INSTALL(FILES ${LIBRARY_FILES_H} DESTINATION "${INSTALL_INCLUDE_DIR}/Math" COMPONENT dev)
|
@ -6,17 +6,35 @@ vcpkg_from_github(
|
||||
REF v1.1
|
||||
SHA512 baa9149853dc08c602deeb1a04cf57643d1cb0733aee2776f4e99b210279aad3b4a1013ab1d790e91a3a95b7c72b9c12c6be25f2c30a76b69b5319b610cb8e7a
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
fix-build.patch
|
||||
)
|
||||
|
||||
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
cuda OpenMVS_USE_CUDA
|
||||
openmp OpenMVS_USE_OPENMP
|
||||
)
|
||||
|
||||
file(REMOVE "${SOURCE_PATH}/build/Modules/FindCERES.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/build/Modules/FindCGAL.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/build/Modules/FindEIGEN.cmake")
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
OPTIONS ${FEATURE_OPTIONS}
|
||||
-DOpenMVS_USE_NONFREE=ON
|
||||
-DOpenMVS_USE_CERES=OFF
|
||||
-DOpenMVS_USE_FAST_FLOAT2INT=ON
|
||||
-DOpenMVS_USE_FAST_INVSQRT=OFF
|
||||
-DOpenMVS_USE_FAST_CBRT=ON
|
||||
-DOpenMVS_USE_SSE=ON
|
||||
-DOpenMVS_USE_OPENGL=ON
|
||||
-DOpenMVS_USE_BREAKPAD=OFF
|
||||
-DOpenMVS_USE_CUDA=OFF
|
||||
-DINSTALL_CMAKE_DIR:STRING=share/openmvs
|
||||
-DINSTALL_BIN_DIR:STRING=bin
|
||||
-DINSTALL_LIB_DIR:STRING=lib
|
||||
OPTIONS_RELEASE
|
||||
-DOpenMVS_BUILD_TOOLS=ON
|
||||
OPTIONS_DEBUG
|
||||
-DOpenMVS_BUILD_TOOLS=OFF
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
@ -24,10 +42,30 @@ vcpkg_install_cmake()
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
|
||||
vcpkg_fixup_cmake_targets()
|
||||
file(READ ${CURRENT_PACKAGES_DIR}/share/openmvs/OpenMVSTargets-release.cmake TARGETS_CMAKE)
|
||||
string(REPLACE "bin/InterfaceCOLMAP" "tools/openmvs/InterfaceCOLMAP" TARGETS_CMAKE "${TARGETS_CMAKE}")
|
||||
string(REPLACE "bin/InterfaceVisualSFM" "tools/openmvs/InterfaceVisualSFM" TARGETS_CMAKE "${TARGETS_CMAKE}")
|
||||
string(REPLACE "bin/DensifyPointCloud" "tools/openmvs/DensifyPointCloud" TARGETS_CMAKE "${TARGETS_CMAKE}")
|
||||
string(REPLACE "bin/ReconstructMesh" "tools/openmvs/ReconstructMesh" TARGETS_CMAKE "${TARGETS_CMAKE}")
|
||||
string(REPLACE "bin/RefineMesh" "tools/openmvs/RefineMesh" TARGETS_CMAKE "${TARGETS_CMAKE}")
|
||||
string(REPLACE "bin/TextureMesh" "tools/openmvs/TextureMesh" TARGETS_CMAKE "${TARGETS_CMAKE}")
|
||||
string(REPLACE "bin/Viewer" "tools/openmvs/Viewer" TARGETS_CMAKE "${TARGETS_CMAKE}")
|
||||
file(WRITE ${CURRENT_PACKAGES_DIR}/share/openmvs/OpenMVSTargets-release.cmake "${TARGETS_CMAKE}")
|
||||
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/tools/openmvs)
|
||||
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/openmvs)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
|
||||
vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES
|
||||
DensifyPointCloud
|
||||
InterfaceCOLMAP
|
||||
InterfaceVisualSFM
|
||||
ReconstructMesh
|
||||
RefineMesh
|
||||
TextureMesh
|
||||
Viewer
|
||||
)
|
||||
|
||||
set(OPENMVG_TOOLS_PATH "${CURRENT_INSTALLED_DIR}/tools/openmvg")
|
||||
set(OPENMVS_TOOLS_PATH "${CURRENT_INSTALLED_DIR}/tools/${PORT}")
|
||||
set(SENSOR_WIDTH_CAMERA_DATABASE_TXT_PATH "${OPENMVG_TOOLS_PATH}/sensor_width_camera_database.txt")
|
||||
configure_file("${SOURCE_PATH}/MvgMvsPipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/MvgMvsPipeline.py" @ONLY)
|
||||
file(INSTALL "${SOURCE_PATH}/build/Modules/FindVCG.cmake" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
|
@ -1,5 +1,6 @@
|
||||
Source: shogun
|
||||
Version: 6.1.4-1
|
||||
Build-Depends: bzip2, eigen3, liblzma, libxml2, openblas (x64&!osx), nlopt, rxcpp, snappy, zlib, protobuf, curl, lzo, dirent
|
||||
Version: 6.1.4
|
||||
Port-Version: 2
|
||||
Build-Depends: bzip2, eigen3, liblzma, libxml2, openblas, nlopt, rxcpp, snappy, zlib, protobuf, curl, lzo, dirent
|
||||
Homepage: https://github.com/shogun-toolbox/shogun
|
||||
Description: Unified and efficient Machine Learning
|
@ -1,11 +1,5 @@
|
||||
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
||||
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
||||
set(CMAKE_DISABLE_FIND_PACKAGE_BLAS 0)
|
||||
else()
|
||||
set(CMAKE_DISABLE_FIND_PACKAGE_BLAS 1)
|
||||
endif()
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO shogun-toolbox/shogun
|
||||
@ -44,10 +38,9 @@ vcpkg_configure_cmake(
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_ARPREC=TRUE
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_Ctags=TRUE
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_CCache=TRUE
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_LAPACK=TRUE
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_CURL=TRUE
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_BLAS=${CMAKE_DISABLE_FIND_PACKAGE_BLAS}
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=TRUE
|
||||
-DINSTALL_TARGETS=shogun-static
|
||||
)
|
||||
|
||||
@ -62,4 +55,4 @@ file(REMOVE_RECURSE
|
||||
)
|
||||
|
||||
# Handle copyright
|
||||
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
|
@ -1,10 +1,5 @@
|
||||
Source: suitesparse
|
||||
Version: 5.4.0
|
||||
Port-Version: 7
|
||||
Build-Depends: lapack
|
||||
Homepage: http://faculty.cse.tamu.edu/davis/SuiteSparse
|
||||
Version: 5.8.0
|
||||
Build-Depends: lapack, metis
|
||||
Homepage: http://suitesparse.com
|
||||
Description: algebra library
|
||||
|
||||
Feature: metis
|
||||
Build-Depends: metis
|
||||
Description: Use metis in SuiteSparse
|
||||
|
75
ports/suitesparse/FindCXSparse.cmake
Normal file
75
ports/suitesparse/FindCXSparse.cmake
Normal file
@ -0,0 +1,75 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License.
|
||||
#
|
||||
#.rst:
|
||||
# FindCXSparse
|
||||
# --------
|
||||
#
|
||||
# Find the CXSparse library
|
||||
#
|
||||
# Result Variables
|
||||
# ^^^^^^^^^^^^^^^^
|
||||
#
|
||||
# The following variables will be defined:
|
||||
#
|
||||
# ``CXSparse_FOUND``
|
||||
# True if CXSparse found on the local system
|
||||
#
|
||||
# ``CXSPARSE_FOUND``
|
||||
# True if CXSparse found on the local system
|
||||
#
|
||||
# ``CXSparse_INCLUDE_DIRS``
|
||||
# Location of CXSparse header files
|
||||
#
|
||||
# ``CXSPARSE_INCLUDE_DIRS``
|
||||
# Location of CXSparse header files
|
||||
#
|
||||
# ``CXSparse_LIBRARIES``
|
||||
# List of the CXSparse libraries found
|
||||
#
|
||||
# ``CXSPARSE_LIBRARIES``
|
||||
# List of the CXSparse libraries found
|
||||
#
|
||||
#
|
||||
|
||||
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
||||
include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
|
||||
include(${CMAKE_ROOT}/Modules/CMakeFindDependencyMacro.cmake)
|
||||
|
||||
find_path(CXSPARSE_INCLUDE_DIR NAMES cs.h)
|
||||
|
||||
find_library(CXSPARSE_LIBRARY_RELEASE NAMES cxsparse libcxsparse)
|
||||
find_library(CXSPARSE_LIBRARY_DEBUG NAMES cxsparsed libcxsparsed)
|
||||
select_library_configurations(CXSPARSE)
|
||||
|
||||
if(CXSPARSE_INCLUDE_DIR)
|
||||
set(CXSPARSE_VERSION_FILE ${CXSPARSE_INCLUDE_DIR}/cs.h)
|
||||
file(READ ${CXSPARSE_INCLUDE_DIR}/cs.h CXSPARSE_VERSION_FILE_CONTENTS)
|
||||
|
||||
string(REGEX MATCH "#define CS_VER [0-9]+"
|
||||
CXSPARSE_MAIN_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}")
|
||||
string(REGEX REPLACE "#define CS_VER ([0-9]+)" "\\1"
|
||||
CXSPARSE_MAIN_VERSION "${CXSPARSE_MAIN_VERSION}")
|
||||
|
||||
string(REGEX MATCH "#define CS_SUBVER [0-9]+"
|
||||
CXSPARSE_SUB_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}")
|
||||
string(REGEX REPLACE "#define CS_SUBVER ([0-9]+)" "\\1"
|
||||
CXSPARSE_SUB_VERSION "${CXSPARSE_SUB_VERSION}")
|
||||
|
||||
string(REGEX MATCH "#define CS_SUBSUB [0-9]+"
|
||||
CXSPARSE_SUBSUB_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}")
|
||||
string(REGEX REPLACE "#define CS_SUBSUB ([0-9]+)" "\\1"
|
||||
CXSPARSE_SUBSUB_VERSION "${CXSPARSE_SUBSUB_VERSION}")
|
||||
|
||||
set(CXSPARSE_VERSION "${CXSPARSE_MAIN_VERSION}.${CXSPARSE_SUB_VERSION}.${CXSPARSE_SUBSUB_VERSION}")
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(CXSparse
|
||||
REQUIRED_VARS CXSPARSE_INCLUDE_DIRS CXSPARSE_LIBRARIES
|
||||
VERSION_VAR CXSPARSE_VERSION)
|
||||
|
||||
set(CXSPARSE_FOUND ${CXSparse_FOUND})
|
||||
set(CXSPARSE_INCLUDE_DIRS ${CXSPARSE_INCLUDE_DIR})
|
||||
set(CXSPARSE_LIBRARIES ${CXSPARSE_LIBRARY})
|
||||
set(CXSparse_INCLUDE_DIRS ${CXSPARSE_INCLUDE_DIR})
|
||||
set(CXSparse_LIBRARIES ${CXSPARSE_LIBRARY})
|
@ -1,46 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index b8c2e63..d443390 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -199,12 +199,15 @@ if(LAPACK_FOUND AND BLAS_FOUND)
|
||||
endif() # LAPACK is not found
|
||||
|
||||
IF(BUILD_METIS OR USE_VCPKG_METIS)
|
||||
+ find_package(metis REQUIRED)
|
||||
set(SuiteSparse_LINKER_METIS_LIBS "metis")
|
||||
## namespaced library target for config
|
||||
- set(SuiteSparse_EXPORTED_METIS_LIBS "SuiteSparse::metis")
|
||||
+ set(SuiteSparse_EXPORTED_METIS_LIBS "metis")
|
||||
+ set(SuiteSparse_FIND_PACKAGE_METIS "find_package(metis REQUIRED)")
|
||||
else()
|
||||
set(SuiteSparse_LINKER_METIS_LIBS "")
|
||||
set(SuiteSparse_EXPORTED_METIS_LIBS "")
|
||||
+ set(SuiteSparse_FIND_PACKAGE_METIS "")
|
||||
ENDIF()
|
||||
|
||||
add_subdirectory(SuiteSparse)
|
||||
diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt
|
||||
index 5ef08a6..6c7abfd 100644
|
||||
--- a/SuiteSparse/CMakeLists.txt
|
||||
+++ b/SuiteSparse/CMakeLists.txt
|
||||
@@ -13,7 +13,7 @@ ENDIF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
|
||||
# Global flags:
|
||||
IF (BUILD_METIS OR USE_VCPKG_METIS)
|
||||
- INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
|
||||
+ #INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
|
||||
ELSE ()
|
||||
ADD_DEFINITIONS(-DNPARTITION)
|
||||
ENDIF ()
|
||||
diff --git a/cmake/SuiteSparse-config-install.cmake.in b/cmake/SuiteSparse-config-install.cmake.in
|
||||
index 49387b8..553d9c7 100644
|
||||
--- a/cmake/SuiteSparse-config-install.cmake.in
|
||||
+++ b/cmake/SuiteSparse-config-install.cmake.in
|
||||
@@ -5,6 +5,7 @@ get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
|
||||
get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
|
||||
|
||||
find_package(LAPACK REQUIRED)
|
||||
+@SuiteSparse_FIND_PACKAGE_METIS@
|
||||
|
||||
# Load targets from the install tree.
|
||||
include(${_SuiteSparse_SELF_DIR}/suitesparse-targets.cmake)
|
281
ports/suitesparse/build_fixes.patch
Normal file
281
ports/suitesparse/build_fixes.patch
Normal file
@ -0,0 +1,281 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 9602cce..dafb434 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -5,14 +5,6 @@
|
||||
# Updated by jesnault (jerome.esnault@inria.fr) 2014-01-21
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
-option(HUNTER_ENABLED "Enable Hunter package manager support" OFF)
|
||||
-include(cmake/HunterGate.cmake)
|
||||
-
|
||||
-HunterGate(
|
||||
- URL "https://github.com/ruslo/hunter/archive/v0.23.214.tar.gz"
|
||||
- SHA1 "e14bc153a7f16d6a5eeec845fb0283c8fad8c358"
|
||||
-)
|
||||
-
|
||||
PROJECT(SuiteSparseProject)
|
||||
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
@@ -47,29 +39,9 @@ else()
|
||||
message(STATUS "Using user defined CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
|
||||
endif()
|
||||
|
||||
-# Fix GKlib path:
|
||||
-IF(NOT WIN32)
|
||||
- SET(GKLIB_PATH "${${PROJECT_NAME}_SOURCE_DIR}/SuiteSparse/metis-5.1.0/GKlib" CACHE INTERNAL "Path to GKlib (for METIS)" FORCE)
|
||||
-ENDIF()
|
||||
-
|
||||
-# allow creating DLLs in Windows without touching the source code:
|
||||
-IF(NOT ${CMAKE_VERSION} VERSION_LESS "3.4.0" AND WIN32)
|
||||
- set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
-ENDIF()
|
||||
-
|
||||
## get CMAKE_INSTALL_BINDIR and CMAKE_INSTALL_LIBDIR
|
||||
include(GNUInstallDirs)
|
||||
|
||||
-if(CMAKE_SIZEOF_VOID_P MATCHES "8")
|
||||
- set(SUITESPARSE_LIB_POSTFIX "64")
|
||||
-else()
|
||||
- set(SUITESPARSE_LIB_POSTFIX "")
|
||||
-endif()
|
||||
-
|
||||
-## get POSTFIX for lib install dir
|
||||
-set(LIB_POSTFIX "${SUITESPARSE_LIB_POSTFIX}" CACHE STRING "suffix for 32/64 inst dir placement")
|
||||
-mark_as_advanced(LIB_POSTFIX)
|
||||
-
|
||||
# We want libraries to be named "libXXX" and "libXXXd" in all compilers:
|
||||
# ------------------------------------------------------------------------
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
@@ -77,59 +49,6 @@ IF(MSVC)
|
||||
set(SP_LIB_PREFIX "lib") # Libs are: "libXXX"
|
||||
ENDIF(MSVC)
|
||||
|
||||
-## check if we can build metis
|
||||
-SET(BUILD_METIS_DEFAULT ON)
|
||||
-if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/SuiteSparse/metis-5.1.0/CMakeLists.txt")
|
||||
- SET(BUILD_METIS_DEFAULT OFF)
|
||||
-endif()
|
||||
-
|
||||
-SET(WITH_CUDA OFF CACHE BOOL "Build with CUDA support")
|
||||
-
|
||||
-SET(BUILD_METIS ${BUILD_METIS_DEFAULT} CACHE BOOL "Build METIS for partitioning?")
|
||||
-SET(METIS_DIR ${${PROJECT_NAME}_SOURCE_DIR}/SuiteSparse/metis-5.1.0 CACHE PATH "Source directory of METIS")
|
||||
-
|
||||
-if(BUILD_METIS)
|
||||
- ## prepare the installation :
|
||||
- ## using metis target here is not possible because this target is added in another branch of the CMake structure
|
||||
- ## TRICK: need to dynamically modify the metis CMakeLists.txt file before it going to parsed...
|
||||
- ## (very ugly/poor for a metis project get from SCM (git/svn/cvs) but it's works ;) and it doesn't matter if metis was get from .zip)
|
||||
- if(EXISTS "${METIS_DIR}/libmetis/CMakeLists.txt")
|
||||
- file(READ "${METIS_DIR}/libmetis/CMakeLists.txt" contentFile)
|
||||
- string(REGEX MATCH "EXPORT SuiteSparseTargets" alreadyModified ${contentFile}) ## use a string pattern to check if we have to do the modif
|
||||
- if(NOT alreadyModified)
|
||||
- file(APPEND "${METIS_DIR}/libmetis/CMakeLists.txt"
|
||||
- "
|
||||
- set_target_properties(metis PROPERTIES PUBLIC_HEADER \"../include/metis.h\")
|
||||
- install(TARGETS metis ## this line is also the string pattern to check if the modification had already done
|
||||
- EXPORT SuiteSparseTargets
|
||||
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
- PUBLIC_HEADER DESTINATION include
|
||||
- )
|
||||
- "
|
||||
- )
|
||||
- endif()
|
||||
- endif()
|
||||
- add_subdirectory(SuiteSparse/metis-5.1.0) ## important part for building metis from its src files
|
||||
-endif(BUILD_METIS)
|
||||
-
|
||||
-
|
||||
-## For EXPORT only :
|
||||
-## Previous version of cmake (>2.8.12) doesn't auto take into account external lib (here I mean blas and lapack) we need to link to for our current target we want to export.
|
||||
-## Or at least we need to investigate how to do with previous version.
|
||||
-## This may cause some trouble in case you want to build in static mode and then use it into another custom project.
|
||||
-## You will need to manually link your target into your custom project to the correct dependencies link interfaces.
|
||||
-if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" GREATER 2.8.11) ## (policies introduced both in 2.8.12)
|
||||
- set(EXPORT_USE_INTERFACE_LINK_LIBRARIES ON CACHE BOOL "")
|
||||
- mark_as_advanced(EXPORT_USE_INTERFACE_LINK_LIBRARIES)
|
||||
- if(EXPORT_USE_INTERFACE_LINK_LIBRARIES)
|
||||
- cmake_policy(SET CMP0023 NEW) ## just for respecting the new target_link_libraries(...) signature procedure
|
||||
- cmake_policy(SET CMP0022 NEW) ## use INTERFACE_LINK_LIBRARIES property for in-build targets and ignore old properties (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?
|
||||
- ## Here, next version of cmake 2.8.12 auto take into account the link interface dependencies (see generated cmake/SuiteSparse-config*.cmake into your install dir)
|
||||
- endif()
|
||||
-endif()
|
||||
-
|
||||
## install_suitesparse_project(targetName headersList)
|
||||
## factorise the way we will install all projects (part of the suitesparse project)
|
||||
## <targetName> is the target of the current project you build
|
||||
@@ -176,16 +95,16 @@ macro(declare_suitesparse_library targetName srcsList headersList)
|
||||
set(dsl_TARGET_PUBLIC_LINK "")
|
||||
endif()
|
||||
if(WITH_CUDA)
|
||||
- find_package(CUDA)
|
||||
+ find_package(CUDA REQUIRED)
|
||||
endif()
|
||||
- IF(${CUDA_FOUND})
|
||||
+ IF(CUDA_FOUND)
|
||||
INCLUDE_DIRECTORIES(${CUDA_INCLUDE_DIRS})
|
||||
INCLUDE_DIRECTORIES(${SuiteSparse_GPUQREngine_INCLUDE})
|
||||
INCLUDE_DIRECTORIES(${SuiteSparse_GPURuntime_INCLUDE})
|
||||
CUDA_ADD_LIBRARY(${targetName} ${srcsList} ${headersList})
|
||||
- ELSE(${CUDA_FOUND})
|
||||
+ ELSE()
|
||||
ADD_LIBRARY(${targetName} ${srcsList} ${headersList})
|
||||
- ENDIF(${CUDA_FOUND})
|
||||
+ ENDIF()
|
||||
SET_TARGET_PROPERTIES(${targetName} PROPERTIES
|
||||
OUTPUT_NAME ${SP_LIB_PREFIX}${targetName}
|
||||
)
|
||||
@@ -211,44 +130,30 @@ MACRO(REMOVE_MATCHING_FILES_FROM_LIST match_expr lst_files)
|
||||
ENDMACRO(REMOVE_MATCHING_FILES_FROM_LIST)
|
||||
|
||||
if(WITH_CUDA)
|
||||
- FIND_PACKAGE(cuda)
|
||||
- IF(${CUDA_FOUND})
|
||||
+ FIND_PACKAGE(CUDA REQUIRED)
|
||||
+ IF(CUDA_FOUND)
|
||||
ADD_DEFINITIONS(-DGPU_BLAS)
|
||||
- ENDIF(${CUDA_FOUND})
|
||||
+ ENDIF()
|
||||
endif()
|
||||
|
||||
-hunter_add_package(LAPACK) # only in effect if HUNTER_ENABLED is set
|
||||
-# prefer LAPACK config file
|
||||
-find_package(LAPACK CONFIG)
|
||||
-if (LAPACK_FOUND AND TARGET blas AND TARGET lapack)
|
||||
- message(STATUS "found lapack and blas config file. Linking targets lapack and blas")
|
||||
- message(STATUS "- LAPACK_CONFIG: ${LAPACK_CONFIG}")
|
||||
- set(SuiteSparse_LINKER_LAPACK_BLAS_LIBS lapack blas)
|
||||
- # for suitesparse-config file set method used to find LAPACK (and BLAS)
|
||||
- set(SuiteSparse_LAPACK_used_CONFIG YES)
|
||||
-else()
|
||||
- # missing config file or targets, try BLAS and LAPACK
|
||||
- find_package(BLAS)
|
||||
- find_package(LAPACK)
|
||||
- if (BLAS_FOUND AND LAPACK_FOUND)
|
||||
+ find_package(BLAS REQUIRED)
|
||||
+ find_package(LAPACK REQUIRED)
|
||||
message(STATUS "found lapack and blas config file. Linking targets lapack and blas")
|
||||
message(STATUS "- LAPACK_LIBRARIES: ${LAPACK_LIBRARIES}")
|
||||
message(STATUS "- BLAS_LIBRARIES: ${BLAS_LIBRARIES}")
|
||||
set(SuiteSparse_LINKER_LAPACK_BLAS_LIBS ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
|
||||
# for suitesparse-config file set method used to find LAPACK (and BLAS)
|
||||
set(SuiteSparse_LAPACK_used_CONFIG NO)
|
||||
- else () # LAPACK is not found
|
||||
- message(FATAL_ERROR "lapack not found")
|
||||
- endif()
|
||||
-endif()
|
||||
|
||||
-IF(BUILD_METIS)
|
||||
+IF(USE_VCPKG_METIS)
|
||||
+ find_package(metis REQUIRED)
|
||||
set(SuiteSparse_LINKER_METIS_LIBS "metis")
|
||||
- ## namespaced library target for config
|
||||
- set(SuiteSparse_EXPORTED_METIS_LIBS "SuiteSparse::metis")
|
||||
+ set(SuiteSparse_EXPORTED_METIS_LIBS "metis")
|
||||
+ set(SuiteSparse_FIND_DEPENDENCY_METIS "find_dependency(metis REQUIRED)")
|
||||
else()
|
||||
set(SuiteSparse_LINKER_METIS_LIBS "")
|
||||
set(SuiteSparse_EXPORTED_METIS_LIBS "")
|
||||
+ set(SuiteSparse_FIND_PACKAGE_METIS "")
|
||||
ENDIF()
|
||||
|
||||
add_subdirectory(SuiteSparse)
|
||||
@@ -287,7 +192,7 @@ endmacro()
|
||||
# get SuiteSparse version
|
||||
get_SuiteSparse_Version()
|
||||
|
||||
-set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/suitesparse-${SuiteSparse_VERSION})
|
||||
+set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/suitesparse)
|
||||
## create targets file
|
||||
export(EXPORT SuiteSparseTargets
|
||||
FILE "${CMAKE_CURRENT_BINARY_DIR}/suitesparse/suitesparse-targets.cmake"
|
||||
@@ -301,7 +206,7 @@ configure_file(cmake/SuiteSparse-config-install.cmake.in
|
||||
## do the EXPORT for allowing other project to easily use suitesparse with cmake
|
||||
install(EXPORT SuiteSparseTargets
|
||||
FILE
|
||||
- SuiteSparse-targets.cmake
|
||||
+ suitesparse-targets.cmake
|
||||
NAMESPACE
|
||||
SuiteSparse::
|
||||
DESTINATION
|
||||
diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt
|
||||
index c6e2834..6fdfb01 100644
|
||||
--- a/SuiteSparse/CMakeLists.txt
|
||||
+++ b/SuiteSparse/CMakeLists.txt
|
||||
@@ -1,23 +1,5 @@
|
||||
PROJECT(SuiteSparse)
|
||||
|
||||
-# Set optimized building:
|
||||
-IF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
||||
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
|
||||
- # only optimize for native processer when NOT cross compiling
|
||||
- if(NOT CMAKE_CROSSCOMPILING)
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mtune=native")
|
||||
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=native")
|
||||
- endif(NOT CMAKE_CROSSCOMPILING)
|
||||
-ENDIF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
-
|
||||
-# Global flags:
|
||||
-IF (BUILD_METIS)
|
||||
- INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
|
||||
-ELSE (BUILD_METIS)
|
||||
- ADD_DEFINITIONS(-DNPARTITION)
|
||||
-ENDIF ( BUILD_METIS)
|
||||
-
|
||||
# Disable COMPLEX numbers: disable it by default, since it causes problems in some platforms.
|
||||
SET(HAVE_COMPLEX OFF CACHE BOOL "Enables building SuiteSparse with complex numbers (disabled by default to avoid problems in some platforms)")
|
||||
IF (NOT HAVE_COMPLEX)
|
||||
@@ -38,12 +20,12 @@ if(WITH_CUDA)
|
||||
set(SUBPROJECTS_TO_ADD
|
||||
${SUBPROJECTS_TO_ADD}
|
||||
SuiteSparse_GPURuntime
|
||||
- GPUQREngine
|
||||
+ GPUQREngine
|
||||
)
|
||||
endif()
|
||||
|
||||
set(SUBPROJECTS_TO_ADD
|
||||
- ${SUBPROJECTS_TO_ADD}
|
||||
+ ${SUBPROJECTS_TO_ADD}
|
||||
SuiteSparse_config
|
||||
AMD
|
||||
BTF
|
||||
diff --git a/cmake/SuiteSparse-config-install.cmake.in b/cmake/SuiteSparse-config-install.cmake.in
|
||||
index 1e587d1..fd8f3a7 100644
|
||||
--- a/cmake/SuiteSparse-config-install.cmake.in
|
||||
+++ b/cmake/SuiteSparse-config-install.cmake.in
|
||||
@@ -2,20 +2,14 @@
|
||||
get_filename_component(_SuiteSparse_SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_SELF_DIR}" PATH)
|
||||
get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
|
||||
-get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
-if (@SuiteSparse_LAPACK_used_CONFIG@) # SuiteSparse_LAPACK_used_CONFIG
|
||||
- # use config file which provides LAPACK (and BLAS) for us
|
||||
- find_dependency(LAPACK CONFIG)
|
||||
-else()
|
||||
- # try to find BLAS and LAPACK with modules
|
||||
find_dependency(BLAS)
|
||||
find_dependency(LAPACK)
|
||||
-endif ()
|
||||
+ @SuiteSparse_FIND_DEPENDENCY_METIS@
|
||||
|
||||
# Load targets from the install tree.
|
||||
-include(${_SuiteSparse_SELF_DIR}/SuiteSparse-targets.cmake)
|
||||
+include(${_SuiteSparse_SELF_DIR}/suitesparse-targets.cmake)
|
||||
|
||||
# Report SuiteSparse header search locations.
|
||||
set(SuiteSparse_INCLUDE_DIRS ${_SuiteSparse_PREFIX}/include)
|
||||
@@ -39,3 +33,7 @@ set(SuiteSparse_LIBRARIES
|
||||
|
||||
unset(_SuiteSparse_PREFIX)
|
||||
unset(_SuiteSparse_SELF_DIR)
|
||||
+set(SUITESPARSE_FOUND TRUE)
|
||||
+set(SuiteSparse_FOUND TRUE)
|
||||
+set(SUITESPARSE_LIBRARIES ${SuiteSparse_LIBRARIES})
|
||||
+set(SUITESPARSE_INCLUDE_DIRS ${SuiteSparse_INCLUDE_DIRS})
|
@ -1,54 +1,41 @@
|
||||
set(SUITESPARSE_VER 5.4.0)
|
||||
set(SUITESPARSEWIN_VER 1.4.0)
|
||||
|
||||
vcpkg_download_distfile(SUITESPARSE
|
||||
URLS "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-${SUITESPARSE_VER}.tar.gz"
|
||||
FILENAME "SuiteSparse-${SUITESPARSE_VER}.tar.gz"
|
||||
SHA512 8328bcc2ef5eb03febf91b9c71159f091ff405c1ba7522e53714120fcf857ceab2d2ecf8bf9a2e1fc45e1a934665a341e3a47f954f87b59934f4fce6164775d6
|
||||
)
|
||||
|
||||
vcpkg_extract_source_archive_ex(
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
ARCHIVE ${SUITESPARSE}
|
||||
REPO DrTimothyAldenDavis/SuiteSparse
|
||||
REF 71e330ca2bc0a2f12f416c461d23dbca21db4d8f
|
||||
SHA512 06c75927c924cfd5511b07504e826714f504586243d6f3449d67408a33f3ecea824a7f2de7a165171791b9bda4fc09c0d7093125970895c2ed8d4d37ca1d5a3d
|
||||
HEAD_REF master
|
||||
)
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SUITESPARSEWIN_SOURCE_PATH
|
||||
REPO jlblancoc/suitesparse-metis-for-windows
|
||||
REF v${SUITESPARSEWIN_VER}
|
||||
SHA512 35a2563d6e33ebe8157f8d023167abd8d2512e2a627b8dbea798c59afefc56b8f01c7d10553529b03a7b4759e200ca82bb26ebce5cefce6983ffb057a8622162
|
||||
REF c11e8dd7a2ef7d0d93af4c16f75374dd8ca029e2
|
||||
SHA512 fbd2a9e6f7df47eeb5d890c7b286bef7fc4c8bcb22783ce800723bacaf2cfe902177828ce5b9e1c2ed9fb5c54591c5fb046a8667e7d354d452a4baac693e47d2
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
suitesparse.patch
|
||||
add-find-package-metis.patch
|
||||
build_fixes.patch
|
||||
)
|
||||
|
||||
# Copy suitesparse sources.
|
||||
message(STATUS "Copying SuiteSparse source files...")
|
||||
message(STATUS "Overwriting SuiteSparseWin source files with SuiteSparse source files...")
|
||||
# Should probably remove everything but CMakeLists.txt files?
|
||||
file(GLOB SUITESPARSE_SOURCE_FILES ${SOURCE_PATH}/*)
|
||||
foreach(SOURCE_FILE ${SUITESPARSE_SOURCE_FILES})
|
||||
file(COPY ${SOURCE_FILE} DESTINATION "${SUITESPARSEWIN_SOURCE_PATH}/SuiteSparse")
|
||||
endforeach()
|
||||
message(STATUS "Copying SuiteSparse source files... done")
|
||||
message(STATUS "Removing integrated lapack and metis libs...")
|
||||
message(STATUS "Overwriting SuiteSparseWin source files with SuiteSparse source files... done")
|
||||
message(STATUS "Removing integrated lapack and metis lib...")
|
||||
file(REMOVE_RECURSE ${SUITESPARSEWIN_SOURCE_PATH}/lapack_windows)
|
||||
file(REMOVE_RECURSE ${SUITESPARSEWIN_SOURCE_PATH}/metis)
|
||||
message(STATUS "Removing integrated lapack and metis libs... done")
|
||||
|
||||
set(USE_VCPKG_METIS OFF)
|
||||
if("metis" IN_LIST FEATURES)
|
||||
set(USE_VCPKG_METIS ON)
|
||||
set(ADDITIONAL_BUILD_OPTIONS "-DMETIS_SOURCE_DIR=${CURRENT_INSTALLED_DIR}")
|
||||
endif()
|
||||
file(REMOVE_RECURSE ${SUITESPARSEWIN_SOURCE_PATH}/SuiteSparse/metis-5.1.0)
|
||||
message(STATUS "Removing integrated lapack and metis lib... done")
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SUITESPARSEWIN_SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
-DBUILD_METIS=OFF
|
||||
-DUSE_VCPKG_METIS=${USE_VCPKG_METIS}
|
||||
${ADDITIONAL_BUILD_OPTIONS}
|
||||
-DUSE_VCPKG_METIS=ON
|
||||
"-DMETIS_SOURCE_DIR=${CURRENT_INSTALLED_DIR}"
|
||||
OPTIONS_DEBUG
|
||||
-DSUITESPARSE_INSTALL_PREFIX="${CURRENT_PACKAGES_DIR}/debug"
|
||||
OPTIONS_RELEASE
|
||||
@ -57,9 +44,13 @@ vcpkg_configure_cmake(
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/suitesparse-${SUITESPARSE_VER})
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/suitesparse)
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
file(INSTALL ${SUITESPARSEWIN_SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright_suitesparse-metis-for-windows)
|
||||
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/cxsparse)
|
||||
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper_cxsparse.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/cxsparse RENAME vcpkg-cmake-wrapper.cmake)
|
||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindCXSparse.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/cxsparse)
|
||||
|
@ -1,151 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 3486f05..b8c2e63 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -191,68 +191,14 @@ if(WITH_CUDA)
|
||||
ENDIF(${CUDA_FOUND})
|
||||
endif()
|
||||
|
||||
-find_package(BLAS)
|
||||
-find_package(LAPACK)
|
||||
-if (LAPACK_FOUND AND BLAS_FOUND)
|
||||
+find_package(BLAS REQUIRED)
|
||||
+find_package(LAPACK REQUIRED)
|
||||
+if(LAPACK_FOUND AND BLAS_FOUND)
|
||||
message(STATUS "found lapack and blas config file. Linking targets lapack and blas")
|
||||
set(SuiteSparse_LINKER_LAPACK_BLAS_LIBS ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
|
||||
-else () # LAPACK is not found
|
||||
-
|
||||
-## Need to use SuiteSparse_LINKER_LAPACK_BLAS_LIBS in our subproject in case of SHARED flag is set to ON
|
||||
-SET(SUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS OFF CACHE BOOL "Check if you have custom LAPACK/BLAS libraries (AMD,...)")
|
||||
-IF (SUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS)
|
||||
- SET(SUITESPARSE_CUSTOM_BLAS_LIB "" CACHE FILE "Path to custom library file for BLAS")
|
||||
- SET(SUITESPARSE_CUSTOM_LAPACK_LIB "" CACHE FILE "Path to custom library file for LAPACK")
|
||||
- IF (NOT EXISTS "${SUITESPARSE_CUSTOM_BLAS_LIB}" OR NOT EXISTS "${SUITESPARSE_CUSTOM_LAPACK_LIB}")
|
||||
- MESSAGE("*Error*: Correctly set SUITESPARSE_CUSTOM_BLAS_LIB and SUITESPARSE_CUSTOM_LAPACK_LIB or uncheck SUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS")
|
||||
- ELSE()
|
||||
- SET(SuiteSparse_LINKER_LAPACK_BLAS_LIBS ${SUITESPARSE_CUSTOM_BLAS_LIB} ${SUITESPARSE_CUSTOM_LAPACK_LIB})
|
||||
- ENDIF()
|
||||
-ELSE()
|
||||
- IF (UNIX)
|
||||
- SET(SuiteSparse_LINKER_LAPACK_BLAS_LIBS lapack blas rt)
|
||||
- ELSE()
|
||||
- IF(CMAKE_SIZEOF_VOID_P EQUAL 8) # Size in bytes!
|
||||
- set(PATH_WORD_SIZE "x64")
|
||||
- ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8) # Size in bytes!
|
||||
- set(PATH_WORD_SIZE "x32")
|
||||
- ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
-
|
||||
- add_library(blas SHARED IMPORTED)
|
||||
- set_property(TARGET blas PROPERTY IMPORTED_LOCATION ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/libblas.dll)
|
||||
- set_property(TARGET blas PROPERTY IMPORTED_IMPLIB ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/libblas.lib)
|
||||
-
|
||||
- add_library(lapack SHARED IMPORTED)
|
||||
- set_property(TARGET lapack PROPERTY IMPORTED_LOCATION ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/liblapack.dll)
|
||||
- set_property(TARGET lapack PROPERTY IMPORTED_IMPLIB ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/liblapack.lib)
|
||||
-
|
||||
- SET(SuiteSparse_LINKER_LAPACK_BLAS_LIBS blas lapack)
|
||||
-
|
||||
- ## install lapack and blas dependencies
|
||||
- file(GLOB lapack_blas_windows_libs "${CMAKE_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/*.lib")
|
||||
- file(GLOB lapack_blas_windows_dll "${CMAKE_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/*.dll")
|
||||
- if(lapack_blas_windows_dll AND lapack_blas_windows_libs)
|
||||
- set(SuiteSparse_LAPACK_BLAS_LIB_DIR "lib${LIB_POSTFIX}/lapack_blas_windows")
|
||||
- install(FILES ${lapack_blas_windows_libs}
|
||||
- ${lapack_blas_windows_dll}
|
||||
- DESTINATION ${SuiteSparse_LAPACK_BLAS_LIB_DIR}
|
||||
- )
|
||||
- endif()
|
||||
- ENDIF()
|
||||
-ENDIF()
|
||||
-ENDIF() # LAPACK found
|
||||
-
|
||||
-if(SuiteSparse_LAPACK_BLAS_LIB_DIR) # "Export" the imported targets in config.cmake manually
|
||||
- set(ExternConfig "add_library(blas SHARED IMPORTED)
|
||||
- set_property(TARGET blas PROPERTY IMPORTED_LOCATION \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/libblas.dll)
|
||||
- set_property(TARGET blas PROPERTY IMPORTED_IMPLIB \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/libblas.lib)
|
||||
-
|
||||
- add_library(lapack SHARED IMPORTED)
|
||||
- set_property(TARGET lapack PROPERTY IMPORTED_LOCATION \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/liblapack.dll)
|
||||
- set_property(TARGET lapack PROPERTY IMPORTED_IMPLIB \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/liblapack.lib)")
|
||||
-endif()
|
||||
+endif() # LAPACK is not found
|
||||
|
||||
-IF(BUILD_METIS)
|
||||
+IF(BUILD_METIS OR USE_VCPKG_METIS)
|
||||
set(SuiteSparse_LINKER_METIS_LIBS "metis")
|
||||
## namespaced library target for config
|
||||
set(SuiteSparse_EXPORTED_METIS_LIBS "SuiteSparse::metis")
|
||||
@@ -311,7 +257,7 @@ configure_file(cmake/SuiteSparse-config-install.cmake.in
|
||||
## do the EXPORT for allowing other project to easily use suitesparse with cmake
|
||||
install(EXPORT SuiteSparseTargets
|
||||
FILE
|
||||
- SuiteSparse-targets.cmake
|
||||
+ suitesparse-targets.cmake
|
||||
NAMESPACE
|
||||
SuiteSparse::
|
||||
DESTINATION
|
||||
diff --git a/SuiteSparse/CHOLMOD/Include/cholmod_blas.h b/SuiteSparse/CHOLMOD/Include/cholmod_blas.h
|
||||
index aef3e63..907512b 100644
|
||||
--- a/SuiteSparse/CHOLMOD/Include/cholmod_blas.h
|
||||
+++ b/SuiteSparse/CHOLMOD/Include/cholmod_blas.h
|
||||
@@ -27,6 +27,7 @@
|
||||
#elif defined (__linux) || defined (MGLNX86) || defined (ARCH_GLNX86)
|
||||
#define CHOLMOD_LINUX
|
||||
#define CHOLMOD_ARCHITECTURE "Linux"
|
||||
+#define BLAS_NO_UNDERSCORE
|
||||
|
||||
#elif defined (__APPLE__)
|
||||
#define CHOLMOD_MAC
|
||||
diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt
|
||||
index c6e2834..5ef08a6 100644
|
||||
--- a/SuiteSparse/CMakeLists.txt
|
||||
+++ b/SuiteSparse/CMakeLists.txt
|
||||
@@ -12,11 +12,11 @@ IF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
ENDIF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
|
||||
# Global flags:
|
||||
-IF (BUILD_METIS)
|
||||
+IF (BUILD_METIS OR USE_VCPKG_METIS)
|
||||
INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
|
||||
-ELSE (BUILD_METIS)
|
||||
+ELSE ()
|
||||
ADD_DEFINITIONS(-DNPARTITION)
|
||||
-ENDIF ( BUILD_METIS)
|
||||
+ENDIF ()
|
||||
|
||||
# Disable COMPLEX numbers: disable it by default, since it causes problems in some platforms.
|
||||
SET(HAVE_COMPLEX OFF CACHE BOOL "Enables building SuiteSparse with complex numbers (disabled by default to avoid problems in some platforms)")
|
||||
diff --git a/cmake/SuiteSparse-config-install.cmake.in b/cmake/SuiteSparse-config-install.cmake.in
|
||||
index cb1f51f..12f654c 100644
|
||||
--- a/cmake/SuiteSparse-config-install.cmake.in
|
||||
+++ b/cmake/SuiteSparse-config-install.cmake.in
|
||||
@@ -2,15 +2,11 @@
|
||||
get_filename_component(_SuiteSparse_SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_SELF_DIR}" PATH)
|
||||
get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
|
||||
-get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
|
||||
|
||||
-find_package(LAPACK CONFIG)
|
||||
-if (NOT LAPACK_FOUND) # Load the LAPACK package with which we were built.
|
||||
- @ExternConfig@
|
||||
-endif ()
|
||||
+find_package(LAPACK REQUIRED)
|
||||
|
||||
# Load targets from the install tree.
|
||||
-include(${_SuiteSparse_SELF_DIR}/SuiteSparse-targets.cmake)
|
||||
+include(${_SuiteSparse_SELF_DIR}/suitesparse-targets.cmake)
|
||||
|
||||
# Report SuiteSparse header search locations.
|
||||
set(SuiteSparse_INCLUDE_DIRS ${_SuiteSparse_PREFIX}/include)
|
||||
@@ -31,6 +27,10 @@ set(SuiteSparse_LIBRARIES
|
||||
SuiteSparse::spqr
|
||||
@SuiteSparse_EXPORTED_METIS_LIBS@
|
||||
)
|
||||
+set(SUITESPARSE_LIBRARIES ${SuiteSparse_LIBRARIES})
|
||||
|
||||
unset(_SuiteSparse_PREFIX)
|
||||
unset(_SuiteSparse_SELF_DIR)
|
||||
+
|
||||
+set(SUITESPARSE_FOUND TRUE)
|
||||
+set(SuiteSparse_FOUND TRUE)
|
10
ports/suitesparse/vcpkg-cmake-wrapper_cxsparse.cmake
Normal file
10
ports/suitesparse/vcpkg-cmake-wrapper_cxsparse.cmake
Normal file
@ -0,0 +1,10 @@
|
||||
set(CXSPARSE_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
list(REMOVE_ITEM ARGS "NO_MODULE")
|
||||
list(REMOVE_ITEM ARGS "CONFIG")
|
||||
list(REMOVE_ITEM ARGS "MODULE")
|
||||
|
||||
_find_package(${ARGS})
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CXSPARSE_PREV_MODULE_PATH})
|
@ -1,5 +1,6 @@
|
||||
Source: theia
|
||||
Version: 0.8-2
|
||||
Version: 0.8
|
||||
Port-Version: 3
|
||||
Build-Depends: flann, cereal, ceres[suitesparse], openimageio, glew, freeglut (!osx)
|
||||
Homepage: https://github.com/sweeneychris/TheiaSfM
|
||||
Description: An open source library for multiview geometry and structure from motion
|
||||
|
@ -1,7 +1,22 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 9c1b150..5810156 100644
|
||||
index 9c1b150..1adbfed 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -105,10 +105,10 @@ add_definitions(-DTHEIA_DATA_DIR="${CMAKE_SOURCE_DIR}/data")
|
||||
|
||||
# Eigen
|
||||
set(MIN_EIGEN_VERSION 3.2.0)
|
||||
-find_package(Eigen ${MIN_EIGEN_VERSION} REQUIRED)
|
||||
-if (EIGEN_FOUND)
|
||||
- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}")
|
||||
-endif (EIGEN_FOUND)
|
||||
+find_package(Eigen3 ${MIN_EIGEN_VERSION} REQUIRED)
|
||||
+if (EIGEN3_FOUND)
|
||||
+ message("-- Found Eigen version ${EIGEN3_VERSION}: ${EIGEN3_INCLUDE_DIRS}")
|
||||
+endif (EIGEN3_FOUND)
|
||||
|
||||
# Use a larger inlining threshold for Clang, since it hobbles Eigen,
|
||||
# resulting in an unreasonably slow version of the blas routines. The
|
||||
@@ -129,70 +129,27 @@ endif ()
|
||||
|
||||
# GFlags. The namespace patch is borrow from Ceres Solver (see license in
|
||||
@ -299,10 +314,48 @@ index 84f3829..f88d75a 100644
|
||||
-add_subdirectory(visual_sfm)
|
||||
\ No newline at end of file
|
||||
+add_subdirectory(visual_sfm)
|
||||
diff --git a/libraries/optimo/CMakeLists.txt b/libraries/optimo/CMakeLists.txt
|
||||
index 80f5e5f..ea57f1b 100644
|
||||
--- a/libraries/optimo/CMakeLists.txt
|
||||
+++ b/libraries/optimo/CMakeLists.txt
|
||||
@@ -67,11 +67,11 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
|
||||
# Locations to search for Eigen
|
||||
# Eigen
|
||||
-find_package(Eigen REQUIRED)
|
||||
-if (EIGEN_FOUND)
|
||||
- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}")
|
||||
-endif (EIGEN_FOUND)
|
||||
-include_directories(${EIGEN_INCLUDE_DIRS})
|
||||
+find_package(Eigen3 REQUIRED)
|
||||
+if (EIGEN3_FOUND)
|
||||
+ message("-- Found Eigen version ${EIGEN3_VERSION_STRING}: ${EIGEN3_INCLUDE_DIRS}")
|
||||
+endif (EIGEN3_FOUND)
|
||||
+include_directories(${EIGEN3_INCLUDE_DIRS})
|
||||
|
||||
# Setting CXX FLAGS appropriately. The code below was inspired from
|
||||
# Google CERES and modified for this library.
|
||||
diff --git a/libraries/statx/CMakeLists.txt b/libraries/statx/CMakeLists.txt
|
||||
index 23b9e49..af236a3 100644
|
||||
index 23b9e49..c58a550 100644
|
||||
--- a/libraries/statx/CMakeLists.txt
|
||||
+++ b/libraries/statx/CMakeLists.txt
|
||||
@@ -72,11 +72,11 @@ message("-- Default Install prefix: ${CMAKE_INSTALL_PREFIX}")
|
||||
option(STATX_WITH_CERES "Enables GEV parameter estimation using Ceres" ON)
|
||||
|
||||
# Eigen
|
||||
-find_package(Eigen REQUIRED)
|
||||
-if (EIGEN_FOUND)
|
||||
- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}")
|
||||
-endif (EIGEN_FOUND)
|
||||
-include_directories(${EIGEN_INCLUDE_DIRS})
|
||||
+find_package(Eigen3 REQUIRED)
|
||||
+if (EIGEN3_FOUND)
|
||||
+ message("-- Found Eigen version ${EIGEN3_VERSION_STRING}: ${EIGEN3_INCLUDE_DIRS}")
|
||||
+endif (EIGEN3_FOUND)
|
||||
+include_directories(${EIGEN3_INCLUDE_DIRS})
|
||||
|
||||
# Google Flags
|
||||
find_package(Gflags REQUIRED)
|
||||
@@ -103,7 +103,11 @@ if(STATX_WITH_CERES)
|
||||
endif(CERES_FOUND)
|
||||
|
||||
|
@ -1,5 +1,3 @@
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
||||
|
||||
vcpkg_from_github(
|
||||
@ -15,6 +13,7 @@ vcpkg_from_github(
|
||||
file(REMOVE ${SOURCE_PATH}/cmake/FindSuiteSparse.cmake)
|
||||
file(REMOVE ${SOURCE_PATH}/cmake/FindGflags.cmake)
|
||||
file(REMOVE ${SOURCE_PATH}/cmake/FindGlog.cmake)
|
||||
file(REMOVE ${SOURCE_PATH}/cmake/FindEigen.cmake)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
@ -40,5 +39,5 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/akaze/datase
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/spectra/doxygen)
|
||||
|
||||
# Handle copyright
|
||||
file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/theia RENAME copyright)
|
||||
file(COPY ${SOURCE_PATH}/data/camera_sensor_database_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/theia)
|
||||
file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
file(COPY ${SOURCE_PATH}/data/camera_sensor_database_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
|
||||
|
159
ports/vlfeat/CMakeLists.txt
Normal file
159
ports/vlfeat/CMakeLists.txt
Normal file
@ -0,0 +1,159 @@
|
||||
cmake_minimum_required (VERSION 3.10)
|
||||
project (vlfeat)
|
||||
|
||||
set(INSTALL_BIN_DIR "bin" CACHE PATH "Path where exe and dll will be installed")
|
||||
set(INSTALL_LIB_DIR "lib" CACHE PATH "Path where lib will be installed")
|
||||
set(INSTALL_INCLUDE_DIR "include/vlfeat" CACHE PATH "Path where headers will be installed")
|
||||
set(INSTALL_CMAKE_DIR "share/vlfeat" CACHE PATH "Path where cmake configs will be installed")
|
||||
|
||||
# Make relative paths absolute (needed later on)
|
||||
set(RELATIVE_INSTALL_INCLUDE_DIR ${INSTALL_INCLUDE_DIR})
|
||||
foreach(p LIB BIN INCLUDE CMAKE)
|
||||
set(var INSTALL_${p}_DIR)
|
||||
if(NOT IS_ABSOLUTE "${${var}}")
|
||||
set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# make sure that the default is a RELEASE
|
||||
set(default_build_type "Release")
|
||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
|
||||
set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE
|
||||
STRING "Choose the type of build." FORCE)
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
|
||||
"Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
||||
endif()
|
||||
|
||||
if(ENABLE_OPENMP)
|
||||
find_package(OpenMP REQUIRED)
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
||||
add_definitions(-D__LITTLE_ENDIAN__)
|
||||
add_definitions(/Zp8)
|
||||
add_definitions(/wd4146)
|
||||
if(CMAKE_C_FLAGS MATCHES "/W[0-4]")
|
||||
string(REGEX REPLACE "/W[0-4]" "/W1" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
add_definitions(-std=c99)
|
||||
add_definitions(-Wno-unused-function)
|
||||
add_definitions(-Wno-long-long)
|
||||
add_definitions(-Wno-variadic-macros)
|
||||
endif()
|
||||
|
||||
if(USE_SSE)
|
||||
add_definitions(-D__SSE2__)
|
||||
set(SSE2_VL_C_FILES "vl/mathop_sse2.c" "vl/imopv_sse2.c")
|
||||
set(SSE2_VL_H_FILES "vl/mathop_sse2.h" "vl/imopv_sse2.h")
|
||||
else()
|
||||
add_definitions(-DVL_DISABLE_SSE2)
|
||||
endif()
|
||||
|
||||
if(USE_AVX)
|
||||
set(AVX_VL_C_FILES "vl/mathop_avx.c")
|
||||
set(AVX_VL_H_FILES "vl/mathop_avx.h")
|
||||
else()
|
||||
add_definitions(-DVL_DISABLE_AVX)
|
||||
endif()
|
||||
|
||||
|
||||
set (C_SOURCES
|
||||
vl/aib.c
|
||||
vl/array.c
|
||||
vl/covdet.c
|
||||
vl/dsift.c
|
||||
vl/fisher.c
|
||||
vl/generic.c
|
||||
vl/getopt_long.c
|
||||
vl/gmm.c
|
||||
vl/hikmeans.c
|
||||
vl/hog.c
|
||||
vl/homkermap.c
|
||||
vl/host.c
|
||||
vl/ikmeans.c
|
||||
vl/imopv.c
|
||||
vl/kdtree.c
|
||||
vl/kmeans.c
|
||||
vl/lbp.c
|
||||
vl/liop.c
|
||||
vl/mathop.c
|
||||
${AVX_VL_C_FILES}
|
||||
${SSE2_VL_C_FILES}
|
||||
vl/mser.c
|
||||
vl/pgm.c
|
||||
vl/quickshift.c
|
||||
vl/random.c
|
||||
vl/rodrigues.c
|
||||
vl/scalespace.c
|
||||
vl/sift.c
|
||||
vl/slic.c
|
||||
vl/stringop.c
|
||||
vl/svm.c
|
||||
vl/svmdataset.c
|
||||
vl/vlad.c
|
||||
)
|
||||
|
||||
set (H_SOURCES
|
||||
vl/aib.h
|
||||
vl/array.h
|
||||
vl/covdet.h
|
||||
vl/dsift.h
|
||||
vl/fisher.h
|
||||
vl/generic.h
|
||||
vl/getopt_long.h
|
||||
vl/gmm.h
|
||||
vl/heap-def.h
|
||||
vl/hikmeans.h
|
||||
vl/hog.h
|
||||
vl/homkermap.h
|
||||
vl/host.h
|
||||
vl/ikmeans.h
|
||||
vl/imopv.h
|
||||
vl/kdtree.h
|
||||
vl/kmeans.h
|
||||
vl/lbp.h
|
||||
vl/liop.h
|
||||
vl/mathop.h
|
||||
${AVX_VL_H_FILES}
|
||||
${SSE2_VL_H_FILES}
|
||||
vl/mser.h
|
||||
vl/pgm.h
|
||||
vl/qsort-def.h
|
||||
vl/quickshift.h
|
||||
vl/random.h
|
||||
vl/rodrigues.h
|
||||
vl/scalespace.h
|
||||
vl/shuffle-def.h
|
||||
vl/sift.h
|
||||
vl/slic.h
|
||||
vl/stringop.h
|
||||
vl/svm.h
|
||||
vl/svmdataset.h
|
||||
vl/vlad.h
|
||||
)
|
||||
|
||||
add_library(vl ${C_SOURCES} ${H_SOURCES})
|
||||
set_property(TARGET vl PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
target_compile_definitions(vl PRIVATE -DVL_BUILD_DLL)
|
||||
target_include_directories(vl PUBLIC $<INSTALL_INTERFACE:${RELATIVE_INSTALL_INCLUDE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/vl>)
|
||||
set_target_properties(vl PROPERTIES PUBLIC_HEADER "${H_SOURCES}")
|
||||
|
||||
install(TARGETS vl EXPORT vlfeatTargets
|
||||
RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
|
||||
LIBRARY DESTINATION "${INSTALL_LIB_DIR}"
|
||||
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
|
||||
PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}"
|
||||
COMPONENT dev
|
||||
)
|
||||
|
||||
install(EXPORT vlfeatTargets
|
||||
FILE vlfeatConfig.cmake
|
||||
NAMESPACE unofficial::vlfeat::
|
||||
DESTINATION "${INSTALL_CMAKE_DIR}"
|
||||
)
|
4
ports/vlfeat/CONTROL
Normal file
4
ports/vlfeat/CONTROL
Normal file
@ -0,0 +1,4 @@
|
||||
Source: vlfeat
|
||||
Version: 2020-07-10
|
||||
Homepage: https://www.vlfeat.org
|
||||
Description: An open library of computer vision algorithms
|
79
ports/vlfeat/expose_missing_symbols.patch
Normal file
79
ports/vlfeat/expose_missing_symbols.patch
Normal file
@ -0,0 +1,79 @@
|
||||
diff --git a/vl/generic.c b/vl/generic.c
|
||||
index c6f84a9..8617ed2 100644
|
||||
--- a/vl/generic.c
|
||||
+++ b/vl/generic.c
|
||||
@@ -1513,13 +1513,13 @@ vl_thread_specific_state_delete (VlThreadState * self)
|
||||
*/
|
||||
|
||||
#if (defined(VL_OS_LINUX) || defined(VL_OS_MACOSX)) && defined(VL_COMPILER_GNUC)
|
||||
-static void vl_constructor () __attribute__ ((constructor)) ;
|
||||
-static void vl_destructor () __attribute__ ((destructor)) ;
|
||||
+//static void vl_constructor () __attribute__ ((constructor)) ;
|
||||
+//static void vl_destructor () __attribute__ ((destructor)) ;
|
||||
#endif
|
||||
|
||||
#if defined(VL_OS_WIN)
|
||||
-static void vl_constructor () ;
|
||||
-static void vl_destructor () ;
|
||||
+//static void vl_constructor () ;
|
||||
+//static void vl_destructor () ;
|
||||
|
||||
BOOL WINAPI DllMain(
|
||||
HINSTANCE hinstDLL, // handle to DLL module
|
||||
@@ -1563,7 +1563,7 @@ BOOL WINAPI DllMain(
|
||||
/* ---------------------------------------------------------------- */
|
||||
|
||||
/** @internal @brief Initialize VLFeat state */
|
||||
-static void
|
||||
+void
|
||||
vl_constructor (void)
|
||||
{
|
||||
VlState * state ;
|
||||
@@ -1637,7 +1637,7 @@ vl_constructor (void)
|
||||
}
|
||||
|
||||
/** @internal @brief Destruct VLFeat */
|
||||
-static void
|
||||
+void
|
||||
vl_destructor ()
|
||||
{
|
||||
VlState * state ;
|
||||
diff --git a/vl/generic.h b/vl/generic.h
|
||||
index 4ef87f2..30a974e 100644
|
||||
--- a/vl/generic.h
|
||||
+++ b/vl/generic.h
|
||||
@@ -206,5 +206,7 @@ VL_EXPORT double vl_toc (void) ;
|
||||
VL_EXPORT double vl_get_cpu_time (void) ;
|
||||
/** @} */
|
||||
|
||||
+VL_EXPORT void vl_constructor();
|
||||
+VL_EXPORT void vl_destructor();
|
||||
/* VL_GENERIC_H */
|
||||
#endif
|
||||
diff --git a/vl/sift.c b/vl/sift.c
|
||||
index 03963fe..6477a81 100644
|
||||
--- a/vl/sift.c
|
||||
+++ b/vl/sift.c
|
||||
@@ -1443,7 +1443,7 @@ vl_sift_detect (VlSiftFilt * f)
|
||||
** @remark The minimum octave size is 2x2xS.
|
||||
**/
|
||||
|
||||
-static void
|
||||
+void
|
||||
update_gradient (VlSiftFilt *f)
|
||||
{
|
||||
int s_min = f->s_min ;
|
||||
diff --git a/vl/sift.h b/vl/sift.h
|
||||
index 50e03f4..f9558ad 100644
|
||||
--- a/vl/sift.h
|
||||
+++ b/vl/sift.h
|
||||
@@ -138,7 +138,8 @@ void vl_sift_keypoint_init (VlSiftFilt const *f,
|
||||
double y,
|
||||
double sigma) ;
|
||||
/** @} */
|
||||
-
|
||||
+VL_EXPORT
|
||||
+void update_gradient(VlSiftFilt* f);
|
||||
/** @name Retrieve data and parameters
|
||||
** @{
|
||||
**/
|
33
ports/vlfeat/portfile.cmake
Normal file
33
ports/vlfeat/portfile.cmake
Normal file
@ -0,0 +1,33 @@
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO vlfeat/vlfeat
|
||||
REF 1b9075fc42fe54b42f0e937f8b9a230d8e2c7701
|
||||
SHA512 6d317a1a9496ccac80244553d555fe060b150ccc7ee397a353b64f3a8451f24d1f03d8c00ed04cd9fc2dc066a5c5089b03695c614cb43ffa09be363660278255
|
||||
PATCHES
|
||||
expose_missing_symbols.patch
|
||||
)
|
||||
|
||||
set(USE_SSE ON)
|
||||
set(USE_AVX OFF) # feature is broken, so it's always off anyway
|
||||
|
||||
if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm")
|
||||
set(USE_SSE OFF)
|
||||
set(USE_AVX OFF)
|
||||
endif()
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
-DUSE_SSE=${USE_SSE}
|
||||
-DUSE_AVX=${USE_AVX}
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
vcpkg_fixup_cmake_targets()
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
@ -211,7 +211,7 @@ chmlib:x64-uwp=fail
|
||||
civetweb:arm64-windows = skip
|
||||
civetweb:arm-uwp = skip
|
||||
civetweb:x64-uwp = skip
|
||||
# clapack is replaced by lapack-reference.
|
||||
# clapack is replaced by lapack-reference.
|
||||
clapack:x64-linux = skip
|
||||
clapack:x64-osx = skip
|
||||
clapack:x64-windows = skip
|
||||
@ -1250,7 +1250,6 @@ openmpi:x64-uwp=fail
|
||||
openmpi:x64-windows=fail
|
||||
openmpi:x64-windows-static=fail
|
||||
openmpi:x86-windows=fail
|
||||
openmvs:x64-linux=fail
|
||||
openni2:x64-uwp=fail
|
||||
openni2:x64-windows-static=fail
|
||||
openscap:x64-linux=fail
|
||||
|
Loading…
Reference in New Issue
Block a user