Merge pull request #1710 from Mixaill/fcl

[FCL] add version 0.5.0
This commit is contained in:
Alexander Karatarakis 2017-08-29 16:21:09 -07:00 committed by GitHub
commit 83464ec5b7
3 changed files with 127 additions and 0 deletions

View File

@ -0,0 +1,81 @@
From c43e3771cc2ec314191e5d4a5b485aab258c1b18 Mon Sep 17 00:00:00 2001
From: Mikhail Paulyshka <me@mixaill.tk>
Date: Sun, 27 Aug 2017 04:12:36 +0300
Subject: [PATCH] use cmake-exports for package detection
---
CMakeLists.txt | 48 +++---------------------------------------------
1 file changed, 3 insertions(+), 45 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a4a559..8978b61 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -65,32 +65,11 @@ if(FCL_COVERALLS)
endif()
# Find Octomap (optional)
-find_package(PkgConfig QUIET)
-
option(FCL_WITH_OCTOMAP "octomap library support" ON)
set(FCL_HAVE_OCTOMAP 0)
if(FCL_WITH_OCTOMAP)
- if(PKG_CONFIG_FOUND)
- pkg_check_modules(OCTOMAP QUIET octomap)
- endif()
- if(NOT OCTOMAP_FOUND)
- # if pkgconfig is not installed, then fall back on more fragile detection
- # of octomap
- find_path(OCTOMAP_INCLUDE_DIRS octomap.h
- PATH_SUFFIXES octomap)
- find_library(OCTOMAP_LIBRARY_DIRS
- ${CMAKE_SHARED_LIBRARY_PREFIX}octomap${CMAKE_SHARED_LIBRARY_SUFFIX})
- if(OCTOMAP_INCLUDE_DIRS AND OCTOMAP_LIBRARY_DIRS)
- set(OCTOMAP_LIBRARIES "octomap;octomath")
- endif()
- endif()
- if (OCTOMAP_FOUND OR (OCTOMAP_INCLUDE_DIRS AND OCTOMAP_LIBRARY_DIRS))
- string(REPLACE "." ";" VERSION_LIST ${OCTOMAP_VERSION})
- list(GET VERSION_LIST 0 OCTOMAP_MAJOR_VERSION)
- list(GET VERSION_LIST 1 OCTOMAP_MINOR_VERSION)
- list(GET VERSION_LIST 2 OCTOMAP_PATCH_VERSION)
- include_directories(${OCTOMAP_INCLUDE_DIRS})
- link_directories(${OCTOMAP_LIBRARY_DIRS})
+ find_package(OCTOMAP REQUIRED)
+ if (OCTOMAP_FOUND)
set(FCL_HAVE_OCTOMAP 1)
message(STATUS "FCL uses Octomap")
else()
@@ -116,28 +95,7 @@ endif()
include_directories(BEFORE "include")
include_directories("${CMAKE_CURRENT_BINARY_DIR}/include")
-if(PKG_CONFIG_FOUND)
- pkg_check_modules(CCD ccd)
- # check to see if the pkg is installed under the libccd name
- if(NOT CCD_FOUND)
- pkg_check_modules(CCD libccd)
- endif()
-endif()
-
-if(NOT CCD_FOUND)
- # if pkgconfig is not installed, then fall back on more fragile detection
- # of ccd
- find_path(CCD_INCLUDE_DIRS ccd/ccd.h)
- find_library(CCD_LIBRARY
- ${CMAKE_SHARED_LIBRARY_PREFIX}ccd${CMAKE_SHARED_LIBRARY_SUFFIX})
- if(CCD_INCLUDE_DIRS AND CCD_LIBRARY)
- set(CCD_LIBRARIES "${CCD_LIBRARY}")
- else()
- message(FATAL_ERROR "Libccd is required by FCL")
- endif()
-endif()
-include_directories(${CCD_INCLUDE_DIRS})
-link_directories(${CCD_LIBRARY_DIRS})
+find_package(CCD REQUIRED)
add_subdirectory(include/fcl)
add_subdirectory(src)
--
2.12.2.windows.2

4
ports/fcl/CONTROL Normal file
View File

@ -0,0 +1,4 @@
Source: fcl
Version: 0.5.0-1
Description: a library for performing three types of proximity queries on a pair of geometric models composed of triangles
Build-Depends: boost, ccd, octomap

42
ports/fcl/portfile.cmake Normal file
View File

@ -0,0 +1,42 @@
include(vcpkg_common_functions)
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
message(STATUS "Warning: Dynamic building not supported yet. Building static.")
set(VCPKG_LIBRARY_LINKAGE static)
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO flexible-collision-library/fcl
REF 54e9619bc2b084ee50e986ac3308160d663481c4
SHA512 11bfa3fdeeda6766769a34d2248ca32b6b13ecb32b412c068aa1c7aa3495d55b3f7a82a93621965904f9813c3fd0f128a84f796ae5731d2ff15b85935a0e1261
HEAD_REF fcl-0.5
)
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
${CMAKE_CURRENT_LIST_DIR}/0001_fix_package_detection.patch)
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(FCL_STATIC_LIBRARY ON)
else()
set(FCL_STATIC_LIBRARY OFF)
endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DFCL_STATIC_LIBRARY=${FCL_STATIC_LIBRARY}
-DFCL_BUILD_TESTS=OFF
)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake/")
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/fcl RENAME copyright)