yyc12345
f870d4dde3
- add documentation CMake build script. re-organise document layout for future changes. - move LIBCMO_EXPORT to BMap and rename it to BMAP_EXPORT because only BMap need to use this macro. - fully refactor VTEncoding to make it more like Python - Now language name is platform independent. - Hide implementation detail as possible as I can. - Language mapping are still work in progress. - add code gen for new added universal encoding feature to generate language name mapping in Windows and Iconv respectively. - remove old code of CMake build script. - update VTUtils for new requirement. - remove useless functions. - create LibCmo specific custom exception classes.
63 lines
1.2 KiB
CMake
63 lines
1.2 KiB
CMake
# Create executable
|
|
add_executable(Unvirt "")
|
|
# Setup sources
|
|
target_sources(Unvirt
|
|
PRIVATE
|
|
AccessibleValue.cpp
|
|
CmdHelper.cpp
|
|
StringHelper.cpp
|
|
StructFormatter.cpp
|
|
TerminalHelper.cpp
|
|
UnvirtContext.cpp
|
|
Unvirt.cpp
|
|
)
|
|
# Setup headers
|
|
target_sources(Unvirt
|
|
PRIVATE
|
|
FILE_SET HEADERS
|
|
FILES
|
|
AccessibleValue.hpp
|
|
CmdHelper.hpp
|
|
StringHelper.hpp
|
|
StructFormatter.hpp
|
|
TerminalHelper.hpp
|
|
UnvirtContext.hpp
|
|
)
|
|
# Setup header infomation
|
|
target_include_directories(Unvirt
|
|
PRIVATE
|
|
"${CMAKE_CURRENT_LIST_DIR}"
|
|
YYCC::YYCCommonplace
|
|
LibCmo
|
|
)
|
|
# Setup linked library infomation
|
|
target_link_libraries(Unvirt
|
|
PRIVATE
|
|
YYCC::YYCCommonplace
|
|
LibCmo
|
|
)
|
|
# Setup C++ standard
|
|
set_target_properties(Unvirt
|
|
PROPERTIES
|
|
CXX_STANDARD 20
|
|
CXX_STANDARD_REQUIRED 20
|
|
CXX_EXTENSION OFF
|
|
)
|
|
# Order Unicode charset for private using
|
|
target_compile_definitions(Unvirt
|
|
PRIVATE
|
|
$<$<CXX_COMPILER_ID:MSVC>:UNICODE>
|
|
$<$<CXX_COMPILER_ID:MSVC>:_UNICODE>
|
|
)
|
|
# Order build as UTF-8 in MSVC
|
|
target_compile_options(Unvirt
|
|
PRIVATE
|
|
$<$<CXX_COMPILER_ID:MSVC>:/utf-8>
|
|
)
|
|
|
|
# Install Unvirt only on Release mode
|
|
install(TARGETS Unvirt
|
|
CONFIGURATIONS Release
|
|
RUNTIME DESTINATION ${YYCC_INSTALL_BIN_PATH}
|
|
)
|