annotate CMakeLists.txt @ 26:767b7d68b88d

misc: added signature for changeset a70dbbce88eb
author David Demelier <markand@malikania.fr>
date Mon, 28 Mar 2022 21:45:07 +0200
parents 887a8fd73d1e
children 4da5819148c6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # CMakeLists.txt -- basic CMake build for libunicode
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Copyright (c) 2013-2022 David Demelier <markand@malikania.fr>
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # Permission to use, copy, modify, and/or distribute this software for any
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 cmake_minimum_required(VERSION 3.20)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 project(
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 libunicode
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 VERSION "1.0.0"
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 DESCRIPTION "UTF-8 to UTF-32 conversions and various operations"
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 HOMEPAGE_URL "http://projects.malikania.fr/libunicode"
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 LANGUAGES C
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 )
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 include(CMakePackageConfigHelpers)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 include(GNUInstallDirs)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 add_library(libunicode-static STATIC unicode.c unicode.h)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 target_include_directories(libunicode-static PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 install(
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 TARGETS libunicode-static
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 EXPORT unicode-targets
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 ARCHIVE DESTINATION lib
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 )
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 if (NOT CMAKE_C_COMPILER_ID MATCHES "MSVC" OR NOT BUILD_SHARED_LIBS)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 set_target_properties(libunicode-static PROPERTIES OUTPUT_NAME unicode)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 else ()
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 set_target_properties(libunicode-static PROPERTIES OUTPUT_NAME unicode-static)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 endif ()
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 if (BUILD_SHARED_LIBS)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 add_library(libunicode-shared SHARED unicode.c unicode.h unicode.def)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 target_include_directories(libunicode-shared PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 set_target_properties(
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 libunicode-shared
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 PROPERTIES
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 OUTPUT_NAME unicode
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 VERSION ${PROJECT_VERSION}
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 SOVERSION ${PROJECT_VERSION_MAJOR}
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 )
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 install(
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 TARGETS libunicode-shared
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 EXPORT unicode-targets
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 )
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 endif ()
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
63
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 configure_file(
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 ${PROJECT_SOURCE_DIR}/unicode.pc.in
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 ${PROJECT_BINARY_DIR}/unicode.pc
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 @ONLY
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 )
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
69
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 write_basic_package_version_file(
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 ${PROJECT_BINARY_DIR}/unicode-config-version.cmake
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 VERSION ${PROJECT_VERSION}
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 COMPATIBILITY SameMajorVersion
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 )
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
75
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 install(FILES ${PROJECT_SOURCE_DIR}/unicode.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 install(FILES ${PROJECT_BINARY_DIR}/unicode.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 install(FILES ${PROJECT_SOURCE_DIR}/libunicode.3 DESTINATION ${CMAKE_INSTALL_MANDIR}/man3)
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 install(
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 EXPORT unicode-targets
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 FILE unicode-targets.cmake
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 NAMESPACE unicode::
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unicode
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 )
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 install(
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 FILES
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 ${PROJECT_BINARY_DIR}/unicode-config-version.cmake
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 ${PROJECT_SOURCE_DIR}/unicode-config.cmake
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unicode
887a8fd73d1e cmake: add support
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 )