CMUtil/src/CMakeLists.txt

137 lines
5.0 KiB
CMake
Raw Normal View History

2023-07-21 19:33:38 +08:00
#################################################################################################### XML
2019-11-29 18:20:19 +08:00
option(CM_UTIL_SUPPORT_XML "Build XML Parse module." ON)
2019-11-29 11:58:31 +08:00
2019-11-29 18:20:19 +08:00
if(CM_UTIL_SUPPORT_XML)
find_package(expat CONFIG REQUIRED)
2019-12-02 13:03:11 +08:00
SET(CM_XML_INCLUDE_PATH ${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/xml)
2020-08-21 21:11:07 +08:00
SET(XML_ELEMENT_PARSE_KV ${CM_XML_INCLUDE_PATH}/ElementParseKV.h
xml/ElementParseKV.cpp)
2020-08-21 21:11:07 +08:00
SET(XML_ELEMENT_PARSE_CREATER ${CM_XML_INCLUDE_PATH}/ElementParseCreater.h
xml/ElementParseCreater.cpp
xml/ElementCreater.cpp)
SET(XML_ELEMENT_PARSE_SOURCE ${CM_XML_INCLUDE_PATH}/ElementParse.h)
SET(XML_PARSE_CLASS_SOURCE ${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/xml/XMLParse.h
xml/XMLParseClass.cpp)
SET(XML_PARSE_SOURCE ${XML_ELEMENT_PARSE_KV}
${XML_ELEMENT_PARSE_CREATER}
${XML_ELEMENT_PARSE_SOURCE}
2020-08-21 21:11:07 +08:00
${XML_PARSE_CLASS_SOURCE})
2020-08-21 21:11:07 +08:00
SOURCE_GROUP("XML\\ElementParse\\KV" FILES ${XML_ELEMENT_PARSE_KV})
SOURCE_GROUP("XML\\ElementParse\\Creater" FILES ${XML_ELEMENT_PARSE_CREATER})
SOURCE_GROUP("XML\\ElementParse" FILES ${XML_ELEMENT_PARSE_SOURCE})
SOURCE_GROUP("XML" FILES ${XML_PARSE_CLASS_SOURCE})
2019-11-29 18:20:19 +08:00
endif(CM_UTIL_SUPPORT_XML)
2023-07-21 19:33:38 +08:00
#################################################################################################### JSON
2019-11-29 18:20:19 +08:00
option(CM_UTIL_SUPPORT_JSON "Build JSON Parse/make module." ON)
2019-12-02 13:03:11 +08:00
IF(CM_UTIL_SUPPORT_JSON)
find_package(jsoncpp CONFIG REQUIRED)
2019-12-02 13:03:11 +08:00
set(JSON_TOOL_SOURCE ${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/json/JsonTool.h
json/JsonTool.cpp)
SOURCE_GROUP("JSON" FILES ${JSON_TOOL_SOURCE})
ENDIF(CM_UTIL_SUPPORT_JSON)
2019-12-02 11:01:54 +08:00
2023-07-21 19:33:38 +08:00
#################################################################################################### HASH
2021-06-08 20:11:25 +08:00
option(CM_UTIL_SUPPORT_HASH "Build HASH module" ON)
IF(CM_UTIL_SUPPORT_HASH)
2024-07-25 02:02:24 +08:00
SET(XXHASH_FILES hash/xxHash/xxh3.h
hash/xxHash/xxhash.h
hash/xxHash/xxhash.c)
SOURCE_GROUP("HASH\\xxHash" FILES ${XXHASH_FILES})
2021-06-08 20:11:25 +08:00
SET(HASH_HEADER_FILES ${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/hash/Hash.h
${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/hash/SHA1LE.h)
SET(HASH_SOURCE_FILES hash/adler32.cpp
hash/crc32.cpp
hash/Hash.cpp
hash/md4.cpp
hash/md5.cpp
hash/sha1.cpp
hash/sha1le.cpp
hash/sha256.cpp
2024-07-25 02:02:24 +08:00
hash/sha512.cpp
hash/xxHash3.cpp)
2021-06-08 20:11:25 +08:00
SOURCE_GROUP("HASH" FILES ${HASH_HEADER_FILES} ${HASH_SOURCE_FILES})
ENDIF(CM_UTIL_SUPPORT_HASH)
2023-07-21 19:33:38 +08:00
#################################################################################################### CRYPT
SET(CRYPT_HEADER_FILES ${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/Crypt.h)
SET(CRYPT_SOURCE_FILES crypt/aes.cpp
crypt/base64.cpp
crypt/Overflow.cpp
crypt/rc4.cpp
)
SOURCE_GROUP("Crypt" FILES ${CRYPT_HEADER_FILES} ${CRYPT_SOURCE_FILES})
2023-02-02 17:40:33 +08:00
####################################################################################################
2023-07-12 18:34:57 +08:00
SET(CSV_SOURCE ${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/csv/CSVFieldSplite.h
2023-07-27 18:51:51 +08:00
${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/csv/CSVParse.h
2023-07-26 22:27:04 +08:00
${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/csv/CSVOutput.h
${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/csv/CSVOutputStream.h
csv/CSVOutputStream.cpp)
2023-07-12 18:34:57 +08:00
SOURCE_GROUP("CSV" FILES ${CSV_SOURCE})
2023-02-02 17:40:33 +08:00
SET(CMD_SOURCE ${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/cmd/CmdParse.h
cmd/CmdParse.cpp)
SOURCE_GROUP("Command Line" FILES ${CMD_SOURCE})
SET(TIME_SOURCE ${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/time/Timer.h
time/Timer.cpp)
SOURCE_GROUP("Time" FILES ${TIME_SOURCE})
SET(DATABLOCK_SOURCE ${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/datablock/DataBlock.h
datablock/DataBlock.cpp)
source_group("Data Block" FILES ${DATABLOCK_SOURCE})
2019-12-02 13:03:11 +08:00
add_cm_library(CMUtil "CM" ${CMD_SOURCE}
# ${TIME_SOURCE}
2023-02-02 17:40:33 +08:00
# ${DATABLOCK_SOURCE}
2019-12-02 13:03:11 +08:00
2021-12-27 18:11:27 +08:00
${XML_PARSE_SOURCE}
${JSON_TOOL_SOURCE}
2023-07-12 18:34:57 +08:00
${CSV_SOURCE}
2021-12-27 18:11:27 +08:00
2024-07-25 02:02:24 +08:00
${XXHASH_FILES}
2021-06-08 20:11:25 +08:00
${HASH_HEADER_FILES}
${HASH_SOURCE_FILES}
2023-07-21 19:33:38 +08:00
${CRYPT_HEADER_FILES}
${CRYPT_SOURCE_FILES}
2019-12-02 13:03:11 +08:00
)
if(CM_UTIL_SUPPORT_XML)
target_link_libraries(CMUtil PRIVATE expat::expat)
endif()
IF(CM_UTIL_SUPPORT_JSON)
target_link_libraries(CMUtil PRIVATE JsonCpp::JsonCpp)
2023-02-02 17:40:33 +08:00
ENDIF(CM_UTIL_SUPPORT_JSON)