OpenMiInk/third_party/krita-deps-management/ext_unibreak/0001-Add-CMake-toolchain.patch
Hellings b8c8ff98e2 Hi
2026-10-16 09:05:56 -04:00

144 lines
4.5 KiB
Diff

From 9b60a39671bfc8a7b46316337cc60796df4b591e Mon Sep 17 00:00:00 2001
From: "L. E. Segovia" <amy@amyspark.me>
Date: Wed, 22 Jun 2022 21:11:51 -0300
Subject: [PATCH] Add CMake toolchain
---
CMakeLists.txt | 71 +++++++++++++++++++++++++++++++++++++++++++
cmake/PkgConfig.cmake | 46 ++++++++++++++++++++++++++++
2 files changed, 117 insertions(+)
create mode 100644 CMakeLists.txt
create mode 100644 cmake/PkgConfig.cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..b1f769c
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,71 @@
+# SPDX-FileCopyrightText: 2022 Microsoft Corporation
+# SPDX-FileCopyrightText: 2022 L. E. Segovia <amy@amyspark.me>
+# SPDX-License-Ref: MIT
+
+cmake_minimum_required(VERSION 3.8.0)
+
+project(libunibreak VERSION 5.0 LANGUAGES C)
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
+
+include(GNUInstallDirs)
+
+set(libunibreak_srcs
+ src/linebreak.c
+ src/linebreakdata.c
+ src/linebreakdef.c
+ src/wordbreak.c
+ src/wordbreakdata.c
+ src/graphemebreak.c
+ src/graphemebreakdata.c
+ src/emojidef.c
+ src/unibreakbase.c
+ src/unibreakdef.c
+)
+
+include_directories(src)
+
+add_library(unibreak STATIC ${libunibreak_srcs})
+
+set_target_properties(unibreak PROPERTIES POSITION_INDEPENDENT_CODE ON)
+
+include(PkgConfig)
+
+install(
+ TARGETS unibreak
+ EXPORT libunibreak
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(
+ FILES
+ src/emojidef.h
+ src/graphemebreak.h
+ src/graphemebreakdef.h
+ src/linebreak.h
+ src/linebreakdef.h
+ src/test_skips.h
+ src/unibreakbase.h
+ src/unibreakdef.h
+ src/wordbreak.h
+ src/wordbreakdef.h
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ )
+endif()
+
+install(EXPORT libunibreak
+ NAMESPACE libunibreak::
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unibreak
+)
+
+include(CMakePackageConfigHelpers)
+write_basic_package_version_file(
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
+ VERSION ${PACKAGE_VERSION}
+ COMPATIBILITY AnyNewerVersion)
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unibreak)
diff --git a/cmake/PkgConfig.cmake b/cmake/PkgConfig.cmake
new file mode 100644
index 0000000..1021d79
--- /dev/null
+++ b/cmake/PkgConfig.cmake
@@ -0,0 +1,46 @@
+# pkg-config support
+#
+# Copyright © 2015 Open Microscopy Environment / University of Dundee
+# Copyright © 2021 Roger Leigh <rleigh@codelibre.net>
+# Copyright © 2022 L. E. Segovia <amy@amyspark.me>
+# Written by Roger Leigh <rleigh@codelibre.net>
+#
+# Permission to use, copy, modify, distribute, and sell this software and
+# its documentation for any purpose is hereby granted without fee, provided
+# that (i) the above copyright notices and this permission notice appear in
+# all copies of the software and related documentation, and (ii) the names of
+# Sam Leffler and Silicon Graphics may not be used in any advertising or
+# publicity relating to the software without the specific, prior written
+# permission of Sam Leffler and Silicon Graphics.
+#
+# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+#
+# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
+# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+# OF THIS SOFTWARE.
+
+# Generate pkg-config file
+set(prefix "${CMAKE_INSTALL_PREFIX}")
+set(exec_prefix "\${prefix}")
+if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
+ set(libdir "${CMAKE_INSTALL_LIBDIR}")
+else()
+ set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
+endif()
+if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
+ set(includedir "${CMAKE_INSTALL_INCLUDEDIR}")
+else()
+ set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+endif()
+set(VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libunibreak.pc.in
+ ${CMAKE_CURRENT_BINARY_DIR}/libunibreak.pc @ONLY)
+
+# Install pkg-config file
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libunibreak.pc
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
--
2.37.3