aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/sdl2pp
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/sdl2pp')
-rw-r--r--vcpkg/ports/sdl2pp/fix-dependencies.patch78
-rw-r--r--vcpkg/ports/sdl2pp/fix-usage.patch23
-rw-r--r--vcpkg/ports/sdl2pp/portfile.cmake50
-rw-r--r--vcpkg/ports/sdl2pp/usage5
-rw-r--r--vcpkg/ports/sdl2pp/vcpkg-cmake-wrapper.cmake5
-rw-r--r--vcpkg/ports/sdl2pp/vcpkg.json38
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"
+ ]
+ }
+ }
+}