aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/box2d
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/box2d')
-rw-r--r--vcpkg/ports/box2d/libm.diff18
-rw-r--r--vcpkg/ports/box2d/portfile.cmake35
-rw-r--r--vcpkg/ports/box2d/usage4
-rw-r--r--vcpkg/ports/box2d/vcpkg.json17
4 files changed, 74 insertions, 0 deletions
diff --git a/vcpkg/ports/box2d/libm.diff b/vcpkg/ports/box2d/libm.diff
new file mode 100644
index 0000000..e7b5c51
--- /dev/null
+++ b/vcpkg/ports/box2d/libm.diff
@@ -0,0 +1,18 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index dbc41b1..9ae252d 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -87,6 +87,13 @@ target_include_directories(box2d
+
+ set(CMAKE_DEBUG_POSTFIX "d")
+
++if(NOT WIN32)
++ find_library(HAVE_LIBM m)
++ if(HAVE_LIBM)
++ target_link_libraries(box2d PRIVATE m)
++ endif()
++endif()
++
+ # Box2D uses C17 for _Static_assert and anonymous unions
+ set_target_properties(box2d PROPERTIES
+ C_STANDARD 17
diff --git a/vcpkg/ports/box2d/portfile.cmake b/vcpkg/ports/box2d/portfile.cmake
new file mode 100644
index 0000000..88187ea
--- /dev/null
+++ b/vcpkg/ports/box2d/portfile.cmake
@@ -0,0 +1,35 @@
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO erincatto/Box2D
+ REF v${VERSION}
+ SHA512 7367640e7f2ff395b8ca48766c71f57c96e08c298627c996eba76899a149ee28b0e3ecacfa4a224fdb5d160c7e25c6069bb8414fd1575787727d796097aa347b
+ HEAD_REF main
+ PATCHES
+ libm.diff
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBOX2D_SAMPLES=OFF
+ -DBOX2D_BENCHMARKS=OFF
+ -DBOX2D_DOCS=OFF
+ -DBOX2D_PROFILE=OFF
+ -DBOX2D_VALIDATE=OFF
+ -DBOX2D_UNIT_TESTS=OFF
+ -DBOX2D_COMPILE_WARNING_AS_ERROR=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/box2d)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/box2d/base.h" "defined( BOX2D_DLL )" "1")
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/box2d/usage b/vcpkg/ports/box2d/usage
new file mode 100644
index 0000000..176da24
--- /dev/null
+++ b/vcpkg/ports/box2d/usage
@@ -0,0 +1,4 @@
+box2d provides CMake targets:
+
+ find_package(box2d CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE box2d::box2d)
diff --git a/vcpkg/ports/box2d/vcpkg.json b/vcpkg/ports/box2d/vcpkg.json
new file mode 100644
index 0000000..854a051
--- /dev/null
+++ b/vcpkg/ports/box2d/vcpkg.json
@@ -0,0 +1,17 @@
+{
+ "name": "box2d",
+ "version-semver": "3.1.1",
+ "description": "An open source C++ engine for simulating rigid bodies in 2D",
+ "homepage": "https://box2d.org",
+ "supports": "!uwp",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}