Skip to content

Commit

Permalink
[ccd] Add emscripten support (#11407)
Browse files Browse the repository at this point in the history
Backport upstream patch: danfis/libccd#70
Disable BUILD_TESTING, that has also the nice side effect of a faster build on all triplets.
  • Loading branch information
traversaro authored Jun 12, 2020
1 parent 310f4df commit b97fe82
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
2 changes: 1 addition & 1 deletion ports/ccd/CONTROL
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Source: ccd
Version: 2.1-3
Version: 2.1-4
Homepage: https://github.com/danfis/libccd
Description: Library for collision detection between two convex shapes
6 changes: 4 additions & 2 deletions ports/ccd/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
include(vcpkg_common_functions)

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO danfis/libccd
REF v2.1
SHA512 ff037d9c4df50f09600cf9b3514b259b2850ff43f74817853f5665d22812891168f70bd3cc3969b2c9e3c706f6254991a65421476349607fbd04d894b217456d
HEAD_REF master
# Backport https://github.com/danfis/libccd/pull/70 to support Emscripten
PATCHES "support-emscripten.patch"
)

vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DBUILD_TESTING=OFF
)

vcpkg_install_cmake()
Expand Down
25 changes: 25 additions & 0 deletions ports/ccd/support-emscripten.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
From c3616f28d33019047e8e71df8abeb0493159539e Mon Sep 17 00:00:00 2001
From: Silvio Traversaro <[email protected]>
Date: Sun, 17 May 2020 11:42:24 +0200
Subject: [PATCH] Fix configuration with Emscripten

In Emscripten there is no separate libm library, so there is no need to explicitly link it,
and in particular the find_library call would fail as there is not libm to find.
See https://stackoverflow.com/questions/24663915/how-can-i-link-libm-to-my-emscripten-port
---
src/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1407080..357ed76 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -48,7 +48,7 @@ target_include_directories(ccd PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)

-if(NOT WIN32)
+if(NOT WIN32 AND NOT (CMAKE_SYSTEM_NAME STREQUAL "Emscripten"))
find_library(LIBM_LIBRARY NAMES m)
if(NOT LIBM_LIBRARY)
message(FATAL_ERROR "Could NOT find required library LibM")

0 comments on commit b97fe82

Please sign in to comment.