CMUtil/src/CMakeLists.txt
2024-11-25 23:33:41 +08:00

141 lines
5.2 KiB
CMake

#################################################################################################### XML
option(CM_UTIL_SUPPORT_XML "Build XML Parse module." ON)
if(CM_UTIL_SUPPORT_XML)
find_package(expat CONFIG REQUIRED)
SET(CM_XML_INCLUDE_PATH ${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/xml)
SET(XML_ELEMENT_PARSE_KV ${CM_XML_INCLUDE_PATH}/ElementParseKV.h
xml/ElementParseKV.cpp)
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}
${XML_PARSE_CLASS_SOURCE})
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})
endif(CM_UTIL_SUPPORT_XML)
#################################################################################################### JSON
option(CM_UTIL_SUPPORT_JSON "Build JSON Parse/make module." ON)
IF(CM_UTIL_SUPPORT_JSON)
find_package(jsoncpp CONFIG REQUIRED)
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)
#################################################################################################### HASH
option(CM_UTIL_SUPPORT_HASH "Build HASH module" ON)
IF(CM_UTIL_SUPPORT_HASH)
SET(XXHASH_FILES hash/xxHash/xxh3.h
hash/xxHash/xxhash.h
hash/xxHash/xxhash.c)
SOURCE_GROUP("HASH\\xxHash" FILES ${XXHASH_FILES})
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
hash/sha512.cpp
hash/xxHash3.cpp
hash/FNV1a.cpp
hash/MurmurHash3.cpp
hash/GoogleCityHash.cpp
)
SOURCE_GROUP("HASH" FILES ${HASH_HEADER_FILES} ${HASH_SOURCE_FILES})
ENDIF(CM_UTIL_SUPPORT_HASH)
#################################################################################################### 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})
####################################################################################################
SET(CSV_SOURCE ${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/csv/CSVFieldSplite.h
${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/csv/CSVParse.h
${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/csv/CSVOutput.h
${CMUTIL_ROOT_INCLUDE_PATH}/hgl/util/csv/CSVOutputStream.h
csv/CSVOutputStream.cpp)
SOURCE_GROUP("CSV" FILES ${CSV_SOURCE})
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})
add_cm_library(CMUtil "CM" ${CMD_SOURCE}
# ${TIME_SOURCE}
# ${DATABLOCK_SOURCE}
${XML_PARSE_SOURCE}
${JSON_TOOL_SOURCE}
${CSV_SOURCE}
${XXHASH_FILES}
${HASH_HEADER_FILES}
${HASH_SOURCE_FILES}
${CRYPT_HEADER_FILES}
${CRYPT_SOURCE_FILES}
)
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)
ENDIF(CM_UTIL_SUPPORT_JSON)