From 70dce2d51e846d16a5e3a97dec20fafbe8c8e91f Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sat, 17 Dec 2022 20:47:32 +0100
Subject: [PATCH] cmake: install SDL_gesture::SDL_gesture target + create
sdl-gesture.pc
---
CMakeLists.txt | 24 ++++++++++++++++++++----
cmake/SDL_gestureConfig.cmake.in | 8 +-------
cmake/sdl-gesture.pc.in | 6 ++++++
3 files changed, 27 insertions(+), 11 deletions(-)
create mode 100644 cmake/sdl-gesture.pc.in
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c80a46d..b8e1287 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,7 +8,10 @@ option(SDLGESTURE_TESTS "Build SDL_gesture tests" ON)
add_library(SDL_gesture INTERFACE)
add_library(SDL_gesture::SDL_gesture ALIAS SDL_gesture)
-target_include_directories(SDL_gesture INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(SDL_gesture INTERFACE
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
+)
if(SDLGESTURE_TESTS)
add_subdirectory(test)
@@ -29,20 +32,33 @@ else()
set(LICENSES_PREFIX "${CMAKE_INSTALL_DATAROOTDIR}/licenses/SDL_gesture")
endif()
+if(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+ set(SDLGESTURE_INSTALL_PKGCONFIGDIR "libdata/pkgconfig")
+else()
+ set(SDLGESTURE_INSTALL_PKGCONFIGDIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+endif()
+
configure_package_config_file(cmake/SDL_gestureConfig.cmake.in SDL_gestureConfig.cmake
INSTALL_DESTINATION "${SDLGESTURE_INSTALL_CMAKEDIR}"
- INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}"
- PATH_VARS "CMAKE_INSTALL_FULL_INCLUDEDIR"
- NO_SET_AND_CHECK_MACRO
)
write_basic_package_version_file(SDL_gestureConfigVersion.cmake
COMPATIBILITY AnyNewerVersion
)
+install(TARGETS SDL_gesture EXPORT SDLGestureExport)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/SDL_gesture.h"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
+install(EXPORT SDLGestureExport
+ DESTINATION "${SDLGESTURE_INSTALL_CMAKEDIR}"
+ NAMESPACE SDL_gesture::
+ FILE SDL_gestureTargets.cmake
+)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SDL_gestureConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/SDL_gestureConfigVersion.cmake"
DESTINATION "${SDLGESTURE_INSTALL_CMAKEDIR}"
)
+configure_file(cmake/sdl-gesture.pc.in sdl-gesture.pc @ONLY)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sdl-gesture.pc"
+ DESTINATION "${SDLGESTURE_INSTALL_PKGCONFIGDIR}"
+)
install(FILES "LICENSE.txt" DESTINATION "${LICENSES_PREFIX}")
diff --git a/cmake/SDL_gestureConfig.cmake.in b/cmake/SDL_gestureConfig.cmake.in
index c1ab70a..fe619f2 100644
--- a/cmake/SDL_gestureConfig.cmake.in
+++ b/cmake/SDL_gestureConfig.cmake.in
@@ -1,7 +1 @@
-@PACKAGE_INIT@
-
-if(NOT TARGET SDL_gesture::SDL_gesture)
- add_library(SDL_gesture INTERFACE)
- target_include_directories(SDL_gesture INTERFACE "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@")
- add_library(SDL_gesture::SDL_gesture ALIAS SDL_gesture)
-endif()
+include("${CMAKE_CURRENT_LIST_DIR}/SDL_gestureTargets.cmake")
diff --git a/cmake/sdl-gesture.pc.in b/cmake/sdl-gesture.pc.in
new file mode 100644
index 0000000..e8bcac5
--- /dev/null
+++ b/cmake/sdl-gesture.pc.in
@@ -0,0 +1,6 @@
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
+
+Name: sdl_gesture
+Description: SDL2's gesture API split out into a single-header library
+Version: @PROJECT_VERSION@
+Cflags: -I${includedir}