diff --git a/ports/armadillo/CONTROL b/ports/armadillo/CONTROL index d8edd620e4..a162b1ced3 100644 --- a/ports/armadillo/CONTROL +++ b/ports/armadillo/CONTROL @@ -1,3 +1,4 @@ Source: armadillo -Version: 2019-04-16-f00d3225 +Version: 2019-04-16-1 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), clapack (!osx) diff --git a/ports/armadillo/portfile.cmake b/ports/armadillo/portfile.cmake index 172984712d..6b9b3790ac 100644 --- a/ports/armadillo/portfile.cmake +++ b/ports/armadillo/portfile.cmake @@ -1,29 +1,35 @@ -include(vcpkg_common_functions) - -vcpkg_check_linkage(ONLY_STATIC_LIBRARY) - -vcpkg_from_gitlab( - GITLAB_URL https://gitlab.com - OUT_SOURCE_PATH SOURCE_PATH - REPO conradsnicta/armadillo-code - REF f00d3225b1c005775044369723f31cecc3cd6569 - SHA512 ca3574edf5de8c752867403c3856ed9569fbed2ce9729585cae59be5751493c2e71121319b0a812e2ea56baada6b6f62fbc84ce6f1efb362347e5fd4141ccf1b - HEAD_REF 9.400.x -) - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DDETECT_HDF5=false -) - -vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH share/Armadillo/CMake TARGET_PATH share/armadillo) - -vcpkg_copy_pdbs() - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) - -file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/Armadillo RENAME copyright) +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_gitlab( + GITLAB_URL https://gitlab.com + OUT_SOURCE_PATH SOURCE_PATH + REPO conradsnicta/armadillo-code + REF f00d3225b1c005775044369723f31cecc3cd6569 + SHA512 ca3574edf5de8c752867403c3856ed9569fbed2ce9729585cae59be5751493c2e71121319b0a812e2ea56baada6b6f62fbc84ce6f1efb362347e5fd4141ccf1b + HEAD_REF 9.400.x + PATCHES + remove_custom_modules.patch +) + +file(REMOVE ${SOURCE_PATH}/cmake_aux/Modules/ARMA_FindBLAS.cmake) +file(REMOVE ${SOURCE_PATH}/cmake_aux/Modules/ARMA_FindLAPACK.cmake) +file(REMOVE ${SOURCE_PATH}/cmake_aux/Modules/ARMA_FindOpenBLAS.cmake) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DDETECT_HDF5=false +) + +vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share/armadillo/CMake TARGET_PATH share/armadillo) + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/armadillo RENAME copyright) diff --git a/ports/armadillo/remove_custom_modules.patch b/ports/armadillo/remove_custom_modules.patch new file mode 100644 index 0000000000..0723dbeb54 --- /dev/null +++ b/ports/armadillo/remove_custom_modules.patch @@ -0,0 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0959127..9fea721 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -176,10 +176,9 @@ else() + include(ARMA_FindMKL) + include(ARMA_FindACMLMP) + include(ARMA_FindACML) +- include(ARMA_FindOpenBLAS) + include(ARMA_FindATLAS) +- include(ARMA_FindBLAS) +- include(ARMA_FindLAPACK) ++ find_package(BLAS) ++ find_package(LAPACK) + + message(STATUS " MKL_FOUND = ${MKL_FOUND}" ) + message(STATUS " ACMLMP_FOUND = ${ACMLMP_FOUND}" ) diff --git a/ports/assimp/portfile.cmake b/ports/assimp/portfile.cmake index 2945f51f92..1c40efe7ed 100644 --- a/ports/assimp/portfile.cmake +++ b/ports/assimp/portfile.cmake @@ -50,7 +50,7 @@ file(READ ${CURRENT_PACKAGES_DIR}/share/assimp/assimp-config.cmake ASSIMP_CONFIG string(REPLACE "get_filename_component(ASSIMP_ROOT_DIR \"\${_PREFIX}\" PATH)" "set(ASSIMP_ROOT_DIR \${_PREFIX})" ASSIMP_CONFIG ${ASSIMP_CONFIG}) -if(WIN32) +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") string(REPLACE "set( ASSIMP_LIBRARIES \${ASSIMP_LIBRARIES})" "set( ASSIMP_LIBRARIES optimized \${ASSIMP_LIBRARY_DIRS}/\${ASSIMP_LIBRARIES}.lib debug \${ASSIMP_LIBRARY_DIRS}/../debug/lib/\${ASSIMP_LIBRARIES}d.lib)" ASSIMP_CONFIG ${ASSIMP_CONFIG}) else() diff --git a/ports/blaze/CONTROL b/ports/blaze/CONTROL index 89af7e7d34..c70a72a6c3 100644 --- a/ports/blaze/CONTROL +++ b/ports/blaze/CONTROL @@ -1,4 +1,4 @@ Source: blaze Version: 3.5 -Build-Depends: clapack, boost-exception +Build-Depends: clapack (!osx), boost-exception Description: Blaze is an open-source, high-performance C++ math library for dense and sparse arithmetic. diff --git a/ports/ceres/0003_remove_unnecessary_cmake_modules.patch b/ports/ceres/0003_remove_unnecessary_cmake_modules.patch deleted file mode 100644 index 698d410b99..0000000000 --- a/ports/ceres/0003_remove_unnecessary_cmake_modules.patch +++ /dev/null @@ -1,949 +0,0 @@ -diff --git a/cmake/FindGflags.cmake b/cmake/FindGflags.cmake -deleted file mode 100644 -index 32c04ea..0000000 ---- a/cmake/FindGflags.cmake -+++ /dev/null -@@ -1,591 +0,0 @@ --# Ceres Solver - A fast non-linear least squares minimizer --# Copyright 2015 Google Inc. All rights reserved. --# http://ceres-solver.org/ --# --# Redistribution and use in source and binary forms, with or without --# modification, are permitted provided that the following conditions are met: --# --# * Redistributions of source code must retain the above copyright notice, --# this list of conditions and the following disclaimer. --# * Redistributions in binary form must reproduce the above copyright notice, --# this list of conditions and the following disclaimer in the documentation --# and/or other materials provided with the distribution. --# * Neither the name of Google Inc. nor the names of its contributors may be --# used to endorse or promote products derived from this software without --# specific prior written permission. --# --# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" --# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE --# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE --# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE --# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR --# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF --# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS --# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN --# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) --# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE --# POSSIBILITY OF SUCH DAMAGE. --# --# Author: alexs.mac@gmail.com (Alex Stewart) --# -- --# FindGflags.cmake - Find Google gflags logging library. --# --# This module will attempt to find gflags, either via an exported CMake --# configuration (generated by gflags >= 2.1 which are built with CMake), or --# by performing a standard search for all gflags components. The order of --# precedence for these two methods of finding gflags is controlled by: --# GFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION. --# --# This module defines the following variables: --# --# GFLAGS_FOUND: TRUE iff gflags is found. --# GFLAGS_INCLUDE_DIRS: Include directories for gflags. --# GFLAGS_LIBRARIES: Libraries required to link gflags. --# GFLAGS_NAMESPACE: The namespace in which gflags is defined. In versions of --# gflags < 2.1, this was google, for versions >= 2.1 it is --# by default gflags, although can be configured when building --# gflags to be something else (i.e. google for legacy --# compatibility). --# FOUND_INSTALLED_GFLAGS_CMAKE_CONFIGURATION: True iff the version of gflags --# found was built & installed / --# exported as a CMake package. --# --# The following variables control the behaviour of this module when an exported --# gflags CMake configuration is not found. --# --# GFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION: TRUE/FALSE, iff TRUE then --# then prefer using an exported CMake configuration --# generated by gflags >= 2.1 over searching for the --# gflags components manually. Otherwise (FALSE) --# ignore any exported gflags CMake configurations and --# always perform a manual search for the components. --# Default: TRUE iff user does not define this variable --# before we are called, and does NOT specify either --# GFLAGS_INCLUDE_DIR_HINTS or GFLAGS_LIBRARY_DIR_HINTS --# otherwise FALSE. --# GFLAGS_INCLUDE_DIR_HINTS: List of additional directories in which to --# search for gflags includes, e.g: /timbuktu/include. --# GFLAGS_LIBRARY_DIR_HINTS: List of additional directories in which to --# search for gflags libraries, e.g: /timbuktu/lib. --# --# The following variables are also defined by this module, but in line with --# CMake recommended FindPackage() module style should NOT be referenced directly --# by callers (use the plural variables detailed above instead). These variables --# do however affect the behaviour of the module via FIND_[PATH/LIBRARY]() which --# are NOT re-called (i.e. search for library is not repeated) if these variables --# are set with valid values _in the CMake cache_. This means that if these --# variables are set directly in the cache, either by the user in the CMake GUI, --# or by the user passing -DVAR=VALUE directives to CMake when called (which --# explicitly defines a cache variable), then they will be used verbatim, --# bypassing the HINTS variables and other hard-coded search locations. --# --# GFLAGS_INCLUDE_DIR: Include directory for gflags, not including the --# include directory of any dependencies. --# GFLAGS_LIBRARY: gflags library, not including the libraries of any --# dependencies. -- --# Reset CALLERS_CMAKE_FIND_LIBRARY_PREFIXES to its value when FindGflags was --# invoked, necessary for MSVC. --macro(GFLAGS_RESET_FIND_LIBRARY_PREFIX) -- if (MSVC AND CALLERS_CMAKE_FIND_LIBRARY_PREFIXES) -- set(CMAKE_FIND_LIBRARY_PREFIXES "${CALLERS_CMAKE_FIND_LIBRARY_PREFIXES}") -- endif() --endmacro(GFLAGS_RESET_FIND_LIBRARY_PREFIX) -- --# Called if we failed to find gflags or any of it's required dependencies, --# unsets all public (designed to be used externally) variables and reports --# error message at priority depending upon [REQUIRED/QUIET/] argument. --macro(GFLAGS_REPORT_NOT_FOUND REASON_MSG) -- unset(GFLAGS_FOUND) -- unset(GFLAGS_INCLUDE_DIRS) -- unset(GFLAGS_LIBRARIES) -- # Do not use unset, as we want to keep GFLAGS_NAMESPACE in the cache, -- # but simply clear its value. -- set(GFLAGS_NAMESPACE "" CACHE STRING -- "gflags namespace (google or gflags)" FORCE) -- -- # Make results of search visible in the CMake GUI if gflags has not -- # been found so that user does not have to toggle to advanced view. -- mark_as_advanced(CLEAR GFLAGS_INCLUDE_DIR -- GFLAGS_LIBRARY -- GFLAGS_NAMESPACE) -- -- gflags_reset_find_library_prefix() -- -- # Note _FIND_[REQUIRED/QUIETLY] variables defined by FindPackage() -- # use the camelcase library name, not uppercase. -- if (Gflags_FIND_QUIETLY) -- message(STATUS "Failed to find gflags - " ${REASON_MSG} ${ARGN}) -- elseif (Gflags_FIND_REQUIRED) -- message(FATAL_ERROR "Failed to find gflags - " ${REASON_MSG} ${ARGN}) -- else() -- # Neither QUIETLY nor REQUIRED, use no priority which emits a message -- # but continues configuration and allows generation. -- message("-- Failed to find gflags - " ${REASON_MSG} ${ARGN}) -- endif () -- return() --endmacro(GFLAGS_REPORT_NOT_FOUND) -- --# Verify that all variable names passed as arguments are defined (can be empty --# but must be defined) or raise a fatal error. --macro(GFLAGS_CHECK_VARS_DEFINED) -- foreach(CHECK_VAR ${ARGN}) -- if (NOT DEFINED ${CHECK_VAR}) -- message(FATAL_ERROR "Ceres Bug: ${CHECK_VAR} is not defined.") -- endif() -- endforeach() --endmacro(GFLAGS_CHECK_VARS_DEFINED) -- --# Use check_cxx_source_compiles() to compile trivial test programs to determine --# the gflags namespace. This works on all OSs except Windows. If using Visual --# Studio, it fails because msbuild forces check_cxx_source_compiles() to use --# CMAKE_BUILD_TYPE=Debug for the test project, which usually breaks detection --# because MSVC requires that the test project use the same build type as gflags, --# which would normally be built in Release. --# --# Defines: GFLAGS_NAMESPACE in the caller's scope with the detected namespace, --# which is blank (empty string, will test FALSE is CMake conditionals) --# if detection failed. --function(GFLAGS_CHECK_GFLAGS_NAMESPACE_USING_TRY_COMPILE) -- # Verify that all required variables are defined. -- gflags_check_vars_defined( -- GFLAGS_INCLUDE_DIR GFLAGS_LIBRARY) -- # Ensure that GFLAGS_NAMESPACE is always unset on completion unless -- # we explicitly set if after having the correct namespace. -- set(GFLAGS_NAMESPACE "" PARENT_SCOPE) -- -- include(CheckCXXSourceCompiles) -- # Setup include path & link library for gflags for CHECK_CXX_SOURCE_COMPILES. -- set(CMAKE_REQUIRED_INCLUDES ${GFLAGS_INCLUDE_DIR}) -- set(CMAKE_REQUIRED_LIBRARIES ${GFLAGS_LIBRARY} ${GFLAGS_LINK_LIBRARIES}) -- # First try the (older) google namespace. Note that the output variable -- # MUST be unique to the build type as otherwise the test is not repeated as -- # it is assumed to have already been performed. -- check_cxx_source_compiles( -- "#include -- int main(int argc, char * argv[]) { -- google::ParseCommandLineFlags(&argc, &argv, true); -- return 0; -- }" -- GFLAGS_IN_GOOGLE_NAMESPACE) -- if (GFLAGS_IN_GOOGLE_NAMESPACE) -- set(GFLAGS_NAMESPACE google PARENT_SCOPE) -- return() -- endif() -- -- # Try (newer) gflags namespace instead. Note that the output variable -- # MUST be unique to the build type as otherwise the test is not repeated as -- # it is assumed to have already been performed. -- set(CMAKE_REQUIRED_INCLUDES ${GFLAGS_INCLUDE_DIR}) -- set(CMAKE_REQUIRED_LIBRARIES ${GFLAGS_LIBRARY} ${GFLAGS_LINK_LIBRARIES}) -- check_cxx_source_compiles( -- "#include -- int main(int argc, char * argv[]) { -- gflags::ParseCommandLineFlags(&argc, &argv, true); -- return 0; -- }" -- GFLAGS_IN_GFLAGS_NAMESPACE) -- if (GFLAGS_IN_GFLAGS_NAMESPACE) -- set(GFLAGS_NAMESPACE gflags PARENT_SCOPE) -- return() -- endif (GFLAGS_IN_GFLAGS_NAMESPACE) --endfunction(GFLAGS_CHECK_GFLAGS_NAMESPACE_USING_TRY_COMPILE) -- --# Use regex on the gflags headers to attempt to determine the gflags namespace. --# Checks both gflags.h (contained namespace on versions < 2.1.2) and --# gflags_declare.h, which contains the namespace on versions >= 2.1.2. --# In general, this method should only be used when --# GFLAGS_CHECK_GFLAGS_NAMESPACE_USING_TRY_COMPILE() cannot be used, or has --# failed. --# --# Defines: GFLAGS_NAMESPACE in the caller's scope with the detected namespace, --# which is blank (empty string, will test FALSE is CMake conditionals) --# if detection failed. --function(GFLAGS_CHECK_GFLAGS_NAMESPACE_USING_REGEX) -- # Verify that all required variables are defined. -- gflags_check_vars_defined(GFLAGS_INCLUDE_DIR) -- # Ensure that GFLAGS_NAMESPACE is always undefined on completion unless -- # we explicitly set if after having the correct namespace. -- set(GFLAGS_NAMESPACE "" PARENT_SCOPE) -- -- # Scan gflags.h to identify what namespace gflags was built with. On -- # versions of gflags < 2.1.2, gflags.h was configured with the namespace -- # directly, on >= 2.1.2, gflags.h uses the GFLAGS_NAMESPACE #define which -- # is defined in gflags_declare.h, we try each location in turn. -- set(GFLAGS_HEADER_FILE ${GFLAGS_INCLUDE_DIR}/gflags/gflags.h) -- if (NOT EXISTS ${GFLAGS_HEADER_FILE}) -- gflags_report_not_found( -- "Could not find file: ${GFLAGS_HEADER_FILE} " -- "containing namespace information in gflags install located at: " -- "${GFLAGS_INCLUDE_DIR}.") -- endif() -- file(READ ${GFLAGS_HEADER_FILE} GFLAGS_HEADER_FILE_CONTENTS) -- -- string(REGEX MATCH "namespace [A-Za-z]+" -- GFLAGS_NAMESPACE "${GFLAGS_HEADER_FILE_CONTENTS}") -- string(REGEX REPLACE "namespace ([A-Za-z]+)" "\\1" -- GFLAGS_NAMESPACE "${GFLAGS_NAMESPACE}") -- -- if (NOT GFLAGS_NAMESPACE) -- gflags_report_not_found( -- "Failed to extract gflags namespace from header file: " -- "${GFLAGS_HEADER_FILE}.") -- endif (NOT GFLAGS_NAMESPACE) -- -- if (GFLAGS_NAMESPACE STREQUAL "google" OR -- GFLAGS_NAMESPACE STREQUAL "gflags") -- # Found valid gflags namespace from gflags.h. -- set(GFLAGS_NAMESPACE "${GFLAGS_NAMESPACE}" PARENT_SCOPE) -- return() -- endif() -- -- # Failed to find gflags namespace from gflags.h, gflags is likely a new -- # version, check gflags_declare.h, which in newer versions (>= 2.1.2) contains -- # the GFLAGS_NAMESPACE #define, which is then referenced in gflags.h. -- set(GFLAGS_DECLARE_FILE ${GFLAGS_INCLUDE_DIR}/gflags/gflags_declare.h) -- if (NOT EXISTS ${GFLAGS_DECLARE_FILE}) -- gflags_report_not_found( -- "Could not find file: ${GFLAGS_DECLARE_FILE} " -- "containing namespace information in gflags install located at: " -- "${GFLAGS_INCLUDE_DIR}.") -- endif() -- file(READ ${GFLAGS_DECLARE_FILE} GFLAGS_DECLARE_FILE_CONTENTS) -- -- string(REGEX MATCH "#define GFLAGS_NAMESPACE [A-Za-z]+" -- GFLAGS_NAMESPACE "${GFLAGS_DECLARE_FILE_CONTENTS}") -- string(REGEX REPLACE "#define GFLAGS_NAMESPACE ([A-Za-z]+)" "\\1" -- GFLAGS_NAMESPACE "${GFLAGS_NAMESPACE}") -- -- if (NOT GFLAGS_NAMESPACE) -- gflags_report_not_found( -- "Failed to extract gflags namespace from declare file: " -- "${GFLAGS_DECLARE_FILE}.") -- endif (NOT GFLAGS_NAMESPACE) -- -- if (GFLAGS_NAMESPACE STREQUAL "google" OR -- GFLAGS_NAMESPACE STREQUAL "gflags") -- # Found valid gflags namespace from gflags.h. -- set(GFLAGS_NAMESPACE "${GFLAGS_NAMESPACE}" PARENT_SCOPE) -- return() -- endif() --endfunction(GFLAGS_CHECK_GFLAGS_NAMESPACE_USING_REGEX) -- --# Protect against any alternative find_package scripts for this library having --# been called previously (in a client project) which set GFLAGS_FOUND, but not --# the other variables we require / set here which could cause the search logic --# here to fail. --unset(GFLAGS_FOUND) -- --# ----------------------------------------------------------------- --# By default, if the user has expressed no preference for using an exported --# gflags CMake configuration over performing a search for the installed --# components, and has not specified any hints for the search locations, then --# prefer a gflags exported configuration if available. --if (NOT DEFINED GFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION -- AND NOT GFLAGS_INCLUDE_DIR_HINTS -- AND NOT GFLAGS_LIBRARY_DIR_HINTS) -- message(STATUS "No preference for use of exported gflags CMake configuration " -- "set, and no hints for include/library directories provided. " -- "Defaulting to preferring an installed/exported gflags CMake configuration " -- "if available.") -- set(GFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION TRUE) --endif() -- --if (GFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION) -- # Try to find an exported CMake configuration for gflags, as generated by -- # gflags versions >= 2.1. -- # -- # We search twice, s/t we can invert the ordering of precedence used by -- # find_package() for exported package build directories, and installed -- # packages (found via CMAKE_SYSTEM_PREFIX_PATH), listed as items 6) and 7) -- # respectively in [1]. -- # -- # By default, exported build directories are (in theory) detected first, and -- # this is usually the case on Windows. However, on OS X & Linux, the install -- # path (/usr/local) is typically present in the PATH environment variable -- # which is checked in item 4) in [1] (i.e. before both of the above, unless -- # NO_SYSTEM_ENVIRONMENT_PATH is passed). As such on those OSs installed -- # packages are usually detected in preference to exported package build -- # directories. -- # -- # To ensure a more consistent response across all OSs, and as users usually -- # want to prefer an installed version of a package over a locally built one -- # where both exist (esp. as the exported build directory might be removed -- # after installation), we first search with NO_CMAKE_PACKAGE_REGISTRY which -- # means any build directories exported by the user are ignored, and thus -- # installed directories are preferred. If this fails to find the package -- # we then research again, but without NO_CMAKE_PACKAGE_REGISTRY, so any -- # exported build directories will now be detected. -- # -- # To prevent confusion on Windows, we also pass NO_CMAKE_BUILDS_PATH (which -- # is item 5) in [1]), to not preferentially use projects that were built -- # recently with the CMake GUI to ensure that we always prefer an installed -- # version if available. -- # -- # [1] http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:find_package -- find_package(gflags QUIET -- NO_MODULE -- NO_CMAKE_PACKAGE_REGISTRY -- NO_CMAKE_BUILDS_PATH) -- if (gflags_FOUND) -- message(STATUS "Found installed version of gflags: ${gflags_DIR}") -- else(gflags_FOUND) -- # Failed to find an installed version of gflags, repeat search allowing -- # exported build directories. -- message(STATUS "Failed to find installed gflags CMake configuration, " -- "searching for gflags build directories exported with CMake.") -- # Again pass NO_CMAKE_BUILDS_PATH, as we know that gflags is exported and -- # do not want to treat projects built with the CMake GUI preferentially. -- find_package(gflags QUIET -- NO_MODULE -- NO_CMAKE_BUILDS_PATH) -- if (gflags_FOUND) -- message(STATUS "Found exported gflags build directory: ${gflags_DIR}") -- endif(gflags_FOUND) -- endif(gflags_FOUND) -- -- set(FOUND_INSTALLED_GFLAGS_CMAKE_CONFIGURATION ${gflags_FOUND}) -- -- # gflags v2.1 - 2.1.2 shipped with a bug in their gflags-config.cmake [1] -- # whereby gflags_LIBRARIES = "gflags", but there was no imported target -- # called "gflags", they were called: gflags[_nothreads]-[static/shared]. -- # As this causes linker errors when gflags is not installed in a location -- # on the current library paths, detect if this problem is present and -- # fix it. -- # -- # [1] https://github.com/gflags/gflags/issues/110 -- if (gflags_FOUND) -- # NOTE: This is not written as additional conditions in the outer -- # if (gflags_FOUND) as the NOT TARGET "${gflags_LIBRARIES}" -- # condition causes problems if gflags is not found. -- if (${gflags_VERSION} VERSION_LESS 2.1.3 AND -- NOT TARGET "${gflags_LIBRARIES}") -- message(STATUS "Detected broken gflags install in: ${gflags_DIR}, " -- "version: ${gflags_VERSION} <= 2.1.2 which defines gflags_LIBRARIES = " -- "${gflags_LIBRARIES} which is not an imported CMake target, see: " -- "https://github.com/gflags/gflags/issues/110. Attempting to fix by " -- "detecting correct gflags target.") -- # Ordering here expresses preference for detection, specifically we do not -- # want to use the _nothreads variants if the full library is available. -- list(APPEND CHECK_GFLAGS_IMPORTED_TARGET_NAMES -- gflags-shared gflags-static -- gflags_nothreads-shared gflags_nothreads-static) -- foreach(CHECK_GFLAGS_TARGET ${CHECK_GFLAGS_IMPORTED_TARGET_NAMES}) -- if (TARGET ${CHECK_GFLAGS_TARGET}) -- message(STATUS "Found valid gflags target: ${CHECK_GFLAGS_TARGET}, " -- "updating gflags_LIBRARIES.") -- set(gflags_LIBRARIES ${CHECK_GFLAGS_TARGET}) -- break() -- endif() -- endforeach() -- if (NOT TARGET ${gflags_LIBRARIES}) -- message(STATUS "Failed to fix detected broken gflags install in: " -- "${gflags_DIR}, version: ${gflags_VERSION} <= 2.1.2, none of the " -- "imported targets for gflags: ${CHECK_GFLAGS_IMPORTED_TARGET_NAMES} " -- "are defined. Will continue with a manual search for gflags " -- "components. We recommend you build/install a version of gflags > " -- "2.1.2 (or master).") -- set(FOUND_INSTALLED_GFLAGS_CMAKE_CONFIGURATION FALSE) -- endif() -- endif() -- endif() -- -- if (FOUND_INSTALLED_GFLAGS_CMAKE_CONFIGURATION) -- message(STATUS "Detected gflags version: ${gflags_VERSION}") -- set(GFLAGS_FOUND ${gflags_FOUND}) -- set(GFLAGS_INCLUDE_DIR ${gflags_INCLUDE_DIR}) -- set(GFLAGS_LIBRARY ${gflags_LIBRARIES}) -- -- # gflags does not export the namespace in their CMake configuration, so -- # use our function to determine what it should be, as it can be either -- # gflags or google dependent upon version & configuration. -- # -- # NOTE: We use the regex method to determine the namespace here, as -- # check_cxx_source_compiles() will not use imported targets, which -- # is what gflags will be in this case. -- gflags_check_gflags_namespace_using_regex() -- -- if (NOT GFLAGS_NAMESPACE) -- gflags_report_not_found( -- "Failed to determine gflags namespace using regex for gflags " -- "version: ${gflags_VERSION} exported here: ${gflags_DIR} using CMake.") -- endif (NOT GFLAGS_NAMESPACE) -- else (FOUND_INSTALLED_GFLAGS_CMAKE_CONFIGURATION) -- message(STATUS "Failed to find an installed/exported CMake configuration " -- "for gflags, will perform search for installed gflags components.") -- endif (FOUND_INSTALLED_GFLAGS_CMAKE_CONFIGURATION) --endif(GFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION) -- --if (NOT GFLAGS_FOUND) -- # Either failed to find an exported gflags CMake configuration, or user -- # told us not to use one. Perform a manual search for all gflags components. -- -- # Handle possible presence of lib prefix for libraries on MSVC, see -- # also GFLAGS_RESET_FIND_LIBRARY_PREFIX(). -- if (MSVC) -- # Preserve the caller's original values for CMAKE_FIND_LIBRARY_PREFIXES -- # s/t we can set it back before returning. -- set(CALLERS_CMAKE_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}") -- # The empty string in this list is important, it represents the case when -- # the libraries have no prefix (shared libraries / DLLs). -- set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "" "${CMAKE_FIND_LIBRARY_PREFIXES}") -- endif (MSVC) -- -- # Search user-installed locations first, so that we prefer user installs -- # to system installs where both exist. -- list(APPEND GFLAGS_CHECK_INCLUDE_DIRS -- /usr/local/include -- /usr/local/homebrew/include # Mac OS X -- /opt/local/var/macports/software # Mac OS X. -- /opt/local/include -- /usr/include) -- list(APPEND GFLAGS_CHECK_PATH_SUFFIXES -- gflags/include # Windows (for C:/Program Files prefix). -- gflags/Include ) # Windows (for C:/Program Files prefix). -- -- list(APPEND GFLAGS_CHECK_LIBRARY_DIRS -- /usr/local/lib -- /usr/local/homebrew/lib # Mac OS X. -- /opt/local/lib -- /usr/lib) -- list(APPEND GFLAGS_CHECK_LIBRARY_SUFFIXES -- gflags/lib # Windows (for C:/Program Files prefix). -- gflags/Lib ) # Windows (for C:/Program Files prefix). -- -- # Search supplied hint directories first if supplied. -- find_path(GFLAGS_INCLUDE_DIR -- NAMES gflags/gflags.h -- HINTS ${GFLAGS_INCLUDE_DIR_HINTS} -- PATHS ${GFLAGS_CHECK_INCLUDE_DIRS} -- PATH_SUFFIXES ${GFLAGS_CHECK_PATH_SUFFIXES}) -- if (NOT GFLAGS_INCLUDE_DIR OR -- NOT EXISTS ${GFLAGS_INCLUDE_DIR}) -- gflags_report_not_found( -- "Could not find gflags include directory, set GFLAGS_INCLUDE_DIR " -- "to directory containing gflags/gflags.h") -- endif (NOT GFLAGS_INCLUDE_DIR OR -- NOT EXISTS ${GFLAGS_INCLUDE_DIR}) -- -- find_library(GFLAGS_LIBRARY NAMES gflags -- HINTS ${GFLAGS_LIBRARY_DIR_HINTS} -- PATHS ${GFLAGS_CHECK_LIBRARY_DIRS} -- PATH_SUFFIXES ${GFLAGS_CHECK_LIBRARY_SUFFIXES}) -- if (NOT GFLAGS_LIBRARY OR -- NOT EXISTS ${GFLAGS_LIBRARY}) -- gflags_report_not_found( -- "Could not find gflags library, set GFLAGS_LIBRARY " -- "to full path to libgflags.") -- endif (NOT GFLAGS_LIBRARY OR -- NOT EXISTS ${GFLAGS_LIBRARY}) -- -- # gflags typically requires a threading library (which is OS dependent), note -- # that this defines the CMAKE_THREAD_LIBS_INIT variable. If we are able to -- # detect threads, we assume that gflags requires it. -- find_package(Threads QUIET) -- set(GFLAGS_LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) -- # On Windows (including MinGW), the Shlwapi library is used by gflags if -- # available. -- if (WIN32) -- include(CheckIncludeFileCXX) -- check_include_file_cxx("shlwapi.h" HAVE_SHLWAPI) -- if (HAVE_SHLWAPI) -- list(APPEND GFLAGS_LINK_LIBRARIES shlwapi.lib) -- endif(HAVE_SHLWAPI) -- endif (WIN32) -- -- # Mark internally as found, then verify. GFLAGS_REPORT_NOT_FOUND() unsets -- # if called. -- set(GFLAGS_FOUND TRUE) -- -- # Identify what namespace gflags was built with. -- if (GFLAGS_INCLUDE_DIR AND NOT GFLAGS_NAMESPACE) -- # To handle Windows peculiarities / CMake bugs on MSVC we try two approaches -- # to detect the gflags namespace: -- # -- # 1) Try to use check_cxx_source_compiles() to compile a trivial program -- # with the two choices for the gflags namespace. -- # -- # 2) [In the event 1) fails] Use regex on the gflags headers to try to -- # determine the gflags namespace. Whilst this is less robust than 1), -- # it does avoid any interaction with msbuild. -- gflags_check_gflags_namespace_using_try_compile() -- -- if (NOT GFLAGS_NAMESPACE) -- # Failed to determine gflags namespace using check_cxx_source_compiles() -- # method, try and obtain it using regex on the gflags headers instead. -- message(STATUS "Failed to find gflags namespace using using " -- "check_cxx_source_compiles(), trying namespace regex instead, " -- "this is expected on Windows.") -- gflags_check_gflags_namespace_using_regex() -- -- if (NOT GFLAGS_NAMESPACE) -- gflags_report_not_found( -- "Failed to determine gflags namespace either by " -- "check_cxx_source_compiles(), or namespace regex.") -- endif (NOT GFLAGS_NAMESPACE) -- endif (NOT GFLAGS_NAMESPACE) -- endif (GFLAGS_INCLUDE_DIR AND NOT GFLAGS_NAMESPACE) -- -- # Make the GFLAGS_NAMESPACE a cache variable s/t the user can view it, and could -- # overwrite it in the CMake GUI. -- set(GFLAGS_NAMESPACE "${GFLAGS_NAMESPACE}" CACHE STRING -- "gflags namespace (google or gflags)" FORCE) -- -- # gflags does not seem to provide any record of the version in its -- # source tree, thus cannot extract version. -- -- # Catch case when caller has set GFLAGS_NAMESPACE in the cache / GUI -- # with an invalid value. -- if (GFLAGS_NAMESPACE AND -- NOT GFLAGS_NAMESPACE STREQUAL "google" AND -- NOT GFLAGS_NAMESPACE STREQUAL "gflags") -- gflags_report_not_found( -- "Caller defined GFLAGS_NAMESPACE:" -- " ${GFLAGS_NAMESPACE} is not valid, not google or gflags.") -- endif () -- # Catch case when caller has set GFLAGS_INCLUDE_DIR in the cache / GUI and -- # thus FIND_[PATH/LIBRARY] are not called, but specified locations are -- # invalid, otherwise we would report the library as found. -- if (GFLAGS_INCLUDE_DIR AND -- NOT EXISTS ${GFLAGS_INCLUDE_DIR}/gflags/gflags.h) -- gflags_report_not_found( -- "Caller defined GFLAGS_INCLUDE_DIR:" -- " ${GFLAGS_INCLUDE_DIR} does not contain gflags/gflags.h header.") -- endif (GFLAGS_INCLUDE_DIR AND -- NOT EXISTS ${GFLAGS_INCLUDE_DIR}/gflags/gflags.h) -- # TODO: This regex for gflags library is pretty primitive, we use lowercase -- # for comparison to handle Windows using CamelCase library names, could -- # this check be better? -- string(TOLOWER "${GFLAGS_LIBRARY}" LOWERCASE_GFLAGS_LIBRARY) -- if (GFLAGS_LIBRARY AND -- NOT "${LOWERCASE_GFLAGS_LIBRARY}" MATCHES ".*gflags[^/]*") -- gflags_report_not_found( -- "Caller defined GFLAGS_LIBRARY: " -- "${GFLAGS_LIBRARY} does not match gflags.") -- endif (GFLAGS_LIBRARY AND -- NOT "${LOWERCASE_GFLAGS_LIBRARY}" MATCHES ".*gflags[^/]*") -- -- gflags_reset_find_library_prefix() -- --endif(NOT GFLAGS_FOUND) -- --# Set standard CMake FindPackage variables if found. --if (GFLAGS_FOUND) -- set(GFLAGS_INCLUDE_DIRS ${GFLAGS_INCLUDE_DIR}) -- set(GFLAGS_LIBRARIES ${GFLAGS_LIBRARY} ${GFLAGS_LINK_LIBRARIES}) --endif (GFLAGS_FOUND) -- --# Handle REQUIRED / QUIET optional arguments. --include(FindPackageHandleStandardArgs) --find_package_handle_standard_args(Gflags DEFAULT_MSG -- GFLAGS_INCLUDE_DIRS GFLAGS_LIBRARIES GFLAGS_NAMESPACE) -- --# Only mark internal variables as advanced if we found gflags, otherwise --# leave them visible in the standard GUI for the user to set manually. --if (GFLAGS_FOUND) -- mark_as_advanced(FORCE GFLAGS_INCLUDE_DIR -- GFLAGS_LIBRARY -- GFLAGS_NAMESPACE -- gflags_DIR) # Autogenerated by find_package(gflags) --endif (GFLAGS_FOUND) -diff --git a/cmake/FindGlog.cmake b/cmake/FindGlog.cmake -deleted file mode 100644 -index 979dced..0000000 ---- a/cmake/FindGlog.cmake -+++ /dev/null -@@ -1,346 +0,0 @@ --# Ceres Solver - A fast non-linear least squares minimizer --# Copyright 2015 Google Inc. All rights reserved. --# http://ceres-solver.org/ --# --# Redistribution and use in source and binary forms, with or without --# modification, are permitted provided that the following conditions are met: --# --# * Redistributions of source code must retain the above copyright notice, --# this list of conditions and the following disclaimer. --# * Redistributions in binary form must reproduce the above copyright notice, --# this list of conditions and the following disclaimer in the documentation --# and/or other materials provided with the distribution. --# * Neither the name of Google Inc. nor the names of its contributors may be --# used to endorse or promote products derived from this software without --# specific prior written permission. --# --# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" --# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE --# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE --# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE --# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR --# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF --# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS --# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN --# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) --# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE --# POSSIBILITY OF SUCH DAMAGE. --# --# Author: alexs.mac@gmail.com (Alex Stewart) --# -- --# FindGlog.cmake - Find Google glog logging library. --# --# This module defines the following variables: --# --# GLOG_FOUND: TRUE iff glog is found. --# GLOG_INCLUDE_DIRS: Include directories for glog. --# GLOG_LIBRARIES: Libraries required to link glog. --# FOUND_INSTALLED_GLOG_CMAKE_CONFIGURATION: True iff the version of glog found --# was built & installed / exported --# as a CMake package. --# --# The following variables control the behaviour of this module: --# --# GLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION: TRUE/FALSE, iff TRUE then --# then prefer using an exported CMake configuration --# generated by glog > 0.3.4 over searching for the --# glog components manually. Otherwise (FALSE) --# ignore any exported glog CMake configurations and --# always perform a manual search for the components. --# Default: TRUE iff user does not define this variable --# before we are called, and does NOT specify either --# GLOG_INCLUDE_DIR_HINTS or GLOG_LIBRARY_DIR_HINTS --# otherwise FALSE. --# GLOG_INCLUDE_DIR_HINTS: List of additional directories in which to --# search for glog includes, e.g: /timbuktu/include. --# GLOG_LIBRARY_DIR_HINTS: List of additional directories in which to --# search for glog libraries, e.g: /timbuktu/lib. --# --# The following variables are also defined by this module, but in line with --# CMake recommended FindPackage() module style should NOT be referenced directly --# by callers (use the plural variables detailed above instead). These variables --# do however affect the behaviour of the module via FIND_[PATH/LIBRARY]() which --# are NOT re-called (i.e. search for library is not repeated) if these variables --# are set with valid values _in the CMake cache_. This means that if these --# variables are set directly in the cache, either by the user in the CMake GUI, --# or by the user passing -DVAR=VALUE directives to CMake when called (which --# explicitly defines a cache variable), then they will be used verbatim, --# bypassing the HINTS variables and other hard-coded search locations. --# --# GLOG_INCLUDE_DIR: Include directory for glog, not including the --# include directory of any dependencies. --# GLOG_LIBRARY: glog library, not including the libraries of any --# dependencies. -- --# Reset CALLERS_CMAKE_FIND_LIBRARY_PREFIXES to its value when --# FindGlog was invoked. --macro(GLOG_RESET_FIND_LIBRARY_PREFIX) -- if (MSVC AND CALLERS_CMAKE_FIND_LIBRARY_PREFIXES) -- set(CMAKE_FIND_LIBRARY_PREFIXES "${CALLERS_CMAKE_FIND_LIBRARY_PREFIXES}") -- endif() --endmacro(GLOG_RESET_FIND_LIBRARY_PREFIX) -- --# Called if we failed to find glog or any of it's required dependencies, --# unsets all public (designed to be used externally) variables and reports --# error message at priority depending upon [REQUIRED/QUIET/] argument. --macro(GLOG_REPORT_NOT_FOUND REASON_MSG) -- unset(GLOG_FOUND) -- unset(GLOG_INCLUDE_DIRS) -- unset(GLOG_LIBRARIES) -- # Make results of search visible in the CMake GUI if glog has not -- # been found so that user does not have to toggle to advanced view. -- mark_as_advanced(CLEAR GLOG_INCLUDE_DIR -- GLOG_LIBRARY) -- -- glog_reset_find_library_prefix() -- -- # Note _FIND_[REQUIRED/QUIETLY] variables defined by FindPackage() -- # use the camelcase library name, not uppercase. -- if (Glog_FIND_QUIETLY) -- message(STATUS "Failed to find glog - " ${REASON_MSG} ${ARGN}) -- elseif (Glog_FIND_REQUIRED) -- message(FATAL_ERROR "Failed to find glog - " ${REASON_MSG} ${ARGN}) -- else() -- # Neither QUIETLY nor REQUIRED, use no priority which emits a message -- # but continues configuration and allows generation. -- message("-- Failed to find glog - " ${REASON_MSG} ${ARGN}) -- endif () -- return() --endmacro(GLOG_REPORT_NOT_FOUND) -- --# Protect against any alternative find_package scripts for this library having --# been called previously (in a client project) which set GLOG_FOUND, but not --# the other variables we require / set here which could cause the search logic --# here to fail. --unset(GLOG_FOUND) -- --# ----------------------------------------------------------------- --# By default, if the user has expressed no preference for using an exported --# glog CMake configuration over performing a search for the installed --# components, and has not specified any hints for the search locations, then --# prefer a glog exported configuration if available. --if (NOT DEFINED GLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION -- AND NOT GLOG_INCLUDE_DIR_HINTS -- AND NOT GLOG_LIBRARY_DIR_HINTS) -- message(STATUS "No preference for use of exported glog CMake configuration " -- "set, and no hints for include/library directories provided. " -- "Defaulting to preferring an installed/exported glog CMake configuration " -- "if available.") -- set(GLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION TRUE) --endif() -- --if (GLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION) -- # Try to find an exported CMake configuration for glog, as generated by -- # glog versions > 0.3.4 -- # -- # We search twice, s/t we can invert the ordering of precedence used by -- # find_package() for exported package build directories, and installed -- # packages (found via CMAKE_SYSTEM_PREFIX_PATH), listed as items 6) and 7) -- # respectively in [1]. -- # -- # By default, exported build directories are (in theory) detected first, and -- # this is usually the case on Windows. However, on OS X & Linux, the install -- # path (/usr/local) is typically present in the PATH environment variable -- # which is checked in item 4) in [1] (i.e. before both of the above, unless -- # NO_SYSTEM_ENVIRONMENT_PATH is passed). As such on those OSs installed -- # packages are usually detected in preference to exported package build -- # directories. -- # -- # To ensure a more consistent response across all OSs, and as users usually -- # want to prefer an installed version of a package over a locally built one -- # where both exist (esp. as the exported build directory might be removed -- # after installation), we first search with NO_CMAKE_PACKAGE_REGISTRY which -- # means any build directories exported by the user are ignored, and thus -- # installed directories are preferred. If this fails to find the package -- # we then research again, but without NO_CMAKE_PACKAGE_REGISTRY, so any -- # exported build directories will now be detected. -- # -- # To prevent confusion on Windows, we also pass NO_CMAKE_BUILDS_PATH (which -- # is item 5) in [1]), to not preferentially use projects that were built -- # recently with the CMake GUI to ensure that we always prefer an installed -- # version if available. -- # -- # NOTE: We use the NAMES option as glog erroneously uses 'google-glog' as its -- # project name when built with CMake, but exports itself as just 'glog'. -- # On Linux/OS X this does not break detection as the project name is -- # not used as part of the install path for the CMake package files, -- # e.g. /usr/local/lib/cmake/glog, where the suffix is hardcoded -- # in glog's CMakeLists. However, on Windows the project name *is* -- # part of the install prefix: C:/Program Files/google-glog/[include,lib]. -- # However, by default CMake checks: -- # C:/Program Files/ which does not -- # exist and thus detection fails. Thus we use the NAMES to force the -- # search to use both google-glog & glog. -- # -- # [1] http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:find_package -- find_package(glog QUIET -- NAMES google-glog glog -- NO_MODULE -- NO_CMAKE_PACKAGE_REGISTRY -- NO_CMAKE_BUILDS_PATH) -- if (glog_FOUND) -- message(STATUS "Found installed version of glog: ${glog_DIR}") -- else() -- # Failed to find an installed version of glog, repeat search allowing -- # exported build directories. -- message(STATUS "Failed to find installed glog CMake configuration, " -- "searching for glog build directories exported with CMake.") -- # Again pass NO_CMAKE_BUILDS_PATH, as we know that glog is exported and -- # do not want to treat projects built with the CMake GUI preferentially. -- find_package(glog QUIET -- NAMES google-glog glog -- NO_MODULE -- NO_CMAKE_BUILDS_PATH) -- if (glog_FOUND) -- message(STATUS "Found exported glog build directory: ${glog_DIR}") -- endif(glog_FOUND) -- endif(glog_FOUND) -- -- set(FOUND_INSTALLED_GLOG_CMAKE_CONFIGURATION ${glog_FOUND}) -- -- if (FOUND_INSTALLED_GLOG_CMAKE_CONFIGURATION) -- message(STATUS "Detected glog version: ${glog_VERSION}") -- set(GLOG_FOUND ${glog_FOUND}) -- # glog wraps the include directories into the exported glog::glog target. -- set(GLOG_INCLUDE_DIR "") -- set(GLOG_LIBRARY glog::glog) -- else (FOUND_INSTALLED_GLOG_CMAKE_CONFIGURATION) -- message(STATUS "Failed to find an installed/exported CMake configuration " -- "for glog, will perform search for installed glog components.") -- endif (FOUND_INSTALLED_GLOG_CMAKE_CONFIGURATION) --endif(GLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION) -- --if (NOT GLOG_FOUND) -- # Either failed to find an exported glog CMake configuration, or user -- # told us not to use one. Perform a manual search for all glog components. -- -- # Handle possible presence of lib prefix for libraries on MSVC, see -- # also GLOG_RESET_FIND_LIBRARY_PREFIX(). -- if (MSVC) -- # Preserve the caller's original values for CMAKE_FIND_LIBRARY_PREFIXES -- # s/t we can set it back before returning. -- set(CALLERS_CMAKE_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}") -- # The empty string in this list is important, it represents the case when -- # the libraries have no prefix (shared libraries / DLLs). -- set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "" "${CMAKE_FIND_LIBRARY_PREFIXES}") -- endif (MSVC) -- -- # Search user-installed locations first, so that we prefer user installs -- # to system installs where both exist. -- list(APPEND GLOG_CHECK_INCLUDE_DIRS -- /usr/local/include -- /usr/local/homebrew/include # Mac OS X -- /opt/local/var/macports/software # Mac OS X. -- /opt/local/include -- /usr/include) -- # Windows (for C:/Program Files prefix). -- list(APPEND GLOG_CHECK_PATH_SUFFIXES -- glog/include -- glog/Include -- Glog/include -- Glog/Include -- google-glog/include # CMake installs with project name prefix. -- google-glog/Include) -- -- list(APPEND GLOG_CHECK_LIBRARY_DIRS -- /usr/local/lib -- /usr/local/homebrew/lib # Mac OS X. -- /opt/local/lib -- /usr/lib) -- # Windows (for C:/Program Files prefix). -- list(APPEND GLOG_CHECK_LIBRARY_SUFFIXES -- glog/lib -- glog/Lib -- Glog/lib -- Glog/Lib -- google-glog/lib # CMake installs with project name prefix. -- google-glog/Lib) -- -- # Search supplied hint directories first if supplied. -- find_path(GLOG_INCLUDE_DIR -- NAMES glog/logging.h -- HINTS ${GLOG_INCLUDE_DIR_HINTS} -- PATHS ${GLOG_CHECK_INCLUDE_DIRS} -- PATH_SUFFIXES ${GLOG_CHECK_PATH_SUFFIXES}) -- if (NOT GLOG_INCLUDE_DIR OR -- NOT EXISTS ${GLOG_INCLUDE_DIR}) -- glog_report_not_found( -- "Could not find glog include directory, set GLOG_INCLUDE_DIR " -- "to directory containing glog/logging.h") -- endif (NOT GLOG_INCLUDE_DIR OR -- NOT EXISTS ${GLOG_INCLUDE_DIR}) -- -- find_library(GLOG_LIBRARY NAMES glog -- HINTS ${GLOG_LIBRARY_DIR_HINTS} -- PATHS ${GLOG_CHECK_LIBRARY_DIRS} -- PATH_SUFFIXES ${GLOG_CHECK_LIBRARY_SUFFIXES}) -- if (NOT GLOG_LIBRARY OR -- NOT EXISTS ${GLOG_LIBRARY}) -- glog_report_not_found( -- "Could not find glog library, set GLOG_LIBRARY " -- "to full path to libglog.") -- endif (NOT GLOG_LIBRARY OR -- NOT EXISTS ${GLOG_LIBRARY}) -- -- # Mark internally as found, then verify. GLOG_REPORT_NOT_FOUND() unsets -- # if called. -- set(GLOG_FOUND TRUE) -- -- # Glog does not seem to provide any record of the version in its -- # source tree, thus cannot extract version. -- -- # Catch case when caller has set GLOG_INCLUDE_DIR in the cache / GUI and -- # thus FIND_[PATH/LIBRARY] are not called, but specified locations are -- # invalid, otherwise we would report the library as found. -- if (GLOG_INCLUDE_DIR AND -- NOT EXISTS ${GLOG_INCLUDE_DIR}/glog/logging.h) -- glog_report_not_found( -- "Caller defined GLOG_INCLUDE_DIR:" -- " ${GLOG_INCLUDE_DIR} does not contain glog/logging.h header.") -- endif (GLOG_INCLUDE_DIR AND -- NOT EXISTS ${GLOG_INCLUDE_DIR}/glog/logging.h) -- # TODO: This regex for glog library is pretty primitive, we use lowercase -- # for comparison to handle Windows using CamelCase library names, could -- # this check be better? -- string(TOLOWER "${GLOG_LIBRARY}" LOWERCASE_GLOG_LIBRARY) -- if (GLOG_LIBRARY AND -- NOT "${LOWERCASE_GLOG_LIBRARY}" MATCHES ".*glog[^/]*") -- glog_report_not_found( -- "Caller defined GLOG_LIBRARY: " -- "${GLOG_LIBRARY} does not match glog.") -- endif (GLOG_LIBRARY AND -- NOT "${LOWERCASE_GLOG_LIBRARY}" MATCHES ".*glog[^/]*") -- -- glog_reset_find_library_prefix() -- --endif(NOT GLOG_FOUND) -- --# Set standard CMake FindPackage variables if found. --if (GLOG_FOUND) -- set(GLOG_INCLUDE_DIRS ${GLOG_INCLUDE_DIR}) -- set(GLOG_LIBRARIES ${GLOG_LIBRARY}) --endif (GLOG_FOUND) -- --# If we are using an exported CMake glog target, the include directories are --# wrapped into the target itself, and do not have to be (and are not) --# separately specified. In which case, we should not add GLOG_INCLUDE_DIRS --# to the list of required variables in order that glog be reported as found. --if (FOUND_INSTALLED_GLOG_CMAKE_CONFIGURATION) -- set(GLOG_REQUIRED_VARIABLES GLOG_LIBRARIES) --else() -- set(GLOG_REQUIRED_VARIABLES GLOG_INCLUDE_DIRS GLOG_LIBRARIES) --endif() -- --# Handle REQUIRED / QUIET optional arguments. --include(FindPackageHandleStandardArgs) --find_package_handle_standard_args(Glog DEFAULT_MSG -- ${GLOG_REQUIRED_VARIABLES}) -- --# Only mark internal variables as advanced if we found glog, otherwise --# leave them visible in the standard GUI for the user to set manually. --if (GLOG_FOUND) -- mark_as_advanced(FORCE GLOG_INCLUDE_DIR -- GLOG_LIBRARY -- glog_DIR) # Autogenerated by find_package(glog) --endif (GLOG_FOUND) diff --git a/ports/ceres/0004_use_glog_target.patch b/ports/ceres/0003_use_glog_target.patch similarity index 100% rename from ports/ceres/0004_use_glog_target.patch rename to ports/ceres/0003_use_glog_target.patch diff --git a/ports/ceres/0005_fix_exported_ceres_config.patch b/ports/ceres/0004_fix_exported_ceres_config.patch similarity index 100% rename from ports/ceres/0005_fix_exported_ceres_config.patch rename to ports/ceres/0004_fix_exported_ceres_config.patch diff --git a/ports/ceres/CONTROL b/ports/ceres/CONTROL index 3c890ff533..47ae7051e5 100644 --- a/ports/ceres/CONTROL +++ b/ports/ceres/CONTROL @@ -1,11 +1,10 @@ Source: ceres -Version: 1.14.0-3 -# eigen is always required by CMake, even if it isn't used. +Version: 1.14.0-4 Build-Depends: glog, eigen3 Description: non-linear optimization package Feature: lapack -Build-Depends: clapack +Build-Depends: clapack (!osx) Description: Use Lapack in Ceres Feature: suitesparse diff --git a/ports/ceres/portfile.cmake b/ports/ceres/portfile.cmake index 1c52b2d931..f1b21d6479 100644 --- a/ports/ceres/portfile.cmake +++ b/ports/ceres/portfile.cmake @@ -17,11 +17,16 @@ vcpkg_from_github( PATCHES 0001_add_missing_include_path.patch 0002_cmakelists_fixes.patch - 0003_remove_unnecessary_cmake_modules.patch - 0004_use_glog_target.patch - 0005_fix_exported_ceres_config.patch + 0003_use_glog_target.patch + 0004_fix_exported_ceres_config.patch ) +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/FindSuiteSparse.cmake) +#file(REMOVE ${SOURCE_PATH}/cmake/FindTBB.cmake) + set(SUITESPARSE OFF) if("suitesparse" IN_LIST FEATURES) set(SUITESPARSE ON) @@ -59,14 +64,12 @@ vcpkg_configure_cmake( -DEIGENSPARSE=${EIGENSPARSE} -DLAPACK=${LAPACK} -DSUITESPARSE=${SUITESPARSE} - -DGFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION=ON - -DGLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION=OFF # TheiaSfm doesn't work well with this. -DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT_VALUE} ) vcpkg_install_cmake() -if(WIN32) +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake") else() vcpkg_fixup_cmake_targets(CONFIG_PATH "lib${LIB_SUFFIX}/cmake/Ceres") @@ -75,7 +78,7 @@ endif() vcpkg_copy_pdbs() # Changes target search path -if(WIN32) +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") 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}") diff --git a/ports/clapack/CONTROL b/ports/clapack/CONTROL index 1a862a1138..9cdebdf74a 100644 --- a/ports/clapack/CONTROL +++ b/ports/clapack/CONTROL @@ -1,4 +1,4 @@ Source: clapack -Version: 3.2.1-4 +Version: 3.2.1-6 Description: CLAPACK (f2c'ed version of LAPACK) Build-Depends: openblas (!osx) diff --git a/ports/clapack/FindLAPACK.cmake b/ports/clapack/FindLAPACK.cmake new file mode 100644 index 0000000000..dfbf2c73ee --- /dev/null +++ b/ports/clapack/FindLAPACK.cmake @@ -0,0 +1,198 @@ +#.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) + +set(CLAPACK_VERSION "3.2.1") + +if(UNIX) + find_library(ADDITIONAL_LAPACK_LIBRARY m) +endif() + +if(NOT F2C_LIBRARY) + find_library(F2C_LIBRARY_RELEASE NAMES f2c libf2c) + find_library(F2C_LIBRARY_DEBUG NAMES f2cd libf2cd) + list(APPEND F2C_LIBRARY_RELEASE ${ADDITIONAL_LAPACK_LIBRARY}) + list(APPEND F2C_LIBRARY_DEBUG ${ADDITIONAL_LAPACK_LIBRARY}) + select_library_configurations(F2C) +endif() + +find_package(BLAS) + +if(NOT LAPACK_LIBRARY) + find_library(LAPACK_LIBRARY_RELEASE NAMES lapack) + find_library(LAPACK_LIBRARY_DEBUG NAMES lapackd) + list(APPEND LAPACK_LIBRARY_RELEASE ${F2C_LIBRARY_RELEASE}) + list(APPEND LAPACK_LIBRARY_DEBUG ${F2C_LIBRARY_DEBUG}) + select_library_configurations(LAPACK) +endif() + +list(APPEND LAPACK_LIBRARY ${BLAS_LIBRARIES}) + +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) + +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_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) + +if(WIN32) + string( REPLACE ".lib" ".dll" LAPACK_LIBRARY_RELEASE_DLL "${LAPACK_LIBRARY_RELEASE}" ) + string( REPLACE ".lib" ".dll" LAPACK_LIBRARY_DEBUG_DLL "${LAPACK_LIBRARY_DEBUG}" ) + string( REPLACE ".lib" ".dll" F2C_LIBRARY_RELEASE_DLL "${F2C_LIBRARY_RELEASE}" ) + string( REPLACE ".lib" ".dll" F2C_LIBRARY_DEBUG_DLL "${F2C_LIBRARY_DEBUG}" ) +endif() + +find_package_handle_standard_args(CLAPACK DEFAULT_MSG CLAPACK_LIBRARY CLAPACK_INCLUDE_DIR) +mark_as_advanced(CLAPACK_INCLUDE_DIR CLAPACK_LIBRARY) + +find_package_handle_standard_args(LAPACK DEFAULT_MSG LAPACK_LIBRARY LAPACK_INCLUDE_DIR) +mark_as_advanced(LAPACK_INCLUDE_DIR LAPACK_LIBRARY) + +find_package_handle_standard_args(F2C DEFAULT_MSG F2C_LIBRARY F2C_INCLUDE_DIR) +mark_as_advanced(F2C_INCLUDE_DIR F2C_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 "${LAPACK_LIBRARY_RELEASE}" + INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}" + 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 "${LAPACK_LIBRARY_DEBUG}" ) + endif() + else() + add_library( clapack::clapack UNKNOWN IMPORTED ) + set_target_properties( clapack::clapack PROPERTIES + IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE}" + INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}" + 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 "${LAPACK_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 "${LAPACK_LIBRARY_RELEASE}" + INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}" + 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 "${LAPACK_LIBRARY_DEBUG}" ) + endif() + else() + add_library( lapack UNKNOWN IMPORTED ) + set_target_properties( lapack PROPERTIES + IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE}" + INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}" + IMPORTED_CONFIGURATIONS Release + 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 "${LAPACK_LIBRARY_DEBUG}" ) + endif() + endif() +endif() + +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) diff --git a/ports/clapack/fix-lack-library.patch b/ports/clapack/fix-lack-library.patch deleted file mode 100644 index 8e9bd5178a..0000000000 --- a/ports/clapack/fix-lack-library.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt -index ca1473f..fa54e94 100644 ---- a/F2CLIBS/libf2c/CMakeLists.txt -+++ b/F2CLIBS/libf2c/CMakeLists.txt -@@ -63,3 +63,13 @@ if(UNIX) - target_link_libraries(f2c m) - endif() - set_property(TARGET f2c PROPERTY PREFIX lib) -+install(TARGETS f2c -+ RUNTIME DESTINATION bin -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib) -+ -+install(TARGETS arithchk -+ RUNTIME DESTINATION tools -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib) -+ diff --git a/ports/clapack/fix-linux-build.patch b/ports/clapack/fix-linux-build.patch deleted file mode 100644 index 230fa9bf61..0000000000 --- a/ports/clapack/fix-linux-build.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8c53def..9e0e398 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1,10 +1,10 @@ - cmake_minimum_required(VERSION 2.6) - project(CLAPACK C) --enable_testing() -+#enable_testing() - include(CTest) - - # BLAS_LIBRARIES --find_package(BLAS REQUIRED) -+find_package(OpenBLAS REQUIRED) - - if(WIN32 AND NOT CYGWIN) - set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/winsecond.c) -@@ -14,7 +14,7 @@ else() - set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/second.c) - set(DSECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/dsecnd.c) - endif() --enable_testing() -+#enable_testing() - option(USE_BLAS_WRAP "pre-pend f2c_ to each function in blas" OFF) - if(NOT USE_BLAS_WRAP) - # _zrotg_ seems to be missing in the wrap header -@@ -25,7 +25,7 @@ add_subdirectory(F2CLIBS) - - # add_subdirectory(BLAS) - add_subdirectory(SRC) --add_subdirectory(TESTING) -+#add_subdirectory(TESTING) - set(CLAPACK_VERSION 3.2.1) - set(CPACK_PACKAGE_VERSION_MAJOR 3) - set(CPACK_PACKAGE_VERSION_MINOR 2) -@@ -38,6 +38,6 @@ include(CPack) - # ${CLAPACK_BINARY_DIR}/clapack-config.cmake @ONLY) - - install(FILES -- ${CMAKE_CURRENT_LIST_DIR}/include/clapack.h -- ${CMAKE_CURRENT_LIST_DIR}/include/f2c.h -- DESTINATION include) -\ No newline at end of file -+ ${CMAKE_CURRENT_LIST_DIR}/INCLUDE/clapack.h -+ ${CMAKE_CURRENT_LIST_DIR}/INCLUDE/f2c.h -+ DESTINATION include) diff --git a/ports/clapack/lapack.def b/ports/clapack/lapack.def deleted file mode 100644 index e2070d99b4..0000000000 --- a/ports/clapack/lapack.def +++ /dev/null @@ -1,1453 +0,0 @@ -EXPORTS -sgbbrd_ -sgbcon_ -sgbequ_ -sgbrfs_ -sgbsv_ -sgbsvx_ -sgbtf2_ -sgbtrf_ -sgbtrs_ -sgebak_ -sgebal_ -sgebd2_ -sgebrd_ -sgecon_ -sgeequ_ -sgees_ -sgeesx_ -sgeev_ -sgeevx_ -sgegs_ -sgegv_ -sgehd2_ -sgehrd_ -sgelq2_ -sgelqf_ -sgels_ -sgelsd_ -sgelss_ -sgelsx_ -sgelsy_ -sgeql2_ -sgeqlf_ -sgeqp3_ -sgeqpf_ -sgeqr2_ -sgeqrf_ -sgerfs_ -sgerq2_ -sgerqf_ -sgesc2_ -sgesdd_ -sgesv_ -sgesvd_ -sgesvx_ -sgetc2_ -sgetf2_ -sgetrf_ -sgetri_ -sgetrs_ -sggbak_ -sggbal_ -sgges_ -sggesx_ -sggev_ -sggevx_ -sggglm_ -sgghrd_ -sgglse_ -sggqrf_ -sggrqf_ -sggsvd_ -sggsvp_ -sgtcon_ -sgtrfs_ -sgtsv_ -sgtsvx_ -sgttrf_ -sgttrs_ -sgtts2_ -shgeqz_ -shsein_ -shseqr_ -slabrd_ -slacon_ -slacn2_ -slaein_ -slaexc_ -slag2_ -slags2_ -slagtm_ -slagv2_ -slahqr_ -slahrd_ -slahr2_ -slaic1_ -slaln2_ -slals0_ -slalsa_ -slalsd_ -slangb_ -slange_ -slangt_ -slanhs_ -slansb_ -slansp_ -slansy_ -slantb_ -slantp_ -slantr_ -slanv2_ -slapll_ -slapmt_ -slaqgb_ -slaqge_ -slaqp2_ -slaqps_ -slaqsb_ -slaqsp_ -slaqsy_ -slaqr0_ -slaqr1_ -slaqr2_ -slaqr3_ -slaqr4_ -slaqr5_ -slaqtr_ -slar1v_ -slar2v_ -ilaslr_ -ilaslc_ -slarf_ -slarfb_ -slarfg_ -slarft_ -slarfx_ -slargv_ -slarrv_ -slartv_ -slarfp_ -slarz_ -slarzb_ -slarzt_ -slaswp_ -slasy2_ -slasyf_ -slatbs_ -slatdf_ -slatps_ -slatrd_ -slatrs_ -slatrz_ -slatzm_ -slauu2_ -slauum_ -sopgtr_ -sopmtr_ -sorg2l_ -sorg2r_ -sorgbr_ -sorghr_ -sorgl2_ -sorglq_ -sorgql_ -sorgqr_ -sorgr2_ -sorgrq_ -sorgtr_ -sorm2l_ -sorm2r_ -sormbr_ -sormhr_ -sorml2_ -sormlq_ -sormql_ -sormqr_ -sormr2_ -sormr3_ -sormrq_ -sormrz_ -sormtr_ -spbcon_ -spbequ_ -spbrfs_ -spbstf_ -spbsv_ -spbsvx_ -spbtf2_ -spbtrf_ -spbtrs_ -spocon_ -spoequ_ -sporfs_ -sposv_ -sposvx_ -spotf2_ -spotrf_ -spotri_ -spotrs_ -spstrf_ -spstf2_ -sppcon_ -sppequ_ -spprfs_ -sppsv_ -sppsvx_ -spptrf_ -spptri_ -spptrs_ -sptcon_ -spteqr_ -sptrfs_ -sptsv_ -sptsvx_ -spttrs_ -sptts2_ -srscl_ -ssbev_ -ssbevd_ -ssbevx_ -ssbgst_ -ssbgv_ -ssbgvd_ -ssbgvx_ -ssbtrd_ -sspcon_ -sspev_ -sspevd_ -sspevx_ -sspgst_ -sspgv_ -sspgvd_ -sspgvx_ -ssprfs_ -sspsv_ -sspsvx_ -ssptrd_ -ssptrf_ -ssptri_ -ssptrs_ -sstegr_ -sstein_ -sstev_ -sstevd_ -sstevr_ -sstevx_ -ssycon_ -ssyev_ -ssyevd_ -ssyevr_ -ssyevx_ -ssygs2_ -ssygst_ -ssygv_ -ssygvd_ -ssygvx_ -ssyrfs_ -ssysv_ -ssysvx_ -ssytd2_ -ssytf2_ -ssytrd_ -ssytrf_ -ssytri_ -ssytrs_ -stbcon_ -stbrfs_ -stbtrs_ -stgevc_ -stgex2_ -stgexc_ -stgsen_ -stgsja_ -stgsna_ -stgsy2_ -stgsyl_ -stpcon_ -stprfs_ -stptri_ -stptrs_ -strcon_ -strevc_ -strexc_ -strrfs_ -strsen_ -strsna_ -strsyl_ -strti2_ -strtri_ -strtrs_ -stzrqf_ -stzrzf_ -sstemr_ -slansf_ -spftrf_ -spftri_ -spftrs_ -ssfrk_ -stfsm_ -stftri_ -stfttp_ -stfttr_ -stpttf_ -stpttr_ -strttf_ -strttp_ -sgejsv_ -sgesvj_ -sgsvj0_ -sgsvj1_ -sgeequb_ -ssyequb_ -spoequb_ -sgbequb_ -dgbbrd_ -dgbcon_ -dgbequ_ -dgbrfs_ -dgbsv_ -dgbsvx_ -dgbtf2_ -dgbtrf_ -dgbtrs_ -dgebak_ -dgebal_ -dgebd2_ -dgebrd_ -dgecon_ -dgeequ_ -dgees_ -dgeesx_ -dgeev_ -dgeevx_ -dgegs_ -dgegv_ -dgehd2_ -dgehrd_ -dgelq2_ -dgelqf_ -dgels_ -dgelsd_ -dgelss_ -dgelsx_ -dgelsy_ -dgeql2_ -dgeqlf_ -dgeqp3_ -dgeqpf_ -dgeqr2_ -dgeqrf_ -dgerfs_ -dgerq2_ -dgerqf_ -dgesc2_ -dgesdd_ -dgesv_ -dgesvd_ -dgesvx_ -dgetc2_ -dgetf2_ -dgetrf_ -dgetri_ -dgetrs_ -dggbak_ -dggbal_ -dgges_ -dggesx_ -dggev_ -dggevx_ -dggglm_ -dgghrd_ -dgglse_ -dggqrf_ -dggrqf_ -dggsvd_ -dggsvp_ -dgtcon_ -dgtrfs_ -dgtsv_ -dgtsvx_ -dgttrf_ -dgttrs_ -dgtts2_ -dhgeqz_ -dhsein_ -dhseqr_ -dlabrd_ -dlacon_ -dlacn2_ -dlaein_ -dlaexc_ -dlag2_ -dlags2_ -dlagtm_ -dlagv2_ -dlahqr_ -dlahrd_ -dlahr2_ -dlaic1_ -dlaln2_ -dlals0_ -dlalsa_ -dlalsd_ -dlangb_ -dlange_ -dlangt_ -dlanhs_ -dlansb_ -dlansp_ -dlansy_ -dlantb_ -dlantp_ -dlantr_ -dlanv2_ -dlapll_ -dlapmt_ -dlaqgb_ -dlaqge_ -dlaqp2_ -dlaqps_ -dlaqsb_ -dlaqsp_ -dlaqsy_ -dlaqr0_ -dlaqr1_ -dlaqr2_ -dlaqr3_ -dlaqr4_ -dlaqr5_ -dlaqtr_ -dlar1v_ -dlar2v_ -iladlr_ -iladlc_ -dlarf_ -dlarfb_ -dlarfg_ -dlarft_ -dlarfx_ -dlargv_ -dlarrv_ -dlartv_ -dlarfp_ -dlarz_ -dlarzb_ -dlarzt_ -dlaswp_ -dlasy2_ -dlasyf_ -dlatbs_ -dlatdf_ -dlatps_ -dlatrd_ -dlatrs_ -dlatrz_ -dlatzm_ -dlauu2_ -dlauum_ -dopgtr_ -dopmtr_ -dorg2l_ -dorg2r_ -dorgbr_ -dorghr_ -dorgl2_ -dorglq_ -dorgql_ -dorgqr_ -dorgr2_ -dorgrq_ -dorgtr_ -dorm2l_ -dorm2r_ -dormbr_ -dormhr_ -dorml2_ -dormlq_ -dormql_ -dormqr_ -dormr2_ -dormr3_ -dormrq_ -dormrz_ -dormtr_ -dpbcon_ -dpbequ_ -dpbrfs_ -dpbstf_ -dpbsv_ -dpbsvx_ -dpbtf2_ -dpbtrf_ -dpbtrs_ -dpocon_ -dpoequ_ -dporfs_ -dposv_ -dposvx_ -dpotf2_ -dpotrf_ -dpotri_ -dpotrs_ -dpstrf_ -dpstf2_ -dppcon_ -dppequ_ -dpprfs_ -dppsv_ -dppsvx_ -dpptrf_ -dpptri_ -dpptrs_ -dptcon_ -dpteqr_ -dptrfs_ -dptsv_ -dptsvx_ -dpttrs_ -dptts2_ -drscl_ -dsbev_ -dsbevd_ -dsbevx_ -dsbgst_ -dsbgv_ -dsbgvd_ -dsbgvx_ -dsbtrd_ -dspcon_ -dspev_ -dspevd_ -dspevx_ -dspgst_ -dspgv_ -dspgvd_ -dspgvx_ -dsprfs_ -dspsv_ -dspsvx_ -dsptrd_ -dsptrf_ -dsptri_ -dsptrs_ -dstegr_ -dstein_ -dstev_ -dstevd_ -dstevr_ -dstevx_ -dsycon_ -dsyev_ -dsyevd_ -dsyevr_ -dsyevx_ -dsygs2_ -dsygst_ -dsygv_ -dsygvd_ -dsygvx_ -dsyrfs_ -dsysv_ -dsysvx_ -dsytd2_ -dsytf2_ -dsytrd_ -dsytrf_ -dsytri_ -dsytrs_ -dtbcon_ -dtbrfs_ -dtbtrs_ -dtgevc_ -dtgex2_ -dtgexc_ -dtgsen_ -dtgsja_ -dtgsna_ -dtgsy2_ -dtgsyl_ -dtpcon_ -dtprfs_ -dtptri_ -dtptrs_ -dtrcon_ -dtrevc_ -dtrexc_ -dtrrfs_ -dtrsen_ -dtrsna_ -dtrsyl_ -dtrti2_ -dtrtri_ -dtrtrs_ -dtzrqf_ -dtzrzf_ -dstemr_ -dsgesv_ -dsposv_ -dlag2s_ -slag2d_ -dlat2s_ -dlansf_ -dpftrf_ -dpftri_ -dpftrs_ -dsfrk_ -dtfsm_ -dtftri_ -dtfttp_ -dtfttr_ -dtpttf_ -dtpttr_ -dtrttf_ -dtrttp_ -dgejsv_ -dgesvj_ -dgsvj0_ -dgsvj1_ -dgeequb_ -dsyequb_ -dpoequb_ -dgbequb_ -cbdsqr_ -cgbbrd_ -cgbcon_ -cgbequ_ -cgbrfs_ -cgbsv_ -cgbsvx_ -cgbtf2_ -cgbtrf_ -cgbtrs_ -cgebak_ -cgebal_ -cgebd2_ -cgebrd_ -cgecon_ -cgeequ_ -cgees_ -cgeesx_ -cgeev_ -cgeevx_ -cgegs_ -cgegv_ -cgehd2_ -cgehrd_ -cgelq2_ -cgelqf_ -cgels_ -cgelsd_ -cgelss_ -cgelsx_ -cgelsy_ -cgeql2_ -cgeqlf_ -cgeqp3_ -cgeqpf_ -cgeqr2_ -cgeqrf_ -cgerfs_ -cgerq2_ -cgerqf_ -cgesc2_ -cgesdd_ -cgesv_ -cgesvd_ -cgesvx_ -cgetc2_ -cgetf2_ -cgetrf_ -cgetri_ -cgetrs_ -cggbak_ -cggbal_ -cgges_ -cggesx_ -cggev_ -cggevx_ -cggglm_ -cgghrd_ -cgglse_ -cggqrf_ -cggrqf_ -cggsvd_ -cggsvp_ -cgtcon_ -cgtrfs_ -cgtsv_ -cgtsvx_ -cgttrf_ -cgttrs_ -cgtts2_ -chbev_ -chbevd_ -chbevx_ -chbgst_ -chbgv_ -chbgvd_ -chbgvx_ -chbtrd_ -checon_ -cheev_ -cheevd_ -cheevr_ -cheevx_ -chegs2_ -chegst_ -chegv_ -chegvd_ -chegvx_ -cherfs_ -chesv_ -chesvx_ -chetd2_ -chetf2_ -chetrd_ -chetrf_ -chetri_ -chetrs_ -chgeqz_ -chpcon_ -chpev_ -chpevd_ -chpevx_ -chpgst_ -chpgv_ -chpgvd_ -chpgvx_ -chprfs_ -chpsv_ -chpsvx_ -chptrd_ -chptrf_ -chptri_ -chptrs_ -chsein_ -chseqr_ -clabrd_ -clacgv_ -clacon_ -clacn2_ -clacp2_ -clacpy_ -clacrm_ -clacrt_ -cladiv_ -claed0_ -claed7_ -claed8_ -claein_ -claesy_ -claev2_ -clags2_ -clagtm_ -clahef_ -clahqr_ -clahrd_ -clahr2_ -claic1_ -clals0_ -clalsa_ -clalsd_ -clangb_ -clange_ -clangt_ -clanhb_ -clanhe_ -clanhp_ -clanhs_ -clanht_ -clansb_ -clansp_ -clansy_ -clantb_ -clantp_ -clantr_ -clapll_ -clapmt_ -clarcm_ -claqgb_ -claqge_ -claqhb_ -claqhe_ -claqhp_ -claqp2_ -claqps_ -claqsb_ -claqr0_ -claqr1_ -claqr2_ -claqr3_ -claqr4_ -claqr5_ -claqsp_ -claqsy_ -clar1v_ -clar2v_ -ilaclr_ -ilaclc_ -clarf_ -clarfb_ -clarfg_ -clarft_ -clarfp_ -clarfx_ -clargv_ -clarnv_ -clarrv_ -clartg_ -clartv_ -clarz_ -clarzb_ -clarzt_ -clascl_ -claset_ -clasr_ -classq_ -claswp_ -clasyf_ -clatbs_ -clatdf_ -clatps_ -clatrd_ -clatrs_ -clatrz_ -clatzm_ -clauu2_ -clauum_ -cpbcon_ -cpbequ_ -cpbrfs_ -cpbstf_ -cpbsv_ -cpbsvx_ -cpbtf2_ -cpbtrf_ -cpbtrs_ -cpocon_ -cpoequ_ -cporfs_ -cposv_ -cposvx_ -cpotf2_ -cpotrf_ -cpotri_ -cpotrs_ -cpstrf_ -cpstf2_ -cppcon_ -cppequ_ -cpprfs_ -cppsv_ -cppsvx_ -cpptrf_ -cpptri_ -cpptrs_ -cptcon_ -cpteqr_ -cptrfs_ -cptsv_ -cptsvx_ -cpttrf_ -cpttrs_ -cptts2_ -crot_ -cspcon_ -cspmv_ -cspr_ -csprfs_ -cspsv_ -cspsvx_ -csptrf_ -csptri_ -csptrs_ -csrscl_ -cstedc_ -cstegr_ -cstein_ -csteqr_ -csycon_ -csymv_ -csyr_ -csyrfs_ -csysv_ -csysvx_ -csytf2_ -csytrf_ -csytri_ -csytrs_ -ctbcon_ -ctbrfs_ -ctbtrs_ -ctgevc_ -ctgex2_ -ctgexc_ -ctgsen_ -ctgsja_ -ctgsna_ -ctgsy2_ -ctgsyl_ -ctpcon_ -ctprfs_ -ctptri_ -ctptrs_ -ctrcon_ -ctrevc_ -ctrexc_ -ctrrfs_ -ctrsen_ -ctrsna_ -ctrsyl_ -ctrti2_ -ctrtri_ -ctrtrs_ -ctzrqf_ -ctzrzf_ -cung2l_ -cung2r_ -cungbr_ -cunghr_ -cungl2_ -cunglq_ -cungql_ -cungqr_ -cungr2_ -cungrq_ -cungtr_ -cunm2l_ -cunm2r_ -cunmbr_ -cunmhr_ -cunml2_ -cunmlq_ -cunmql_ -cunmqr_ -cunmr2_ -cunmr3_ -cunmrq_ -cunmrz_ -cunmtr_ -cupgtr_ -cupmtr_ -icmax1_ -scsum1_ -cstemr_ -chfrk_ -ctfttp_ -clanhf_ -cpftrf_ -cpftri_ -cpftrs_ -ctfsm_ -ctftri_ -ctfttr_ -ctpttf_ -ctpttr_ -ctrttf_ -ctrttp_ -cgeequb_ -cgbequb_ -csyequb_ -cpoequb_ -cheequb_ -zbdsqr_ -zgbbrd_ -zgbcon_ -zgbequ_ -zgbrfs_ -zgbsv_ -zgbsvx_ -zgbtf2_ -zgbtrf_ -zgbtrs_ -zgebak_ -zgebal_ -zgebd2_ -zgebrd_ -zgecon_ -zgeequ_ -zgees_ -zgeesx_ -zgeev_ -zgeevx_ -zgegs_ -zgegv_ -zgehd2_ -zgehrd_ -zgelq2_ -zgelqf_ -zgels_ -zgelsd_ -zgelss_ -zgelsx_ -zgelsy_ -zgeql2_ -zgeqlf_ -zgeqp3_ -zgeqpf_ -zgeqr2_ -zgeqrf_ -zgerfs_ -zgerq2_ -zgerqf_ -zgesc2_ -zgesdd_ -zgesv_ -zgesvd_ -zgesvx_ -zgetc2_ -zgetf2_ -zgetrf_ -zgetri_ -zgetrs_ -zggbak_ -zggbal_ -zgges_ -zggesx_ -zggev_ -zggevx_ -zggglm_ -zgghrd_ -zgglse_ -zggqrf_ -zggrqf_ -zggsvd_ -zggsvp_ -zgtcon_ -zgtrfs_ -zgtsv_ -zgtsvx_ -zgttrf_ -zgttrs_ -zgtts2_ -zhbev_ -zhbevd_ -zhbevx_ -zhbgst_ -zhbgv_ -zhbgvd_ -zhbgvx_ -zhbtrd_ -zhecon_ -zheev_ -zheevd_ -zheevr_ -zheevx_ -zhegs2_ -zhegst_ -zhegv_ -zhegvd_ -zhegvx_ -zherfs_ -zhesv_ -zhesvx_ -zhetd2_ -zhetf2_ -zhetrd_ -zhetrf_ -zhetri_ -zhetrs_ -zhgeqz_ -zhpcon_ -zhpev_ -zhpevd_ -zhpevx_ -zhpgst_ -zhpgv_ -zhpgvd_ -zhpgvx_ -zhprfs_ -zhpsv_ -zhpsvx_ -zhptrd_ -zhptrf_ -zhptri_ -zhptrs_ -zhsein_ -zhseqr_ -zlabrd_ -zlacgv_ -zlacon_ -zlacn2_ -zlacp2_ -zlacpy_ -zlacrm_ -zlacrt_ -zladiv_ -zlaed0_ -zlaed7_ -zlaed8_ -zlaein_ -zlaesy_ -zlaev2_ -zlags2_ -zlagtm_ -zlahef_ -zlahqr_ -zlahrd_ -zlahr2_ -zlaic1_ -zlals0_ -zlalsa_ -zlalsd_ -zlangb_ -zlange_ -zlangt_ -zlanhb_ -zlanhe_ -zlanhp_ -zlanhs_ -zlanht_ -zlansb_ -zlansp_ -zlansy_ -zlantb_ -zlantp_ -zlantr_ -zlapll_ -zlapmt_ -zlaqgb_ -zlaqge_ -zlaqhb_ -zlaqhe_ -zlaqhp_ -zlaqp2_ -zlaqps_ -zlaqsb_ -zlaqr0_ -zlaqr1_ -zlaqr2_ -zlaqr3_ -zlaqr4_ -zlaqr5_ -zlaqsp_ -zlaqsy_ -zlar1v_ -zlar2v_ -ilazlr_ -ilazlc_ -zlarcm_ -zlarf_ -zlarfb_ -zlarfg_ -zlarft_ -zlarfp_ -zlarfx_ -zlargv_ -zlarnv_ -zlarrv_ -zlartg_ -zlartv_ -zlarz_ -zlarzb_ -zlarzt_ -zlascl_ -zlaset_ -zlasr_ -zlassq_ -zlaswp_ -zlasyf_ -zlatbs_ -zlatdf_ -zlatps_ -zlatrd_ -zlatrs_ -zlatrz_ -zlatzm_ -zlauu2_ -zlauum_ -zpbcon_ -zpbequ_ -zpbrfs_ -zpbstf_ -zpbsv_ -zpbsvx_ -zpbtf2_ -zpbtrf_ -zpbtrs_ -zpocon_ -zpoequ_ -zporfs_ -zposv_ -zposvx_ -zpotf2_ -zpotrf_ -zpotri_ -zpotrs_ -zpstrf_ -zpstf2_ -zppcon_ -zppequ_ -zpprfs_ -zppsv_ -zppsvx_ -zpptrf_ -zpptri_ -zpptrs_ -zptcon_ -zpteqr_ -zptrfs_ -zptsv_ -zptsvx_ -zpttrf_ -zpttrs_ -zptts2_ -zrot_ -zspcon_ -zspmv_ -zspr_ -zsprfs_ -zspsv_ -zspsvx_ -zsptrf_ -zsptri_ -zsptrs_ -zdrscl_ -zstedc_ -zstegr_ -zstein_ -zsteqr_ -zsycon_ -zsymv_ -zsyr_ -zsyrfs_ -zsysv_ -zsysvx_ -zsytf2_ -zsytrf_ -zsytri_ -zsytrs_ -ztbcon_ -ztbrfs_ -ztbtrs_ -ztgevc_ -ztgex2_ -ztgexc_ -ztgsen_ -ztgsja_ -ztgsna_ -ztgsy2_ -ztgsyl_ -ztpcon_ -ztprfs_ -ztptri_ -ztptrs_ -ztrcon_ -ztrevc_ -ztrexc_ -ztrrfs_ -ztrsen_ -ztrsna_ -ztrsyl_ -ztrti2_ -ztrtri_ -ztrtrs_ -ztzrqf_ -ztzrzf_ -zung2l_ -zung2r_ -zungbr_ -zunghr_ -zungl2_ -zunglq_ -zungql_ -zungqr_ -zungr2_ -zungrq_ -zungtr_ -zunm2l_ -zunm2r_ -zunmbr_ -zunmhr_ -zunml2_ -zunmlq_ -zunmql_ -zunmqr_ -zunmr2_ -zunmr3_ -zunmrq_ -zunmrz_ -zunmtr_ -zupgtr_ -zupmtr_ -izmax1_ -dzsum1_ -zstemr_ -zcgesv_ -zcposv_ -zlag2c_ -clag2z_ -zlat2c_ -zhfrk_ -ztfttp_ -zlanhf_ -zpftrf_ -zpftri_ -zpftrs_ -ztfsm_ -ztftri_ -ztfttr_ -ztpttf_ -ztpttr_ -ztrttf_ -ztrttp_ -zgeequb_ -zgbequb_ -zsyequb_ -zpoequb_ -zheequb_ -sbdsdc_ -sbdsqr_ -sdisna_ -slabad_ -slacpy_ -sladiv_ -slae2_ -slaebz_ -slaed0_ -slaed1_ -slaed2_ -slaed3_ -slaed4_ -slaed5_ -slaed6_ -slaed7_ -slaed8_ -slaed9_ -slaeda_ -slaev2_ -slagtf_ -slagts_ -slamrg_ -slanst_ -slapy2_ -slapy3_ -slarnv_ -slarra_ -slarrb_ -slarrc_ -slarrd_ -slarre_ -slarrf_ -slarrj_ -slarrk_ -slarrr_ -slaneg_ -slartg_ -slaruv_ -slas2_ -slascl_ -slasd0_ -slasd1_ -slasd2_ -slasd3_ -slasd4_ -slasd5_ -slasd6_ -slasd7_ -slasd8_ -slasda_ -slasdq_ -slasdt_ -slaset_ -slasq1_ -slasq2_ -slasq3_ -slasq4_ -slasq5_ -slasq6_ -slasr_ -slasrt_ -slassq_ -slasv2_ -spttrf_ -sstebz_ -sstedc_ -ssteqr_ -ssterf_ -slaisnan_ -sisnan_ -slamch_ -dbdsdc_ -dbdsqr_ -ddisna_ -dlabad_ -dlacpy_ -dladiv_ -dlae2_ -dlaebz_ -dlaed0_ -dlaed1_ -dlaed2_ -dlaed3_ -dlaed4_ -dlaed5_ -dlaed6_ -dlaed7_ -dlaed8_ -dlaed9_ -dlaeda_ -dlaev2_ -dlagtf_ -dlagts_ -dlamrg_ -dlanst_ -dlapy2_ -dlapy3_ -dlarnv_ -dlarra_ -dlarrb_ -dlarrc_ -dlarrd_ -dlarre_ -dlarrf_ -dlarrj_ -dlarrk_ -dlarrr_ -dlaneg_ -dlartg_ -dlaruv_ -dlas2_ -dlascl_ -dlasd0_ -dlasd1_ -dlasd2_ -dlasd3_ -dlasd4_ -dlasd5_ -dlasd6_ -dlasd7_ -dlasd8_ -dlasda_ -dlasdq_ -dlasdt_ -dlaset_ -dlasq1_ -dlasq2_ -dlasq3_ -dlasq4_ -dlasq5_ -dlasq6_ -dlasr_ -dlasrt_ -dlassq_ -dlasv2_ -dpttrf_ -dstebz_ -dstedc_ -dsteqr_ -dsterf_ -dlaisnan_ -disnan_ -dlamch_ -ilaenv_ -ieeeck_ -lsamen_ -iparmq_ -ilaprec_ -ilatrans_ -ilauplo_ -iladiag_ -ilaver_ -lsame_ diff --git a/ports/clapack/link-to-math-lib.patch b/ports/clapack/link-to-math-lib.patch deleted file mode 100644 index c80a8d4ed5..0000000000 --- a/ports/clapack/link-to-math-lib.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt -index 2bdbd05..ca1473f 100644 ---- a/F2CLIBS/libf2c/CMakeLists.txt -+++ b/F2CLIBS/libf2c/CMakeLists.txt -@@ -59,4 +59,7 @@ endif() - include_directories(${CLAPACK_SOURCE_DIR}/F2CLIBS/libf2c) - include_directories(${CLAPACK_BINARY_DIR}/F2CLIBS/libf2c) - add_library(f2c STATIC ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h) -+if(UNIX) -+ target_link_libraries(f2c m) -+endif() - set_property(TARGET f2c PROPERTY PREFIX lib) diff --git a/ports/clapack/openblas_linux.patch b/ports/clapack/openblas_linux.patch new file mode 100644 index 0000000000..e2b7b6e828 --- /dev/null +++ b/ports/clapack/openblas_linux.patch @@ -0,0 +1,12 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c729d95..2b15e31 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,6 @@ + cmake_minimum_required(VERSION 2.6) + project(CLAPACK C) +-find_package(BLAS REQUIRED) ++find_package(OpenBLAS REQUIRED) + + if(WIN32 AND NOT CYGWIN) + set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/winsecond.c) diff --git a/ports/clapack/portfile.cmake b/ports/clapack/portfile.cmake index 3c46088486..ecdf51c87a 100644 --- a/ports/clapack/portfile.cmake +++ b/ports/clapack/portfile.cmake @@ -1,45 +1,43 @@ include(vcpkg_common_functions) -if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - message(FATAL_ERROR "openblas can only be built for x64 currently") -endif() +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/clapack-3.2.1-CMAKE) vcpkg_download_distfile(ARCHIVE - URLS "http://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz" - FILENAME "clapack-3.2.1.tgz" - SHA512 cf19c710291ddff3f6ead7d86bdfdeaebca21291d9df094bf0a8ef599546b007757fb2dbb19b56511bb53ef7456eac0c73973b9627bf4d02982c856124428b49 + URLS "http://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz" + FILENAME "clapack-3.2.1.tgz" + SHA512 cf19c710291ddff3f6ead7d86bdfdeaebca21291d9df094bf0a8ef599546b007757fb2dbb19b56511bb53ef7456eac0c73973b9627bf4d02982c856124428b49 ) +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(ADDITIONAL_PATCH "openblas_linux.patch") +endif() + vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} PATCHES - use-other-blas-and-install-include.patch - link-to-math-lib.patch + remove_internal_blas.patch + ${ADDITIONAL_PATCH} ) -if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-linux-build.patch" - ) -endif() - -if(NOT VCPKG_CMAKE_SYSTEM_NAME) - file(COPY ${CMAKE_CURRENT_LIST_DIR}/lapack.def DESTINATION ${SOURCE_PATH}/SRC) -endif() - vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DCMAKE_DEBUG_POSTFIX=d ) vcpkg_install_cmake() +vcpkg_copy_pdbs() + +#TODO: fix the official exported targets, since they are broken (luckily it seems that no-one uses them for now) +vcpkg_fixup_cmake_targets(CONFIG_PATH share/clapack) + +#we install a cmake wrapper since the official FindLAPACK module in cmake does find clapack easily, unfortunately... +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/lapack) +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/FindLAPACK.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/lapack) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/clapack) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/clapack/COPYING ${CURRENT_PACKAGES_DIR}/share/clapack/copyright) - -vcpkg_copy_pdbs() +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/clapack RENAME copyright) diff --git a/ports/clapack/remove_internal_blas.patch b/ports/clapack/remove_internal_blas.patch new file mode 100644 index 0000000000..471d87a87a --- /dev/null +++ b/ports/clapack/remove_internal_blas.patch @@ -0,0 +1,84 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 320ccc6..284e9d3 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,6 @@ + cmake_minimum_required(VERSION 2.6) + project(CLAPACK C) +-enable_testing() +-include(CTest) ++find_package(BLAS REQUIRED) + + if(WIN32 AND NOT CYGWIN) + set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/winsecond.c) +@@ -11,7 +10,6 @@ else() + set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/second.c) + set(DSECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/dsecnd.c) + endif() +-enable_testing() + option(USE_BLAS_WRAP "pre-pend f2c_ to each function in blas" OFF) + if(NOT USE_BLAS_WRAP) + # _zrotg_ seems to be missing in the wrap header +@@ -19,16 +17,15 @@ if(NOT USE_BLAS_WRAP) + endif() + include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE) + add_subdirectory(F2CLIBS) +-add_subdirectory(BLAS) + add_subdirectory(SRC) +-add_subdirectory(TESTING) + set(CLAPACK_VERSION 3.2.1) +-set(CPACK_PACKAGE_VERSION_MAJOR 3) +-set(CPACK_PACKAGE_VERSION_MINOR 2) +-set(CPACK_PACKAGE_VERSION_PATCH 1) +-include(CPack) +-export(TARGETS f2c blas lapack FILE clapack-targets.cmake) ++export(TARGETS f2c lapack FILE ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-targets.cmake) + configure_file(${CLAPACK_SOURCE_DIR}/clapack-config-version.cmake.in +- ${CLAPACK_BINARY_DIR}/clapack-config-version.cmake @ONLY) ++ ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-config-version.cmake @ONLY) + configure_file(${CLAPACK_SOURCE_DIR}/clapack-config.cmake.in +- ${CLAPACK_BINARY_DIR}/clapack-config.cmake @ONLY) ++ ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-config.cmake @ONLY) ++install(FILES ++ ${CMAKE_CURRENT_LIST_DIR}/INCLUDE/clapack.h ++ ${CMAKE_CURRENT_LIST_DIR}/INCLUDE/f2c.h ++ DESTINATION include) ++ +diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt +index 43d7b3f..6fa3598 100755 +--- a/F2CLIBS/libf2c/CMakeLists.txt ++++ b/F2CLIBS/libf2c/CMakeLists.txt +@@ -60,3 +60,11 @@ include_directories(${CLAPACK_SOURCE_DIR}/F2CLIBS/libf2c) + include_directories(${CLAPACK_BINARY_DIR}/F2CLIBS/libf2c) + add_library(f2c ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h) + set_property(TARGET f2c PROPERTY PREFIX lib) ++if(UNIX) ++ target_link_libraries(f2c m) ++endif() ++install(TARGETS f2c ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib) ++ +diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt +index ac4cce3..07dc8c7 100755 +--- a/SRC/CMakeLists.txt ++++ b/SRC/CMakeLists.txt +@@ -376,5 +376,9 @@ if(BUILD_COMPLEX16) + set(ALLOBJ ${ZLASRC} ${ALLAUX} ${DZLAUX}) + endif() + add_library(lapack ${ALLOBJ} ${ALLXOBJ}) +-target_link_libraries(lapack blas) ++target_link_libraries(lapack ${BLAS_LIBRARIES} f2c) ++install(TARGETS lapack ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib) + +diff --git a/clapack-config.cmake.in b/clapack-config.cmake.in +index cd19f1d..597f474 100755 +--- a/clapack-config.cmake.in ++++ b/clapack-config.cmake.in +@@ -1 +1 @@ +-include("@CLAPACK_BINARY_DIR@/clapack-targets.cmake") ++include("@CLAPACK_BINARY_DIR@/clapack-targets.cmake") diff --git a/ports/clapack/use-other-blas-and-install-include.patch b/ports/clapack/use-other-blas-and-install-include.patch deleted file mode 100644 index 0f81e64fee..0000000000 --- a/ports/clapack/use-other-blas-and-install-include.patch +++ /dev/null @@ -1,103 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 320ccc6..8c53def 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -3,6 +3,9 @@ project(CLAPACK C) - enable_testing() - include(CTest) - -+# BLAS_LIBRARIES -+find_package(BLAS REQUIRED) -+ - if(WIN32 AND NOT CYGWIN) - set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/winsecond.c) - set(DSECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/windsecnd.c) -@@ -19,7 +22,8 @@ if(NOT USE_BLAS_WRAP) - endif() - include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE) - add_subdirectory(F2CLIBS) --add_subdirectory(BLAS) -+ -+# add_subdirectory(BLAS) - add_subdirectory(SRC) - add_subdirectory(TESTING) - set(CLAPACK_VERSION 3.2.1) -@@ -27,8 +31,13 @@ set(CPACK_PACKAGE_VERSION_MAJOR 3) - set(CPACK_PACKAGE_VERSION_MINOR 2) - set(CPACK_PACKAGE_VERSION_PATCH 1) - include(CPack) --export(TARGETS f2c blas lapack FILE clapack-targets.cmake) --configure_file(${CLAPACK_SOURCE_DIR}/clapack-config-version.cmake.in -- ${CLAPACK_BINARY_DIR}/clapack-config-version.cmake @ONLY) --configure_file(${CLAPACK_SOURCE_DIR}/clapack-config.cmake.in -- ${CLAPACK_BINARY_DIR}/clapack-config.cmake @ONLY) -+# export(TARGETS f2c blas lapack FILE clapack-targets.cmake) -+# configure_file(${CLAPACK_SOURCE_DIR}/clapack-config-version.cmake.in -+# ${CLAPACK_BINARY_DIR}/clapack-config-version.cmake @ONLY) -+# configure_file(${CLAPACK_SOURCE_DIR}/clapack-config.cmake.in -+# ${CLAPACK_BINARY_DIR}/clapack-config.cmake @ONLY) -+ -+install(FILES -+ ${CMAKE_CURRENT_LIST_DIR}/include/clapack.h -+ ${CMAKE_CURRENT_LIST_DIR}/include/f2c.h -+ DESTINATION include) -\ No newline at end of file -diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt -index 43d7b3f..2bdbd05 100644 ---- a/F2CLIBS/libf2c/CMakeLists.txt -+++ b/F2CLIBS/libf2c/CMakeLists.txt -@@ -58,5 +58,5 @@ if(WIN32) - endif() - include_directories(${CLAPACK_SOURCE_DIR}/F2CLIBS/libf2c) - include_directories(${CLAPACK_BINARY_DIR}/F2CLIBS/libf2c) --add_library(f2c ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h) -+add_library(f2c STATIC ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h) - set_property(TARGET f2c PROPERTY PREFIX lib) -diff --git a/INCLUDE/clapack.h b/INCLUDE/clapack.h -index d22da98..5ef0a5b 100644 ---- a/INCLUDE/clapack.h -+++ b/INCLUDE/clapack.h -@@ -3,6 +3,8 @@ - #ifndef __CLAPACK_H - #define __CLAPACK_H - -+#include "f2c.h" -+ - /* Subroutine */ int caxpy_(integer *n, complex *ca, complex *cx, integer * - incx, complex *cy, integer *incy); - -diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt -index ac4cce3..0548c8d 100644 ---- a/SRC/CMakeLists.txt -+++ b/SRC/CMakeLists.txt -@@ -375,6 +375,17 @@ endif() - if(BUILD_COMPLEX16) - set(ALLOBJ ${ZLASRC} ${ALLAUX} ${DZLAUX}) - endif() --add_library(lapack ${ALLOBJ} ${ALLXOBJ}) --target_link_libraries(lapack blas) -+if(BUILD_SHARED_LIBS AND MSVC) -+ add_library(lapack SHARED ${ALLOBJ} ${ALLXOBJ} ${CMAKE_CURRENT_LIST_DIR}/lapack.def) -+else() -+ add_library(lapack ${ALLOBJ} ${ALLXOBJ}) -+endif(BUILD_SHARED_LIBS AND MSVC) -+ -+ -+target_link_libraries(lapack ${BLAS_LIBRARIES} f2c) -+ -+install(TARGETS lapack -+ RUNTIME DESTINATION bin -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib) - -diff --git a/TESTING/MATGEN/CMakeLists.txt b/TESTING/MATGEN/CMakeLists.txt -index b2cb47a..54fa7a8 100644 ---- a/TESTING/MATGEN/CMakeLists.txt -+++ b/TESTING/MATGEN/CMakeLists.txt -@@ -65,5 +65,5 @@ endif() - if(BUILD_COMPLEX16) - set(ALLOBJ $(ZMATGEN) $(DZATGEN)) - endif() --add_library(tmglib ${ALLOBJ} ) -+add_library(tmglib STATIC ${ALLOBJ} ) - diff --git a/ports/clapack/vcpkg-cmake-wrapper.cmake b/ports/clapack/vcpkg-cmake-wrapper.cmake new file mode 100644 index 0000000000..69c54ea0da --- /dev/null +++ b/ports/clapack/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,4 @@ +set(LAPACK_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) +_find_package(${ARGS}) +set(CMAKE_MODULE_PATH ${LAPACK_PREV_MODULE_PATH}) diff --git a/ports/clp/CMakeLists.txt b/ports/clp/CMakeLists.txt index 86305aa580..94f6559d98 100644 --- a/ports/clp/CMakeLists.txt +++ b/ports/clp/CMakeLists.txt @@ -1,139 +1,121 @@ -cmake_minimum_required(VERSION 3.11) - -project(Clp LANGUAGES C CXX) - -set(PROJECT_VERSION 1.16.11) -set(PROJECT_VERSION_MAJOR 1) -set(PROJECT_VERSION_MINOR 16) -set(PROJECT_VERSION_PATCH 11) - -set(CMAKE_CXX_STANDARD 14) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) -set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/cmake") - -if(MSVC) - set( - CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} /bigobj /MP /wd4996 /wd4819 /wd4251 /wd4267 /wd4244 /wd4275" - ) -endif(MSVC) -if(APPLE) - set( - CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-override -Wno-unused-command-line-argument -Wno-unused-result -Wno-exceptions" - ) - set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" - CACHE STRING "Minimum OS X deployment version") -endif(APPLE) - -set_property(GLOBAL PROPERTY USE_FOLDERS ON) - -# options -option(BUILD_SHARED_LIBS "" ON) - -# -# Introduce variables: * CMAKE_INSTALL_LIBDIR * CMAKE_INSTALL_BINDIR -include(GNUInstallDirs) - -# Include module with fuction 'write_basic_package_version_file' -include(CMakePackageConfigHelpers) - -# Layout. This works for all platforms: * /lib*/cmake/ * -# /lib*/ * /include/ -set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") -set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") -# Configuration -set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake") -set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake") -set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") -set(namespace "Coin::") - -# Packages -find_package(CoinUtils REQUIRED) -find_package(Osi REQUIRED) - -# Add sources -include_directories(Clp/src/) -include_directories(Clp/src/OsiClp) - -file(GLOB CLP_SOURCES - Clp/src/*.hpp - Clp/src/*.cpp - Clp/src/OsiClp/*.hpp - Clp/src/OsiClp/*.cpp) -file(GLOB CLP_REMOVE - Clp/src/ClpCholeskyMumps.cpp - Clp/src/ClpCholeskyUfl.cpp - Clp/src/ClpCholeskyWssmp.cpp - Clp/src/ClpCholeskyWssmpKKT.cpp - Clp/src/ClpMain.cpp - Clp/src/*Abc*.cpp - Clp/src/ClpCholeskyMumps.hpp - Clp/src/ClpCholeskyUfl.hpp - Clp/src/ClpCholeskyWssmp.hpp - Clp/src/ClpCholeskyWssmpKKT.hpp - Clp/src/ClpMain.hpp - Clp/src/*Abc*.hpp - Clp/src/*Abc*.h) -list(REMOVE_ITEM CLP_SOURCES ${CLP_REMOVE}) - -add_library(${PROJECT_NAME} ${CLP_SOURCES}) - -target_include_directories(${PROJECT_NAME} - PUBLIC $) -target_compile_definitions(${PROJECT_NAME} - PUBLIC - -DHAVE_CMATH - -D_CRT_SECURE_NO_WARNINGS - -DCOIN_HAS_CLP) -target_link_libraries(${PROJECT_NAME} PRIVATE Coin::CoinUtils Coin::Osi) - -install(TARGETS ${PROJECT_NAME} - EXPORT "${TARGETS_EXPORT_NAME}" - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES - DESTINATION include) - -install(DIRECTORY Clp/src/ - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/coin - FILES_MATCHING - PATTERN "*.h" - PATTERN "*.hpp" - PATTERN "config_default.h" - EXCLUDE) - -install(DIRECTORY Clp/src/OsiClp/ - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/coin - FILES_MATCHING - PATTERN "*.h" - PATTERN "*.hpp" - PATTERN "config_default.h" - EXCLUDE) - -# -# Install Libraries -# -# Configure 'ConfigVersion.cmake' Use: * PROJECT_VERSION -write_basic_package_version_file("${version_config}" - COMPATIBILITY SameMajorVersion) - -# Configure 'Config.cmake' Use variables: * TARGETS_EXPORT_NAME * -# PROJECT_NAME -configure_package_config_file("Config.cmake.in" - "${project_config}" - INSTALL_DESTINATION - "${config_install_dir}") - -# Config * /lib/cmake/Foo/FooConfig.cmake * -# /lib/cmake/Foo/FooConfigVersion.cmake -install(FILES "${project_config}" "${version_config}" - DESTINATION "${config_install_dir}") - -# Config * /lib/cmake/Foo/FooTargets.cmake -install(EXPORT "${TARGETS_EXPORT_NAME}" - NAMESPACE "${namespace}" - DESTINATION "${config_install_dir}") +cmake_minimum_required(VERSION 3.11) + +project(Clp LANGUAGES C CXX) + +set(PROJECT_VERSION 1.16.11) +set(PROJECT_VERSION_MAJOR 1) +set(PROJECT_VERSION_MINOR 16) +set(PROJECT_VERSION_PATCH 11) + +set(CMAKE_CXX_STANDARD 14) + +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/Coin" CACHE PATH "Path where headers will be installed") +set(INSTALL_CMAKE_DIR "share/${PROJECT_NAME}" 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() + +if(MSVC) + set( + CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} /bigobj /MP /wd4996 /wd4819 /wd4251 /wd4267 /wd4244 /wd4275" + ) +endif() + +if(APPLE) + set( + CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-override -Wno-unused-command-line-argument -Wno-unused-result -Wno-exceptions" + ) + set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" + CACHE STRING "Minimum OS X deployment version") +endif() + +find_package(CoinUtils REQUIRED) +find_package(Osi REQUIRED) + +file(GLOB CLP_SOURCES + Clp/src/*.hpp + Clp/src/*.cpp + Clp/src/OsiClp/*.hpp + Clp/src/OsiClp/*.cpp) +file(GLOB CLP_REMOVE + Clp/src/ClpCholeskyMumps.cpp + Clp/src/ClpCholeskyUfl.cpp + Clp/src/ClpCholeskyWssmp.cpp + Clp/src/ClpCholeskyWssmpKKT.cpp + Clp/src/ClpMain.cpp + Clp/src/*Abc*.cpp + Clp/src/ClpCholeskyMumps.hpp + Clp/src/ClpCholeskyUfl.hpp + Clp/src/ClpCholeskyWssmp.hpp + Clp/src/ClpCholeskyWssmpKKT.hpp + Clp/src/ClpMain.hpp + Clp/src/*Abc*.hpp + Clp/src/*Abc*.h) +list(REMOVE_ITEM CLP_SOURCES ${CLP_REMOVE}) + +add_library(${PROJECT_NAME} ${CLP_SOURCES}) + +target_include_directories(${PROJECT_NAME} + PUBLIC + $ + $ + $) + +if(MSVC) + target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS) +endif() +target_compile_definitions(${PROJECT_NAME} PRIVATE HAVE_CMATH) +target_compile_definitions(${PROJECT_NAME} PUBLIC COIN_HAS_CLP) + +target_link_libraries(${PROJECT_NAME} PRIVATE Coin::CoinUtils Coin::Osi) + +install(DIRECTORY Clp/src/ + DESTINATION ${INSTALL_INCLUDE_DIR} + FILES_MATCHING + PATTERN "*.h" + PATTERN "*.hpp" + PATTERN "config_default.h" EXCLUDE) + +install(DIRECTORY Clp/src/OsiClp/ + DESTINATION ${INSTALL_INCLUDE_DIR} + FILES_MATCHING + PATTERN "*.h" + PATTERN "*.hpp" + PATTERN "config_default.h" EXCLUDE) + +install(TARGETS ${PROJECT_NAME} + EXPORT "${PROJECT_NAME}Targets" + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin) + +include(CMakePackageConfigHelpers) + +set(version_config "${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}ConfigVersion.cmake") +set(project_config "${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}Config.cmake") +set(namespace "Coin::") + +write_basic_package_version_file("${version_config}" + COMPATIBILITY SameMajorVersion) + +configure_package_config_file("Config.cmake.in" + "${project_config}" + INSTALL_DESTINATION + "${INSTALL_CMAKE_DIR}") + +install(FILES "${project_config}" "${version_config}" + DESTINATION "${INSTALL_CMAKE_DIR}") + +install(EXPORT "${PROJECT_NAME}Targets" + NAMESPACE "${namespace}" + DESTINATION "${INSTALL_CMAKE_DIR}") diff --git a/ports/clp/CONTROL b/ports/clp/CONTROL index b10b635619..a0bdee5d36 100644 --- a/ports/clp/CONTROL +++ b/ports/clp/CONTROL @@ -1,4 +1,4 @@ -Source: clp -Version: 1.17.2 -Description: Clp (Coin-or linear programming) is an open-source linear programming solver written in C++. It is primarily meant to be used as a callable library, but a basic, stand-alone executable version is also available. -Build-Depends: coinutils, osi +Source: clp +Version: 1.17.2-1 +Description: Clp (Coin-or linear programming) is an open-source linear programming solver written in C++. It is primarily meant to be used as a callable library, but a basic, stand-alone executable version is also available. +Build-Depends: coinutils, osi diff --git a/ports/clp/Config.cmake.in b/ports/clp/Config.cmake.in index ec01d2e5bd..2c12f83f02 100644 --- a/ports/clp/Config.cmake.in +++ b/ports/clp/Config.cmake.in @@ -1,5 +1,5 @@ - -@PACKAGE_INIT@ - -include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") -check_required_components("@PROJECT_NAME@") + +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +check_required_components("@PROJECT_NAME@") diff --git a/ports/clp/portfile.cmake b/ports/clp/portfile.cmake index b76a9435c1..83581af357 100644 --- a/ports/clp/portfile.cmake +++ b/ports/clp/portfile.cmake @@ -19,8 +19,12 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/Clp") +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") #on case-sensitive filesystems, it's necessary to rename and make it lowercase + vcpkg_fixup_cmake_targets(CONFIG_PATH share/Clp) +else() + vcpkg_fixup_cmake_targets() +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/clp RENAME copyright) diff --git a/ports/coinutils/CMakeLists.txt b/ports/coinutils/CMakeLists.txt index 1a090c94d2..bdaf5969b6 100644 --- a/ports/coinutils/CMakeLists.txt +++ b/ports/coinutils/CMakeLists.txt @@ -8,17 +8,28 @@ set(PROJECT_VERSION_MINOR 10) set(PROJECT_VERSION_PATCH 14) set(CMAKE_CXX_STANDARD 14) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) -set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/cmake") + +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/Coin" CACHE PATH "Path where headers will be installed") +set(INSTALL_CMAKE_DIR "share/${PROJECT_NAME}" 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() if(MSVC) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj /MP /wd4996 /wd4819 /wd4251 /wd4267 /wd4244 /wd4275" ) -endif(MSVC) +endif() + if(APPLE) set( CMAKE_CXX_FLAGS @@ -26,84 +37,59 @@ if(APPLE) ) set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version") -endif(APPLE) +endif() -set_property(GLOBAL PROPERTY USE_FOLDERS ON) - -# options -option(BUILD_SHARED_LIBS "" ON) - -# -# 设置用于 install 的变量 -# -# Introduce variables: * CMAKE_INSTALL_LIBDIR * CMAKE_INSTALL_BINDIR -include(GNUInstallDirs) - -# Include module with fuction 'write_basic_package_version_file' -include(CMakePackageConfigHelpers) - -# Layout. This works for all platforms: * /lib*/cmake/ * -# /lib*/ * /include/ -set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") -set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") -# Configuration -set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake") -set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake") -set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") -set(namespace "Coin::") - -# -# Add sources -# -include_directories(CoinUtils/src) +include(CheckIncludeFileCXX) +include(CheckIncludeFile) +check_include_file_cxx("cmath" HAVE_CMATH) +check_include_file_cxx("cfloat" HAVE_CFLOAT) +if(NOT HAVE_CMATH OR NOT HAVE_CFLOAT) + message(FATAL_ERROR "Missing necessary include files, like cmath or cfloat") +endif() file(GLOB UTILS_SOURCES CoinUtils/src/*.hpp CoinUtils/src/*.cpp CoinUtils/src/*.h) + add_library(${PROJECT_NAME} ${UTILS_SOURCES}) -target_include_directories(${PROJECT_NAME} - PUBLIC $) -target_compile_definitions(${PROJECT_NAME} - PUBLIC - $ - $) +target_include_directories(${PROJECT_NAME} PUBLIC $ $) -install(TARGETS ${PROJECT_NAME} - EXPORT "${TARGETS_EXPORT_NAME}" - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES - DESTINATION include) +if(MSVC) + target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS) +endif() +target_compile_definitions(${PROJECT_NAME} PRIVATE HAVE_CMATH HAVE_CFLOAT) install(DIRECTORY CoinUtils/src/ - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/coin + DESTINATION ${INSTALL_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp") -# -# Install Libraries -# -# Configure 'ConfigVersion.cmake' Use: * PROJECT_VERSION +install(TARGETS ${PROJECT_NAME} + EXPORT "${PROJECT_NAME}Targets" + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin) + +include(CMakePackageConfigHelpers) + +set(version_config "${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}ConfigVersion.cmake") +set(project_config "${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}Config.cmake") +set(namespace "Coin::") + write_basic_package_version_file("${version_config}" COMPATIBILITY SameMajorVersion) -# Configure 'Config.cmake' Use variables: * TARGETS_EXPORT_NAME * -# PROJECT_NAME configure_package_config_file("Config.cmake.in" "${project_config}" INSTALL_DESTINATION - "${config_install_dir}") + "${INSTALL_CMAKE_DIR}") -# Config * /lib/cmake/Foo/FooConfig.cmake * -# /lib/cmake/Foo/FooConfigVersion.cmake install(FILES "${project_config}" "${version_config}" - DESTINATION "${config_install_dir}") + DESTINATION "${INSTALL_CMAKE_DIR}") -# Config * /lib/cmake/Foo/FooTargets.cmake -install(EXPORT "${TARGETS_EXPORT_NAME}" +install(EXPORT "${PROJECT_NAME}Targets" NAMESPACE "${namespace}" - DESTINATION "${config_install_dir}") + DESTINATION "${INSTALL_CMAKE_DIR}") diff --git a/ports/coinutils/CONTROL b/ports/coinutils/CONTROL index 9ea94ddf5a..fd495d62dc 100644 --- a/ports/coinutils/CONTROL +++ b/ports/coinutils/CONTROL @@ -1,3 +1,3 @@ Source: coinutils -Version: 2.11.2 +Version: 2.11.2-1 Description: CoinUtils (Coin-or Utilities) is an open-source collection of classes and functions that are generally useful to more than one COIN-OR project diff --git a/ports/coinutils/Config.cmake.in b/ports/coinutils/Config.cmake.in index a53c574959..2c12f83f02 100644 --- a/ports/coinutils/Config.cmake.in +++ b/ports/coinutils/Config.cmake.in @@ -1,5 +1,5 @@ @PACKAGE_INIT@ -include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") check_required_components("@PROJECT_NAME@") diff --git a/ports/coinutils/portfile.cmake b/ports/coinutils/portfile.cmake index 109ff7994b..42bd8d2d1b 100644 --- a/ports/coinutils/portfile.cmake +++ b/ports/coinutils/portfile.cmake @@ -19,10 +19,12 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() - -vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/CoinUtils") +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") #on case-sensitive filesystems, it's necessary to rename and make it lowercase + vcpkg_fixup_cmake_targets(CONFIG_PATH share/CoinUtils) +else() + vcpkg_fixup_cmake_targets() +endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/coinutils RENAME copyright) diff --git a/ports/dlib/CONTROL b/ports/dlib/CONTROL index 43c689bc4e..713de97bb7 100644 --- a/ports/dlib/CONTROL +++ b/ports/dlib/CONTROL @@ -1,5 +1,5 @@ Source: dlib -Version: 19.17 +Version: 19.17-1 Build-Depends: libjpeg-turbo, libpng, sqlite3, fftw3, openblas (!osx), clapack (!osx) Description: Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ diff --git a/ports/ebml/portfile.cmake b/ports/ebml/portfile.cmake index f4817db1a4..578e5d5e23 100644 --- a/ports/ebml/portfile.cmake +++ b/ports/ebml/portfile.cmake @@ -1,28 +1,28 @@ -include(vcpkg_common_functions) - -if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - message(FATAL_ERROR "ebml does not currently support UWP") -endif() - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO Matroska-Org/libebml - REF release-1.3.9 - SHA512 3ae22ed491024b276edde9237df0e41a8e5a4e142ec6783c77d5286d7825fb59be62f336d07f7042baac8fc7ac004ad7cc4605754c5801d65547449ea04c287f - HEAD_REF master -) - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS -DDISABLE_PKGCONFIG=1 -) - -vcpkg_install_cmake() - -vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/EBML) - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -# Handle copyright -file(INSTALL ${SOURCE_PATH}/LICENSE.LGPL DESTINATION ${CURRENT_PACKAGES_DIR}/share/ebml RENAME copyright) +include(vcpkg_common_functions) + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "${PORT} does not currently support UWP") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Matroska-Org/libebml + REF release-1.3.9 + SHA512 3ae22ed491024b276edde9237df0e41a8e5a4e142ec6783c77d5286d7825fb59be62f336d07f7042baac8fc7ac004ad7cc4605754c5801d65547449ea04c287f + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DDISABLE_PKGCONFIG=1 +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/EBML) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE.LGPL DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/ensmallen/CONTROL b/ports/ensmallen/CONTROL index b2525e2f96..9e0245aa99 100644 --- a/ports/ensmallen/CONTROL +++ b/ports/ensmallen/CONTROL @@ -1,5 +1,4 @@ -Source: ensmallen -Version: 1.15.0 -Description: A header-only C++ library for mathematical optimization. -Build-Depends: openblas, clapack, armadillo - +Source: ensmallen +Version: 1.15.0-1 +Description: A header-only C++ library for mathematical optimization. +Build-Depends: openblas (!osx), clapack (!osx), armadillo diff --git a/ports/exiv2/portfile.cmake b/ports/exiv2/portfile.cmake index 96cec76cb4..44daf8717e 100644 --- a/ports/exiv2/portfile.cmake +++ b/ports/exiv2/portfile.cmake @@ -10,7 +10,7 @@ vcpkg_from_github( iconv.patch ) -if(WIN32 AND ("unicode" IN_LIST FEATURES)) +if((NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") AND ("unicode" IN_LIST FEATURES)) set(enable_win_unicode TRUE) elseif() set(enable_win_unicode FALSE) @@ -46,6 +46,6 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() -# Handle copyright +# Handle copyright file(COPY ${SOURCE_PATH}/ABOUT-NLS DESTINATION ${CURRENT_PACKAGES_DIR}/share/exiv2) file(RENAME ${CURRENT_PACKAGES_DIR}/share/exiv2/ABOUT-NLS ${CURRENT_PACKAGES_DIR}/share/exiv2/copyright) diff --git a/ports/ffmpeg/portfile.cmake b/ports/ffmpeg/portfile.cmake index ed1203c1d0..13572aff14 100644 --- a/ports/ffmpeg/portfile.cmake +++ b/ports/ffmpeg/portfile.cmake @@ -26,7 +26,7 @@ endif() vcpkg_find_acquire_program(YASM) get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) -if (WIN32) +if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") set(ENV{PATH} "$ENV{PATH};${YASM_EXE_PATH}") set(BUILD_SCRIPT ${CMAKE_CURRENT_LIST_DIR}\\build.sh) @@ -35,7 +35,7 @@ if (WIN32) else() vcpkg_acquire_msys(MSYS_ROOT PACKAGES diffutils make) endif() - + set(BASH ${MSYS_ROOT}/usr/bin/bash.exe) else() set(ENV{PATH} "$ENV{PATH}:${YASM_EXE_PATH}") @@ -140,7 +140,7 @@ endif() message(STATUS "Building Options: ${OPTIONS}") -if(WIN32) +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-cflags=-MDd --extra-cxxflags=-MDd") set(OPTIONS_RELEASE "${OPTIONS_RELEASE} --extra-cflags=-MD --extra-cxxflags=-MD") diff --git a/ports/fmilib/portfile.cmake b/ports/fmilib/portfile.cmake index 5692b7d123..46912d440d 100644 --- a/ports/fmilib/portfile.cmake +++ b/ports/fmilib/portfile.cmake @@ -23,9 +23,9 @@ vcpkg_extract_source_archive(${ARCHIVE}) # Note that if you have configured and built both static and shared library on Windows # but want to link with the static library compile time define "FMILIB_BUILDING_LIBRARY" must be set. -if (WIN32 AND VCPKG_LIBRARY_LINKAGE STREQUAL static) +if ((NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") AND VCPKG_LIBRARY_LINKAGE STREQUAL static) SET(FMILIB_BUILDING_LIBRARY ON) -else() +else() SET(FMILIB_BUILDING_LIBRARY OFF) endif() @@ -33,7 +33,7 @@ endif() # This is only used when generating Microsoft Visual Studio solutions. If the options is on then the library will # be built against static runtime, otherwise - dynamic runtime (/MD or /MDd). Make sure the client code is using # matching runtime -if (WIN32 AND VCPKG_CRT_LINKAGE STREQUAL static) +if ((NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") AND VCPKG_CRT_LINKAGE STREQUAL static) SET(FMILIB_BUILD_WITH_STATIC_RTLIB ON) else() SET(FMILIB_BUILD_WITH_STATIC_RTLIB OFF) @@ -42,9 +42,9 @@ endif() # On LINUX position independent code (-fPIC) must be used on all files to be linked into a shared library (.so file). # On other systems this is not needed (either is default or relocation is done). Set this option to OFF if you # are building an application on Linux and use static library only -if (UNIX AND VCPKG_LIBRARY_LINKAGE STREQUAL static) +if ((VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") AND VCPKG_LIBRARY_LINKAGE STREQUAL static) SET(FMILIB_BUILD_FOR_SHARED_LIBS OFF) -else() +else() SET(FMILIB_BUILD_FOR_SHARED_LIBS ON) endif() @@ -59,17 +59,17 @@ endif() SET(OPTIONS -DFMILIB_BUILD_TESTS=OFF - -DFMILIB_BUILD_STATIC_LIB=${FMILIB_BUILD_STATIC_LIB} + -DFMILIB_BUILD_STATIC_LIB=${FMILIB_BUILD_STATIC_LIB} -DFMILIB_BUILD_SHARED_LIB=${FMILIB_BUILD_SHARED_LIB} - -DFMILIB_BUILDING_LIBRARY=${FMILIB_BUILDING_LIBRARY} - -DFMILIB_BUILD_WITH_STATIC_RTLIB=${FMILIB_BUILD_WITH_STATIC_RTLIB} + -DFMILIB_BUILDING_LIBRARY=${FMILIB_BUILDING_LIBRARY} + -DFMILIB_BUILD_WITH_STATIC_RTLIB=${FMILIB_BUILD_WITH_STATIC_RTLIB} ) # Reset package dir file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}) -if (WIN32) +if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") if(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120") set(GENERATOR "Visual Studio 12 2013") @@ -109,30 +109,30 @@ foreach(BUILDTYPE "rel" "dbg") # Reset working dir file(REMOVE_RECURSE ${BUILD_DIR}) - file(MAKE_DIRECTORY ${BUILD_DIR}) + file(MAKE_DIRECTORY ${BUILD_DIR}) SET(FMILIB_INSTALL_PREFIX ${CURRENT_PACKAGES_DIR}) - if(WIN32) + if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") SET(OPTIONS ${OPTIONS} -G ${GENERATOR}) - endif() + endif() if(NOT RELEASE_BUILD) STRING(APPEND FMILIB_INSTALL_PREFIX "/debug") endif() # Step 1: Configure - vcpkg_execute_required_process(COMMAND - cmake + vcpkg_execute_required_process(COMMAND + cmake -DFMILIB_INSTALL_PREFIX=${FMILIB_INSTALL_PREFIX} - -DFMILIB_DEFAULT_BUILD_TYPE_RELEASE=${RELEASE_BUILD} + -DFMILIB_DEFAULT_BUILD_TYPE_RELEASE=${RELEASE_BUILD} ${OPTIONS} ${SOURCE_PATH} - WORKING_DIRECTORY + WORKING_DIRECTORY ${BUILD_DIR} ) # Step 2: Build # Custom build - becouse vcpkg_configure_cmake() + vcpkg_install_cmake() fails on Linux for some unknown reason - if (UNIX) + if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") find_program(MAKE make) if(NOT MAKE) message(FATAL_ERROR "Could not find make. Please install it through your package manager.") @@ -144,12 +144,12 @@ foreach(BUILDTYPE "rel" "dbg") else() SET(CONFIG "Debug") endif() - vcpkg_execute_required_process(COMMAND - cmake - --build . - --config ${CONFIG} - --target "install" - WORKING_DIRECTORY + vcpkg_execute_required_process(COMMAND + cmake + --build . + --config ${CONFIG} + --target "install" + WORKING_DIRECTORY ${BUILD_DIR} ) endif() @@ -159,9 +159,9 @@ foreach(BUILDTYPE "rel" "dbg") # remove /doc folder file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/doc) - # Move .dll files (if any) from /lib to /bin + # Move .dll files (if any) from /lib to /bin file(GLOB TMP ${CURRENT_PACKAGES_DIR}/lib/*.dll) - if (TMP) + if (TMP) file(COPY ${TMP} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) file(REMOVE ${TMP}) @@ -175,7 +175,7 @@ foreach(BUILDTYPE "rel" "dbg") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/doc) - # Move .dll files (if any) from /lib to /bin + # Move .dll files (if any) from /lib to /bin file(GLOB TMP ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) if (TMP) file(COPY ${TMP} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) diff --git a/ports/fontconfig/CONTROL b/ports/fontconfig/CONTROL index 5d75462c58..ec63c3a22b 100644 --- a/ports/fontconfig/CONTROL +++ b/ports/fontconfig/CONTROL @@ -1,4 +1,4 @@ Source: fontconfig -Version: 2.12.4-8 +Version: 2.12.4-9 Description: Library for configuring and customizing font access. Build-Depends: freetype, expat, libiconv, dirent diff --git a/ports/fontconfig/portfile.cmake b/ports/fontconfig/portfile.cmake index 4637f112cc..772e741fd3 100644 --- a/ports/fontconfig/portfile.cmake +++ b/ports/fontconfig/portfile.cmake @@ -36,7 +36,7 @@ vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) foreach(HEADER fcfreetype.h fontconfig.h) file(READ ${CURRENT_PACKAGES_DIR}/include/fontconfig/${HEADER} FC_HEADER) - if(WIN32) + if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") string(REPLACE "#define FcPublic" "#define FcPublic __declspec(dllimport)" FC_HEADER "${FC_HEADER}") else() string(REPLACE "#define FcPublic" "#define FcPublic __attribute__((visibility(\"default\")))" FC_HEADER "${FC_HEADER}") diff --git a/ports/g2o/CONTROL b/ports/g2o/CONTROL index 57999aece0..9bc511479c 100644 --- a/ports/g2o/CONTROL +++ b/ports/g2o/CONTROL @@ -1,4 +1,4 @@ Source: g2o Version: 20170730_git-4 -Build-Depends: suitesparse, eigen3, clapack, ceres +Build-Depends: suitesparse, eigen3, clapack (!osx), ceres Description: g2o: A General Framework for Graph Optimization http://openslam.org/g2o.html diff --git a/ports/gdal/portfile.cmake b/ports/gdal/portfile.cmake index b880c91848..61609d3d3b 100644 --- a/ports/gdal/portfile.cmake +++ b/ports/gdal/portfile.cmake @@ -54,24 +54,24 @@ foreach(BUILD_TYPE IN LISTS BUILD_TYPES) ) endforeach() -if (WIN32) # Build in WINDOWS +if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") # Check build system first find_program(NMAKE nmake REQUIRED) - + file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" NATIVE_PACKAGES_DIR) file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/share/gdal" NATIVE_DATA_DIR) file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/share/gdal/html" NATIVE_HTML_DIR) - + # Setup proj4 libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" PROJ_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/proj.lib" PROJ_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/projd.lib" PROJ_LIBRARY_DBG) - + # Setup libpng libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" PNG_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libpng16.lib" PNG_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.lib" PNG_LIBRARY_DBG) - + # Setup zlib libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" ZLIB_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/zlib.lib" ZLIB_LIBRARY_REL) @@ -86,12 +86,12 @@ if (WIN32) # Build in WINDOWS file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/geos_c.lib" GEOS_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/geos_cd.lib" GEOS_LIBRARY_DBG) endif() - + # Setup expat libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" EXPAT_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/expat.lib" EXPAT_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/expat.lib" EXPAT_LIBRARY_DBG) - + # Setup curl libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" CURL_INCLUDE_DIR) if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libcurl.lib") @@ -104,37 +104,37 @@ if (WIN32) # Build in WINDOWS elseif(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d_imp.lib") file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d_imp.lib" CURL_LIBRARY_DBG) endif() - + # Setup sqlite3 libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" SQLITE_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/sqlite3.lib" SQLITE_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/sqlite3.lib" SQLITE_LIBRARY_DBG) - + # Setup PostgreSQL libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" PGSQL_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libpq.lib" PGSQL_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libpqd.lib" PGSQL_LIBRARY_DBG) - + # Setup OpenJPEG libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" OPENJPEG_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/openjp2.lib" OPENJPEG_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/openjp2.lib" OPENJPEG_LIBRARY_DBG) - + # Setup WebP libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" WEBP_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/webp.lib" WEBP_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/webpd.lib" WEBP_LIBRARY_DBG) - + # Setup libxml2 libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" XML2_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libxml2.lib" XML2_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libxml2.lib" XML2_LIBRARY_DBG) - + # Setup liblzma libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" LZMA_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/lzma.lib" LZMA_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/lzma.lib" LZMA_LIBRARY_DBG) - + if("mysql-libmysql" IN_LIST FEATURES OR "mysql-libmariadb" IN_LIST FEATURES) # Setup MySQL libraries + include path if("mysql-libmysql" IN_LIST FEATURES) @@ -142,18 +142,18 @@ if (WIN32) # Build in WINDOWS file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib" MYSQL_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib" MYSQL_LIBRARY_DBG) endif() - + if("mysql-libmariadb" IN_LIST FEATURES) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include/mysql" MYSQL_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libmariadb.lib" MYSQL_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libmariadb.lib" MYSQL_LIBRARY_DBG) endif() - + list(APPEND NMAKE_OPTIONS MYSQL_INC_DIR=${MYSQL_INCLUDE_DIR}) list(APPEND NMAKE_OPTIONS_REL MYSQL_LIB=${MYSQL_LIBRARY_REL}) list(APPEND NMAKE_OPTIONS_DBG MYSQL_LIB=${MYSQL_LIBRARY_DBG}) endif() - + if ("libspatialite" IN_LIST FEATURES) # Setup spatialite libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include/spatialite" SPATIALITE_INCLUDE_DIR) @@ -161,7 +161,7 @@ if (WIN32) # Build in WINDOWS file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/spatialite.lib" SPATIALITE_LIBRARY_DBG) set(HAVE_SPATIALITE "-DHAVE_SPATIALITE") endif() - + list(APPEND NMAKE_OPTIONS GDAL_HOME=${NATIVE_PACKAGES_DIR} DATADIR=${NATIVE_DATA_DIR} @@ -186,11 +186,11 @@ if (WIN32) # Build in WINDOWS ZLIB_EXTERNAL_LIB=1 MSVC_VER=1900 ) - + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") list(APPEND NMAKE_OPTIONS WIN64=YES) endif() - + if (VCPKG_LIBRARY_LINKAGE STREQUAL static) list(APPEND NMAKE_OPTIONS PROJ_FLAGS=-DPROJ_STATIC) list(APPEND NMAKE_OPTIONS CURL_CFLAGS=-DCURL_STATICLIB) @@ -198,13 +198,13 @@ if (WIN32) # Build in WINDOWS # Enables PDBs for release and debug builds list(APPEND NMAKE_OPTIONS WITH_PDB=1) endif() - + if (VCPKG_CRT_LINKAGE STREQUAL static) set(LINKAGE_FLAGS "/MT") else() set(LINKAGE_FLAGS "/MD") endif() - + list(APPEND NMAKE_OPTIONS_REL ${NMAKE_OPTIONS} CXX_CRT_FLAGS=${LINKAGE_FLAGS} @@ -223,7 +223,7 @@ if (WIN32) # Build in WINDOWS # Static Build does not like PG_LIB list(APPEND NMAKE_OPTIONS_REL PG_LIB=${PGSQL_LIBRARY_REL}) endif() - + list(APPEND NMAKE_OPTIONS_DBG ${NMAKE_OPTIONS} CXX_CRT_FLAGS="${LINKAGE_FLAGS}d" @@ -257,12 +257,12 @@ if (WIN32) # Build in WINDOWS ) message(STATUS "Building ${TARGET_TRIPLET}-rel done") endif() - + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") ################ # Debug build ################ - + message(STATUS "Building ${TARGET_TRIPLET}-dbg") vcpkg_execute_required_process( COMMAND ${NMAKE} /G -f makefile.vc @@ -272,9 +272,9 @@ if (WIN32) # Build in WINDOWS ) message(STATUS "Building ${TARGET_TRIPLET}-dbg done") endif() - + message(STATUS "Packaging ${TARGET_TRIPLET}") - + if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/gdal/html) endif() @@ -287,31 +287,31 @@ if (WIN32) # Build in WINDOWS WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} LOGNAME nmake-install-${TARGET_TRIPLET} ) - + if (VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/gdal_i.lib) - + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(COPY ${SOURCE_PATH_RELEASE}/gdal.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) endif() - + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(COPY ${SOURCE_PATH_DEBUG}/gdal.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdald.lib) endif() - + else() - + set(GDAL_TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/gdal) file(MAKE_DIRECTORY ${GDAL_TOOL_PATH}) - + file(GLOB GDAL_TOOLS ${CURRENT_PACKAGES_DIR}/bin/*.exe) file(COPY ${GDAL_TOOLS} DESTINATION ${GDAL_TOOL_PATH}) file(REMOVE_RECURSE ${GDAL_TOOLS}) - + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/gdal.lib) - + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/lib/gdal.lib) endif() @@ -321,17 +321,17 @@ if (WIN32) # Build in WINDOWS file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdald.lib) endif() endif() - + # Copy over PDBs vcpkg_copy_pdbs() -elseif (UNIX) # Build in UNIX +elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") # Build in UNIX # Check build system first find_program(MAKE make) if (NOT MAKE) message(FATAL_ERROR "MAKE not found") endif() - + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") ################ # Release build @@ -344,21 +344,21 @@ elseif (UNIX) # Build in UNIX WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} LOGNAME config-${TARGET_TRIPLET}-rel ) - + message(STATUS "Building ${TARGET_TRIPLET}-rel") vcpkg_execute_required_process( COMMAND make WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} LOGNAME make-build-${TARGET_TRIPLET}-release ) - + message(STATUS "Installing ${TARGET_TRIPLET}-rel") vcpkg_execute_required_process( COMMAND make install WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} LOGNAME make-install-${TARGET_TRIPLET}-release ) - + file(REMOVE_RECURSE ${OUT_PATH_RELEASE}/lib/gdalplugins) file(COPY ${OUT_PATH_RELEASE}/lib/pkgconfig DESTINATION ${OUT_PATH_RELEASE}/share/gdal) file(REMOVE_RECURSE ${OUT_PATH_RELEASE}/lib/pkgconfig) @@ -380,21 +380,21 @@ elseif (UNIX) # Build in UNIX WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} LOGNAME config-${TARGET_TRIPLET}-debug ) - + message(STATUS "Building ${TARGET_TRIPLET}-dbg") vcpkg_execute_required_process( COMMAND make WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} LOGNAME make-build-${TARGET_TRIPLET}-debug ) - + message(STATUS "Installing ${TARGET_TRIPLET}-dbg") vcpkg_execute_required_process( COMMAND make -j install WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} LOGNAME make-install-${TARGET_TRIPLET}-debug ) - + file(REMOVE_RECURSE ${OUT_PATH_DEBUG}/lib/gdalplugins) file(REMOVE_RECURSE ${OUT_PATH_DEBUG}/lib/pkgconfig) file(COPY ${OUT_PATH_DEBUG}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug) diff --git a/ports/geogram/CONTROL b/ports/geogram/CONTROL index 87688018b9..1a3daf4f97 100644 --- a/ports/geogram/CONTROL +++ b/ports/geogram/CONTROL @@ -1,7 +1,7 @@ Source: geogram Version: 1.6.9-3 Description: Geogram is a programming library of geometric algorithms. -Build-Depends: openblas (!osx), clapack +Build-Depends: openblas (!osx), clapack (!osx) Feature: graphics Description: Build viewers and geogram_gfx library. diff --git a/ports/graphqlparser/portfile.cmake b/ports/graphqlparser/portfile.cmake index bab77a0c72..a90959f5db 100644 --- a/ports/graphqlparser/portfile.cmake +++ b/ports/graphqlparser/portfile.cmake @@ -11,12 +11,12 @@ vcpkg_from_github( static-compile-fix.patch ) -if(UNIX) +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA ) -elseif(WIN32) +elseif(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") vcpkg_find_acquire_program(PYTHON2) vcpkg_find_acquire_program(FLEX) # vcpkg_find_acquire_program(BISON) diff --git a/ports/gsoap/portfile.cmake b/ports/gsoap/portfile.cmake index dc7547eb28..5924ff5adb 100644 --- a/ports/gsoap/portfile.cmake +++ b/ports/gsoap/portfile.cmake @@ -26,7 +26,7 @@ endif() # Handle binary files and includes file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/gsoap ${CURRENT_PACKAGES_DIR}/debug/tools) -if (WIN32) +if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") vcpkg_build_msbuild( USE_VCPKG_INTEGRATION PROJECT_PATH ${SOURCE_PATH}/gsoap/VisualStudio2005/soapcpp2/soapcpp2.sln @@ -39,7 +39,7 @@ if (WIN32) PLATFORM ${BUILD_ARCH} TARGET Build ) - + file(COPY ${SOURCE_PATH}/gsoap/VisualStudio2005/soapcpp2/release/soapcpp2.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/gsoap/) file(COPY ${SOURCE_PATH}/gsoap/VisualStudio2005/wsdl2h/release/wsdl2h.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/gsoap/) file(COPY ${SOURCE_PATH}/gsoap/VisualStudio2005/soapcpp2/debug/soapcpp2.exe DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/gsoap/) @@ -48,7 +48,7 @@ else() message(FATAL_ERROR "Sorry but gsoap only can be build in Windows temporary") endif() - + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include) file(COPY ${SOURCE_PATH}/gsoap/stdsoap2.h ${SOURCE_PATH}/gsoap/stdsoap2.c ${SOURCE_PATH}/gsoap/stdsoap2.cpp ${SOURCE_PATH}/gsoap/dom.c ${SOURCE_PATH}/gsoap/dom.cpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) @@ -62,6 +62,6 @@ file(COPY ${SOURCE_PATH}/gsoap/plugin DESTINATION ${CURRENT_PACKAGES_DIR}/share/ file(COPY ${SOURCE_PATH}/LICENSE.txt ${SOURCE_PATH}/INSTALL.txt ${SOURCE_PATH}/README.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/gsoap) file(RENAME ${CURRENT_PACKAGES_DIR}/share/gsoap/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/gsoap/copyright) file(RENAME ${CURRENT_PACKAGES_DIR}/share/gsoap/INSTALL.txt ${CURRENT_PACKAGES_DIR}/share/gsoap/install) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/gsoap/README.txt ${CURRENT_PACKAGES_DIR}/share/gsoap/readme) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/gsoap/README.txt ${CURRENT_PACKAGES_DIR}/share/gsoap/readme) -vcpkg_copy_pdbs() \ No newline at end of file +vcpkg_copy_pdbs() diff --git a/ports/highfive/portfile.cmake b/ports/highfive/portfile.cmake index ed88a45c99..db6f4a0129 100644 --- a/ports/highfive/portfile.cmake +++ b/ports/highfive/portfile.cmake @@ -28,7 +28,7 @@ vcpkg_install_cmake() vcpkg_fixup_cmake_targets(CONFIG_PATH share/HighFive/CMake) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) -if(NOT WIN32 AND NOT APPLE) +if(NOT (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/HighFive) endif() diff --git a/ports/io2d/portfile.cmake b/ports/io2d/portfile.cmake index 0375a9689d..3411620f5e 100644 --- a/ports/io2d/portfile.cmake +++ b/ports/io2d/portfile.cmake @@ -5,23 +5,14 @@ include(vcpkg_common_functions) # For now, io2d is always a static library. vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -# Optionally, uncomment and modify one of the 'set(...)' calls below -# to use io2d sources from a local directory, rather than Github. -# set(SOURCE_PATH "C:\\Path\\To\\P0267_RefImpl\\") -# set(SOURCE_PATH "/Path/To/P0267_RefImpl") - -# Retrieve and validate io2d source code, as-needed -if ("${SOURCE_PATH}" STREQUAL "") - # TODO: point at cpp-io2d/(whatever), if and as needed - vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO cpp-io2d/P0267_RefImpl - REF 21ae92c8be6916034e6e18f08aa57899a975dfb0 - SHA512 5b674f98ca7705d6901af339a4189d5ce4f2c3118bfb99430734f355159602f177bc8d1b345c3a2f17947a62547553f7b91747a1f16da063707a4da7f990391d - HEAD_REF master - PATCHES find-package.patch - ) -endif() +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO cpp-io2d/P0267_RefImpl + REF 21ae92c8be6916034e6e18f08aa57899a975dfb0 + SHA512 5b674f98ca7705d6901af339a4189d5ce4f2c3118bfb99430734f355159602f177bc8d1b345c3a2f17947a62547553f7b91747a1f16da063707a4da7f990391d + HEAD_REF master + PATCHES find-package.patch +) # Configure the library, using CMake if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL Darwin) diff --git a/ports/jsonnet/portfile.cmake b/ports/jsonnet/portfile.cmake index d1f9ca1533..5472445da6 100644 --- a/ports/jsonnet/portfile.cmake +++ b/ports/jsonnet/portfile.cmake @@ -14,7 +14,7 @@ vcpkg_from_github( 001-enable-msvc.patch ) -if (WIN32) +if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") vcpkg_execute_required_process( COMMAND Powershell -Command "((Get-Content -Encoding Byte \"${SOURCE_PATH}/stdlib/std.jsonnet\") -join ',') + ',0' > \"${SOURCE_PATH}/core/std.jsonnet.h\"" WORKING_DIRECTORY "${SOURCE_PATH}" diff --git a/ports/liblemon/CONTROL b/ports/liblemon/CONTROL index c21960b72a..87234c68ae 100644 --- a/ports/liblemon/CONTROL +++ b/ports/liblemon/CONTROL @@ -1,3 +1,3 @@ -Source: liblemon -Version: 1.3.1-4 -Description: Library for Efficient Modeling and Optimization in Networks +Source: liblemon +Version: 1.3.1-5 +Description: Library for Efficient Modeling and Optimization in Networks diff --git a/ports/liblemon/portfile.cmake b/ports/liblemon/portfile.cmake index b41322a875..1fe64d3fec 100644 --- a/ports/liblemon/portfile.cmake +++ b/ports/liblemon/portfile.cmake @@ -38,6 +38,7 @@ file(COPY ${EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/liblemon/) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/liblemon) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) # Handle copyright diff --git a/ports/mlpack/CONTROL b/ports/mlpack/CONTROL index d57aa4ca3e..75cc21eb4f 100644 --- a/ports/mlpack/CONTROL +++ b/ports/mlpack/CONTROL @@ -1,7 +1,7 @@ -Source: mlpack -Version: 3.1.0-1 -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, clapack, boost, armadillo - -Feature: tools -Description: Build command-line executables and tests. +Source: mlpack +Version: 3.1.0-1 +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), clapack (!osx), boost, armadillo, ensmallen + +Feature: tools +Description: Build command-line executables and tests. diff --git a/ports/mlpack/cmakelists.patch b/ports/mlpack/cmakelists.patch index 6c39a42938..a4ef8f119c 100644 --- a/ports/mlpack/cmakelists.patch +++ b/ports/mlpack/cmakelists.patch @@ -1,42 +1,54 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -284,7 +284,7 @@ - # script Armadillo uses to find these. - if (WIN32) - find_library(LAPACK_LIBRARY -- NAMES lapack liblapack lapack_win32_MT lapack_win32 -+ NAMES clapack lapack liblapack lapack_win32_MT lapack_win32 - PATHS "C:/Program Files/Armadillo" - PATH_SUFFIXES "examples/lib_win32/") - -@@ -293,7 +293,7 @@ - endif () - - find_library(BLAS_LIBRARY -- NAMES blas libblas blas_win32_MT blas_win32 -+ NAMES openblas blas libblas blas_win32_MT blas_win32 - PATHS "C:/Program Files/Armadillo" - PATH_SUFFIXES "examples/lib_win32/") - -@@ -392,19 +392,11 @@ - REQUIRED - ) - --link_directories(${Boost_LIBRARY_DIRS}) -- --# In Visual Studio, automatic linking is performed, so we don't need to worry --# about it. Clear the list of libraries to link against and let Visual Studio --# handle it. --if (MSVC) -- link_directories(${Boost_LIBRARY_DIRS}) -- set(Boost_LIBRARIES "") --endif () -+link_directories(${Boost_LIBRARIES}) - - set(MLPACK_INCLUDE_DIRS ${MLPACK_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) - set(MLPACK_LIBRARIES ${MLPACK_LIBRARIES} ${Boost_LIBRARIES}) --set(MLPACK_LIBRARY_DIRS ${MLPACK_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS}) -+set(MLPACK_LIBRARY_DIRS ${MLPACK_LIBRARY_DIRS} ${Boost_LIBRARIES}) - - # For Boost testing framework (will have no effect on non-testing executables). - # This specifies to Boost that we are dynamically linking to the Boost test +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 26dfd6e..5e287d8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -283,25 +283,8 @@ endif() + # and find LAPACK and BLAS ourselves, using a slightly modified variant of the + # script Armadillo uses to find these. + if (WIN32) +- find_library(LAPACK_LIBRARY +- NAMES lapack liblapack lapack_win32_MT lapack_win32 +- PATHS "C:/Program Files/Armadillo" +- PATH_SUFFIXES "examples/lib_win32/") +- +- if (NOT LAPACK_LIBRARY) +- message(FATAL_ERROR "Cannot find LAPACK library (.lib)!") +- endif () +- +- find_library(BLAS_LIBRARY +- NAMES blas libblas blas_win32_MT blas_win32 +- PATHS "C:/Program Files/Armadillo" +- PATH_SUFFIXES "examples/lib_win32/") +- +- if (NOT BLAS_LIBRARY) +- message(FATAL_ERROR "Cannot find BLAS library (.lib)!") +- endif () +- +- # Piggyback LAPACK and BLAS linking into Armadillo link. ++ find_package(LAPACK) ++ find_package(BLAS) + set(ARMADILLO_LIBRARIES + ${ARMADILLO_LIBRARIES} ${BLAS_LIBRARY} ${LAPACK_LIBRARY}) + endif () +@@ -392,19 +375,11 @@ find_package(Boost 1.49 + REQUIRED + ) + +-link_directories(${Boost_LIBRARY_DIRS}) +- +-# In Visual Studio, automatic linking is performed, so we don't need to worry +-# about it. Clear the list of libraries to link against and let Visual Studio +-# handle it. +-if (MSVC) +- link_directories(${Boost_LIBRARY_DIRS}) +- set(Boost_LIBRARIES "") +-endif () ++link_directories(${Boost_LIBRARIES}) + + set(MLPACK_INCLUDE_DIRS ${MLPACK_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) + set(MLPACK_LIBRARIES ${MLPACK_LIBRARIES} ${Boost_LIBRARIES}) +-set(MLPACK_LIBRARY_DIRS ${MLPACK_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS}) ++set(MLPACK_LIBRARY_DIRS ${MLPACK_LIBRARY_DIRS} ${Boost_LIBRARIES}) + + # For Boost testing framework (will have no effect on non-testing executables). + # This specifies to Boost that we are dynamically linking to the Boost test diff --git a/ports/mlpack/portfile.cmake b/ports/mlpack/portfile.cmake index c7bf89bc14..20cbc882e3 100644 --- a/ports/mlpack/portfile.cmake +++ b/ports/mlpack/portfile.cmake @@ -6,11 +6,20 @@ vcpkg_from_github( REF mlpack-3.1.0 SHA512 dc305a9a2f7232d3957206a346d0ac97ba13b933d5dbef45329002b8380ecc0982621c0b97f6c5ee82d0a26ad53b1cdd7a9b991fb749efc8546394988ac40a5b HEAD_REF master - PATCHES - cmakelists.patch + PATCHES + cmakelists.patch ) -string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" MLPACK_SHARED_LIBS) +file(REMOVE ${SOURCE_PATH}/CMake/ARMA_FindACML.cmake) +file(REMOVE ${SOURCE_PATH}/CMake/ARMA_FindACMLMP.cmake) +file(REMOVE ${SOURCE_PATH}/CMake/ARMA_FindARPACK.cmake) +file(REMOVE ${SOURCE_PATH}/CMake/ARMA_FindBLAS.cmake) +file(REMOVE ${SOURCE_PATH}/CMake/ARMA_FindCBLAS.cmake) +file(REMOVE ${SOURCE_PATH}/CMake/ARMA_FindCLAPACK.cmake) +file(REMOVE ${SOURCE_PATH}/CMake/ARMA_FindLAPACK.cmake) +file(REMOVE ${SOURCE_PATH}/CMake/ARMA_FindMKL.cmake) +file(REMOVE ${SOURCE_PATH}/CMake/ARMA_FindOpenBLAS.cmake) +file(REMOVE ${SOURCE_PATH}/CMake/FindArmadillo.cmake) set(BUILD_TOOLS OFF) if("tools" IN_LIST FEATURES) @@ -20,10 +29,9 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS - -DBUILD_TESTS=${BUILD_TOOLS} - -DBUILD_CLI_EXECUTABLES=${BUILD_TOOLS} - -DBUILD_SHARED_LIBS=${MLPACK_SHARED_LIBS} + OPTIONS + -DBUILD_TESTS=${BUILD_TOOLS} + -DBUILD_CLI_EXECUTABLES=${BUILD_TOOLS} ) vcpkg_install_cmake() vcpkg_copy_pdbs() @@ -31,12 +39,12 @@ vcpkg_copy_pdbs() file(INSTALL ${SOURCE_PATH}/COPYRIGHT.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/mlpack RENAME copyright) if(BUILD_TOOLS) - 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}) + 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}) endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) diff --git a/ports/moos-core/portfile.cmake b/ports/moos-core/portfile.cmake index 196b3e6480..646fde9e2f 100644 --- a/ports/moos-core/portfile.cmake +++ b/ports/moos-core/portfile.cmake @@ -28,7 +28,7 @@ vcpkg_install_cmake() vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/MOOS") set(MOOS_EXEC_SUFFIX "") -if (WIN32) +if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") set(MOOS_EXEC_SUFFIX ".exe") endif() diff --git a/ports/octomap/portfile.cmake b/ports/octomap/portfile.cmake index 113f6fc047..d260d44096 100644 --- a/ports/octomap/portfile.cmake +++ b/ports/octomap/portfile.cmake @@ -26,7 +26,7 @@ vcpkg_install_cmake() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/octomap) -if(WIN32) +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") file(RENAME ${CURRENT_PACKAGES_DIR}/bin/binvox2bt.exe ${CURRENT_PACKAGES_DIR}/tools/octomap/binvox2bt.exe) file(RENAME ${CURRENT_PACKAGES_DIR}/bin/bt2vrml.exe ${CURRENT_PACKAGES_DIR}/tools/octomap/bt2vrml.exe) file(RENAME ${CURRENT_PACKAGES_DIR}/bin/compare_octrees.exe ${CURRENT_PACKAGES_DIR}/tools/octomap/compare_octrees.exe) diff --git a/ports/openblas/portfile.cmake b/ports/openblas/portfile.cmake index cccb5e3b17..1bd7b61574 100644 --- a/ports/openblas/portfile.cmake +++ b/ports/openblas/portfile.cmake @@ -1,15 +1,3 @@ -# Common Ambient Variables: -# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} -# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} -# CURRENT_PORT DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} -# PORT = current port name (zlib, etc) -# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) -# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) -# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) -# VCPKG_ROOT_DIR = -# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) -# - include(vcpkg_common_functions) if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") @@ -94,6 +82,8 @@ endif() vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/OpenBLAS TARGET_PATH share/openblas) +#maybe we need also to write a wrapper inside share/blas to search implicitly for openblas, whenever we feel it's ready for its own -config.cmake file # openblas do not make the config file , so I manually made this # but I think in most case, libraries will not include these files, they define their own used function prototypes diff --git a/ports/openexr/fix_clang_not_setting_modern_cplusplus.patch b/ports/openexr/fix_clang_not_setting_modern_cplusplus.patch new file mode 100644 index 0000000000..05e86b50c6 --- /dev/null +++ b/ports/openexr/fix_clang_not_setting_modern_cplusplus.patch @@ -0,0 +1,13 @@ +diff --git a/IlmBase/CMakeLists.txt b/IlmBase/CMakeLists.txt +index e13c768..95942c8 100644 +--- a/IlmBase/CMakeLists.txt ++++ b/IlmBase/CMakeLists.txt +@@ -110,7 +110,7 @@ ENDIF () + + IF (OPENEXR_FORCE_CXX03) + FILE ( APPEND ${ILMBASE_TMP_CONFIG} "#define ILMBASE_FORCE_CXX03 1\n" ) +-ELSEIF (NOT WIN32) ++ELSEIF (NOT WIN32 AND NOT APPLE) + # really only care about c++11 right now for the threading bits, but this can be changed to 14 + # when needed... + # Note that the __cplusplus check is not valid under MSVC diff --git a/ports/openexr/portfile.cmake b/ports/openexr/portfile.cmake index 256a133b4a..e3bfc95929 100644 --- a/ports/openexr/portfile.cmake +++ b/ports/openexr/portfile.cmake @@ -13,7 +13,9 @@ vcpkg_from_github( REF v${OPENEXR_VERSION} SHA512 ${OPENEXR_HASH} HEAD_REF master - PATCHES "fix_install_ilmimf.patch" + PATCHES + fix_clang_not_setting_modern_cplusplus.patch + fix_install_ilmimf.patch ) vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH} @@ -32,7 +34,7 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) # NOTE: Only use ".exe" extension on Windows executables. # Is there a cleaner way to do this? -if(WIN32) +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") set(EXECUTABLE_SUFFIX ".exe") else() set(EXECUTABLE_SUFFIX "") diff --git a/ports/openimageio/portfile.cmake b/ports/openimageio/portfile.cmake index 93b04e6275..7902739757 100644 --- a/ports/openimageio/portfile.cmake +++ b/ports/openimageio/portfile.cmake @@ -7,10 +7,9 @@ vcpkg_from_github( SHA512 a919341df7d9625a869cad266d8434881b63a47f3da8daccf4bbab6675d45bd121ff780dd911a7447450fee44cd7bdd42d73aec59a99b667d6d98e79682db2c7 HEAD_REF master PATCHES - # fix_libraw: replace 'LibRaw_r_LIBRARIES' occurences by 'LibRaw_LIBRARIES' - # since libraw port installs 'raw_r' library as 'raw' fix_libraw.patch use-webp.patch + remove_wrong_dependency.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/ext") diff --git a/ports/openimageio/remove_wrong_dependency.patch b/ports/openimageio/remove_wrong_dependency.patch new file mode 100644 index 0000000000..dabf47b1ec --- /dev/null +++ b/ports/openimageio/remove_wrong_dependency.patch @@ -0,0 +1,23 @@ +diff --git a/src/libOpenImageIO/CMakeLists.txt b/src/libOpenImageIO/CMakeLists.txt +index c528adc..bc133b6 100644 +--- a/src/libOpenImageIO/CMakeLists.txt ++++ b/src/libOpenImageIO/CMakeLists.txt +@@ -162,9 +162,6 @@ if (WIN32) + target_link_libraries (OpenImageIO psapi.lib) + endif () + +-if (VISIBILITY_MAP_FILE) +- add_dependencies (OpenImageIO "${VISIBILITY_MAP_FILE}") +-endif () + + if (USE_EXTERNAL_PUGIXML) + target_link_libraries (OpenImageIO ${PUGIXML_LIBRARIES}) +@@ -230,7 +227,7 @@ if (OIIO_BUILD_TESTS) + set_target_properties (imagespec_test PROPERTIES FOLDER "Unit Tests") + target_link_libraries (imagespec_test OpenImageIO ${Boost_LIBRARIES}) + add_test (unit_imagespec imagespec_test) +- ++ + add_executable (imagespeed_test imagespeed_test.cpp) + set_target_properties (imagespeed_test PROPERTIES FOLDER "Unit Tests") + target_link_libraries (imagespeed_test OpenImageIO ${Boost_LIBRARIES}) diff --git a/ports/openmvg/CONTROL b/ports/openmvg/CONTROL index 5006dc8dd4..90c10f3cd1 100644 --- a/ports/openmvg/CONTROL +++ b/ports/openmvg/CONTROL @@ -1,7 +1,7 @@ Source: openmvg -Version: 1.4-2 +Version: 1.4-4 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 +Build-Depends: coinutils, clp, osi, liblemon, flann, eigen3, ceres, cereal, libjpeg-turbo, tiff, libpng, zlib, suitesparse Feature: opencv Build-Depends: opencv[contrib] diff --git a/ports/openmvg/fixcmake.patch b/ports/openmvg/fixcmake.patch index 66eff4fd33..2dd5201ec7 100644 --- a/ports/openmvg/fixcmake.patch +++ b/ports/openmvg/fixcmake.patch @@ -1,5 +1,5 @@ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 654bebd..5264bfc 100644 +index 654bebd..ab7dd90 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -17,27 +17,16 @@ endif() @@ -110,7 +110,7 @@ index 654bebd..5264bfc 100644 -else() - set(EIGEN_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR}) -endif() -+find_package(eigen3 REQUIRED) ++find_package(Eigen3 REQUIRED) +set(EIGEN_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR}) # ============================================================================== @@ -218,11 +218,11 @@ index 654bebd..5264bfc 100644 - ${PROJECT_BINARY_DIR}/third_party/lemon) - set(LEMON_LIBRARY openMVG_lemon) -endif() -+find_package(Lemon REQUIRED) ++find_package(LEMON REQUIRED) # ============================================================================== # OpenCV -@@ -369,12 +270,7 @@ endif() +@@ -369,14 +270,13 @@ endif() # - only external and enabled only if OpenMVG_USE_OPENCV is set to ON # ============================================================================== if (OpenMVG_USE_OPENCV) @@ -235,8 +235,14 @@ index 654bebd..5264bfc 100644 + find_package( OpenCV REQUIRED ) endif() ++# ============================================================================== ++# Suitesparse ++# ============================================================================== ++find_package(suitesparse REQUIRED) -@@ -469,67 +365,67 @@ message("** Use OpenCV SIFT features: " ${OpenMVG_USE_OCVSIFT}) + # ============================================================================== + # Third-party libraries: +@@ -469,67 +369,67 @@ message("** Use OpenCV SIFT features: " ${OpenMVG_USE_OCVSIFT}) message("\n") diff --git a/ports/openssl-windows/portfile.cmake b/ports/openssl-windows/portfile.cmake index 4331c2eabd..b5e505a3dc 100644 --- a/ports/openssl-windows/portfile.cmake +++ b/ports/openssl-windows/portfile.cmake @@ -4,28 +4,27 @@ endif() include(vcpkg_common_functions) set(OPENSSL_VERSION 1.0.2q) -set(MASTER_COPY_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-${OPENSSL_VERSION}) -vcpkg_find_acquire_program(PERL) +vcpkg_find_acquire_program(PERL) get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}") -vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE +vcpkg_download_distfile(ARCHIVE URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.0.2/openssl-${OPENSSL_VERSION}.tar.gz" FILENAME "openssl-${OPENSSL_VERSION}.tar.gz" SHA512 403e6cad42db3ba860c3fa4fa81c1b7b02f0b873259e5c19a7fc8e42de0854602555f1b1ca74f4e3a7737a4cbd3aac063061e628ec86534586500819fae7fec0 ) -vcpkg_extract_source_archive(${OPENSSL_SOURCE_ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${MASTER_COPY_SOURCE_PATH} - PATCHES - ConfigureIncludeQuotesFix.patch - STRINGIFYPatch.patch - EnableWinARM32.patch - EmbedSymbolsInStaticLibsZ7.patch - EnableWinARM64.patch +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + ConfigureIncludeQuotesFix.patch + STRINGIFYPatch.patch + EnableWinARM32.patch + EmbedSymbolsInStaticLibsZ7.patch + EnableWinARM64.patch ) vcpkg_find_acquire_program(NASM) @@ -75,8 +74,16 @@ file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BU if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - file(COPY ${MASTER_COPY_SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/openssl-${OPENSSL_VERSION}) + + # Copy openssl sources. + message(STATUS "Copying openssl release source files...") + file(GLOB OPENSSL_SOURCE_FILES ${SOURCE_PATH}/*) + foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES}) + file(COPY ${SOURCE_FILE} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") + endforeach() + message(STATUS "Copying openssl release source files... done") + set(SOURCE_PATH_RELEASE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") + set(OPENSSLDIR_RELEASE ${CURRENT_PACKAGES_DIR}) message(STATUS "Configure ${TARGET_TRIPLET}-rel") @@ -112,11 +119,18 @@ endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - message(STATUS "Configure ${TARGET_TRIPLET}-dbg") - file(COPY ${MASTER_COPY_SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/openssl-${OPENSSL_VERSION}) + # Copy openssl sources. + message(STATUS "Copying openssl debug source files...") + file(GLOB OPENSSL_SOURCE_FILES ${SOURCE_PATH}/*) + foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES}) + file(COPY ${SOURCE_FILE} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") + endforeach() + message(STATUS "Copying openssl debug source files... done") + set(SOURCE_PATH_DEBUG "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") + set(OPENSSLDIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug) + message(STATUS "Configure ${TARGET_TRIPLET}-dbg") vcpkg_execute_required_process( COMMAND ${CONFIGURE_COMMAND} debug-${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}" -FS WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} @@ -175,6 +189,6 @@ file(WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" "${_contents}") vcpkg_copy_pdbs() file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) -file(INSTALL ${MASTER_COPY_SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) vcpkg_test_cmake(PACKAGE_NAME OpenSSL MODULE) diff --git a/ports/osi/CMakeLists.txt b/ports/osi/CMakeLists.txt index 7f4ca5ed1b..1aa44d262a 100644 --- a/ports/osi/CMakeLists.txt +++ b/ports/osi/CMakeLists.txt @@ -1,108 +1,89 @@ -cmake_minimum_required(VERSION 3.11) - -project(Osi LANGUAGES C CXX) - -set(PROJECT_VERSION 0.107.9) -set(PROJECT_VERSION_MAJOR 0) -set(PROJECT_VERSION_MINOR 107) -set(PROJECT_VERSION_PATCH 9) - -set(CMAKE_CXX_STANDARD 14) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) -set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/cmake") - -if(MSVC) - set( - CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} /bigobj /MP /wd4996 /wd4819 /wd4251 /wd4267 /wd4244 /wd4275" - ) -endif(MSVC) -if(APPLE) - set( - CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-override -Wno-unused-command-line-argument -Wno-unused-result -Wno-exceptions" - ) - set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" - CACHE STRING "Minimum OS X deployment version") -endif(APPLE) - -set_property(GLOBAL PROPERTY USE_FOLDERS ON) - -# options -option(BUILD_SHARED_LIBS "" ON) - -# -# Introduce variables: * CMAKE_INSTALL_LIBDIR * CMAKE_INSTALL_BINDIR -include(GNUInstallDirs) - -# Include module with fuction 'write_basic_package_version_file' -include(CMakePackageConfigHelpers) - -# Layout. This works for all platforms: * /lib*/cmake/ * -# /lib*/ * /include/ -set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") -set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") -# Configuration -set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake") -set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake") -set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") -set(namespace "Coin::") - -# Packages -find_package(CoinUtils REQUIRED) - -# Add sources -include_directories(Osi/src/Osi) - -file(GLOB OSI_SOURCES Osi/src/Osi/*.hpp Osi/src/Osi/*.cpp) - -add_library(${PROJECT_NAME} ${OSI_SOURCES}) - -target_include_directories(${PROJECT_NAME} - PUBLIC $) -target_compile_definitions(${PROJECT_NAME} - PUBLIC - $ - $) -target_link_libraries(${PROJECT_NAME} PRIVATE Coin::CoinUtils) - -install(TARGETS ${PROJECT_NAME} - EXPORT "${TARGETS_EXPORT_NAME}" - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES - DESTINATION include) - -install(DIRECTORY Osi/src/Osi/ - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/coin - FILES_MATCHING - PATTERN "*.h" - PATTERN "*.hpp" - PATTERN "config_default.h" EXCLUDE) - -# -# Install Libraries -# -# Configure 'ConfigVersion.cmake' Use: * PROJECT_VERSION -write_basic_package_version_file("${version_config}" - COMPATIBILITY SameMajorVersion) - -# Configure 'Config.cmake' Use variables: * TARGETS_EXPORT_NAME * -# PROJECT_NAME -configure_package_config_file("Config.cmake.in" - "${project_config}" - INSTALL_DESTINATION - "${config_install_dir}") - -# Config * /lib/cmake/Foo/FooConfig.cmake * -# /lib/cmake/Foo/FooConfigVersion.cmake -install(FILES "${project_config}" "${version_config}" - DESTINATION "${config_install_dir}") - -# Config * /lib/cmake/Foo/FooTargets.cmake -install(EXPORT "${TARGETS_EXPORT_NAME}" - NAMESPACE "${namespace}" - DESTINATION "${config_install_dir}") +cmake_minimum_required(VERSION 3.11) + +project(Osi LANGUAGES C CXX) + +set(PROJECT_VERSION 0.107.9) +set(PROJECT_VERSION_MAJOR 0) +set(PROJECT_VERSION_MINOR 107) +set(PROJECT_VERSION_PATCH 9) + +set(CMAKE_CXX_STANDARD 14) + +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/Coin" CACHE PATH "Path where headers will be installed") +set(INSTALL_CMAKE_DIR "share/${PROJECT_NAME}" 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() + +if(MSVC) + set( + CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} /bigobj /MP /wd4996 /wd4819 /wd4251 /wd4267 /wd4244 /wd4275" + ) +endif() + +if(APPLE) + set( + CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-override -Wno-unused-command-line-argument -Wno-unused-result -Wno-exceptions" + ) + set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" + CACHE STRING "Minimum OS X deployment version") +endif() + +find_package(CoinUtils REQUIRED) + +file(GLOB OSI_SOURCES Osi/src/Osi/*.hpp Osi/src/Osi/*.cpp) + +add_library(${PROJECT_NAME} ${OSI_SOURCES}) + +target_include_directories(${PROJECT_NAME} PUBLIC $ $) + +if(MSVC) + target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS) +endif() +target_compile_definitions(${PROJECT_NAME} PRIVATE HAVE_CMATH) + +target_link_libraries(${PROJECT_NAME} PRIVATE Coin::CoinUtils) + +install(DIRECTORY Osi/src/Osi/ + DESTINATION ${INSTALL_INCLUDE_DIR} + FILES_MATCHING + PATTERN "*.h" + PATTERN "*.hpp" + PATTERN "config_default.h" EXCLUDE) + +install(TARGETS ${PROJECT_NAME} + EXPORT "${PROJECT_NAME}Targets" + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin) + +include(CMakePackageConfigHelpers) + +set(version_config "${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}ConfigVersion.cmake") +set(project_config "${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}Config.cmake") +set(namespace "Coin::") + +write_basic_package_version_file("${version_config}" + COMPATIBILITY SameMajorVersion) + +configure_package_config_file("Config.cmake.in" + "${project_config}" + INSTALL_DESTINATION + "${INSTALL_CMAKE_DIR}") + +install(FILES "${project_config}" "${version_config}" + DESTINATION "${INSTALL_CMAKE_DIR}") + +install(EXPORT "${PROJECT_NAME}Targets" + NAMESPACE "${namespace}" + DESTINATION "${INSTALL_CMAKE_DIR}") diff --git a/ports/osi/CONTROL b/ports/osi/CONTROL index f75de858ab..01190fb21f 100644 --- a/ports/osi/CONTROL +++ b/ports/osi/CONTROL @@ -1,4 +1,4 @@ -Source: osi -Version: 0.108.4 -Description: Osi (Open Solver Interface) provides an abstract base class to a generic linear programming (LP) solver, along with derived classes for specific solvers. Many applications may be able to use the Osi to insulate themselves from a specific LP solver. -Build-Depends: coinutils +Source: osi +Version: 0.108.4-1 +Description: Osi (Open Solver Interface) provides an abstract base class to a generic linear programming (LP) solver, along with derived classes for specific solvers. Many applications may be able to use the Osi to insulate themselves from a specific LP solver. +Build-Depends: coinutils diff --git a/ports/osi/Config.cmake.in b/ports/osi/Config.cmake.in index ec01d2e5bd..2c12f83f02 100644 --- a/ports/osi/Config.cmake.in +++ b/ports/osi/Config.cmake.in @@ -1,5 +1,5 @@ - -@PACKAGE_INIT@ - -include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") -check_required_components("@PROJECT_NAME@") + +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +check_required_components("@PROJECT_NAME@") diff --git a/ports/osi/portfile.cmake b/ports/osi/portfile.cmake index 793e0d94c2..dc0dc78573 100644 --- a/ports/osi/portfile.cmake +++ b/ports/osi/portfile.cmake @@ -19,8 +19,13 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") #on case-sensitive filesystems, it's necessary to rename and make it lowercase + vcpkg_fixup_cmake_targets(CONFIG_PATH "share/Osi") +else() + vcpkg_fixup_cmake_targets() +endif() + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/Osi") # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/osi RENAME copyright) diff --git a/ports/platform-folders/portfile.cmake b/ports/platform-folders/portfile.cmake index c668480967..fef2bf327c 100644 --- a/ports/platform-folders/portfile.cmake +++ b/ports/platform-folders/portfile.cmake @@ -26,7 +26,7 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(INSTALL ${TARGET_BUILD_PATH}-dbg/platform_folders.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/) endif() -if (WIN32) +if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") vcpkg_fixup_cmake_targets(CONFIG_PATH cmake/ TARGET_PATH /share/platform_folders) else() vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/ TARGET_PATH /share/) diff --git a/ports/portaudio/portfile.cmake b/ports/portaudio/portfile.cmake index 9bb86005df..6fcbdf4377 100644 --- a/ports/portaudio/portfile.cmake +++ b/ports/portaudio/portfile.cmake @@ -33,7 +33,7 @@ vcpkg_install_cmake() # Remove static builds from dynamic builds and otherwise # Remove x86 and x64 from resulting files -if (WIN32) +if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file (REMOVE ${CURRENT_PACKAGES_DIR}/lib/portaudio_static_${VCPKG_TARGET_ARCHITECTURE}.lib) file (REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/portaudio_static_${VCPKG_TARGET_ARCHITECTURE}.lib) diff --git a/ports/rttr/portfile.cmake b/ports/rttr/portfile.cmake index 2c2c7e8635..a85a2b157c 100644 --- a/ports/rttr/portfile.cmake +++ b/ports/rttr/portfile.cmake @@ -23,9 +23,9 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -if(UNIX) +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") vcpkg_fixup_cmake_targets(CONFIG_PATH share/rttr/cmake) -elseif(WIN32) +elseif(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) else() message(FATAL_ERROR "RTTR does not support this platform") diff --git a/ports/shogun/CONTROL b/ports/shogun/CONTROL index 5188892da1..9854596b5f 100644 --- a/ports/shogun/CONTROL +++ b/ports/shogun/CONTROL @@ -1,4 +1,4 @@ -Source: shogun -Version: 6.1.3-1 -Build-Depends: bzip2, eigen3, liblzma, libxml2, openblas (x64), nlopt, rxcpp, snappy, zlib, protobuf, curl, lzo, dirent -Description: Unified and efficient Machine Learning +Source: shogun +Version: 6.1.3-2 +Build-Depends: bzip2, eigen3, liblzma, libxml2, openblas (x64&!osx), nlopt, rxcpp, snappy, zlib, protobuf, curl, lzo, dirent +Description: Unified and efficient Machine Learning diff --git a/ports/shogun/portfile.cmake b/ports/shogun/portfile.cmake index b207116c83..68d3ddf741 100644 --- a/ports/shogun/portfile.cmake +++ b/ports/shogun/portfile.cmake @@ -8,11 +8,9 @@ vcpkg_from_github( REF shogun_6.1.3 SHA512 11aeed456b13720099ca820ab9742c90ce4af2dc049602a425f8c44d2fa155327c7f1d3af2ec840666f600a91e75902d914ffe784d76ed35810da4f3a5815673 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/cmake.patch + PATCHES + cmake.patch + use_proper_cmake_symbol.patch ) file(REMOVE_RECURSE ${SOURCE_PATH}/cmake/external) @@ -25,6 +23,14 @@ else() set(CMAKE_DISABLE_FIND_PACKAGE_BLAS 1) endif() +if(NOT CMAKE_SYSTEM_PROCESSOR) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(CMAKE_SYSTEM_PROCESSOR "__x86_64__") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(CMAKE_SYSTEM_PROCESSOR "__i386__") + endif() +endif() + vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}") @@ -38,6 +44,7 @@ vcpkg_configure_cmake( -DUSE_SVMLIGHT=OFF -DENABLE_TESTING=OFF -DLICENSE_GPL_SHOGUN=OFF + -DLIBSHOGUN_BUILD_STATIC=ON # Conflicting definitions in OpenBLAS and Eigen -DENABLE_EIGEN_LAPACK=OFF @@ -57,6 +64,7 @@ vcpkg_configure_cmake( -DCMAKE_DISABLE_FIND_PACKAGE_BLAS=${CMAKE_DISABLE_FIND_PACKAGE_BLAS} -DINSTALL_TARGETS=shogun-static + -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR} ) vcpkg_install_cmake() diff --git a/ports/shogun/use_proper_cmake_symbol.patch b/ports/shogun/use_proper_cmake_symbol.patch new file mode 100644 index 0000000000..627c5bd779 --- /dev/null +++ b/ports/shogun/use_proper_cmake_symbol.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6f97c8b..a10b599 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -145,7 +145,7 @@ ENDIF() + DetectSystemName() + + # Get processor type, sets MACHINE macro +-SET(MACHINE ${CMAKE_SYSTEM_PROCESSOR}) ++add_definitions(-DMACHINE=${CMAKE_SYSTEM_PROCESSOR}) + + SET(EXT_LIB_SWIG_RUBY ".so") + if(DARWIN) +@@ -174,7 +174,7 @@ ENDIF() + + IF(CMAKE_COMPILER_IS_GNUCXX) + SET(RELEASE_COMPILER_FLAGS "-fexpensive-optimizations -frerun-cse-after-loop -fcse-follow-jumps -finline-functions -fschedule-insns2 -fthread-jumps -fforce-addr -fstrength-reduce -funroll-loops") +- IF (${MACHINE} MATCHES "x86_64" OR ${MACHINE} MATCHES "i686") ++ IF (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "i686") + SET(RELEASE_COMPILER_FLAGS "${RELEASE_COMPILER_FLAGS} -mfpmath=sse") + ENDIF() + ELSEIF(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") diff --git a/ports/sndfile/portfile.cmake b/ports/sndfile/portfile.cmake index 22f1579e88..f11a8695e5 100644 --- a/ports/sndfile/portfile.cmake +++ b/ports/sndfile/portfile.cmake @@ -37,7 +37,7 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -if(WIN32) +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) else() vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/SndFile) diff --git a/ports/sophus/CONTROL b/ports/sophus/CONTROL index f6433e410f..e6cf512f20 100644 --- a/ports/sophus/CONTROL +++ b/ports/sophus/CONTROL @@ -1,4 +1,4 @@ Source: sophus -Version: 1.0.0-1 -Build-Depends: eigen3, ceres +Version: 1.0.0-3 +Build-Depends: eigen3, ceres, suitesparse Description: Lie group library for C++ diff --git a/ports/sophus/fix_cmakelists.patch b/ports/sophus/fix_cmakelists.patch new file mode 100644 index 0000000000..33916cf1df --- /dev/null +++ b/ports/sophus/fix_cmakelists.patch @@ -0,0 +1,12 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fa51e2c..3e07396 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -39,6 +39,7 @@ SET( Sophus_INCLUDE_DIR ${PROJECT_SOURCE_DIR} ) + + ################################################################################ + FIND_PACKAGE( Eigen3 REQUIRED ) ++FIND_PACKAGE( suitesparse REQUIRED ) + LIST( APPEND Sophus_INCLUDE_DIR ${EIGEN3_INCLUDE_DIR} ) + + ################################################################################ diff --git a/ports/sophus/portfile.cmake b/ports/sophus/portfile.cmake index 9a45e62b87..f33260c4d7 100644 --- a/ports/sophus/portfile.cmake +++ b/ports/sophus/portfile.cmake @@ -3,9 +3,11 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO strasdat/Sophus - REF v1.0.0 + REF v1.0.0 SHA512 569634a8be9237d2240cf30c01e2677ece75d55f1196030f1228baca62fa22460e8ceb2a63bd46afdf7f02d8eb79c59d6ed666228b852da78590de897b278fab HEAD_REF master + PATCHES + fix_cmakelists.patch ) vcpkg_configure_cmake( @@ -14,14 +16,10 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() - vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/Sophus") - vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib) -# Put the license file where vcpkg expects it -file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/Sophus/) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/Sophus/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/Sophus/copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) diff --git a/ports/suitesparse/CONTROL b/ports/suitesparse/CONTROL index 43621f9fe1..5182a90cd3 100644 --- a/ports/suitesparse/CONTROL +++ b/ports/suitesparse/CONTROL @@ -1,5 +1,5 @@ Source: suitesparse -Version: 5.1.2-2 +Version: 5.4.0-1 Build-Depends: clapack (!osx) Description: algebra library diff --git a/ports/suitesparse/fix-install-suitesparse.patch b/ports/suitesparse/fix-install-suitesparse.patch deleted file mode 100644 index a5b5400fae..0000000000 --- a/ports/suitesparse/fix-install-suitesparse.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8227298..c0eb354 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -222,7 +222,7 @@ ELSE() - ENDIF() - ENDIF() - --IF(BUILD_METIS) -+IF(BUILD_METIS OR USE_VCPKG_METIS) - set(SuiteSparse_LINKER_METIS_LIBS "metis") - else() - set(SuiteSparse_LINKER_METIS_LIBS "") -diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt -index 7361363..8a48cf3 100644 ---- a/SuiteSparse/CMakeLists.txt -+++ b/SuiteSparse/CMakeLists.txt -@@ -10,7 +10,11 @@ ENDIF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug") - IF (BUILD_METIS) - INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include") - ELSE (BUILD_METIS) -+ IF(USE_VCPKG_METIS) -+ INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include") -+ ELSE (USE_VCPKG_METIS) - ADD_DEFINITIONS(-DNPARTITION) -+ ENDIF(USE_VCPKG_METIS) - ENDIF ( BUILD_METIS) - - # Disable COMPLEX numbers: disable it by default, since it causes problems in some platforms. diff --git a/ports/suitesparse/portfile.cmake b/ports/suitesparse/portfile.cmake index 45ad7a6e56..a527f88259 100644 --- a/ports/suitesparse/portfile.cmake +++ b/ports/suitesparse/portfile.cmake @@ -2,83 +2,68 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SUITESPARSE_VER SuiteSparse-5.1.2) #if you change the version, becarefull of changing the SHA512 checksum accordingly +set(SUITESPARSE_VER 5.4.0) set(SUITESPARSEWIN_VER 1.4.0) -set(SUITESPARSEWIN_PATH ${CURRENT_BUILDTREES_DIR}/src/suitesparse-metis-for-windows-${SUITESPARSEWIN_VER}) -set(SUITESPARSE_PATH ${SUITESPARSEWIN_PATH}/SuiteSparse) -#download suitesparse libary vcpkg_download_distfile(SUITESPARSE - URLS "http://faculty.cse.tamu.edu/davis/SuiteSparse/${SUITESPARSE_VER}.tar.gz" - FILENAME "${SUITESPARSE_VER}.tar.gz" - SHA512 38c7f9847cf161390f73de39ed3d9fd07f7bcec2d6d4e6f141af6a015826215843db9f2e16ca255eeb233c593ffc19ffa04816aa5b6ba200b55b9472ac33ba85 + URLS "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-${SUITESPARSE_VER}.tar.gz" + FILENAME "SuiteSparse-${SUITESPARSE_VER}.tar.gz" + SHA512 8328bcc2ef5eb03febf91b9c71159f091ff405c1ba7522e53714120fcf857ceab2d2ecf8bf9a2e1fc45e1a934665a341e3a47f954f87b59934f4fce6164775d6 ) -#download suitesparse-metis-for-windows scripts, suitesparse does not have CMake build system, jlblancoc has made one for it -vcpkg_download_distfile(SUITESPARSEWIN - URLS "https://github.com/jlblancoc/suitesparse-metis-for-windows/archive/v${SUITESPARSEWIN_VER}.zip" - FILENAME "suitesparse-metis-for-windows-${SUITESPARSEWIN_VER}.zip" - SHA512 2859d534200ab9b76fca1530eae5de2f9328aa867c727dbc83a96c6f16e1f87e70123fb2decbb84531d75dac58b6f0ce7323e48c57aeede324fd9a1f77ba74c6 +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${SUITESPARSE} ) -#extract suitesparse-metis-for-windows first and merge with suitesparse library -vcpkg_extract_source_archive(${SUITESPARSEWIN}) -vcpkg_extract_source_archive(${SUITESPARSE} ${SUITESPARSEWIN_PATH}) - -vcpkg_apply_patches( - SOURCE_PATH ${SUITESPARSEWIN_PATH} +vcpkg_from_github( + OUT_SOURCE_PATH SUITESPARSEWIN_SOURCE_PATH + REPO jlblancoc/suitesparse-metis-for-windows + REF v${SUITESPARSEWIN_VER} + SHA512 35a2563d6e33ebe8157f8d023167abd8d2512e2a627b8dbea798c59afefc56b8f01c7d10553529b03a7b4759e200ca82bb26ebce5cefce6983ffb057a8622162 + HEAD_REF master PATCHES - remove-debug-postfix.patch + suitesparse.patch ) +# Copy suitesparse sources. +message(STATUS "Copying 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") + 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() -if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - set(LIB_EXT a) - set(LIB_PREFIX lib) -else() - set(LIB_EXT lib) - set(LIB_PREFIX) -endif() - -if(WIN32) - set(ENABLE_CUSTOM_BLAS_LAPACK_PATHS "-DSUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS=ON") - set(SUITESPARSE_CUSTOM_BLAS_PATH "-DSUITESPARSE_CUSTOM_BLAS_LIB=${CURRENT_INSTALLED_DIR}/lib/openblas.lib") - set(SUITESPARSE_CUSTOM_LAPACK_PATH "-DSUITESPARSE_CUSTOM_LAPACK_LIB=${CURRENT_INSTALLED_DIR}/lib/lapack.lib") -endif() - -message(STATUS "Use CMakeLists.txt in ${SUITESPARSEWIN_PATH}") vcpkg_configure_cmake( - SOURCE_PATH ${SUITESPARSEWIN_PATH} + SOURCE_PATH ${SUITESPARSEWIN_SOURCE_PATH} PREFER_NINJA OPTIONS -DBUILD_METIS=OFF -DUSE_VCPKG_METIS=${USE_VCPKG_METIS} - -DMETIS_SOURCE_DIR=${CURRENT_INSTALLED_DIR} - -DSUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS=ON + ${ADDITIONAL_BUILD_OPTIONS} OPTIONS_DEBUG - -DSUITESPARSE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug - -DSUITESPARSE_CUSTOM_BLAS_LIB=${CURRENT_INSTALLED_DIR}/debug/lib/${LIB_PREFIX}openblas_d.${LIB_EXT} - -DSUITESPARSE_CUSTOM_LAPACK_LIB=${CURRENT_INSTALLED_DIR}/debug/lib/${LIB_PREFIX}lapack.${LIB_EXT} + -DSUITESPARSE_INSTALL_PREFIX="${CURRENT_PACKAGES_DIR}/debug" OPTIONS_RELEASE - -DSUITESPARSE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR} - -DSUITESPARSE_CUSTOM_BLAS_LIB=${CURRENT_INSTALLED_DIR}/lib/${LIB_PREFIX}openblas.${LIB_EXT} - -DSUITESPARSE_CUSTOM_LAPACK_LIB=${CURRENT_INSTALLED_DIR}/lib/${LIB_PREFIX}lapack.${LIB_EXT} + -DSUITESPARSE_INSTALL_PREFIX="${CURRENT_PACKAGES_DIR}" ) vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake") +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/suitesparse-${SUITESPARSE_VER}" TARGET_PATH "share/suitesparse") #clean folders file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright of suitesparse and suitesparse-metis-for-windows -file(COPY ${SUITESPARSE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse) +file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse) file(RENAME ${CURRENT_PACKAGES_DIR}/share/suitesparse/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/suitesparse/copyright) -file(COPY ${SUITESPARSEWIN_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse) +file(COPY ${SUITESPARSEWIN_SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse) file(RENAME ${CURRENT_PACKAGES_DIR}/share/suitesparse/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/suitesparse/copyright_suitesparse-metis-for-windows) diff --git a/ports/suitesparse/remove-debug-postfix.patch b/ports/suitesparse/remove-debug-postfix.patch deleted file mode 100644 index 1b41139dae..0000000000 --- a/ports/suitesparse/remove-debug-postfix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- CMakeLists.txt Mon Feb 22 22:18:25 2016 -+++ CMakeLists.txt Wed Jul 05 14:14:21 2017 -@@ -35,7 +35,7 @@ - - # We want libraries to be named "libXXX" and "libXXXd" in all compilers: - # ------------------------------------------------------------------------ --set(CMAKE_DEBUG_POSTFIX "d") -+#set(CMAKE_DEBUG_POSTFIX "d") - IF(MSVC) - set(SP_LIB_PREFIX "lib") # Libs are: "libXXX" - ENDIF(MSVC) diff --git a/ports/suitesparse/suitesparse.patch b/ports/suitesparse/suitesparse.patch new file mode 100644 index 0000000000..3943556067 --- /dev/null +++ b/ports/suitesparse/suitesparse.patch @@ -0,0 +1,73 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3486f05..98badb6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -252,7 +252,7 @@ if(SuiteSparse_LAPACK_BLAS_LIB_DIR) # "Export" the imported targets in config.cm + set_property(TARGET lapack PROPERTY IMPORTED_IMPLIB \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/liblapack.lib)") + endif() + +-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 +311,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..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..49387b8 100644 +--- a/cmake/SuiteSparse-config-install.cmake.in ++++ b/cmake/SuiteSparse-config-install.cmake.in +@@ -4,13 +4,10 @@ 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 +28,11 @@ 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) ++ diff --git a/ports/tgui/portfile.cmake b/ports/tgui/portfile.cmake index e87bfaaa96..dd326c9ae8 100644 --- a/ports/tgui/portfile.cmake +++ b/ports/tgui/portfile.cmake @@ -36,15 +36,15 @@ vcpkg_copy_pdbs() if(BUILD_GUI_BUILDER) set(EXECUTABLE_SUFFIX "") - if (WIN32) + if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") set(EXECUTABLE_SUFFIX ".exe") endif() message(STATUS "Check for: ${TGUI_SHARE_PATH}/gui-builder/gui-builder${EXECUTABLE_SUFFIX}") if(EXISTS "${TGUI_SHARE_PATH}/gui-builder/gui-builder${EXECUTABLE_SUFFIX}") file(MAKE_DIRECTORY "${TGUI_TOOLS_PATH}") - file(RENAME - "${TGUI_SHARE_PATH}/gui-builder/gui-builder${EXECUTABLE_SUFFIX}" + file(RENAME + "${TGUI_SHARE_PATH}/gui-builder/gui-builder${EXECUTABLE_SUFFIX}" "${TGUI_TOOLS_PATH}/gui-builder${EXECUTABLE_SUFFIX}") # Need to copy `resources` and `themes` directories file(COPY "${TGUI_SHARE_PATH}/gui-builder/resources" DESTINATION "${TGUI_TOOLS_PATH}") diff --git a/ports/theia/CONTROL b/ports/theia/CONTROL index 070ed0a81a..d29e6b3fef 100644 --- a/ports/theia/CONTROL +++ b/ports/theia/CONTROL @@ -1,4 +1,4 @@ -Source: theia -Version: 0.8 -Build-Depends: flann, cereal, ceres[suitesparse] (!x86&!uwp&!arm&!linux&!osx), openimageio, glew, freeglut -Description: An open source library for multiview geometry and structure from motion +Source: theia +Version: 0.8-2 +Build-Depends: flann, cereal, ceres[suitesparse], openimageio, glew, freeglut (!osx) +Description: An open source library for multiview geometry and structure from motion diff --git a/ports/theia/fix-cmakelists.patch b/ports/theia/fix-cmakelists.patch deleted file mode 100644 index 674543c687..0000000000 --- a/ports/theia/fix-cmakelists.patch +++ /dev/null @@ -1,310 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9c1b150..367fbbc 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -218,24 +218,71 @@ include_directories( - # as system headers. - include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS}) - -+ -+set(THEIA_USE_EXTERNAL_CEREAL OFF CACHE BOOL "Use a system Cereal library") -+set(THEIA_USE_EXTERNAL_FLANN OFF CACHE BOOL "Use a system Flann library") -+ - # build Third party libraries included in distro. --add_subdirectory(libraries) --include_directories( -- libraries -- libraries/spectra -- ${akaze_SOURCE_DIR} -- ${akaze_INCLUDE_DIR} -- ${cereal_SOURCE_DIR} -- ${cereal_SOURCE_DIR}/include -- ${flann_SOURCE_DIR} -- ${flann_SOURCE_DIR}/src/cpp -- ${gtest_SOURCE_DIR}/include -- ${gtest_SOURCE_DIR} -- ${optimo_SOURCE_DIR} -- ${statx_SOURCE_DIR} -- ${stlplus3_SOURCE_DIR} -- ${vlfeat_SOURCE_DIR} -- ${visual_sfm_SOURCE_DIR}) -+if (BUILD_TESTING) -+ add_subdirectory(libraries/gtest) -+endif (BUILD_TESTING) -+ -+# AKAZE feature extractor. -+add_subdirectory(libraries/akaze) -+ -+include_directories(${akaze_SOURCE_DIR} ${akaze_INCLUDE_DIR}) -+ -+# Cereal for portable IO. -+if(NOT THEIA_USE_EXTERNAL_CEREAL) -+ add_subdirectory(libraries/cereal) -+ -+ include_directories(${cereal_SOURCE_DIR} ${cereal_SOURCE_DIR}/include) -+ set(THEIA_INTERNAL_CEREAL_LIB ${THEIA_INTERNAL_LIB_PREFIX}/cereal ${THEIA_INTERNAL_LIB_PREFIX}/cereal/include) -+else() -+ find_package(cereal REQUIRED) -+ -+ set(_THEIA_CEREAL_LIBRARIES cereal) -+endif() -+ -+# Flann for fast approximate nearest neighbor searches. -+if(NOT THEIA_USE_EXTERNAL_FLANN) -+ add_subdirectory(libraries/flann) -+ -+ include_directories(${flann_SOURCE_DIR} ${flann_SOURCE_DIR}/src/cpp) -+ set(_THEIA_FLANN_LIBRARIES flann_cpp) -+ set(THEIA_INTERNAL_FLANN_LIB ${THEIA_INTERNAL_LIB_PREFIX}/flann) -+else() -+ find_package(Flann REQUIRED) -+ -+ include_directories(${FLANN_INCLUDE_DIR}) -+ set(_THEIA_FLANN_LIBRARIES ${FLANN_LIBRARY}) -+endif() -+ -+# Add Optimo. -+add_subdirectory(libraries/optimo) -+include_directories(${optimo_SOURCE_DIR}) -+ -+# Add Spectra. -+include_directories(libraries/spectra) -+ -+# Add Statx. -+add_subdirectory(libraries/statx) -+include_directories(${statx_SOURCE_DIR}) -+ -+# STLPlus for filepath tools. -+add_subdirectory(libraries/stlplus3) -+include_directories(${stlplus3_SOURCE_DIR}) -+ -+# Add VLFeat. -+add_subdirectory(libraries/vlfeat) -+include_directories(${vlfeat_SOURCE_DIR}) -+ -+# Add VisualSfM files. -+add_subdirectory(libraries/visual_sfm) -+include_directories(${visual_sfm_SOURCE_DIR}) -+ -+include_directories(libraries) -+ - - list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") - include(OptimizeTheiaCompilerFlags) -@@ -260,7 +307,19 @@ install(FILES ${THEIA_HDRS} DESTINATION include/theia) - file(GLOB_RECURSE THEIA_INTERNAL_HDRS ${CMAKE_SOURCE_DIR}/src/theia/*.h) - install(DIRECTORY src/theia/ DESTINATION include/theia FILES_MATCHING PATTERN "*.h") - --install(DIRECTORY libraries/ DESTINATION include/theia/libraries FILES_MATCHING PATTERN "*.h*") -+install(DIRECTORY libraries/akaze/ DESTINATION include/theia/libraries/akaze FILES_MATCHING PATTERN "*.h*") -+if(NOT THEIA_USE_EXTERNAL_CEREAL) -+ install(DIRECTORY libraries/cereal/ DESTINATION include/theia/libraries/cereal FILES_MATCHING PATTERN "*.h*") -+endif() -+if(NOT THEIA_USE_EXTERNAL_FLANN) -+ install(DIRECTORY libraries/flann/ DESTINATION include/theia/libraries/flann FILES_MATCHING PATTERN "*.h*") -+endif() -+install(DIRECTORY libraries/optimo/ DESTINATION include/theia/libraries/optimo FILES_MATCHING PATTERN "*.h*") -+install(DIRECTORY libraries/spectra/ DESTINATION include/theia/libraries/spectra FILES_MATCHING PATTERN "*.h*") -+install(DIRECTORY libraries/statx/ DESTINATION include/theia/libraries/statx FILES_MATCHING PATTERN "*.h*") -+install(DIRECTORY libraries/stlplus3/ DESTINATION include/theia/libraries/stlplus3 FILES_MATCHING PATTERN "*.h*") -+install(DIRECTORY libraries/visual_sfm/ DESTINATION include/theia/libraries/visual_sfm FILES_MATCHING PATTERN "*.h*") -+install(DIRECTORY libraries/vlfeat/ DESTINATION include/theia/libraries/vlfeat FILES_MATCHING PATTERN "*.h*") - - # Add an uninstall target to remove all installed files. - configure_file("${CMAKE_SOURCE_DIR}/cmake/uninstall.cmake.in" -@@ -320,8 +379,9 @@ configure_file("${CMAKE_SOURCE_DIR}/cmake/TheiaConfigVersion.cmake.in" - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/TheiaConfig.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/TheiaConfigVersion.cmake" - "${CMAKE_SOURCE_DIR}/cmake/FindEigen.cmake" -- "${CMAKE_SOURCE_DIR}/cmake/FindGlog.cmake" -+ "${CMAKE_SOURCE_DIR}/cmake/FindFlann.cmake" - "${CMAKE_SOURCE_DIR}/cmake/FindGflags.cmake" -- "${CMAKE_SOURCE_DIR}/cmake/FindOpenImageIO.cmake" -+ "${CMAKE_SOURCE_DIR}/cmake/FindGlog.cmake" -+ "${CMAKE_SOURCE_DIR}/cmake/FindOpenImageIO.cmake" - "${CMAKE_SOURCE_DIR}/cmake/FindSuiteSparse.cmake" - DESTINATION ${CMAKECONFIG_INSTALL_DIR}) -diff --git a/cmake/FindFlann.cmake b/cmake/FindFlann.cmake -new file mode 100644 -index 0000000..5d19ef7 ---- /dev/null -+++ b/cmake/FindFlann.cmake -@@ -0,0 +1,63 @@ -+############################################################################### -+# Find FLANN -+# -+# This sets the following variables: -+# FLANN_FOUND - True if FLANN was found. -+# FLANN_INCLUDE_DIRS - Directories containing the FLANN include files. -+# FLANN_LIBRARIES - Libraries needed to use FLANN. -+# FLANN_DEFINITIONS - Compiler flags for FLANN. -+# If FLANN_USE_STATIC is specified and then look for static libraries ONLY else -+# look for shared ones -+ -+if(FLANN_USE_STATIC) -+ set(FLANN_RELEASE_NAME flann_cpp_s flann_cpp) -+ set(FLANN_DEBUG_NAME flann_cpp_s-gd flann_cpp-gd) -+else(FLANN_USE_STATIC) -+ set(FLANN_RELEASE_NAME flann_cpp) -+ set(FLANN_DEBUG_NAME flann_cpp-gd) -+endif(FLANN_USE_STATIC) -+ -+find_package(PkgConfig QUIET) -+if (FLANN_FIND_VERSION) -+ pkg_check_modules(PC_FLANN flann>=${FLANN_FIND_VERSION}) -+else(FLANN_FIND_VERSION) -+ pkg_check_modules(PC_FLANN flann) -+endif(FLANN_FIND_VERSION) -+ -+set(FLANN_DEFINITIONS ${PC_FLANN_CFLAGS_OTHER}) -+ -+find_path(FLANN_INCLUDE_DIR flann/flann.hpp -+ HINTS ${PC_FLANN_INCLUDEDIR} ${PC_FLANN_INCLUDE_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}" -+ PATHS "$ENV{PROGRAMFILES}/Flann" "$ENV{PROGRAMW6432}/Flann" -+ PATH_SUFFIXES include) -+ -+find_library(FLANN_LIBRARY -+ NAMES ${FLANN_RELEASE_NAME} -+ HINTS ${PC_FLANN_LIBDIR} ${PC_FLANN_LIBRARY_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}" -+ PATHS "$ENV{PROGRAMFILES}/Flann" "$ENV{PROGRAMW6432}/Flann" -+ PATH_SUFFIXES lib) -+ -+find_library(FLANN_LIBRARY_DEBUG -+ NAMES ${FLANN_DEBUG_NAME} ${FLANN_RELEASE_NAME} -+ HINTS ${PC_FLANN_LIBDIR} ${PC_FLANN_LIBRARY_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}" -+ PATHS "$ENV{PROGRAMFILES}/Flann" "$ENV{PROGRAMW6432}/Flann" -+ PATH_SUFFIXES lib) -+ -+if(NOT FLANN_LIBRARY_DEBUG) -+ set(FLANN_LIBRARY_DEBUG ${FLANN_LIBRARY}) -+endif(NOT FLANN_LIBRARY_DEBUG) -+ -+set(FLANN_INCLUDE_DIRS ${FLANN_INCLUDE_DIR}) -+set(FLANN_LIBRARIES optimized ${FLANN_LIBRARY} debug ${FLANN_LIBRARY_DEBUG}) -+ -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args(FLANN DEFAULT_MSG FLANN_LIBRARY FLANN_INCLUDE_DIR) -+ -+mark_as_advanced(FLANN_LIBRARY FLANN_LIBRARY_DEBUG FLANN_INCLUDE_DIR) -+ -+if(FLANN_FOUND) -+ message(STATUS "Flann found (include: ${FLANN_INCLUDE_DIRS}, lib: ${FLANN_LIBRARIES})") -+ if(FLANN_USE_STATIC) -+ add_definitions(-DFLANN_STATIC) -+ endif(FLANN_USE_STATIC) -+endif(FLANN_FOUND) -diff --git a/cmake/TheiaConfig.cmake.in b/cmake/TheiaConfig.cmake.in -index a3ea187..9195da1 100644 ---- a/cmake/TheiaConfig.cmake.in -+++ b/cmake/TheiaConfig.cmake.in -@@ -207,22 +207,47 @@ endif (NOT TARGET theia AND NOT Theia_BINARY_DIR) - # Set the expected XX_LIBRARIES variable for FindPackage(). - set(THEIA_LIBRARIES theia) - -+set(THEIA_USE_EXTERNAL_CEREAL @THEIA_USE_EXTERNAL_CEREAL@) -+set(THEIA_USE_EXTERNAL_FLANN @THEIA_USE_EXTERNAL_FLANN@) -+ -+# Cereal. -+if (THEIA_USE_EXTERNAL_CEREAL) -+ find_package(cereal QUIET) -+ if (TARGET cereal) -+ message(STATUS "Found required Theia dependency: Cereal") -+ else (TARGET cereal) -+ theia_report_not_found("Missing required Theia dependency: Cereal.") -+ endif (TARGET cereal) -+ list(APPEND THEIA_LIBRARIES cereal) -+endif (THEIA_USE_EXTERNAL_CEREAL) -+ -+# Flann. -+if (THEIA_USE_EXTERNAL_FLANN) -+ find_package(Flann QUIET) -+ if (FLANN_FOUND) -+ message(STATUS "Found required Theia dependency: Flann") -+ else (FLANN_FOUND) -+ theia_report_not_found("Missing required Theia dependency: Flann.") -+ endif (FLANN_FOUND) -+ list(APPEND THEIA_INCLUDE_DIRS ${FLANN_INCLUDE_DIR}) -+ list(APPEND THEIA_LIBRARIES ${FLANN_LIBRARY}) -+endif (THEIA_USE_EXTERNAL_FLANN) -+ - # Add the libraries included with the distribution. - set(THEIA_INTERNAL_LIB_PREFIX ${THEIA_INCLUDE_DIR}/theia/libraries) - set(THEIA_INTERNAL_LIBS_INCLUDES - ${THEIA_INTERNAL_LIB_PREFIX} - ${THEIA_INTERNAL_LIB_PREFIX}/akaze -- ${THEIA_INTERNAL_LIB_PREFIX}/cereal -- ${THEIA_INTERNAL_LIB_PREFIX}/cereal/include -- ${THEIA_INTERNAL_LIB_PREFIX}/flann -+ @THEIA_INTERNAL_CEREAL_LIB@ -+ @THEIA_INTERNAL_FLANN_LIB@ - ${THEIA_INTERNAL_LIB_PREFIX}/gtest - ${THEIA_INTERNAL_LIB_PREFIX}/gtest/include - ${THEIA_INTERNAL_LIB_PREFIX}/optimo - ${THEIA_INTERNAL_LIB_PREFIX}/spectra - ${THEIA_INTERNAL_LIB_PREFIX}/statx - ${THEIA_INTERNAL_LIB_PREFIX}/stlplus3 -- ${THEIA_INTERNAL_LIB_PREFIX}/vlfeat -- ${THEIA_INTERNAL_LIB_PREFIX}/visual_sfm) -+ ${THEIA_INTERNAL_LIB_PREFIX}/visual_sfm -+ ${THEIA_INTERNAL_LIB_PREFIX}/vlfeat) - - list(APPEND THEIA_INCLUDE_DIRS ${THEIA_INTERNAL_LIBS_INCLUDES}) - -diff --git a/libraries/CMakeLists.txt b/libraries/CMakeLists.txt -deleted file mode 100644 -index 84f3829..0000000 ---- a/libraries/CMakeLists.txt -+++ /dev/null -@@ -1,27 +0,0 @@ --if (${BUILD_TESTING}) -- add_subdirectory(gtest) --endif (${BUILD_TESTING}) -- --# AKAZE feature extractor. --add_subdirectory(akaze) -- --# Cereal for portable IO. --add_subdirectory(cereal) -- --# Flann for fast approximate nearest neighbor searches. --add_subdirectory(flann) -- --# Add Optimo. --add_subdirectory(optimo) -- --# Add Statx. --add_subdirectory(statx) -- --# STLPlus for filepath tools. --add_subdirectory(stlplus3) -- --# Add VLFeat. --add_subdirectory(vlfeat) -- --# Add VisualSfM files. --add_subdirectory(visual_sfm) -\ No newline at end of file -diff --git a/src/theia/CMakeLists.txt b/src/theia/CMakeLists.txt -index 65787eb..07c54a4 100644 ---- a/src/theia/CMakeLists.txt -+++ b/src/theia/CMakeLists.txt -@@ -174,14 +174,15 @@ set(THEIA_LIBRARY_DEPENDENCIES - ${CERES_LIBRARIES} - ${GFLAGS_LIBRARIES} - ${GLOG_LIBRARIES} -- ${SUITESPARSE_LIBRARIES} - ${OPENIMAGEIO_LIBRARIES} -+ ${SUITESPARSE_LIBRARIES} -+ ${_THEIA_CEREAL_LIBRARIES} -+ ${_THEIA_FLANN_LIBRARIES} - akaze -- flann_cpp - statx - stlplus3 -- vlfeat -- visual_sfm) -+ visual_sfm -+ vlfeat) - - set(THEIA_LIBRARY_SOURCE - ${THEIA_SRC} diff --git a/ports/theia/fix-external-dependencies.patch b/ports/theia/fix-external-dependencies.patch new file mode 100644 index 0000000000..7a4b009611 --- /dev/null +++ b/ports/theia/fix-external-dependencies.patch @@ -0,0 +1,405 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9c1b150..5810156 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -129,70 +129,27 @@ endif () + + # GFlags. The namespace patch is borrow from Ceres Solver (see license in + # FindGflags.cmake) ++message("-- Check for Google Flags") + find_package(Gflags REQUIRED) +-if (GFLAGS_FOUND) +- message("-- Found Google Flags: ${GFLAGS_INCLUDE_DIRS} in namespace: ${GFLAGS_NAMESPACE}") +- add_definitions(-DTHEIA_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE}) +-else (GFLAGS_FOUND) +- message(FATAL_ERROR "Can't find Google FLAGS.") +-endif (GFLAGS_FOUND) + + # Google Logging + message("-- Check for Google Log") + find_package(Glog REQUIRED) +-if (GLOG_FOUND) +- message("-- Found Google Logging: ${GLOG_INCLUDE_DIRS}") +-else (GLOG_FOUND) +- message(FATAL_ERROR "Can't find Google Logging. Please set GLOG_INCLUDE_DIR & " +- "GLOG_LIBRARY") +-endif (GLOG_FOUND) ++ ++# Flann ++message("-- Check for Flann") ++find_package(Flann REQUIRED) + + # Ceres + message("-- Check for Ceres") + find_package(Ceres REQUIRED SuiteSparse) +-if (CERES_FOUND) +- message("-- Found Ceres: ${CERES_INCLUDE_DIRS}") +-else (CERES_FOUND) +- message(FATAL_ERROR "Can't find Ceres. Please set CERES_INCLUDE_DIR & " +- "CERES_LIBRARY") +-endif (CERES_FOUND) + + # OpenImageIO + message("-- Check for OpenImageIO") + find_package(OpenImageIO REQUIRED) +-if (OPENIMAGEIO_FOUND) +- message("-- Found OpenImageIO: ${OPENIMAGEIO_INCLUDE_DIRS}") +-else (OPENIMAGEIO_FOUND) +- message(FATAL_ERROR "Can't find OpenImageIO. Please set OPENIMAGEIO_INCLUDE_DIR & " +- "OPENIMAGEIO_LIBRARY") +-endif (OPENIMAGEIO_FOUND) + + # Suitesparse + find_package(SuiteSparse REQUIRED) +-if (SUITESPARSE_FOUND) +- # On Ubuntu the system install of SuiteSparse (v3.4.0) up to at least +- # Ubuntu 13.10 cannot be used to link shared libraries. +- if (BUILD_SHARED_LIBS AND +- SUITESPARSE_IS_BROKEN_SHARED_LINKING_UBUNTU_SYSTEM_VERSION) +- message(FATAL_ERROR "You are attempting to build Theia as a shared " +- "library on Ubuntu using a system package install of SuiteSparse " +- "3.4.0. This package is broken and does not support the " +- "construction of shared libraries (you can still build Theia as " +- "a static library). If you wish to build a shared version of Theia " +- "you should uninstall the system install of SuiteSparse " +- "(libsuitesparse-dev) and perform a source install of SuiteSparse " +- "(we recommend that you use the latest version), " +- "see http://theia-solver.org/building.html for more information.") +- endif (BUILD_SHARED_LIBS AND +- SUITESPARSE_IS_BROKEN_SHARED_LINKING_UBUNTU_SYSTEM_VERSION) +- message("-- Found SuiteSparse ${SUITESPARSE_VERSION}") +- add_definitions(-DTHEIA_SUITESPARSE_VERSION="${SUITESPARSE_VERSION}") +-else (SUITESPARSE_FOUND) +- # Disable use of SuiteSparse if it cannot be found and continue. +- message(FATAL ERROR "Can't find SuiteSparse. This library is required " +- "for bundle adjustment and for solving convex optimization problems. " +- "Please set SUITESPARSE_INCLUDE_DIR & SUITESPARSE_LIBRARY") +-endif (SUITESPARSE_FOUND) + + include_directories( + include +@@ -225,24 +182,19 @@ include_directories( + libraries/spectra + ${akaze_SOURCE_DIR} + ${akaze_INCLUDE_DIR} +- ${cereal_SOURCE_DIR} +- ${cereal_SOURCE_DIR}/include +- ${flann_SOURCE_DIR} +- ${flann_SOURCE_DIR}/src/cpp +- ${gtest_SOURCE_DIR}/include +- ${gtest_SOURCE_DIR} + ${optimo_SOURCE_DIR} + ${statx_SOURCE_DIR} + ${stlplus3_SOURCE_DIR} + ${vlfeat_SOURCE_DIR} +- ${visual_sfm_SOURCE_DIR}) ++ ${visual_sfm_SOURCE_DIR} ++) + + list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") + include(OptimizeTheiaCompilerFlags) + optimizetheiacompilerflags() + + add_subdirectory(src/theia) +-add_subdirectory(applications) ++#add_subdirectory(applications) + + if (BUILD_DOCUMENTATION) + message("-- Documentation building is enabled") +@@ -260,7 +212,13 @@ install(FILES ${THEIA_HDRS} DESTINATION include/theia) + file(GLOB_RECURSE THEIA_INTERNAL_HDRS ${CMAKE_SOURCE_DIR}/src/theia/*.h) + install(DIRECTORY src/theia/ DESTINATION include/theia FILES_MATCHING PATTERN "*.h") + +-install(DIRECTORY libraries/ DESTINATION include/theia/libraries FILES_MATCHING PATTERN "*.h*") ++install(DIRECTORY libraries/akaze/ DESTINATION include/theia/libraries/akaze FILES_MATCHING PATTERN "*.h*") ++install(DIRECTORY libraries/optimo/ DESTINATION include/theia/libraries/optimo FILES_MATCHING PATTERN "*.h*") ++install(DIRECTORY libraries/spectra/ DESTINATION include/theia/libraries/spectra FILES_MATCHING PATTERN "*.h*") ++install(DIRECTORY libraries/statx/ DESTINATION include/theia/libraries/statx FILES_MATCHING PATTERN "*.h*") ++install(DIRECTORY libraries/stlplus3/ DESTINATION include/theia/libraries/stlplus3 FILES_MATCHING PATTERN "*.h*") ++install(DIRECTORY libraries/visual_sfm/ DESTINATION include/theia/libraries/visual_sfm FILES_MATCHING PATTERN "*.h*") ++install(DIRECTORY libraries/vlfeat/ DESTINATION include/theia/libraries/vlfeat FILES_MATCHING PATTERN "*.h*") + + # Add an uninstall target to remove all installed files. + configure_file("${CMAKE_SOURCE_DIR}/cmake/uninstall.cmake.in" +@@ -272,17 +230,10 @@ add_custom_target(uninstall + + # Set up install directories. INCLUDE_INSTALL_DIR, LIB_INSTALL_DIR and + # CMAKECONFIG_INSTALL_DIR must not be absolute paths. +-if (WIN32) +- set(INCLUDE_INSTALL_DIR Include) +- set(LIB_INSTALL_DIR Lib) +- set(CMAKECONFIG_INSTALL_DIR CMake) +- set(RELATIVE_CMAKECONFIG_INSTALL_DIR CMake) +-else () +- set(INCLUDE_INSTALL_DIR include) +- set(LIB_INSTALL_DIR lib) +- set(CMAKECONFIG_INSTALL_DIR share/Theia) +- set(RELATIVE_CMAKECONFIG_INSTALL_DIR share/Theia) +-endif () ++set(INCLUDE_INSTALL_DIR include) ++set(LIB_INSTALL_DIR lib) ++set(CMAKECONFIG_INSTALL_DIR share/theia) ++set(RELATIVE_CMAKECONFIG_INSTALL_DIR share/theia) + + # This "exports" all targets which have been put into the export set + # "TheiaExport". This means that CMake generates a file with the given +@@ -319,9 +270,5 @@ configure_file("${CMAKE_SOURCE_DIR}/cmake/TheiaConfigVersion.cmake.in" + # in the public API of Theia and should thus be present in THEIA_INCLUDE_DIRS. + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/TheiaConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/TheiaConfigVersion.cmake" +- "${CMAKE_SOURCE_DIR}/cmake/FindEigen.cmake" +- "${CMAKE_SOURCE_DIR}/cmake/FindGlog.cmake" +- "${CMAKE_SOURCE_DIR}/cmake/FindGflags.cmake" +- "${CMAKE_SOURCE_DIR}/cmake/FindOpenImageIO.cmake" +- "${CMAKE_SOURCE_DIR}/cmake/FindSuiteSparse.cmake" ++ "${CMAKE_SOURCE_DIR}/cmake/FindOpenImageIO.cmake" + DESTINATION ${CMAKECONFIG_INSTALL_DIR}) +diff --git a/cmake/TheiaConfig.cmake.in b/cmake/TheiaConfig.cmake.in +index a3ea187..7e9d912 100644 +--- a/cmake/TheiaConfig.cmake.in ++++ b/cmake/TheiaConfig.cmake.in +@@ -124,14 +124,7 @@ list(APPEND CERES_INCLUDE_DIR_HINTS @CERES_INCLUDE_DIR@) + get_filename_component(THEIA_BUILD_CERES_LIBRARY_DIR @CERES_LIBRARIES@ PATH) + list(APPEND CERES_LIBRARY_DIR_HINTS ${THEIA_BUILD_CERES_LIBRARY_DIR}) + # Search quietly s/t we control the timing of the error message if not found. +-find_package(Ceres QUIET) +-if (CERES_FOUND) +- message(STATUS "Found required Theia dependency: " +- "Ceres in ${CERES_INCLUDE_DIRS}") +-else (CERES_FOUND) +- theia_report_not_found("Missing required Theia " +- "dependency: Ceres, please set CERES_INCLUDE_DIR.") +-endif (CERES_FOUND) ++find_package(Ceres REQUIRED) + list(APPEND THEIA_INCLUDE_DIRS ${CERES_INCLUDE_DIRS}) + + # Glog. +@@ -140,64 +133,19 @@ list(APPEND GLOG_INCLUDE_DIR_HINTS @GLOG_INCLUDE_DIR@) + get_filename_component(THEIA_BUILD_GLOG_LIBRARY_DIR @GLOG_LIBRARY@ PATH) + list(APPEND GLOG_LIBRARY_DIR_HINTS ${THEIA_BUILD_GLOG_LIBRARY_DIR}) + # Search quietly s/t we control the timing of the error message if not found. +-find_package(Glog QUIET) +-if (GLOG_FOUND) +- message(STATUS "Found required Theia dependency: " +- "Glog in ${GLOG_INCLUDE_DIRS}") +-else (GLOG_FOUND) +- theia_report_not_found("Missing required Theia " +- "dependency: Glog, please set GLOG_INCLUDE_DIR.") +-endif (GLOG_FOUND) ++find_package(Glog REQUIRED) + list(APPEND THEIA_INCLUDE_DIRS ${GLOG_INCLUDE_DIRS}) + + # GFlags. The namespace patch is borrow from Ceres Solver (see license in + # FindGflags.cmake) +-find_package(Gflags QUIET) +-if (GFLAGS_FOUND) +- message(STATUS "Found required Theia dependency: Google Flags in " +- "${GFLAGS_INCLUDE_DIRS} in namespace: ${GFLAGS_NAMESPACE}") +- add_definitions(-DTHEIA_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE}) +-else (GFLAGS_FOUND) +- theia_report_not_found("Missing required Theia dependency: Google Flags, please set " +- "GFLAGS_INCLUDE_DIR.") +-endif (GFLAGS_FOUND) ++find_package(Gflags REQUIRED) + list(APPEND THEIA_INCLUDE_DIRS ${GFLAGS_INCLUDE_DIRS}) + + # OpenImageIO +-find_package(OpenImageIO QUIET) +-if (OPENIMAGEIO_FOUND) +- message(STATUS "Found Theia dependency: OpenImageIO in ${OPENIMAGEIO_INCLUDE_DIRS}") +-else (OPENIMAGEIO_FOUND) +- theia_report_not_found("Missing required Theia dependency: OpenImageIO. Please set " +- "OPENIMAGEIO_INCLUDE_DIR & OPENIMAGEIO_LIBRARY") +-endif (OPENIMAGEIO_FOUND) ++find_package(OpenImageIO REQUIRED) + list(APPEND THEIA_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIRS}) + +-find_package(SuiteSparse QUIET) +-if (SUITESPARSE_FOUND) +- # On Ubuntu the system install of SuiteSparse (v3.4.0) up to at least +- # Ubuntu 13.10 cannot be used to link shared libraries. +- if (BUILD_SHARED_LIBS AND +- SUITESPARSE_IS_BROKEN_SHARED_LINKING_UBUNTU_SYSTEM_VERSION) +- theia_report_not_found("You are attempting to build Theia as a shared " +- "library on Ubuntu using a system package install of SuiteSparse " +- "3.4.0. This package is broken and does not support the " +- "construction of shared libraries (you can still build Theia as " +- "a static library). If you wish to build a shared version of Theia " +- "you should uninstall the system install of SuiteSparse " +- "(libsuitesparse-dev) and perform a source install of SuiteSparse " +- "(we recommend that you use the latest version), " +- "see http://theia-solver.org/building.html for more information.") +- endif (BUILD_SHARED_LIBS AND +- SUITESPARSE_IS_BROKEN_SHARED_LINKING_UBUNTU_SYSTEM_VERSION) +- message("-- Found SuiteSparse ${SUITESPARSE_VERSION}") +- add_definitions(-DTHEIA_SUITESPARSE_VERSION="${SUITESPARSE_VERSION}") +-else (SUITESPARSE_FOUND) +- # Disable use of SuiteSparse if it cannot be found and continue. +- theia_report_not_found("Can't find SuiteSparse. This library is required " +- "for bundle adjustment and for solving convex optimization problems. " +- "Please set SUITESPARSE_INCLUDE_DIR & SUITESPARSE_LIBRARY") +-endif (SUITESPARSE_FOUND) ++find_package(SuiteSparse REQUIRED) + list(APPEND THEIA_INCLUDE_DIRS ${SUITESPARSE_INCLUDE_DIRS}) + + # Import exported Theia targets. +@@ -207,22 +155,24 @@ endif (NOT TARGET theia AND NOT Theia_BINARY_DIR) + # Set the expected XX_LIBRARIES variable for FindPackage(). + set(THEIA_LIBRARIES theia) + ++find_package(cereal REQUIRED) ++list(APPEND THEIA_LIBRARIES cereal) ++ ++find_package(Flann REQUIRED) ++list(APPEND THEIA_INCLUDE_DIRS ${FLANN_INCLUDE_DIR}) ++list(APPEND THEIA_LIBRARIES ${FLANN_LIBRARY}) ++ + # Add the libraries included with the distribution. + set(THEIA_INTERNAL_LIB_PREFIX ${THEIA_INCLUDE_DIR}/theia/libraries) + set(THEIA_INTERNAL_LIBS_INCLUDES + ${THEIA_INTERNAL_LIB_PREFIX} + ${THEIA_INTERNAL_LIB_PREFIX}/akaze +- ${THEIA_INTERNAL_LIB_PREFIX}/cereal +- ${THEIA_INTERNAL_LIB_PREFIX}/cereal/include +- ${THEIA_INTERNAL_LIB_PREFIX}/flann +- ${THEIA_INTERNAL_LIB_PREFIX}/gtest +- ${THEIA_INTERNAL_LIB_PREFIX}/gtest/include + ${THEIA_INTERNAL_LIB_PREFIX}/optimo + ${THEIA_INTERNAL_LIB_PREFIX}/spectra + ${THEIA_INTERNAL_LIB_PREFIX}/statx + ${THEIA_INTERNAL_LIB_PREFIX}/stlplus3 +- ${THEIA_INTERNAL_LIB_PREFIX}/vlfeat +- ${THEIA_INTERNAL_LIB_PREFIX}/visual_sfm) ++ ${THEIA_INTERNAL_LIB_PREFIX}/visual_sfm ++ ${THEIA_INTERNAL_LIB_PREFIX}/vlfeat) + + list(APPEND THEIA_INCLUDE_DIRS ${THEIA_INTERNAL_LIBS_INCLUDES}) + +diff --git a/libraries/CMakeLists.txt b/libraries/CMakeLists.txt +index 84f3829..f88d75a 100644 +--- a/libraries/CMakeLists.txt ++++ b/libraries/CMakeLists.txt +@@ -5,12 +5,6 @@ endif (${BUILD_TESTING}) + # AKAZE feature extractor. + add_subdirectory(akaze) + +-# Cereal for portable IO. +-add_subdirectory(cereal) +- +-# Flann for fast approximate nearest neighbor searches. +-add_subdirectory(flann) +- + # Add Optimo. + add_subdirectory(optimo) + +@@ -24,4 +18,4 @@ add_subdirectory(stlplus3) + add_subdirectory(vlfeat) + + # Add VisualSfM files. +-add_subdirectory(visual_sfm) +\ No newline at end of file ++add_subdirectory(visual_sfm) +diff --git a/libraries/statx/CMakeLists.txt b/libraries/statx/CMakeLists.txt +index 23b9e49..af236a3 100644 +--- a/libraries/statx/CMakeLists.txt ++++ b/libraries/statx/CMakeLists.txt +@@ -103,7 +103,11 @@ if(STATX_WITH_CERES) + endif(CERES_FOUND) + + # BLAS +- find_package(BLAS REQUIRED) ++ if(UNIX AND NOT APPLE) ++ find_package(OpenBLAS REQUIRED) ++ else() ++ find_package(BLAS REQUIRED) ++ endif() + + # LAPACK + find_package(LAPACK REQUIRED) +@@ -129,7 +133,6 @@ set(XGAMMA_FILES ${XGAMMA_FUNCS}/asa121.cpp ${XGAMMA_FUNCS}/asa103.cpp) + + # Setting CXX FLAGS appropriately. The code below was inspired from + # Google CERES and modified for this library. +-set (CMAKE_BUILD_TYPE Release) + set (STATX_CXX_FLAGS) + + if (CMAKE_BUILD_TYPE STREQUAL "Release") +diff --git a/libraries/vlfeat/CMakeLists.txt b/libraries/vlfeat/CMakeLists.txt +index 7f4ffc7..15bca12 100644 +--- a/libraries/vlfeat/CMakeLists.txt ++++ b/libraries/vlfeat/CMakeLists.txt +@@ -18,14 +18,19 @@ set(vl_sources + vl/random.c + vl/sift.c + vl/vlad.c) ++ + set_source_files_properties(${vl_sources} PROPERTIES LANGUAGE C) + ++add_library(vlfeat ${vl_sources}) ++ + if (MSVC) +- add_definitions(-DVL_BUILD_DLL) +- add_definitions(-DVL_DISABLE_SSE2) ++ if(BUILD_SHARED_LIBS) ++ target_compile_definitions(vlfeat PRIVATE VL_BUILD_DLL) ++ target_compile_definitions(vlfeat INTERFACE BUILD_DLL) ++ endif() ++ target_compile_definitions(vlfeat PUBLIC VL_DISABLE_SSE2) + endif (MSVC) + +-add_library(vlfeat SHARED ${vl_sources}) + install(TARGETS vlfeat + EXPORT TheiaExport + RUNTIME DESTINATION bin +diff --git a/libraries/vlfeat/vl/host.h b/libraries/vlfeat/vl/host.h +index 293fe1f..0ea3d42 100644 +--- a/libraries/vlfeat/vl/host.h ++++ b/libraries/vlfeat/vl/host.h +@@ -312,27 +312,31 @@ defined(__DOXYGEN__) + #if defined(VL_COMPILER_MSC) & ! defined(__DOXYGEN__) + # define VL_UNUSED + # define VL_INLINE static __inline +-# define snprintf _snprintf + # define isnan _isnan +-# ifdef VL_BUILD_DLL ++# if defined(VL_BUILD_DLL) + # ifdef __cplusplus + # define VL_EXPORT extern "C" __declspec(dllexport) + # else + # define VL_EXPORT extern __declspec(dllexport) + # endif +-# else ++# elif defined(VL_DLL) + # ifdef __cplusplus + # define VL_EXPORT extern "C" __declspec(dllimport) + # else + # define VL_EXPORT extern __declspec(dllimport) + # endif ++# else ++# ifdef __cplusplus ++# define VL_EXPORT extern "C" ++# else ++# define VL_EXPORT extern ++# endif + # endif + #endif + + #if defined(VL_COMPILER_LCC) & ! defined(__DOXYGEN__) + # define VL_UNUSED + # define VL_INLINE static __inline +-# define snprintf _snprintf + # define isnan _isnan + VL_INLINE float fabsf(float x) { return (float) fabs((double) x) ; } + # ifdef VL_BUILD_DLL +diff --git a/src/theia/CMakeLists.txt b/src/theia/CMakeLists.txt +index 6830f71..768586d 100644 +--- a/src/theia/CMakeLists.txt ++++ b/src/theia/CMakeLists.txt +@@ -209,7 +209,6 @@ set(THEIA_LIBRARY_DEPENDENCIES + ${SUITESPARSE_LIBRARIES} + ${OPENIMAGEIO_LIBRARIES} + akaze +- flann_cpp + statx + stlplus3 + vlfeat diff --git a/ports/theia/fix-find-suitesparse.patch b/ports/theia/fix-find-suitesparse.patch deleted file mode 100644 index f7de44aa09..0000000000 --- a/ports/theia/fix-find-suitesparse.patch +++ /dev/null @@ -1,227 +0,0 @@ ---- a/cmake/FindSuiteSparse.cmake Mon Feb 06 18:05:05 2017 -+++ b/cmake/FindSuiteSparse.cmake Fri Jul 07 02:13:31 2017 -@@ -152,6 +152,12 @@ - # the first. - endmacro(SUITESPARSE_REPORT_NOT_FOUND) - -+# Protect against any alternative find_package scripts for this library having -+# been called previously (in a client project) which set SUITESPARSE_FOUND, but -+# not the other variables we require / set here which could cause the search -+# logic here to fail. -+unset(SUITESPARSE_FOUND) -+ - # Handle possible presence of lib prefix for libraries on MSVC, see - # also SUITESPARSE_RESET_FIND_LIBRARY_PREFIX(). - if (MSVC) -@@ -173,8 +179,6 @@ - /opt/local/include/ufsparse # Mac OS X - /usr/local/homebrew/include # Mac OS X - /usr/local/include -- /usr/local/include/suitesparse -- /usr/include/suitesparse # Ubuntu - /usr/include) - list(APPEND SUITESPARSE_CHECK_LIBRARY_DIRS - ${SUITESPARSE_LIBRARY_DIR_HINTS} -@@ -182,9 +186,10 @@ - /opt/local/lib/ufsparse # Mac OS X - /usr/local/homebrew/lib # Mac OS X - /usr/local/lib -- /usr/local/lib/suitesparse -- /usr/lib/suitesparse # Ubuntu - /usr/lib) -+# Additional suffixes to try appending to each search path. -+list(APPEND SUITESPARSE_CHECK_PATH_SUFFIXES -+ suitesparse) # Windows/Ubuntu - - # Given the number of components of SuiteSparse, and to ensure that the - # automatic failure message generated by FindPackageHandleStandardArgs() -@@ -212,7 +217,8 @@ - set(AMD_FOUND TRUE) - list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS AMD_FOUND) - find_library(AMD_LIBRARY NAMES amd -- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${AMD_LIBRARY}) - message(STATUS "Found AMD library: ${AMD_LIBRARY}") - else (EXISTS ${AMD_LIBRARY}) -@@ -223,7 +229,8 @@ - mark_as_advanced(AMD_LIBRARY) - - find_path(AMD_INCLUDE_DIR NAMES amd.h -- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${AMD_INCLUDE_DIR}) - message(STATUS "Found AMD header in: ${AMD_INCLUDE_DIR}") - else (EXISTS ${AMD_INCLUDE_DIR}) -@@ -237,7 +244,8 @@ - set(CAMD_FOUND TRUE) - list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CAMD_FOUND) - find_library(CAMD_LIBRARY NAMES camd -- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${CAMD_LIBRARY}) - message(STATUS "Found CAMD library: ${CAMD_LIBRARY}") - else (EXISTS ${CAMD_LIBRARY}) -@@ -248,7 +256,8 @@ - mark_as_advanced(CAMD_LIBRARY) - - find_path(CAMD_INCLUDE_DIR NAMES camd.h -- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${CAMD_INCLUDE_DIR}) - message(STATUS "Found CAMD header in: ${CAMD_INCLUDE_DIR}") - else (EXISTS ${CAMD_INCLUDE_DIR}) -@@ -262,7 +271,8 @@ - set(COLAMD_FOUND TRUE) - list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS COLAMD_FOUND) - find_library(COLAMD_LIBRARY NAMES colamd -- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${COLAMD_LIBRARY}) - message(STATUS "Found COLAMD library: ${COLAMD_LIBRARY}") - else (EXISTS ${COLAMD_LIBRARY}) -@@ -273,7 +283,8 @@ - mark_as_advanced(COLAMD_LIBRARY) - - find_path(COLAMD_INCLUDE_DIR NAMES colamd.h -- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${COLAMD_INCLUDE_DIR}) - message(STATUS "Found COLAMD header in: ${COLAMD_INCLUDE_DIR}") - else (EXISTS ${COLAMD_INCLUDE_DIR}) -@@ -287,7 +298,8 @@ - set(CCOLAMD_FOUND TRUE) - list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CCOLAMD_FOUND) - find_library(CCOLAMD_LIBRARY NAMES ccolamd -- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${CCOLAMD_LIBRARY}) - message(STATUS "Found CCOLAMD library: ${CCOLAMD_LIBRARY}") - else (EXISTS ${CCOLAMD_LIBRARY}) -@@ -298,7 +310,8 @@ - mark_as_advanced(CCOLAMD_LIBRARY) - - find_path(CCOLAMD_INCLUDE_DIR NAMES ccolamd.h -- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${CCOLAMD_INCLUDE_DIR}) - message(STATUS "Found CCOLAMD header in: ${CCOLAMD_INCLUDE_DIR}") - else (EXISTS ${CCOLAMD_INCLUDE_DIR}) -@@ -312,7 +325,8 @@ - set(CHOLMOD_FOUND TRUE) - list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CHOLMOD_FOUND) - find_library(CHOLMOD_LIBRARY NAMES cholmod -- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${CHOLMOD_LIBRARY}) - message(STATUS "Found CHOLMOD library: ${CHOLMOD_LIBRARY}") - else (EXISTS ${CHOLMOD_LIBRARY}) -@@ -323,7 +337,8 @@ - mark_as_advanced(CHOLMOD_LIBRARY) - - find_path(CHOLMOD_INCLUDE_DIR NAMES cholmod.h -- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${CHOLMOD_INCLUDE_DIR}) - message(STATUS "Found CHOLMOD header in: ${CHOLMOD_INCLUDE_DIR}") - else (EXISTS ${CHOLMOD_INCLUDE_DIR}) -@@ -337,7 +352,8 @@ - set(SUITESPARSEQR_FOUND TRUE) - list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS SUITESPARSEQR_FOUND) - find_library(SUITESPARSEQR_LIBRARY NAMES spqr -- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${SUITESPARSEQR_LIBRARY}) - message(STATUS "Found SuiteSparseQR library: ${SUITESPARSEQR_LIBRARY}") - else (EXISTS ${SUITESPARSEQR_LIBRARY}) -@@ -348,7 +364,8 @@ - mark_as_advanced(SUITESPARSEQR_LIBRARY) - - find_path(SUITESPARSEQR_INCLUDE_DIR NAMES SuiteSparseQR.hpp -- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${SUITESPARSEQR_INCLUDE_DIR}) - message(STATUS "Found SuiteSparseQR header in: ${SUITESPARSEQR_INCLUDE_DIR}") - else (EXISTS ${SUITESPARSEQR_INCLUDE_DIR}) -@@ -364,7 +381,8 @@ - # support for it, this will do no harm if it wasn't. - set(TBB_FOUND TRUE) - find_library(TBB_LIBRARIES NAMES tbb -- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${TBB_LIBRARIES}) - message(STATUS "Found Intel Thread Building Blocks (TBB) library: " - "${TBB_LIBRARIES}, assuming SuiteSparseQR was compiled with TBB.") -@@ -377,7 +395,8 @@ - - if (TBB_FOUND) - find_library(TBB_MALLOC_LIB NAMES tbbmalloc -- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${TBB_MALLOC_LIB}) - message(STATUS "Found Intel Thread Building Blocks (TBB) Malloc library: " - "${TBB_MALLOC_LIB}") -@@ -407,7 +426,8 @@ - # If SuiteSparse version is >= 4 then SuiteSparse_config is required. - # For SuiteSparse 3, UFconfig.h is required. - find_library(SUITESPARSE_CONFIG_LIBRARY NAMES suitesparseconfig -- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${SUITESPARSE_CONFIG_LIBRARY}) - message(STATUS "Found SuiteSparse_config library: " - "${SUITESPARSE_CONFIG_LIBRARY}") -@@ -415,7 +435,8 @@ - mark_as_advanced(SUITESPARSE_CONFIG_LIBRARY) - - find_path(SUITESPARSE_CONFIG_INCLUDE_DIR NAMES SuiteSparse_config.h -- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${SUITESPARSE_CONFIG_INCLUDE_DIR}) - message(STATUS "Found SuiteSparse_config header in: " - "${SUITESPARSE_CONFIG_INCLUDE_DIR}") -@@ -433,7 +454,8 @@ - # does not have librt). - if (CMAKE_SYSTEM_NAME MATCHES "Linux" OR UNIX AND NOT APPLE) - find_library(LIBRT_LIBRARY NAMES rt -- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (LIBRT_LIBRARY) - message(STATUS "Adding librt: ${LIBRT_LIBRARY} to " - "SuiteSparse_config libraries (required on Linux & Unix [not OSX] if " -@@ -452,7 +474,8 @@ - # UFconfig header which should be present in < v4 installs. - set(SUITESPARSE_CONFIG_FOUND FALSE) - find_path(UFCONFIG_INCLUDE_DIR NAMES UFconfig.h -- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${UFCONFIG_INCLUDE_DIR}) - message(STATUS "Found UFconfig header in: ${UFCONFIG_INCLUDE_DIR}") - set(UFCONFIG_FOUND TRUE) -@@ -543,7 +566,8 @@ - - # METIS (Optional dependency). - find_library(METIS_LIBRARY NAMES metis -- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}) -+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} -+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) - if (EXISTS ${METIS_LIBRARY}) - message(STATUS "Found METIS library: ${METIS_LIBRARY}.") - set(METIS_FOUND TRUE) diff --git a/ports/theia/fix-glog-error.patch b/ports/theia/fix-glog-error.patch deleted file mode 100644 index 1e72c9f35c..0000000000 --- a/ports/theia/fix-glog-error.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9c1b150..6518e6a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -146,6 +146,7 @@ else (GLOG_FOUND) - message(FATAL_ERROR "Can't find Google Logging. Please set GLOG_INCLUDE_DIR & " - "GLOG_LIBRARY") - endif (GLOG_FOUND) -+add_definitions(-DGLOG_NO_ABBREVIATED_SEVERITIES) - - # Ceres - message("-- Check for Ceres") diff --git a/ports/theia/fix-oiio.patch b/ports/theia/fix-oiio.patch deleted file mode 100644 index 7cba45db73..0000000000 --- a/ports/theia/fix-oiio.patch +++ /dev/null @@ -1,391 +0,0 @@ -diff --git a/src/theia/image/image.cc b/src/theia/image/image.cc -index df6aba4..5e2b8dc 100644 ---- a/src/theia/image/image.cc -+++ b/src/theia/image/image.cc -@@ -60,18 +60,18 @@ FloatImage::FloatImage(const FloatImage& image_to_copy) { - } - - FloatImage::FloatImage(const int width, const int height, const int channels) { -- OpenImageIO::ImageSpec image_spec(width, height, channels, -- OpenImageIO::TypeDesc::FLOAT); -+ OIIO_NAMESPACE::ImageSpec image_spec(width, height, channels, -+ OIIO_NAMESPACE::TypeDesc::FLOAT); - image_.reset(image_spec); - } - - FloatImage::FloatImage(const int width, const int height, const int channels, - float* buffer) -- : image_(OpenImageIO::ImageSpec(width, height, channels, -- OpenImageIO::TypeDesc::FLOAT), -+ : image_(OIIO_NAMESPACE::ImageSpec(width, height, channels, -+ OIIO_NAMESPACE::TypeDesc::FLOAT), - reinterpret_cast(buffer)) {} - --FloatImage::FloatImage(const OpenImageIO::ImageBuf& image) { -+FloatImage::FloatImage(const OIIO_NAMESPACE::ImageBuf& image) { - image_.copy(image); - } - -@@ -80,11 +80,11 @@ FloatImage& FloatImage::operator=(const FloatImage& image2) { - return *this; - } - --OpenImageIO::ImageBuf& FloatImage::GetOpenImageIOImageBuf() { -+OIIO_NAMESPACE::ImageBuf& FloatImage::GetOpenImageIOImageBuf() { - return image_; - } - --const OpenImageIO::ImageBuf& FloatImage::GetOpenImageIOImageBuf() const { -+const OIIO_NAMESPACE::ImageBuf& FloatImage::GetOpenImageIOImageBuf() const { - return image_; - } - -@@ -110,7 +110,7 @@ void FloatImage::SetXY(const int x, - DCHECK_LT(c, Channels()); - - // Set the ROI to be the precise pixel location in the correct channel. -- OpenImageIO::ImageBuf::Iterator it(image_, x, y, 0); -+ OIIO_NAMESPACE::ImageBuf::Iterator it(image_, x, y, 0); - it[c] = value; - } - -@@ -195,9 +195,9 @@ void FloatImage::ConvertToGrayscaleImage() { - // Compute luminance via a weighted sum of R,G,B (assuming Rec709 primaries - // and a linear scale) - const float luma_weights[3] = {.2126, .7152, .0722}; -- OpenImageIO::ImageBuf source = image_; -+ OIIO_NAMESPACE::ImageBuf source = image_; - image_.clear(); -- OpenImageIO::ImageBufAlgo::channel_sum(image_, source, luma_weights); -+ OIIO_NAMESPACE::ImageBufAlgo::channel_sum(image_, source, luma_weights); - } - - void FloatImage::ConvertToRGBImage() { -@@ -207,13 +207,13 @@ void FloatImage::ConvertToRGBImage() { - } - - // Copy the single grayscale channel into r, g, and b. -- const OpenImageIO::ImageBuf source(image_); -- OpenImageIO::ImageSpec image_spec(Width(), Height(), 3, -- OpenImageIO::TypeDesc::FLOAT); -+ const OIIO_NAMESPACE::ImageBuf source(image_); -+ OIIO_NAMESPACE::ImageSpec image_spec(Width(), Height(), 3, -+ OIIO_NAMESPACE::TypeDesc::FLOAT); - image_.reset(image_spec); -- OpenImageIO::ImageBufAlgo::paste(image_, 0, 0, 0, 0, source); -- OpenImageIO::ImageBufAlgo::paste(image_, 0, 0, 0, 1, source); -- OpenImageIO::ImageBufAlgo::paste(image_, 0, 0, 0, 2, source); -+ OIIO_NAMESPACE::ImageBufAlgo::paste(image_, 0, 0, 0, 0, source); -+ OIIO_NAMESPACE::ImageBufAlgo::paste(image_, 0, 0, 0, 1, source); -+ OIIO_NAMESPACE::ImageBufAlgo::paste(image_, 0, 0, 0, 2, source); - } - - FloatImage FloatImage::AsGrayscaleImage() const { -@@ -238,12 +238,12 @@ FloatImage FloatImage::AsRGBImage() const { - } - - void FloatImage::ScalePixels(float scale) { -- OpenImageIO::ImageBufAlgo::mul(image_, image_, scale); -+ OIIO_NAMESPACE::ImageBufAlgo::mul(image_, image_, scale); - } - - void FloatImage::Read(const std::string& filename) { - image_.reset(filename); -- image_.read(0, 0, true, OpenImageIO::TypeDesc::FLOAT); -+ image_.read(0, 0, true, OIIO_NAMESPACE::TypeDesc::FLOAT); - } - - void FloatImage::Write(const std::string& filename) const { -@@ -259,19 +259,19 @@ const float* FloatImage::Data() const { - - FloatImage FloatImage::ComputeGradientX() const { - float sobel_filter_x[9] = {-.125, 0, .125, -.25, 0, .25, -.125, 0, .125}; -- OpenImageIO::ImageSpec spec(3, 3, 1, OpenImageIO::TypeDesc::FLOAT); -- OpenImageIO::ImageBuf kernel_x(spec, sobel_filter_x); -- OpenImageIO::ImageBuf gradient_x; -- OpenImageIO::ImageBufAlgo::convolve(gradient_x, image_, kernel_x, false); -+ OIIO_NAMESPACE::ImageSpec spec(3, 3, 1, OIIO_NAMESPACE::TypeDesc::FLOAT); -+ OIIO_NAMESPACE::ImageBuf kernel_x(spec, sobel_filter_x); -+ OIIO_NAMESPACE::ImageBuf gradient_x; -+ OIIO_NAMESPACE::ImageBufAlgo::convolve(gradient_x, image_, kernel_x, false); - return FloatImage(gradient_x); - } - - FloatImage FloatImage::ComputeGradientY() const { - float sobel_filter_y[9] = {-.125, -.25, -.125, 0, 0, 0, .125, .25, .125}; -- OpenImageIO::ImageSpec spec(3, 3, 1, OpenImageIO::TypeDesc::FLOAT); -- OpenImageIO::ImageBuf kernel_y(spec, sobel_filter_y); -- OpenImageIO::ImageBuf gradient_y; -- OpenImageIO::ImageBufAlgo::convolve(gradient_y, image_, kernel_y, false); -+ OIIO_NAMESPACE::ImageSpec spec(3, 3, 1, OIIO_NAMESPACE::TypeDesc::FLOAT); -+ OIIO_NAMESPACE::ImageBuf kernel_y(spec, sobel_filter_y); -+ OIIO_NAMESPACE::ImageBuf gradient_y; -+ OIIO_NAMESPACE::ImageBufAlgo::convolve(gradient_y, image_, kernel_y, false); - return FloatImage(gradient_y); - } - -@@ -280,28 +280,28 @@ FloatImage FloatImage::ComputeGradient() const { - float sobel_filter_x[9] = {-.125, 0, .125, -.25, 0, .25, -.125, 0, .125}; - float sobel_filter_y[9] = {-.125, -.25, -.125, 0, 0, 0, .125, .25, .125}; - -- OpenImageIO::ImageSpec spec(3, 3, 1, OpenImageIO::TypeDesc::FLOAT); -- OpenImageIO::ImageBuf kernel_x(spec, sobel_filter_x); -- OpenImageIO::ImageBuf kernel_y(spec, sobel_filter_y); -+ OIIO_NAMESPACE::ImageSpec spec(3, 3, 1, OIIO_NAMESPACE::TypeDesc::FLOAT); -+ OIIO_NAMESPACE::ImageBuf kernel_x(spec, sobel_filter_x); -+ OIIO_NAMESPACE::ImageBuf kernel_y(spec, sobel_filter_y); - -- OpenImageIO::ImageBuf gradient, gradient_x, gradient_y; -- OpenImageIO::ImageBufAlgo::convolve(gradient_x, image_, kernel_x, false); -- OpenImageIO::ImageBufAlgo::abs(gradient_x, gradient_x); -- OpenImageIO::ImageBufAlgo::convolve(gradient_y, image_, kernel_y, false); -- OpenImageIO::ImageBufAlgo::abs(gradient_y, gradient_y); -- OpenImageIO::ImageBufAlgo::add(gradient, gradient_x, gradient_y); -+ OIIO_NAMESPACE::ImageBuf gradient, gradient_x, gradient_y; -+ OIIO_NAMESPACE::ImageBufAlgo::convolve(gradient_x, image_, kernel_x, false); -+ OIIO_NAMESPACE::ImageBufAlgo::abs(gradient_x, gradient_x); -+ OIIO_NAMESPACE::ImageBufAlgo::convolve(gradient_y, image_, kernel_y, false); -+ OIIO_NAMESPACE::ImageBufAlgo::abs(gradient_y, gradient_y); -+ OIIO_NAMESPACE::ImageBufAlgo::add(gradient, gradient_x, gradient_y); - - return FloatImage(gradient); - } - - void FloatImage::ApproximateGaussianBlur(const double sigma) { -- OpenImageIO::ImageBuf kernel; -- OpenImageIO::ImageBufAlgo::make_kernel(kernel, "gaussian", 5.0f, 5.0f); -- OpenImageIO::ImageBufAlgo::convolve(image_, image_, kernel); -+ OIIO_NAMESPACE::ImageBuf kernel; -+ OIIO_NAMESPACE::ImageBufAlgo::make_kernel(kernel, "gaussian", 5.0f, 5.0f); -+ OIIO_NAMESPACE::ImageBufAlgo::convolve(image_, image_, kernel); - } - - void FloatImage::MedianFilter(const int patch_width) { -- CHECK(OpenImageIO::ImageBufAlgo::median_filter(image_, image_, patch_width)); -+ CHECK(OIIO_NAMESPACE::ImageBufAlgo::median_filter(image_, image_, patch_width)); - } - - void FloatImage::Integrate(FloatImage* integral) const { -@@ -327,14 +327,14 @@ void FloatImage::Resize(int new_width, int new_height) { - // If the image has not been initialized then initialize it with the image - // spec. Otherwise resize the image and interpolate pixels accordingly. - if (!image_.initialized()) { -- OpenImageIO::ImageSpec image_spec(new_width, new_height, Channels(), -- OpenImageIO::TypeDesc::FLOAT); -+ OIIO_NAMESPACE::ImageSpec image_spec(new_width, new_height, Channels(), -+ OIIO_NAMESPACE::TypeDesc::FLOAT); - image_.reset(image_spec); - } else { -- OpenImageIO::ROI roi(0, new_width, 0, new_height, 0, 1, 0, Channels()); -- OpenImageIO::ImageBuf dst; -- CHECK(OpenImageIO::ImageBufAlgo::resize(dst, image_, nullptr, roi)) -- << OpenImageIO::geterror(); -+ OIIO_NAMESPACE::ROI roi(0, new_width, 0, new_height, 0, 1, 0, Channels()); -+ OIIO_NAMESPACE::ImageBuf dst; -+ CHECK(OIIO_NAMESPACE::ImageBufAlgo::resize(dst, image_, nullptr, roi)) -+ << OIIO_NAMESPACE::geterror(); - image_.copy(dst); - } - } -diff --git a/src/theia/image/image.h b/src/theia/image/image.h -index e4f22cc..29122d2 100644 ---- a/src/theia/image/image.h -+++ b/src/theia/image/image.h -@@ -64,7 +64,7 @@ class FloatImage { - - // Copy function. This is a deep copy of the image. - FloatImage(const FloatImage& image_to_copy); -- explicit FloatImage(const OpenImageIO::ImageBuf& image); -+ explicit FloatImage(const OIIO_NAMESPACE::ImageBuf& image); - FloatImage& operator=(const FloatImage& image2); - ~FloatImage() {} - -@@ -74,8 +74,8 @@ class FloatImage { - // wrapper for all algorithms. Getting a reference to the ImageBuf provides - // efficient access to the image data so that the image processing algorithms - // or other manipulations may be executed on the pixels. -- OpenImageIO::ImageBuf& GetOpenImageIOImageBuf(); -- const OpenImageIO::ImageBuf& GetOpenImageIOImageBuf() const; -+ OIIO_NAMESPACE::ImageBuf& GetOpenImageIOImageBuf(); -+ const OIIO_NAMESPACE::ImageBuf& GetOpenImageIOImageBuf() const; - - // Image information - int Rows() const; -@@ -171,7 +171,7 @@ class FloatImage { - void Resize(double scale); - - protected: -- OpenImageIO::ImageBuf image_; -+ OIIO_NAMESPACE::ImageBuf image_; - }; - } // namespace theia - -diff --git a/src/theia/image/image_test.cc b/src/theia/image/image_test.cc -index 894dc30..340488d 100644 ---- a/src/theia/image/image_test.cc -+++ b/src/theia/image/image_test.cc -@@ -53,11 +53,11 @@ RandomNumberGenerator rng(51); - std::string img_filename = THEIA_DATA_DIR + std::string("/") + FLAGS_test_img; - - #define ASSERT_IMG_EQ(oiio_img, theia_img, rows, cols) \ -- oiio_img.read(0, 0, true, OpenImageIO::TypeDesc::FLOAT); \ -+ oiio_img.read(0, 0, true, OIIO_NAMESPACE::TypeDesc::FLOAT); \ - ASSERT_EQ(oiio_img.oriented_width(), theia_img.Cols()); \ - ASSERT_EQ(oiio_img.oriented_height(), theia_img.Rows()); \ - ASSERT_EQ(oiio_img.nchannels(), theia_img.Channels()); \ -- OpenImageIO::ImageBuf::ConstIterator it(oiio_img); \ -+ OIIO_NAMESPACE::ImageBuf::ConstIterator it(oiio_img); \ - for (; !it.done(); ++it) { \ - for (int c = 0; c < oiio_img.nchannels(); c++) { \ - ASSERT_EQ(it[c], theia_img.GetXY(it.x(), it.y(), c)); \ -@@ -89,7 +89,7 @@ float Interpolate(const FloatImage& image, - - // Test that inputting the old fashioned way is the same as through our class. - TEST(Image, RGBInput) { -- OpenImageIO::ImageBuf oiio_img(img_filename.c_str()); -+ OIIO_NAMESPACE::ImageBuf oiio_img(img_filename.c_str()); - oiio_img.read(); - FloatImage theia_img(img_filename); - -@@ -102,7 +102,7 @@ TEST(Image, RGBInput) { - - // Test that width and height methods work. - TEST(Image, RGBColsRows) { -- OpenImageIO::ImageBuf oiio_img(img_filename.c_str()); -+ OIIO_NAMESPACE::ImageBuf oiio_img(img_filename.c_str()); - FloatImage theia_img(img_filename); - - int true_height = oiio_img.oriented_height(); -@@ -114,10 +114,10 @@ TEST(Image, RGBColsRows) { - - // Test that inputting the old fashioned way is the same as through our class. - TEST(Image, ConvertToGrayscaleImage) { -- OpenImageIO::ImageBuf oiio_img(img_filename.c_str()); -- OpenImageIO::ImageBuf gray_img; -+ OIIO_NAMESPACE::ImageBuf oiio_img(img_filename.c_str()); -+ OIIO_NAMESPACE::ImageBuf gray_img; - const float luma_weights[3] = {.2126, .7152, .0722}; -- OpenImageIO::ImageBufAlgo::channel_sum(gray_img, oiio_img, luma_weights); -+ OIIO_NAMESPACE::ImageBufAlgo::channel_sum(gray_img, oiio_img, luma_weights); - - FloatImage theia_img(img_filename); - theia_img.ConvertToGrayscaleImage(); -@@ -131,10 +131,10 @@ TEST(Image, ConvertToGrayscaleImage) { - } - - TEST(Image, ConvertToRGBImage) { -- OpenImageIO::ImageBuf oiio_img(img_filename.c_str()); -- OpenImageIO::ImageBuf gray_img; -+ OIIO_NAMESPACE::ImageBuf oiio_img(img_filename.c_str()); -+ OIIO_NAMESPACE::ImageBuf gray_img; - const float luma_weights[3] = {.2126, .7152, .0722}; -- OpenImageIO::ImageBufAlgo::channel_sum(gray_img, oiio_img, luma_weights); -+ OIIO_NAMESPACE::ImageBufAlgo::channel_sum(gray_img, oiio_img, luma_weights); - - // This should result in an image with the grayscale image copied in each - // channel. -@@ -148,7 +148,7 @@ TEST(Image, ConvertToRGBImage) { - - // Check that all channels have equal value and that the value is equal to the - // grayscale image. -- for (OpenImageIO::ImageBuf::ConstIterator it(gray_img); -+ for (OIIO_NAMESPACE::ImageBuf::ConstIterator it(gray_img); - !it.done(); - ++it) { - ASSERT_EQ(it[0], rgb_img.GetXY(it.x(), it.y(), 0)); -diff --git a/src/theia/sfm/exif_reader.cc b/src/theia/sfm/exif_reader.cc -index 48c049a..fea884d 100644 ---- a/src/theia/sfm/exif_reader.cc -+++ b/src/theia/sfm/exif_reader.cc -@@ -127,8 +127,8 @@ bool ExifReader::ExtractEXIFMetadata( - CameraIntrinsicsPrior* camera_intrinsics_prior) const { - CHECK_NOTNULL(camera_intrinsics_prior); - -- OpenImageIO::ImageBuf image(image_file); -- OpenImageIO::ImageSpec image_spec = image.spec(); -+ OIIO_NAMESPACE::ImageBuf image(image_file); -+ OIIO_NAMESPACE::ImageSpec image_spec = image.spec(); - - // Set the image dimensions. - camera_intrinsics_prior->image_width = image_spec.width; -@@ -154,7 +154,7 @@ bool ExifReader::ExtractEXIFMetadata( - camera_intrinsics_prior->focal_length.is_set = true; - - // Set GPS latitude. -- const OpenImageIO::ImageIOParameter* latitude = -+ const OIIO_NAMESPACE::ImageIOParameter* latitude = - image_spec.find_attribute("GPS:Latitude"); - if (latitude != nullptr) { - camera_intrinsics_prior->latitude.is_set = true; -@@ -173,7 +173,7 @@ bool ExifReader::ExtractEXIFMetadata( - } - - // Set GPS longitude. -- const OpenImageIO::ImageIOParameter* longitude = -+ const OIIO_NAMESPACE::ImageIOParameter* longitude = - image_spec.find_attribute("GPS:Longitude"); - if (longitude != nullptr) { - camera_intrinsics_prior->longitude.is_set = true; -@@ -193,7 +193,7 @@ bool ExifReader::ExtractEXIFMetadata( - - - // Set GSP altitude. -- const OpenImageIO::ImageIOParameter* altitude = -+ const OIIO_NAMESPACE::ImageIOParameter* altitude = - image_spec.find_attribute("GPS:Altitude"); - if (altitude != nullptr) { - camera_intrinsics_prior->altitude.is_set = true; -@@ -205,7 +205,7 @@ bool ExifReader::ExtractEXIFMetadata( - } - - bool ExifReader::SetFocalLengthFromExif( -- const OpenImageIO::ImageSpec& image_spec, -+ const OIIO_NAMESPACE::ImageSpec& image_spec, - CameraIntrinsicsPrior* camera_intrinsics_prior) const { - static const float kMinFocalLength = 1e-2; - -@@ -268,7 +268,7 @@ bool ExifReader::SetFocalLengthFromExif( - } - - bool ExifReader::SetFocalLengthFromSensorDatabase( -- const OpenImageIO::ImageSpec& image_spec, -+ const OIIO_NAMESPACE::ImageSpec& image_spec, - CameraIntrinsicsPrior* camera_intrinsics_prior) const { - const int max_image_dimension = std::max(image_spec.width, image_spec.height); - const float exif_focal_length = -diff --git a/src/theia/sfm/exif_reader.h b/src/theia/sfm/exif_reader.h -index 3049cf4..d9d3108 100644 ---- a/src/theia/sfm/exif_reader.h -+++ b/src/theia/sfm/exif_reader.h -@@ -74,13 +74,13 @@ class ExifReader { - // Sets the focal length from the focal plane resolution. Returns true if a - // valid focal length is found and false otherwise. - bool SetFocalLengthFromExif( -- const OpenImageIO::ImageSpec& image_spec, -+ const OIIO_NAMESPACE::ImageSpec& image_spec, - CameraIntrinsicsPrior* camera_intrinsics_prior) const; - - // Sets the focal length from a look up in the sensor width database. Returns - // true if a valid focal length is found and false otherwise. - bool SetFocalLengthFromSensorDatabase( -- const OpenImageIO::ImageSpec& image_spec, -+ const OIIO_NAMESPACE::ImageSpec& image_spec, - CameraIntrinsicsPrior* camera_intrinsics_prior) const; - - std::unordered_map sensor_width_database_; -diff --git a/src/theia/sfm/undistort_image.cc b/src/theia/sfm/undistort_image.cc -index 95a061d..ae0690e 100644 ---- a/src/theia/sfm/undistort_image.cc -+++ b/src/theia/sfm/undistort_image.cc -@@ -160,9 +160,9 @@ void RemoveImageLensDistortion(const Camera& distorted_camera, - // For each pixel in the undistorted image, find the coordinate in the - // distorted image and set the pixel color accordingly. - const int num_channels = distorted_image.Channels(); -- OpenImageIO::ImageBuf& undistorted_img = -+ OIIO_NAMESPACE::ImageBuf& undistorted_img = - undistorted_image->GetOpenImageIOImageBuf(); -- OpenImageIO::ImageBuf::Iterator undistorted_it(undistorted_img); -+ OIIO_NAMESPACE::ImageBuf::Iterator undistorted_it(undistorted_img); - for (; !undistorted_it.done(); ++undistorted_it) { - Eigen::Vector2d image_point(undistorted_it.x() + 0.5, - undistorted_it.y() + 0.5); diff --git a/ports/theia/fix-vlfeat-static.patch b/ports/theia/fix-vlfeat-static.patch deleted file mode 100644 index cbade039f4..0000000000 --- a/ports/theia/fix-vlfeat-static.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff --git a/libraries/vlfeat/CMakeLists.txt b/libraries/vlfeat/CMakeLists.txt -index d248bcf..24469c9 100644 ---- a/libraries/vlfeat/CMakeLists.txt -+++ b/libraries/vlfeat/CMakeLists.txt -@@ -16,11 +16,11 @@ set(vl_sources - set_source_files_properties(${vl_sources} PROPERTIES LANGUAGE C) - - if (MSVC) -- add_definitions(-DVL_BUILD_DLL) -+ #add_definitions(-DVL_BUILD_DLL) - add_definitions(-DVL_DISABLE_SSE2) - endif (MSVC) - --add_library(vlfeat SHARED ${vl_sources}) -+add_library(vlfeat ${vl_sources}) - install(TARGETS vlfeat - EXPORT TheiaExport - RUNTIME DESTINATION bin -diff --git a/libraries/vlfeat/vl/host.h b/libraries/vlfeat/vl/host.h -index 4fdb86c..01c1134 100644 ---- a/libraries/vlfeat/vl/host.h -+++ b/libraries/vlfeat/vl/host.h -@@ -316,18 +316,24 @@ defined(__DOXYGEN__) - # define snprintf _snprintf - # define isnan _isnan - #endif --# ifdef VL_BUILD_DLL -+# if defined(VL_BUILD_DLL) - # ifdef __cplusplus - # define VL_EXPORT extern "C" __declspec(dllexport) - # else - # define VL_EXPORT extern __declspec(dllexport) - # endif --# else -+# elif defined(VL_DLL) - # ifdef __cplusplus - # define VL_EXPORT extern "C" __declspec(dllimport) - # else - # define VL_EXPORT extern __declspec(dllimport) - # endif -+# else -+# ifdef __cplusplus -+# define VL_EXPORT extern "C" -+# else -+# define VL_EXPORT extern -+# endif - # endif - #endif - diff --git a/ports/theia/portfile.cmake b/ports/theia/portfile.cmake index a6dc5d02ff..c131ac0954 100644 --- a/ports/theia/portfile.cmake +++ b/ports/theia/portfile.cmake @@ -2,31 +2,23 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -if(VCPKG_TARGET_ARCHIECTURE STREQUAL "x86") - message(FATAL_ERROR "theia requires ceres[suitesparse] which depends on suitesparse which depends on openblas which is unavailable on x86.") -endif() - - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sweeneychris/TheiaSfM REF v0.8 SHA512 2f620389c415badec36f4b44be0378fc62761dd6b2ee4cd7033b13573c372f098e248553575fb2cceb757b1ca00e86a11c67e03b6077e0a4b0f8797065746312 HEAD_REF master + PATCHES + fix-external-dependencies.patch ) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-vlfeat-static.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-glog-error.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-find-suitesparse.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-oiio.patch -) +file(REMOVE ${SOURCE_PATH}/cmake/FindSuiteSparse.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindGflags.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/FindGlog.cmake) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD_TESTING=OFF -DTHEIA_USE_EXTERNAL_CEREAL=ON @@ -34,28 +26,19 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() - -vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake") - -# Changes target search path -file(READ ${CURRENT_PACKAGES_DIR}/share/theia/TheiaConfig.cmake THEIA_TARGETS) -string(REPLACE "get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${THEIA_CURRENT_CONFIG_INSTALL_DIR}/../ ABSOLUTE)" - "get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${THEIA_CURRENT_CONFIG_INSTALL_DIR}/../../ ABSOLUTE)" THEIA_TARGETS "${THEIA_TARGETS}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/theia/TheiaConfig.cmake "${THEIA_TARGETS}") - +vcpkg_fixup_cmake_targets() vcpkg_copy_pdbs() # Clean file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/optimo) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/optimo) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/akaze/cimg/cmake-modules) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/akaze/cmake) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/akaze/datasets) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/spectra/doxygen) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/optimo) # Handle copyright -file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/theia) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/theia/license.txt ${CURRENT_PACKAGES_DIR}/share/theia/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) diff --git a/ports/x265/portfile.cmake b/ports/x265/portfile.cmake index 6b207baf38..987e722468 100644 --- a/ports/x265/portfile.cmake +++ b/ports/x265/portfile.cmake @@ -14,7 +14,7 @@ vcpkg_apply_patches( ) set(ENABLE_ASSEMBLY OFF) -if (WIN32) +if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") vcpkg_find_acquire_program(NASM) get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY) set(ENV{PATH} "$ENV{PATH};${NASM_EXE_PATH}") @@ -41,9 +41,9 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/x265) -if(UNIX) +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") file(RENAME ${CURRENT_PACKAGES_DIR}/bin/x265 ${CURRENT_PACKAGES_DIR}/tools/x265/x265) -elseif(WIN32) +elseif(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") file(RENAME ${CURRENT_PACKAGES_DIR}/bin/x265.exe ${CURRENT_PACKAGES_DIR}/tools/x265/x265.exe) endif() @@ -55,4 +55,4 @@ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/x265) # Handle copyright file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/x265) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/x265/COPYING ${CURRENT_PACKAGES_DIR}/share/x265/copyright) \ No newline at end of file +file(RENAME ${CURRENT_PACKAGES_DIR}/share/x265/COPYING ${CURRENT_PACKAGES_DIR}/share/x265/copyright) diff --git a/ports/zxing-cpp/portfile.cmake b/ports/zxing-cpp/portfile.cmake index 06a2e6b49a..40f1aca5be 100644 --- a/ports/zxing-cpp/portfile.cmake +++ b/ports/zxing-cpp/portfile.cmake @@ -23,11 +23,11 @@ vcpkg_install_cmake() vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/zxing/cmake" TARGET_PATH share/zxing) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/zxing) -if (WIN32) +if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") file(COPY ${CURRENT_PACKAGES_DIR}/bin/zxing.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/zxing) -else(WIN32) +else() file(COPY ${CURRENT_PACKAGES_DIR}/bin/zxing DESTINATION ${CURRENT_PACKAGES_DIR}/tools/zxing) -endif(WIN32) +endif() vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/zxing) vcpkg_copy_pdbs()