Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ccd] Add emscripten support #11407

Merged
merged 1 commit into from
Jun 12, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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")