1
- # ----------------------------------
2
- # Project
3
- # ----------------------------------
4
1
cmake_minimum_required (VERSION 3.17 )
5
- project (cpp-pinyin VERSION 1.0.0.0 LANGUAGES CXX )
2
+ project (cpp-pinyin VERSION 1.0.1 LANGUAGES CXX )
6
3
7
4
set (CMAKE_CXX_STANDARD 17 )
8
5
@@ -44,7 +41,7 @@ if (CPP_PINYIN_INSTALL)
44
41
include (CMakePackageConfigHelpers )
45
42
endif ()
46
43
# ----------------------------------
47
- # Main Project
44
+ # Project sources and targets
48
45
# ----------------------------------
49
46
file (GLOB_RECURSE _src include /*.h src/*.h src/*.cpp src/*/*.h src/*/*.cpp )
50
47
@@ -65,17 +62,17 @@ if (CPP_PINYIN_BUILD_TESTS)
65
62
add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD
66
63
COMMAND
67
64
${CMAKE_COMMAND} -E copy_directory
68
- ${CMAKE_CURRENT_SOURCE_DIR} /res/${ dict}
69
- ${CMAKE_BINARY_DIR} /tests/${ dict}
65
+ ${CMAKE_CURRENT_SOURCE_DIR} /res/dict
66
+ ${CMAKE_BINARY_DIR} /tests/dict
70
67
)
71
68
install (
72
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /res/${ dict}
69
+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /res/dict
73
70
DESTINATION .
74
71
)
75
72
endif ()
76
73
77
74
# ----------------------------------
78
- # Add platform specific
75
+ # Add platform- specific settings
79
76
# ----------------------------------
80
77
if (WIN32 )
81
78
set (RC_DESCRIPTION "A lightweight Chinese/Cantonese to Pinyin library." )
@@ -84,25 +81,25 @@ if (WIN32)
84
81
endif ()
85
82
86
83
# ----------------------------------
87
- # link libraries
84
+ # Link libraries
88
85
# ----------------------------------
89
86
target_include_directories (${PROJECT_NAME} PRIVATE include src src/toneUtil )
90
87
target_include_directories (${PROJECT_NAME} PUBLIC
91
88
$< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>
92
89
)
93
90
94
91
# ----------------------------------
95
- # copy dictionary
92
+ # Copy dictionary files
96
93
# ----------------------------------
97
94
add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD
98
95
COMMAND
99
96
${CMAKE_COMMAND} -E copy_directory
100
- ${CMAKE_CURRENT_SOURCE_DIR} /res/${ dict}
101
- ${CMAKE_BINARY_DIR} /bin/${ dict}
97
+ ${CMAKE_CURRENT_SOURCE_DIR} /res/dict
98
+ ${CMAKE_BINARY_DIR} /bin/dict
102
99
)
103
100
104
101
# ----------------------------------
105
- # install
102
+ # Install settings
106
103
# ----------------------------------
107
104
if (CPP_PINYIN_INSTALL )
108
105
target_include_directories (${PROJECT_NAME} PUBLIC
@@ -146,15 +143,35 @@ if (CPP_PINYIN_INSTALL)
146
143
DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME} "
147
144
)
148
145
149
- if (NOT DEFINED VCPKG_DICT_DIR )
146
+ if (NOT DEFINED CPP_PINYIN_VCPKG_DICT_DIR )
147
+ set (dictdir ${CMAKE_INSTALL_LIBDIR} /dict )
150
148
install (
151
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /res/${ dict}
149
+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /res/dict
152
150
DESTINATION ${CMAKE_INSTALL_LIBDIR}
153
151
)
154
152
else ()
153
+ set (dictdir ${CPP_PINYIN_VCPKG_DICT_DIR} /dict )
155
154
install (
156
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /res/${ dict}
157
- DESTINATION ${VCPKG_DICT_DIR }
155
+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /res/dict
156
+ DESTINATION ${CPP_PINYIN_VCPKG_DICT_DIR }
158
157
)
159
158
endif ()
160
- endif ()
159
+ endif ()
160
+
161
+ # ----------------------------------
162
+ # Package config (.pc file) generation
163
+ # ----------------------------------
164
+ set (version ${PROJECT_VERSION} )
165
+
166
+ # Configure the .pc file
167
+ configure_file (
168
+ ${CMAKE_CURRENT_LIST_DIR} /cpp-pinyin.pc.in
169
+ ${CMAKE_BINARY_DIR} /cpp-pinyin.pc
170
+ @ONLY
171
+ )
172
+
173
+ # Install the .pc file
174
+ install (
175
+ FILES ${CMAKE_BINARY_DIR} /cpp-pinyin.pc
176
+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig
177
+ )
0 commit comments