refactor: update project

- 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.
This commit is contained in:
2024-08-16 22:07:23 +08:00
parent afa06339b2
commit f870d4dde3
20 changed files with 1013 additions and 726 deletions

View File

@ -60,48 +60,3 @@ install(TARGETS Unvirt
CONFIGURATIONS Release
RUNTIME DESTINATION ${YYCC_INSTALL_BIN_PATH}
)
# cmake_minimum_required(VERSION 3.12)
# project(Unvirt LANGUAGES CXX)
# # add libcmo if not existed
# if (NOT TARGET LibCmo)
# add_subdirectory("../LibCmo" "LibCmo.out")
# endif ()
# # add ironpad if not existed
# if (NOT TARGET IronPad)
# add_subdirectory("../IronPad" "IronPad.out")
# endif ()
# # setup sources
# set(unvirt_headers ".")
# set(unvirt_sources
# AccessibleValue.cpp
# CmdHelper.cpp
# StringHelper.cpp
# StructFormatter.cpp
# TerminalHelper.cpp
# UnvirtContext.cpp
# Unvirt.cpp
# )
# # generate program
# add_executable(Unvirt ${unvirt_sources})
# target_link_libraries(Unvirt
# PRIVATE
# LibCmo
# IronPad
# )
# target_include_directories(Unvirt
# PRIVATE
# ${unvirt_headers}
# )
# # set project standard
# set_target_properties(Unvirt
# PROPERTIES
# CXX_STANDARD 20
# CXX_STANDARD_REQUIRED 20
# CXX_EXTENSION OFF
# )