2024-05-29 23:11:52 +08:00
|
|
|
# Create static library
|
2024-06-03 14:24:05 +08:00
|
|
|
add_library(YYCCommonplace STATIC "")
|
|
|
|
# Setup static library sources
|
|
|
|
target_sources(YYCCommonplace
|
|
|
|
PRIVATE
|
|
|
|
# Headers
|
|
|
|
# Common headers
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/ConsoleHelper.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/DialogHelper.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/EncodingHelper.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/ExceptionHelper.hpp
|
2024-06-15 17:57:33 +08:00
|
|
|
${CMAKE_CURRENT_LIST_DIR}/FsPathPatch.hpp
|
2024-06-03 14:24:05 +08:00
|
|
|
${CMAKE_CURRENT_LIST_DIR}/IOHelper.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/ParserHelper.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/StringHelper.hpp
|
2024-06-13 11:18:25 +08:00
|
|
|
${CMAKE_CURRENT_LIST_DIR}/WinFctHelper.hpp
|
2024-06-03 14:24:05 +08:00
|
|
|
# Windows including guard pair
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/WinImportPrefix.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/WinImportSuffix.hpp
|
|
|
|
# Misc
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/YYCCInternal.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/YYCCommonplace.hpp
|
|
|
|
|
|
|
|
# Sources
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/ConsoleHelper.cpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/DialogHelper.cpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/EncodingHelper.cpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/ExceptionHelper.cpp
|
2024-06-15 17:57:33 +08:00
|
|
|
${CMAKE_CURRENT_LIST_DIR}/FsPathPatch.cpp
|
2024-06-03 14:24:05 +08:00
|
|
|
${CMAKE_CURRENT_LIST_DIR}/IOHelper.cpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/ParserHelper.cpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/StringHelper.cpp
|
2024-06-13 11:18:25 +08:00
|
|
|
${CMAKE_CURRENT_LIST_DIR}/WinFctHelper.cpp
|
2024-05-29 23:11:52 +08:00
|
|
|
)
|
|
|
|
# Setup header infomations
|
|
|
|
target_include_directories(YYCCommonplace
|
|
|
|
PUBLIC
|
2024-06-03 14:24:05 +08:00
|
|
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>"
|
|
|
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
2024-05-29 23:11:52 +08:00
|
|
|
)
|
|
|
|
# Setup C++ standard
|
|
|
|
set_target_properties(YYCCommonplace
|
|
|
|
PROPERTIES
|
|
|
|
CXX_STANDARD 17
|
|
|
|
CXX_STANDARD_REQUIRED 17
|
|
|
|
CXX_EXTENSION OFF
|
|
|
|
)
|
2024-06-09 21:34:28 +08:00
|
|
|
# Order Unicode charset for private using
|
2024-05-29 23:11:52 +08:00
|
|
|
target_compile_definitions(YYCCommonplace
|
2024-06-09 21:34:28 +08:00
|
|
|
PRIVATE
|
|
|
|
$<$<CXX_COMPILER_ID:MSVC>:UNICODE>
|
|
|
|
$<$<CXX_COMPILER_ID:MSVC>:_UNICODE>
|
2024-05-29 23:11:52 +08:00
|
|
|
)
|
|
|
|
# Order build as UTF-8 in MSVC
|
|
|
|
target_compile_options(YYCCommonplace
|
|
|
|
PRIVATE
|
|
|
|
$<$<CXX_COMPILER_ID:MSVC>:/utf-8>
|
|
|
|
)
|
2024-06-03 14:24:05 +08:00
|
|
|
|
|
|
|
# Install project
|
|
|
|
# Install binary
|
|
|
|
install(TARGETS YYCCommonplace
|
|
|
|
EXPORT YYCCommonplaceTargets
|
|
|
|
LIBRARY DESTINATION lib
|
|
|
|
ARCHIVE DESTINATION lib
|
|
|
|
RUNTIME DESTINATION bin
|
|
|
|
INCLUDES DESTINATION include
|
|
|
|
)
|
|
|
|
# Install headers
|
|
|
|
install(
|
|
|
|
FILES
|
|
|
|
# Common headers
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/ConsoleHelper.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/DialogHelper.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/EncodingHelper.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/ExceptionHelper.hpp
|
2024-06-15 17:57:33 +08:00
|
|
|
${CMAKE_CURRENT_LIST_DIR}/FsPathPatch.hpp
|
2024-06-03 14:24:05 +08:00
|
|
|
${CMAKE_CURRENT_LIST_DIR}/IOHelper.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/ParserHelper.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/StringHelper.hpp
|
2024-06-15 17:57:33 +08:00
|
|
|
${CMAKE_CURRENT_LIST_DIR}/WinFctHelper.hpp
|
2024-06-03 14:24:05 +08:00
|
|
|
# Windows including guard pair
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/WinImportPrefix.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/WinImportSuffix.hpp
|
|
|
|
# Misc
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/YYCCInternal.hpp
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/YYCCommonplace.hpp
|
|
|
|
DESTINATION include
|
|
|
|
)
|