aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/bgfx
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/bgfx')
-rw-r--r--vcpkg/ports/bgfx/fix-dependencies.patch422
-rw-r--r--vcpkg/ports/bgfx/portfile.cmake77
-rw-r--r--vcpkg/ports/bgfx/vcpkg.json54
3 files changed, 553 insertions, 0 deletions
diff --git a/vcpkg/ports/bgfx/fix-dependencies.patch b/vcpkg/ports/bgfx/fix-dependencies.patch
new file mode 100644
index 0000000..3356c25
--- /dev/null
+++ b/vcpkg/ports/bgfx/fix-dependencies.patch
@@ -0,0 +1,422 @@
+diff --git a/bgfx/examples/common/bgfx_utils.cpp b/bgfx/examples/common/bgfx_utils.cpp
+index baaeba3..f6bc854 100644
+--- a/bgfx/examples/common/bgfx_utils.cpp
++++ b/bgfx/examples/common/bgfx_utils.cpp
+@@ -17,7 +17,7 @@ namespace stl = tinystl;
+ #include <bx/readerwriter.h>
+ #include <bx/string.h>
+ #include "entry/entry.h"
+-#include <meshoptimizer/src/meshoptimizer.h>
++#include <meshoptimizer.h>
+
+ #include "bgfx_utils.h"
+
+diff --git a/bgfx/examples/common/font/font_manager.cpp b/bgfx/examples/common/font/font_manager.cpp
+index 92e497a..85d1495 100644
+--- a/bgfx/examples/common/font/font_manager.cpp
++++ b/bgfx/examples/common/font/font_manager.cpp
+@@ -4,7 +4,7 @@
+ */
+
+ #include <bx/bx.h>
+-#include <stb/stb_truetype.h>
++#include <stb_truetype.h>
+ #include "../common.h"
+ #include <bgfx/bgfx.h>
+
+diff --git a/bgfx/examples/common/imgui/imgui.cpp b/bgfx/examples/common/imgui/imgui.cpp
+index 2fe8258..1006741 100644
+--- a/bgfx/examples/common/imgui/imgui.cpp
++++ b/bgfx/examples/common/imgui/imgui.cpp
+@@ -8,10 +8,10 @@
+ #include <bx/allocator.h>
+ #include <bx/math.h>
+ #include <bx/timer.h>
+-#include <dear-imgui/imgui.h>
+-#include <dear-imgui/imgui_internal.h>
++#include <imgui.h>
++#include <imgui_internal.h>
+
+-#include "imgui.h"
++#include "imgui/imgui.h"
+ #include "../bgfx_utils.h"
+
+ #ifndef USE_ENTRY
+@@ -591,7 +591,7 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wtype-limits"); // warning: comparison
+ # define STBTT_free(_ptr, _userData) memFree(_ptr, _userData)
+
+ # define STB_RECT_PACK_IMPLEMENTATION
+-# include <stb/stb_rect_pack.h>
++# include <stb_rect_pack.h>
+ # define STB_TRUETYPE_IMPLEMENTATION
+-# include <stb/stb_truetype.h>
++# include <stb_truetype.h>
+ #endif // USE_LOCAL_STB
+diff --git a/bgfx/examples/common/imgui/imgui.h b/bgfx/examples/common/imgui/imgui.h
+index 865879e..c6a3d84 100644
+--- a/bgfx/examples/common/imgui/imgui.h
++++ b/bgfx/examples/common/imgui/imgui.h
+@@ -7,7 +7,7 @@
+ #define IMGUI_H_HEADER_GUARD
+
+ #include <bgfx/bgfx.h>
+-#include <dear-imgui/imgui.h>
++#include <imgui.h>
+ #include <iconfontheaders/icons_kenney.h>
+ #include <iconfontheaders/icons_font_awesome.h>
+
+diff --git a/bgfx/examples/common/nanovg/fontstash.h b/bgfx/examples/common/nanovg/fontstash.h
+index 39a48fb..ca0056d 100644
+--- a/bgfx/examples/common/nanovg/fontstash.h
++++ b/bgfx/examples/common/nanovg/fontstash.h
+@@ -266,7 +266,7 @@ static void fons__tmpfree(void* ptr, void* up);
+ #endif // 0
+
+ #define STBTT_DEF extern
+-#include <stb/stb_truetype.h>
++#include <stb_truetype.h>
+
+ struct FONSttFontImpl {
+ stbtt_fontinfo font;
+diff --git a/bgfx/tools/geometryc/geometryc.cpp b/bgfx/tools/geometryc/geometryc.cpp
+index d79a80e..7740272 100644
+--- a/bgfx/tools/geometryc/geometryc.cpp
++++ b/bgfx/tools/geometryc/geometryc.cpp
+@@ -14,11 +14,11 @@
+ #include <tinystl/vector.h>
+ namespace stl = tinystl;
+
+-#include <meshoptimizer/src/meshoptimizer.h>
++#include <meshoptimizer.h>
+
+ #define CGLTF_VALIDATE_ENABLE_ASSERTS BX_CONFIG_DEBUG
+ #define CGLTF_IMPLEMENTATION
+-#include <cgltf/cgltf.h>
++#include <cgltf.h>
+
+ #define BGFX_GEOMETRYC_VERSION_MAJOR 1
+ #define BGFX_GEOMETRYC_VERSION_MINOR 0
+diff --git a/bgfx/tools/shaderc/shaderc_metal.cpp b/bgfx/tools/shaderc/shaderc_metal.cpp
+index 9f073b9..e8fd208 100644
+--- a/bgfx/tools/shaderc/shaderc_metal.cpp
++++ b/bgfx/tools/shaderc/shaderc_metal.cpp
+@@ -20,11 +20,11 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wshadow") // warning: declaration of 'u
+ #include <spirv_reflect.hpp>
+
+ #define ENABLE_OPT 1
+-#include <ShaderLang.h>
+-#include <ResourceLimits.h>
+-#include <SPIRV/GlslangToSpv.h>
+-#include <SPIRV/SPVRemapper.h>
+-#include <SPIRV/SpvTools.h>
++#include <glslang/Public/ShaderLang.h>
++#include <glslang/Include/ResourceLimits.h>
++#include <glslang/SPIRV/GlslangToSpv.h>
++#include <glslang/SPIRV/SPVRemapper.h>
++#include <glslang/SPIRV/SpvTools.h>
+ #include <spirv-tools/optimizer.hpp>
+ BX_PRAGMA_DIAGNOSTIC_POP()
+
+diff --git a/bgfx/tools/shaderc/shaderc_spirv.cpp b/bgfx/tools/shaderc/shaderc_spirv.cpp
+index f7910de..a844cc0 100644
+--- a/bgfx/tools/shaderc/shaderc_spirv.cpp
++++ b/bgfx/tools/shaderc/shaderc_spirv.cpp
+@@ -20,11 +20,11 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wshadow") // warning: declaration of 'u
+ #include <spirv_reflect.hpp>
+
+ #define ENABLE_OPT 1
+-#include <ShaderLang.h>
+-#include <ResourceLimits.h>
+-#include <SPIRV/SPVRemapper.h>
+-#include <SPIRV/GlslangToSpv.h>
+-#include <SPIRV/SpvTools.h>
++#include <glslang/Public/ShaderLang.h>
++#include <glslang/Include/ResourceLimits.h>
++#include <glslang/SPIRV/SPVRemapper.h>
++#include <glslang/SPIRV/GlslangToSpv.h>
++#include <glslang/SPIRV/SpvTools.h>
+ #include <spirv-tools/optimizer.hpp>
+ BX_PRAGMA_DIAGNOSTIC_POP()
+
+diff --git a/bimg/src/image_decode.cpp b/bimg/src/image_decode.cpp
+index 798eaba..a4cd3ef 100644
+--- a/bimg/src/image_decode.cpp
++++ b/bimg/src/image_decode.cpp
+@@ -16,22 +16,14 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4018) // warning C4018: '<': signed/unsigned
+ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4100) // error C4100: '' : unreferenced formal parameter
+ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4389) // warning C4389 : '==' : signed / unsigned mismatch
+ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4505) // warning C4505: 'tinyexr::miniz::def_realloc_func': unreferenced local function has been removed
+-#define MINIZ_NO_ARCHIVE_APIS
+-#define MINIZ_NO_STDIO
+-#define TINYEXR_IMPLEMENTATION
+-#include <tinyexr/tinyexr.h>
++#include <tinyexr.h>
+ BX_PRAGMA_DIAGNOSTIC_POP()
+
+ BX_PRAGMA_DIAGNOSTIC_PUSH();
+ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4127) // warning C4127: conditional expression is constant
+ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4267) // warning C4267: '=' : conversion from 'size_t' to 'unsigned short', possible loss of data
+ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4334) // warning C4334: '<<' : result of 32 - bit shift implicitly converted to 64 bits(was 64 - bit shift intended ? )
+-#define LODEPNG_NO_COMPILE_ENCODER
+-#define LODEPNG_NO_COMPILE_DISK
+-#define LODEPNG_NO_COMPILE_ANCILLARY_CHUNKS
+-#define LODEPNG_NO_COMPILE_ALLOCATORS
+-#define LODEPNG_NO_COMPILE_CPP
+-#include <lodepng/lodepng.cpp>
++#include <lodepng.h>
+ BX_PRAGMA_DIAGNOSTIC_POP();
+
+ #if BIMG_DECODE_HEIF
+@@ -72,7 +64,7 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_GCC("-Wimplicit-fallthrough");
+ #define STBI_FREE(_ptr) lodepng_free(_ptr)
+ #define STB_IMAGE_IMPLEMENTATION
+ #define STB_IMAGE_STATIC
+-#include <stb/stb_image.h>
++#include <stb_image.h>
+ BX_PRAGMA_DIAGNOSTIC_POP();
+
+ namespace bimg
+@@ -453,7 +445,7 @@ namespace bimg
+ case TINYEXR_ERROR_INVALID_HEADER: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image. Invalid header."); break;
+ case TINYEXR_ERROR_UNSUPPORTED_FEATURE: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image. Unsupported feature."); break;
+ case TINYEXR_ERROR_CANT_WRITE_FILE: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image. Can't write file."); break;
+- case TINYEXR_ERROR_SERIALZATION_FAILED: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image. Serialization failed."); break;
++ case TINYEXR_ERROR_SERIALIZATION_FAILED: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image. Serialization failed."); break;
+ default: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image."); break;
+ }
+ }
+diff --git a/bimg/src/image_encode.cpp b/bimg/src/image_encode.cpp
+index 7c0cd76..530578f 100644
+--- a/bimg/src/image_encode.cpp
++++ b/bimg/src/image_encode.cpp
+@@ -6,7 +6,7 @@
+ #include <bimg/encode.h>
+ #include "bimg_p.h"
+
+-#include <libsquish/squish.h>
++#include <squish.h>
+ #include <etc1/etc1.h>
+ #include <etc2/ProcessRGB.hpp>
+ #include <nvtt/nvtt.h>
+@@ -19,7 +19,7 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4100) // warning C4100: 'alloc_context': unref
+ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4702) // warning C4702: unreachable code
+ BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wunused-parameter") // warning: unused parameter ‘alloc_context’ [-Wunused-parameter]
+ #define STB_IMAGE_RESIZE_IMPLEMENTATION
+-#include <stb/stb_image_resize.h>
++#include <stb_image_resize2.h>
+ BX_PRAGMA_DIAGNOSTIC_POP();
+
+ extern "C" {
+@@ -564,18 +564,16 @@ namespace bimg
+ const uint32_t srcDataStep = uint32_t(bx::floor(zz * _src->m_depth / float(_dst->m_depth) ) );
+ const uint8_t* srcData = &srcMip.m_data[srcDataStep*srcSlice];
+
+- int result = stbir_resize_float_generic(
+- (const float*)srcData, _src->m_width, _src->m_height, srcPitch
+- , ( float*)dstData, _dst->m_width, _dst->m_height, dstPitch
+- , 4, 3
+- , STBIR_FLAG_ALPHA_PREMULTIPLIED
++ void* result = stbir_resize(
++ (const void *)srcData, _src->m_width, _src->m_height, srcPitch
++ , ( void *)dstData, _dst->m_width, _dst->m_height, dstPitch
++ , STBIR_RGBA_PM
++ , STBIR_TYPE_FLOAT
+ , STBIR_EDGE_CLAMP
+ , STBIR_FILTER_BOX
+- , STBIR_COLORSPACE_LINEAR
+- , NULL
+ );
+
+- if (1 != result)
++ if (0 == result)
+ {
+ return false;
+ }
+diff --git a/bx/src/settings.cpp b/bx/src/settings.cpp
+index 907c74c..ffcc442 100644
+--- a/bx/src/settings.cpp
++++ b/bx/src/settings.cpp
+@@ -19,7 +19,7 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wunused-function");
+
+ BX_PRAGMA_DIAGNOSTIC_PUSH();
+ BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wsign-compare");
+-#include <ini/ini.h>
++#include <mgnlibs/ini.h>
+ BX_PRAGMA_DIAGNOSTIC_POP();
+ }
+
+@@ -58,7 +58,7 @@ void Settings::load(const void* _data, uint32_t _len)
+ }
+ else
+ {
+- m_ini = ini_load( (const char*)_data, _len, m_allocator);
++ m_ini = ini_load( (const char*)_data, m_allocator);
+ }
+ }
+
+diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in
+index 33a3943..8eddd3f 100644
+--- a/cmake/Config.cmake.in
++++ b/cmake/Config.cmake.in
+@@ -1,5 +1,22 @@
+ @PACKAGE_INIT@
+
++include(CMakeFindDependencyMacro)
++find_dependency(lodepng CONFIG)
++find_dependency(miniz CONFIG)
++find_dependency(tinyexr CONFIG)
++find_dependency(unofficial-libsquish CONFIG)
++if("@BGFX_BUILD_TOOLS_GEOMETRY@")
++ find_dependency(meshoptimizer CONFIG)
++endif()
++if("@BGFX_BUILD_TOOLS_SHADER@")
++ find_dependency(spirv_cross_core CONFIG)
++ find_dependency(spirv_cross_reflect CONFIG)
++ find_dependency(spirv_cross_glsl CONFIG)
++ find_dependency(spirv_cross_hlsl CONFIG)
++ find_dependency(spirv_cross_msl CONFIG)
++ find_dependency(glslang CONFIG REQUIRED)
++endif()
++
+ if(@BGFX_CMAKE_USER_SCRIPT_PRESENT@)
+ include("${CMAKE_CURRENT_LIST_DIR}/@BGFX_CMAKE_USER_SCRIPT_INSTALL_NAME@")
+ endif()
+diff --git a/cmake/bgfx/CMakeLists.txt b/cmake/bgfx/CMakeLists.txt
+index 0125da3..9b10d09 100644
+--- a/cmake/bgfx/CMakeLists.txt
++++ b/cmake/bgfx/CMakeLists.txt
+@@ -9,20 +9,22 @@
+ # this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ include(bgfx.cmake)
+-include(3rdparty/meshoptimizer.cmake)
+-include(3rdparty/dear-imgui.cmake)
+
+ if(BGFX_BUILD_TOOLS_TEXTURE)
+- include(texturev.cmake)
+ endif()
+ if(BGFX_BUILD_TOOLS_GEOMETRY)
++ find_package(meshoptimizer CONFIG REQUIRED)
++ set(MESHOPTIMIZER_LIBRARIES "meshoptimizer::meshoptimizer" CACHE INTERNAL "")
+ include(geometryc.cmake)
+- include(geometryv.cmake)
+ endif()
+ if(BGFX_BUILD_TOOLS_SHADER)
+- include(3rdparty/spirv-opt.cmake)
+- include(3rdparty/spirv-cross.cmake)
+- include(3rdparty/glslang.cmake)
++ find_package(spirv_cross_core CONFIG REQUIRED)
++ find_package(spirv_cross_reflect CONFIG REQUIRED)
++ find_package(spirv_cross_glsl CONFIG REQUIRED)
++ find_package(spirv_cross_hlsl CONFIG REQUIRED)
++ find_package(spirv_cross_msl CONFIG REQUIRED)
++ find_package(glslang CONFIG REQUIRED)
++
+ include(3rdparty/glsl-optimizer.cmake)
+ include(3rdparty/fcpp.cmake)
+ include(3rdparty/webgpu.cmake)
+diff --git a/cmake/bgfx/shaderc.cmake b/cmake/bgfx/shaderc.cmake
+index 0f50eab..8b13b28 100644
+--- a/cmake/bgfx/shaderc.cmake
++++ b/cmake/bgfx/shaderc.cmake
+@@ -24,21 +24,10 @@ target_link_libraries(
+ PRIVATE bx
+ bgfx-vertexlayout
+ fcpp
+- glslang
+- glsl-optimizer
+- spirv-opt
+- spirv-cross
+-)
+-target_link_libraries(
+- shaderc
+- PRIVATE bx
+ bimg
+- bgfx-vertexlayout
+- fcpp
+- glslang
++ glslang::glslang glslang::glslang-default-resource-limits glslang::SPIRV glslang::SPVRemapper
+ glsl-optimizer
+- spirv-opt
+- spirv-cross
++ spirv-cross-core spirv-cross-reflect spirv-cross-glsl spirv-cross-hlsl spirv-cross-msl
+ webgpu
+ )
+ if(BGFX_AMALGAMATED)
+diff --git a/cmake/bimg/CMakeLists.txt b/cmake/bimg/CMakeLists.txt
+index 200b29b..1c857c0 100644
+--- a/cmake/bimg/CMakeLists.txt
++++ b/cmake/bimg/CMakeLists.txt
+@@ -8,17 +8,24 @@
+ # You should have received a copy of the CC0 Public Domain Dedication along with
+ # this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+-include(3rdparty/loadpng.cmake)
+-include(3rdparty/libsquish.cmake)
++find_package(lodepng CONFIG REQUIRED)
++set(LOADPNG_LIBRARIES "$<BUILD_INTERFACE:lodepng>;$<INSTALL_INTERFACE:$<LINK_ONLY:lodepng>>")
++find_package(unofficial-libsquish CONFIG REQUIRED)
++set(LIBSQUISH_LIBRARIES "$<BUILD_INTERFACE:unofficial::libsquish::squish>;$<INSTALL_INTERFACE:$<LINK_ONLY:unofficial::libsquish::squish>>")
+ include(3rdparty/astc_encoder.cmake)
+ include(3rdparty/edtaa3.cmake)
+ include(3rdparty/etc1.cmake)
+ include(3rdparty/etc2.cmake)
+ include(3rdparty/nvtt.cmake)
+ include(3rdparty/pvrtc.cmake)
+-include(3rdparty/tinyexr.cmake)
++find_package(tinyexr CONFIG REQUIRED)
++set(TINYEXR_LIBRARIES "$<BUILD_INTERFACE:unofficial::tinyexr::tinyexr>;$<INSTALL_INTERFACE:$<LINK_ONLY:unofficial::tinyexr::tinyexr>>")
+ include(3rdparty/iqa.cmake)
+-include(3rdparty/miniz.cmake)
++find_package(miniz CONFIG REQUIRED)
++set(MINIZ_LIBRARIES "$<BUILD_INTERFACE:miniz::miniz>;$<INSTALL_INTERFACE:$<LINK_ONLY:miniz::miniz>>")
++
++find_package(Stb REQUIRED)
++
+ include(bimg.cmake)
+ include(bimg_decode.cmake)
+ include(bimg_encode.cmake)
+diff --git a/cmake/bimg/bimg_decode.cmake b/cmake/bimg/bimg_decode.cmake
+index a511e8f..da98152 100644
+--- a/cmake/bimg/bimg_decode.cmake
++++ b/cmake/bimg/bimg_decode.cmake
+@@ -34,6 +34,7 @@ target_include_directories(
+ PRIVATE ${LOADPNG_INCLUDE_DIR} #
+ ${MINIZ_INCLUDE_DIR} #
+ ${TINYEXR_INCLUDE_DIR} #
++ ${Stb_INCLUDE_DIR}
+ )
+
+ target_link_libraries(
+diff --git a/cmake/bimg/bimg_encode.cmake b/cmake/bimg/bimg_encode.cmake
+index 82d9fe0..a0ba5df 100644
+--- a/cmake/bimg/bimg_encode.cmake
++++ b/cmake/bimg/bimg_encode.cmake
+@@ -32,6 +32,7 @@ target_include_directories(
+ ${TINYEXR_INCLUDE_DIR} #
+ ${IQA_INCLUDE_DIR} #
+ ${MINIZ_INCLUDE_DIR} #
++ ${Stb_INCLUDE_DIR} #
+ )
+
+ file(
+diff --git a/cmake/bx/bx.cmake b/cmake/bx/bx.cmake
+index d1a73c6..826c52b 100644
+--- a/cmake/bx/bx.cmake
++++ b/cmake/bx/bx.cmake
+@@ -75,13 +75,14 @@ elseif(UNIX)
+ endif()
+
+ # Add include directory of bx
++find_path(MGNLIBS_INCLUDE_DIR "mgnlibs/ini.h")
+ target_include_directories(
+ bx
+ PUBLIC $<BUILD_INTERFACE:${BX_DIR}/include> #
+- $<BUILD_INTERFACE:${BX_DIR}/3rdparty> #
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> #
+ $<BUILD_INTERFACE:${BX_DIR}/include/compat/${BX_COMPAT_PLATFORM}> #
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/bx/compat/${BX_COMPAT_PLATFORM}> #
++ PRIVATE "${MGNLIBS_INCLUDE_DIR}"
+ )
+
+ # All configurations
diff --git a/vcpkg/ports/bgfx/portfile.cmake b/vcpkg/ports/bgfx/portfile.cmake
new file mode 100644
index 0000000..4c7f844
--- /dev/null
+++ b/vcpkg/ports/bgfx/portfile.cmake
@@ -0,0 +1,77 @@
+if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+endif()
+
+vcpkg_download_distfile(
+ ARCHIVE_FILE
+ URLS https://github.com/bkaradzic/bgfx.cmake/releases/download/v${VERSION}/bgfx.cmake.v${VERSION}.tar.gz
+ FILENAME bgfx.cmake.v${VERSION}.tar.gz
+ SHA512 520c542b65e76e92eae818e32eeb62bb2347ac89a1e10fc07cd5059a3b8a9a543cadca87d451a3bc157c415f6183b1f0e5031248e38fae704b8efd54679d482b
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE_FILE}"
+ PATCHES
+ fix-dependencies.patch
+)
+file(REMOVE_RECURSE
+ "${SOURCE_PATH}/bgfx/3rdparty/dear-imgui"
+ "${SOURCE_PATH}/bgfx/3rdparty/glslang"
+ "${SOURCE_PATH}/bgfx/3rdparty/meshoptimizer"
+ "${SOURCE_PATH}/bgfx/3rdparty/spirv-cross"
+ "${SOURCE_PATH}/bgfx/3rdparty/spirv-headers"
+ "${SOURCE_PATH}/bgfx/3rdparty/spirv-opt"
+ "${SOURCE_PATH}/bgfx/3rdparty/stb"
+ "${SOURCE_PATH}/bimg/3rdparty/libsquish"
+ "${SOURCE_PATH}/bimg/3rdparty/lodepng"
+ "${SOURCE_PATH}/bimg/3rdparty/stb"
+ "${SOURCE_PATH}/bimg/3rdparty/tinyexr"
+)
+
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ tools BGFX_BUILD_TOOLS
+ multithreaded BGFX_CONFIG_MULTITHREADED
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(BGFX_LIBRARY_TYPE "SHARED")
+else ()
+ set(BGFX_LIBRARY_TYPE "STATIC")
+endif ()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBGFX_LIBRARY_TYPE=${BGFX_LIBRARY_TYPE}
+ -DBGFX_AMALGAMATED=ON
+ -DBGFX_BUILD_EXAMPLES=OFF
+ -DBGFX_OPENGLES_VERSION=30
+ "-DBGFX_ADDITIONAL_TOOL_PATHS=${CURRENT_INSTALLED_DIR}/../${HOST_TRIPLET}/tools/bgfx"
+ ${FEATURE_OPTIONS}
+ OPTIONS_DEBUG
+ -DBGFX_BUILD_TOOLS=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}")
+vcpkg_copy_pdbs()
+
+if ("tools" IN_LIST FEATURES)
+ vcpkg_copy_tools(TOOL_NAMES bin2c shaderc geometryc texturec AUTO_CLEAN)
+endif ()
+
+vcpkg_install_copyright(
+ FILE_LIST "${CURRENT_PACKAGES_DIR}/share/licences/${PORT}/LICENSE"
+ COMMENT [[
+bgfx includes third-party components which are subject to specific license
+terms. Check the sources for details.
+]])
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/share/licences"
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+)
diff --git a/vcpkg/ports/bgfx/vcpkg.json b/vcpkg/ports/bgfx/vcpkg.json
new file mode 100644
index 0000000..b85b9b4
--- /dev/null
+++ b/vcpkg/ports/bgfx/vcpkg.json
@@ -0,0 +1,54 @@
+{
+ "name": "bgfx",
+ "version": "1.129.8940-496",
+ "maintainers": "Sandy Carter <bwrsandman@users.noreply.github.com>",
+ "description": "Cross-platform, graphics API agnostic, Bring Your Own Engine/Framework style rendering library.",
+ "homepage": "https://bkaradzic.github.io/bgfx/overview.html",
+ "documentation": "https://bkaradzic.github.io/bgfx",
+ "license": "BSD-2-Clause AND CC0-1.0",
+ "supports": "!bsd",
+ "dependencies": [
+ "libsquish",
+ "lodepng",
+ "mgnlibs",
+ "miniz",
+ "stb",
+ "tinyexr",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "default-features": [
+ {
+ "name": "multithreaded",
+ "platform": "!emscripten"
+ }
+ ],
+ "features": {
+ "multithreaded": {
+ "description": "Encode and render on different threads",
+ "supports": "!emscripten"
+ },
+ "tools": {
+ "$comment": "Use '\"host\": true' in dependencies of vcpkg.json in manifest mode.",
+ "description": "Shader, Texture and Geometry compilers for bgfx.",
+ "dependencies": [
+ "cgltf",
+ {
+ "name": "glslang",
+ "features": [
+ "opt"
+ ]
+ },
+ "meshoptimizer",
+ "spirv-cross",
+ "spirv-tools"
+ ]
+ }
+ }
+}