aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/flecs
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/flecs
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/flecs')
-rw-r--r--vcpkg/ports/flecs/portfile.cmake38
-rw-r--r--vcpkg/ports/flecs/usage4
-rw-r--r--vcpkg/ports/flecs/vcpkg-cmake-wrapper.cmake9
-rw-r--r--vcpkg/ports/flecs/vcpkg.json19
4 files changed, 70 insertions, 0 deletions
diff --git a/vcpkg/ports/flecs/portfile.cmake b/vcpkg/ports/flecs/portfile.cmake
new file mode 100644
index 0000000..d94e1c7
--- /dev/null
+++ b/vcpkg/ports/flecs/portfile.cmake
@@ -0,0 +1,38 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO SanderMertens/flecs
+ REF "v${VERSION}"
+ SHA512 ba7bef152d4b6f2e8e749f24525483532f5a9cf317296d3ae697790d632c4260cf828ab6db29bf69148c88a16710843dcfe362f96ec8c17738022ceffbbc6d79
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" FLECS_STATIC_LIBS)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" FLECS_SHARED_LIBS)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DFLECS_STATIC=${FLECS_STATIC_LIBS}
+ -DFLECS_SHARED=${FLECS_SHARED_LIBS}
+)
+
+vcpkg_cmake_install()
+
+vcpkg_copy_pdbs()
+
+if(FLECS_STATIC_LIBS)
+ vcpkg_replace_string(
+ "${CURRENT_PACKAGES_DIR}/include/${PORT}/bake_config.h"
+ "#ifndef flecs_STATIC"
+ "#if 0 // #ifndef flecs_STATIC"
+ )
+endif()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT})
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/flecs/usage b/vcpkg/ports/flecs/usage
new file mode 100644
index 0000000..c513e50
--- /dev/null
+++ b/vcpkg/ports/flecs/usage
@@ -0,0 +1,4 @@
+The package flecs provides CMake targets:
+
+ find_package(flecs CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:flecs::flecs>,flecs::flecs,flecs::flecs_static>)
diff --git a/vcpkg/ports/flecs/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/flecs/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 0000000..194a66a
--- /dev/null
+++ b/vcpkg/ports/flecs/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,9 @@
+_find_package(${ARGS})
+
+if(TARGET flecs::flecs AND NOT TARGET flecs::flecs_static)
+ add_library(flecs::flecs_static INTERFACE IMPORTED)
+ set_target_properties(flecs::flecs_static PROPERTIES INTERFACE_LINK_LIBRARIES flecs::flecs)
+elseif(TARGET flecs::flecs_static AND NOT TARGET flecs::flecs)
+ add_library(flecs::flecs INTERFACE IMPORTED)
+ set_target_properties(flecs::flecs PROPERTIES INTERFACE_LINK_LIBRARIES flecs::flecs_static)
+endif()
diff --git a/vcpkg/ports/flecs/vcpkg.json b/vcpkg/ports/flecs/vcpkg.json
new file mode 100644
index 0000000..09b31e2
--- /dev/null
+++ b/vcpkg/ports/flecs/vcpkg.json
@@ -0,0 +1,19 @@
+{
+ "name": "flecs",
+ "version": "4.1.2",
+ "description": "A fast entity component system (ECS) for C & C++",
+ "homepage": "https://github.com/SanderMertens/flecs",
+ "documentation": "https://www.flecs.dev/flecs/",
+ "license": "MIT",
+ "supports": "!uwp",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}