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/sdl2pp | |
Diffstat (limited to 'vcpkg/ports/sdl2pp')
| -rw-r--r-- | vcpkg/ports/sdl2pp/fix-dependencies.patch | 78 | ||||
| -rw-r--r-- | vcpkg/ports/sdl2pp/fix-usage.patch | 23 | ||||
| -rw-r--r-- | vcpkg/ports/sdl2pp/portfile.cmake | 50 | ||||
| -rw-r--r-- | vcpkg/ports/sdl2pp/usage | 5 | ||||
| -rw-r--r-- | vcpkg/ports/sdl2pp/vcpkg-cmake-wrapper.cmake | 5 | ||||
| -rw-r--r-- | vcpkg/ports/sdl2pp/vcpkg.json | 38 |
6 files changed, 199 insertions, 0 deletions
diff --git a/vcpkg/ports/sdl2pp/fix-dependencies.patch b/vcpkg/ports/sdl2pp/fix-dependencies.patch new file mode 100644 index 0000000..3bed05c --- /dev/null +++ b/vcpkg/ports/sdl2pp/fix-dependencies.patch @@ -0,0 +1,78 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cdfd2a6..dc08748 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -23,10 +23,27 @@ ENDIF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + + # depends + FIND_PACKAGE(SDL2 REQUIRED) +-SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_INCLUDE_DIR}) +-SET(SDL2_ALL_LIBRARIES ${SDL2_LIBRARY}) ++SET(SDL2_ALL_INCLUDE_DIRS "") ++IF(TARGET SDL2::SDL2) ++ SET(SDL2_ALL_LIBRARIES SDL2::SDL2) ++ELSE() ++ SET(SDL2_ALL_LIBRARIES SDL2::SDL2-static) ++ENDIF() + SET(SDL2_ALL_PKGCONFIG_MODULES sdl2) +-SET(SDL2PP_EXTRA_LIBRARIES ${SDL2MAIN_LIBRARY}) ++if(TARGET SDL2::SDL2main) ++set(SDL2PP_EXTRA_LIBRARIES SDL2::SDL2main) ++get_target_property(SDL2_MAIN_LIBRARY_DEBUG SDL2::SDL2main IMPORTED_LOCATION_DEBUG) ++get_target_property(SDL2_MAIN_LIBRARY_RELEASE SDL2::SDL2main IMPORTED_LOCATION_RELEASE) ++get_target_property(SDL2_MAIN_LIBRARY_GENERAL SDL2::SDL2main IMPORTED_LOCATION) ++set(SDL2MAIN_LIBRARY "") ++if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND SDL2_MAIN_LIBRARY_DEBUG) ++set(SDL2MAIN_LIBRARY "${SDL2_MAIN_LIBRARY_DEBUG}") ++elseif(SDL2_MAIN_LIBRARY_RELEASE) ++set(SDL2MAIN_LIBRARY "${SDL2_MAIN_LIBRARY_RELEASE}") ++elseif(SDL2_MAIN_LIBRARY_GENERAL) ++set(SDL2MAIN_LIBRARY "${SDL2_MAIN_LIBRARY_GENERAL}") ++endif() ++endif() + SET(SDL2PP_EXTRA_PKGCONFIG_LIBRARIES ${SDL2MAIN_LIBRARY}) + + IF(MINGW) +@@ -36,18 +40,16 @@ IF(MINGW) + ENDIF(MINGW) + + IF(SDL2PP_WITH_IMAGE) + FIND_PACKAGE(SDL2_image REQUIRED) +- SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_ALL_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIR}) +- SET(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} ${SDL2_IMAGE_LIBRARY}) ++ SET(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} $<IF:$<TARGET_EXISTS:SDL2_image::SDL2_image>,SDL2_image::SDL2_image,SDL2_image::SDL2_image-static>) + SET(SDL2_ALL_PKGCONFIG_MODULES "${SDL2_ALL_PKGCONFIG_MODULES} SDL2_image") + ELSE(SDL2PP_WITH_IMAGE) + MESSAGE(STATUS "SDL2_image support disabled") + ENDIF(SDL2PP_WITH_IMAGE) + + IF(SDL2PP_WITH_TTF) + FIND_PACKAGE(SDL2_ttf REQUIRED) +- SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_ALL_INCLUDE_DIRS} ${SDL2_TTF_INCLUDE_DIR}) +- SET(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} ${SDL2_TTF_LIBRARY}) ++ SET(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} $<IF:$<TARGET_EXISTS:SDL2_ttf::SDL2_ttf>,SDL2_ttf::SDL2_ttf,SDL2_ttf::SDL2_ttf-static>) + SET(SDL2_ALL_PKGCONFIG_MODULES "${SDL2_ALL_PKGCONFIG_MODULES} SDL2_ttf") + ELSE(SDL2PP_WITH_TTF) + MESSAGE(STATUS "SDL2_ttf support disabled") +@@ -56,7 +60,7 @@ ENDIF(SDL2PP_WITH_TTF) + IF(SDL2PP_WITH_MIXER) + FIND_PACKAGE(SDL2_mixer REQUIRED) + SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_ALL_INCLUDE_DIRS} ${SDL2_MIXER_INCLUDE_DIR}) +- SET(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} ${SDL2_MIXER_LIBRARY}) ++ SET(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} $<IF:$<TARGET_EXISTS:SDL2_mixer::SDL2_mixer>,SDL2_mixer::SDL2_mixer,SDL2_mixer::SDL2_mixer-static>) + SET(SDL2_ALL_PKGCONFIG_MODULES "${SDL2_ALL_PKGCONFIG_MODULES} SDL2_mixer") + ELSE(SDL2PP_WITH_MIXER) + MESSAGE(STATUS "SDL2_mixer support disabled") +@@ -200,10 +203,10 @@ IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + OPTION(SDL2PP_STATIC "Build static library instead of shared one" OFF) + + # library +- IF(SDL2PP_STATIC) ++ IF(0) + ADD_LIBRARY(SDL2pp STATIC ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) + ELSE(SDL2PP_STATIC) +- ADD_LIBRARY(SDL2pp SHARED ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) ++ ADD_LIBRARY(SDL2pp ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) + TARGET_LINK_LIBRARIES(SDL2pp ${SDL2_ALL_LIBRARIES}) + SET_TARGET_PROPERTIES(SDL2pp PROPERTIES VERSION 8.3.0 SOVERSION 8) + ENDIF(SDL2PP_STATIC) diff --git a/vcpkg/ports/sdl2pp/fix-usage.patch b/vcpkg/ports/sdl2pp/fix-usage.patch new file mode 100644 index 0000000..bea5fb0 --- /dev/null +++ b/vcpkg/ports/sdl2pp/fix-usage.patch @@ -0,0 +1,23 @@ +diff --git a/FindSDL2PP.cmake.in b/FindSDL2PP.cmake.in +index 344d2b2..06d6278 100644 +--- a/FindSDL2PP.cmake.in ++++ b/FindSDL2PP.cmake.in +@@ -6,6 +6,18 @@ + # SDL2PP_INCLUDE_DIRS + # SDL2PP_LIBRARIES + ++include(CMakeFindDependencyMacro) ++find_dependency(SDL2 CONFIG) ++IF(@SDL2PP_WITH_IMAGE@) ++ find_dependency(SDL2_image CONFIG) ++ENDIF() ++IF(@SDL2PP_WITH_TTF@) ++ find_dependency(SDL2_ttf CONFIG) ++ENDIF() ++IF(@SDL2PP_WITH_MIXER@) ++ find_dependency(SDL2_mixer CONFIG) ++ENDIF() ++ + IF(SDL2PP_INCLUDE_DIR AND SDL2PP_LIBRARY) + # in cache already + SET(SDL2PP_FIND_QUIETLY TRUE) diff --git a/vcpkg/ports/sdl2pp/portfile.cmake b/vcpkg/ports/sdl2pp/portfile.cmake new file mode 100644 index 0000000..94c1336 --- /dev/null +++ b/vcpkg/ports/sdl2pp/portfile.cmake @@ -0,0 +1,50 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO libSDL2pp/libSDL2pp + REF ${VERSION} + SHA512 3682281432ce9dec0dbc7c786496564c906db9933138e1f2b881f93b5602a7170e06e67e87d35a9e5944ef80f6e13b9835e33209c52869f0ea2bc224f639a749 + HEAD_REF master + PATCHES + fix-dependencies.patch + fix-usage.patch +) + +vcpkg_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + sdl2-image SDL2PP_WITH_IMAGE + sdl2-mixer SDL2PP_WITH_MIXER + sdl2-ttf SDL2PP_WITH_TTF +) + +file(REMOVE "${SOURCE_PATH}/cmake/FindSDL2.cmake" + "${SOURCE_PATH}/cmake/FindSDL2_image.cmake" + "${SOURCE_PATH}/cmake/FindSDL2_mixer.cmake" + "${SOURCE_PATH}/cmake/FindSDL2_ttf.cmake" +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SDL2PP_STATIC) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DCMAKEMODDIR=share/${PORT} + -DSDL2PP_WITH_EXAMPLES=OFF + -DSDL2PP_WITH_TESTS=OFF + -DSDL2PP_STATIC=${SDL2PP_STATIC} +) + +vcpkg_cmake_install() +vcpkg_fixup_pkgconfig() + +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/FindSDL2PP.cmake" "HINTS \"${CURRENT_PACKAGES_DIR}/include\"" "") +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/FindSDL2PP.cmake" "HINTS \"${CURRENT_PACKAGES_DIR}/lib\"" "") + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +# Handle copyright +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.txt") diff --git a/vcpkg/ports/sdl2pp/usage b/vcpkg/ports/sdl2pp/usage new file mode 100644 index 0000000..866ef7c --- /dev/null +++ b/vcpkg/ports/sdl2pp/usage @@ -0,0 +1,5 @@ +The package sdl2pp provides CMake variables: + + find_package(SDL2PP REQUIRED) + target_include_directories(main PRIVATE ${SDL2PP_INCLUDE_DIRS}) + target_link_libraries(main PRIVATE ${SDL2PP_LIBRARIES}) diff --git a/vcpkg/ports/sdl2pp/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/sdl2pp/vcpkg-cmake-wrapper.cmake new file mode 100644 index 0000000..b0eac9e --- /dev/null +++ b/vcpkg/ports/sdl2pp/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,5 @@ +set(Z_VCPKG_SDL2PP_PREV_MODULE_PATH "${CMAKE_MODULE_PATH}") +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") +_find_package(${ARGS}) +set(CMAKE_MODULE_PATH "${Z_VCPKG_SDL2PP_PREV_MODULE_PATH}") +unset(Z_VCPKG_SDL2PP_PREV_MODULE_PATH) diff --git a/vcpkg/ports/sdl2pp/vcpkg.json b/vcpkg/ports/sdl2pp/vcpkg.json new file mode 100644 index 0000000..9bdd70e --- /dev/null +++ b/vcpkg/ports/sdl2pp/vcpkg.json @@ -0,0 +1,38 @@ +{ + "name": "sdl2pp", + "version": "0.16.1", + "port-version": 12, + "description": "C++11 bindings/wrapper for SDL2", + "homepage": "https://sdl2pp.amdmi3.ru", + "license": "Zlib", + "dependencies": [ + { + "name": "sdl2", + "default-features": false + }, + { + "name": "vcpkg-cmake", + "host": true + } + ], + "features": { + "sdl2-image": { + "description": "Enable SDL2_image support", + "dependencies": [ + "sdl2-image" + ] + }, + "sdl2-mixer": { + "description": "Enable SDL2_mixer support", + "dependencies": [ + "sdl2-mixer" + ] + }, + "sdl2-ttf": { + "description": "Enable SDL2_ttf support", + "dependencies": [ + "sdl2-ttf" + ] + } + } +} |