1- # ----------------------------------
2- # Project
3- # ----------------------------------
41cmake_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)
63
74set (CMAKE_CXX_STANDARD 17)
85
@@ -44,7 +41,7 @@ if (CPP_PINYIN_INSTALL)
4441 include (CMakePackageConfigHelpers)
4542endif ()
4643# ----------------------------------
47- # Main Project
44+ # Project sources and targets
4845# ----------------------------------
4946file (GLOB_RECURSE _src include /*.h src/*.h src/*.cpp src/*/*.h src/*/*.cpp)
5047
@@ -65,17 +62,17 @@ if (CPP_PINYIN_BUILD_TESTS)
6562 add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD
6663 COMMAND
6764 ${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
7067 )
7168 install (
72- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /res/${ dict}
69+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /res/dict
7370 DESTINATION .
7471 )
7572endif ()
7673
7774# ----------------------------------
78- # Add platform specific
75+ # Add platform- specific settings
7976# ----------------------------------
8077if (WIN32 )
8178 set (RC_DESCRIPTION "A lightweight Chinese/Cantonese to Pinyin library." )
@@ -84,25 +81,25 @@ if (WIN32)
8481endif ()
8582
8683# ----------------------------------
87- # link libraries
84+ # Link libraries
8885# ----------------------------------
8986target_include_directories (${PROJECT_NAME} PRIVATE include src src/toneUtil)
9087target_include_directories (${PROJECT_NAME} PUBLIC
9188 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
9289)
9390
9491# ----------------------------------
95- # copy dictionary
92+ # Copy dictionary files
9693# ----------------------------------
9794add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD
9895 COMMAND
9996 ${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
10299)
103100
104101# ----------------------------------
105- # install
102+ # Install settings
106103# ----------------------------------
107104if (CPP_PINYIN_INSTALL)
108105 target_include_directories (${PROJECT_NAME} PUBLIC
@@ -146,15 +143,35 @@ if (CPP_PINYIN_INSTALL)
146143 DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME} "
147144 )
148145
149- if (NOT DEFINED VCPKG_DICT_DIR)
146+ if (NOT DEFINED CPP_PINYIN_VCPKG_DICT_DIR)
147+ set (dictdir ${CMAKE_INSTALL_LIBDIR} /dict)
150148 install (
151- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /res/${ dict}
149+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /res/dict
152150 DESTINATION ${CMAKE_INSTALL_LIBDIR}
153151 )
154152 else ()
153+ set (dictdir ${CPP_PINYIN_VCPKG_DICT_DIR} /dict)
155154 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 }
158157 )
159158 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