diff options
| author | Stefano Sinigardi <stesinigardi@hotmail.com> | 2019-06-01 00:48:17 +0200 |
|---|---|---|
| committer | Victor Romero <romerosanchezv@gmail.com> | 2019-05-31 15:48:17 -0700 |
| commit | 5898891125b00a3ec2b698bc496735ab997669f5 (patch) | |
| tree | ea6f52bc69dec26f7c88d6766234a7c507607a06 /ports/ceres | |
| parent | 26a9338c5055193915290527eacb37f2ac7fdcb8 (diff) | |
| download | vcpkg-5898891125b00a3ec2b698bc496735ab997669f5.tar.gz vcpkg-5898891125b00a3ec2b698bc496735ab997669f5.zip | |
[openexr,openimageio,suitesparse,theia] updates for non-win32 (#6371)
* [openexr,openimageio,suitesparse,theia] updates for non-win32
* [theia] use only valid cmake symbols
* [suitesparse] Fix build
* [lapack] still not properly integrating with other ports
* [lapack] intercept cmake module calls and substitute them with our defs
* [suitesparse,clapack] fixes for proper integration
* [ceres,clapack] bump CONTROL
* [suitesparse] remove unnecessary defs
* [clapack] improve wrapper logic
* [WIN32] remove wrong symbol
* [clapack] fix wrapper integration
* [Accelerate] use best framework when available
* [clapack] separate config from wrapper
* [clapack] fix paths and filenames
* [mlpack,armadillo,clapack] improve library handling
* [mlpack] remove unnecessary cmake option
* [clp,coinutils,osi,liblemon] dependencies of openmvg, improve compatibility with non-win32
* [openmvg] fix for case-sensitive filesystems
* [clp,coinutils,osi] simplify CMakeLists removing many unnecessary steps
* [sophus] Force rebuild
* [theia] fixes for linux, part1
* [io2d] remove broken sintax
* [fontconfig] bump version to remove CI cached failure
* [theia] fixes for linux, part2
* [theia] remove unnecessary empty folders and comments from portfile
* [theia] use correct build type removing forced vars in cmakelists.txt
* [openmvg] add missing suitesparse target detection
* [sophus] fix Suitesparse dependency
* [sophus,openmvg] use suitesparse lowercase for module compatibility on case-sensitive filesystems
* [suitesparse] fixes for case-sensitive filesystems
* [openmvg] use correct Eigen3 name for case-sensitive filesystems
* [sophus] trigger rebuild
* [shogun] use modern vcpkg style
* [shogun] add missing cmake system processor symbol
Diffstat (limited to 'ports/ceres')
| -rw-r--r-- | ports/ceres/0003_remove_unnecessary_cmake_modules.patch | 949 | ||||
| -rw-r--r-- | ports/ceres/0003_use_glog_target.patch (renamed from ports/ceres/0004_use_glog_target.patch) | 0 | ||||
| -rw-r--r-- | ports/ceres/0004_fix_exported_ceres_config.patch (renamed from ports/ceres/0005_fix_exported_ceres_config.patch) | 0 | ||||
| -rw-r--r-- | ports/ceres/CONTROL | 5 | ||||
| -rw-r--r-- | ports/ceres/portfile.cmake | 17 |
5 files changed, 12 insertions, 959 deletions
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 698d410b9..000000000 --- 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/<NONE>] 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 <package>_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 <gflags/gflags.h> -- 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 <gflags/gflags.h> -- 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/<NONE>] 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 <package>_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 <glog> 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/<FIND_PACKAGE_ARGUMENT_NAME='glog'> 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 index 6ca328a8e..6ca328a8e 100644 --- a/ports/ceres/0004_use_glog_target.patch +++ b/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 index 5cc41013e..5cc41013e 100644 --- a/ports/ceres/0005_fix_exported_ceres_config.patch +++ b/ports/ceres/0004_fix_exported_ceres_config.patch diff --git a/ports/ceres/CONTROL b/ports/ceres/CONTROL index 3c890ff53..47ae7051e 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 1c52b2d93..f1b21d647 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}") |
