diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/elements | |
Diffstat (limited to 'vcpkg/ports/elements')
| -rw-r--r-- | vcpkg/ports/elements/fix-dependencies.patch | 38 | ||||
| -rw-r--r-- | vcpkg/ports/elements/portfile.cmake | 60 | ||||
| -rw-r--r-- | vcpkg/ports/elements/vcpkg.json | 23 |
3 files changed, 121 insertions, 0 deletions
diff --git a/vcpkg/ports/elements/fix-dependencies.patch b/vcpkg/ports/elements/fix-dependencies.patch new file mode 100644 index 0000000..81fda99 --- /dev/null +++ b/vcpkg/ports/elements/fix-dependencies.patch @@ -0,0 +1,38 @@ +diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt +index e84ca98..7a06ed2 100644 +--- a/lib/CMakeLists.txt ++++ b/lib/CMakeLists.txt +@@ -226,14 +226,7 @@ endif() + ############################################################################### + # Cycfi Infra + +-FetchContent_Declare( +- cycfi_infra +- GIT_REPOSITORY https://github.com/cycfi/infra.git +- GIT_TAG master +- GIT_SUBMODULES_RECURSE ON +-) +- +-FetchContent_MakeAvailable(cycfi_infra) ++add_subdirectory(infra) + target_link_libraries(elements PUBLIC cycfi::infra) + + ############################################################################### +@@ -272,15 +265,8 @@ endif() + ############################################################################### + # Asio headers + +-FetchContent_Declare( +- asio +- GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git +- GIT_TAG asio-1-29-0 +- GIT_SHALLOW TRUE +-) +-FetchContent_MakeAvailable(asio) +- +-target_include_directories(elements PUBLIC ${asio_SOURCE_DIR}/asio/include) ++find_package(asio CONFIG REQUIRED) ++target_include_directories(elements PUBLIC ${ASIO_INCLUDE_DIR}) + + ############################################################################### + # Global options diff --git a/vcpkg/ports/elements/portfile.cmake b/vcpkg/ports/elements/portfile.cmake new file mode 100644 index 0000000..b1291a3 --- /dev/null +++ b/vcpkg/ports/elements/portfile.cmake @@ -0,0 +1,60 @@ +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO cycfi/elements + REF 663dcdb82dffa9e70cf6643b50ed56a39c8015ed + SHA512 4fc579df6dd471c69996a991e4b2c4c204e7f02d1d247de7a962fcd97d472cb63b58faa2ab7a0cfb47cc004a03483d4ef9123cbd8f562ba7007d779ba03221ca + HEAD_REF master + PATCHES + fix-dependencies.patch +) + +vcpkg_from_github( + OUT_SOURCE_PATH INFRA_SOURCE_PATH + REPO cycfi/infra + REF 965ecdb953c8c1187b327cff12655f9a92352acc + SHA512 37d990ec70aa37dded3d464cadc28cedd320986ea5816669698de43376bb77d0f32951f0f8a03af65a472a46886ddf628e7acfd0314dd5ebfa49a3e98984054f + HEAD_REF master +) +if(NOT EXISTS "${SOURCE_PATH}/lib/infra/CMakeLists.txt") + file(REMOVE_RECURSE "${SOURCE_PATH}/lib/infra") + file(RENAME "${INFRA_SOURCE_PATH}" "${SOURCE_PATH}/lib/infra") +endif() + + +if(VCPKG_TARGET_IS_WINDOWS) + set(ELEMENTS_HOST_UI_LIBRARY "win32") +elseif(VCPKG_TARGET_IS_OSX) + set(ELEMENTS_HOST_UI_LIBRARY "cocoa") +else() + set(ELEMENTS_HOST_UI_LIBRARY "gtk") +endif() + +vcpkg_find_acquire_program(PKGCONFIG) + +vcpkg_cmake_configure( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DELEMENTS_BUILD_EXAMPLES=OFF + -DELEMENTS_HOST_UI_LIBRARY=${ELEMENTS_HOST_UI_LIBRARY} + "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" +) + +vcpkg_cmake_build() + +file(INSTALL "${SOURCE_PATH}/lib/include/elements.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") +file(INSTALL "${SOURCE_PATH}/lib/include/elements" DESTINATION "${CURRENT_PACKAGES_DIR}/include") +file(INSTALL "${SOURCE_PATH}/lib/infra/include/infra" DESTINATION "${CURRENT_PACKAGES_DIR}/include") + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(GLOB ELEMENTS_LIBS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/*elements*") + file(INSTALL ${ELEMENTS_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") +endif() + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(GLOB ELEMENTS_LIBS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/*elements*") + file(INSTALL ${ELEMENTS_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") +endif() + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/README.md") diff --git a/vcpkg/ports/elements/vcpkg.json b/vcpkg/ports/elements/vcpkg.json new file mode 100644 index 0000000..74d35b9 --- /dev/null +++ b/vcpkg/ports/elements/vcpkg.json @@ -0,0 +1,23 @@ +{ + "name": "elements", + "version-date": "2024-09-12", + "description": "Elements is a lightweight, fine-grained, resolution independent, modular GUI library.", + "homepage": "https://cycfi.github.io/elements", + "license": "MIT", + "supports": "(windows & staticcrt) | osx | linux", + "dependencies": [ + "asio", + "cairo", + "fontconfig", + "freetype", + { + "name": "gtk3", + "platform": "!osx & !windows" + }, + "libwebp", + { + "name": "vcpkg-cmake", + "host": true + } + ] +} |