144 lines
4.5 KiB
Diff
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
|
|
|