chore: switch to CMake build system instead of native Visual Studio project
This commit is contained in:
parent
da575e42f5
commit
afa06339b2
4
.gitattributes
vendored
4
.gitattributes
vendored
|
@ -1,2 +1,4 @@
|
||||||
|
Doxyfile.in eol=lf
|
||||||
|
*.bat eol=crlf
|
||||||
|
*.sh eol=lf
|
||||||
*.fods eol=lf
|
*.fods eol=lf
|
||||||
|
|
||||||
|
|
7
.gitignore
vendored
7
.gitignore
vendored
|
@ -5,9 +5,10 @@
|
||||||
*.nms
|
*.nms
|
||||||
*.vmo
|
*.vmo
|
||||||
|
|
||||||
# Ignore temporary folders
|
# Ignore temporary Visual Studio files and folders
|
||||||
/out/
|
temp/
|
||||||
/temp/
|
out/
|
||||||
|
CMakeSettings.json
|
||||||
|
|
||||||
# -------------------- VSCode --------------------
|
# -------------------- VSCode --------------------
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|
|
@ -1,188 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<VCProjectVersion>16.0</VCProjectVersion>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<ProjectGuid>{0f0a8b98-35d7-4b8e-af0a-041b1bd80fd2}</ProjectGuid>
|
|
||||||
<RootNamespace>BMap</RootNamespace>
|
|
||||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="Shared">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_EXPORTING;LIBCMO_BUILD_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;../IronPad;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>zlibwapi.lib;LibCmo.lib;IronPad.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ZLIB_PATH)\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;$(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SolutionDir)out\$(Platform)\$(Configuration)\IronPad;</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_EXPORTING;LIBCMO_BUILD_RELEASE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;../IronPad;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>zlibwapi.lib;LibCmo.lib;IronPad.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ZLIB_PATH)\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;$(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SolutionDir)out\$(Platform)\$(Configuration)\IronPad;</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_EXPORTING;LIBCMO_BUILD_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;../IronPad;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>zlibwapi.lib;LibCmo.lib;IronPad.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ZLIB_PATH)\contrib\vstudio\vc14\x64\ZlibDllReleaseWithoutAsm;$(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SolutionDir)out\$(Platform)\$(Configuration)\IronPad;</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_EXPORTING;LIBCMO_BUILD_RELEASE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;../IronPad;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>zlibwapi.lib;LibCmo.lib;IronPad.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ZLIB_PATH)\contrib\vstudio\vc14\x64\ZlibDllReleaseWithoutAsm;$(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SolutionDir)out\$(Platform)\$(Configuration)\IronPad;</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="BMap.hpp" />
|
|
||||||
<ClInclude Include="BMExports.hpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="BMap.cpp" />
|
|
||||||
<ClCompile Include="BMExports.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Sources">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Headers">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resources">
|
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="BMap.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="BMExports.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="BMap.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="BMExports.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
|
@ -1,65 +1,119 @@
|
||||||
cmake_minimum_required(VERSION 3.12)
|
# Create shared library
|
||||||
project(BMap LANGUAGES CXX)
|
add_library(BMap SHARED "")
|
||||||
|
# Setup sources
|
||||||
# add libcmo if not existed
|
target_sources(BMap
|
||||||
if (NOT TARGET LibCmo)
|
PRIVATE
|
||||||
add_subdirectory("../LibCmo" "LibCmo.out")
|
|
||||||
endif ()
|
|
||||||
# add ironpad if not existed
|
|
||||||
if (NOT TARGET IronPad)
|
|
||||||
add_subdirectory("../IronPad" "IronPad.out")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# hide all function in default
|
|
||||||
# fix imported library PIC issue (i don't know why. just make it works)
|
|
||||||
set_target_properties(LibCmo
|
|
||||||
PROPERTIES
|
|
||||||
CXX_VISIBILITY_PRESET hidden
|
|
||||||
POSITION_INDEPENDENT_CODE ON
|
|
||||||
)
|
|
||||||
set_target_properties(IronPad
|
|
||||||
PROPERTIES
|
|
||||||
CXX_VISIBILITY_PRESET hidden
|
|
||||||
POSITION_INDEPENDENT_CODE ON
|
|
||||||
)
|
|
||||||
|
|
||||||
# setup sources
|
|
||||||
set(bmap_headers ".")
|
|
||||||
set(bmap_sources
|
|
||||||
BMap.cpp
|
BMap.cpp
|
||||||
BMExports.cpp
|
BMExports.cpp
|
||||||
)
|
)
|
||||||
|
# Setup headers
|
||||||
# generate shared library
|
target_sources(BMap
|
||||||
add_library(BMap
|
|
||||||
SHARED
|
|
||||||
${bmap_sources}
|
|
||||||
)
|
|
||||||
target_link_libraries(BMap
|
|
||||||
PRIVATE
|
PRIVATE
|
||||||
LibCmo
|
FILE_SET HEADERS
|
||||||
IronPad
|
FILES
|
||||||
|
BMap.hpp
|
||||||
|
BMExports.hpp
|
||||||
)
|
)
|
||||||
|
# Setup header infomation
|
||||||
target_include_directories(BMap
|
target_include_directories(BMap
|
||||||
PRIVATE
|
PRIVATE
|
||||||
${bmap_headers}
|
"${CMAKE_CURRENT_LIST_DIR}"
|
||||||
|
YYCC::YYCCommonplace
|
||||||
|
LibCmo
|
||||||
)
|
)
|
||||||
|
# Setup linked library infomation
|
||||||
# set project standard
|
target_link_libraries(BMap
|
||||||
|
PRIVATE
|
||||||
|
YYCC::YYCCommonplace
|
||||||
|
LibCmo
|
||||||
|
)
|
||||||
|
# Setup C++ standard
|
||||||
set_target_properties(BMap
|
set_target_properties(BMap
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
CXX_STANDARD 20
|
CXX_STANDARD 20
|
||||||
CXX_STANDARD_REQUIRED 20
|
CXX_STANDARD_REQUIRED 20
|
||||||
CXX_EXTENSION OFF
|
CXX_EXTENSION OFF
|
||||||
)
|
)
|
||||||
# set default visibility to hidden
|
# Order Unicode charset for private using
|
||||||
set_target_properties(BMap
|
|
||||||
PROPERTIES
|
|
||||||
CXX_VISIBILITY_PRESET hidden
|
|
||||||
)
|
|
||||||
# add export used macro flag
|
|
||||||
target_compile_definitions(BMap
|
target_compile_definitions(BMap
|
||||||
PUBLIC
|
PRIVATE
|
||||||
LIBCMO_EXPORTING
|
$<$<CXX_COMPILER_ID:MSVC>:UNICODE>
|
||||||
|
$<$<CXX_COMPILER_ID:MSVC>:_UNICODE>
|
||||||
|
)
|
||||||
|
# Order build as UTF-8 in MSVC
|
||||||
|
target_compile_options(BMap
|
||||||
|
PRIVATE
|
||||||
|
$<$<CXX_COMPILER_ID:MSVC>:/utf-8>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Install BMap only on Release mode
|
||||||
|
install(TARGETS BMap
|
||||||
|
CONFIGURATIONS Release
|
||||||
|
RUNTIME DESTINATION ${YYCC_INSTALL_BIN_PATH}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# cmake_minimum_required(VERSION 3.12)
|
||||||
|
# project(BMap 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 ()
|
||||||
|
|
||||||
|
# # hide all function in default
|
||||||
|
# # fix imported library PIC issue (i don't know why. just make it works)
|
||||||
|
# set_target_properties(LibCmo
|
||||||
|
# PROPERTIES
|
||||||
|
# CXX_VISIBILITY_PRESET hidden
|
||||||
|
# POSITION_INDEPENDENT_CODE ON
|
||||||
|
# )
|
||||||
|
# set_target_properties(IronPad
|
||||||
|
# PROPERTIES
|
||||||
|
# CXX_VISIBILITY_PRESET hidden
|
||||||
|
# POSITION_INDEPENDENT_CODE ON
|
||||||
|
# )
|
||||||
|
|
||||||
|
# # setup sources
|
||||||
|
# set(bmap_headers ".")
|
||||||
|
# set(bmap_sources
|
||||||
|
# BMap.cpp
|
||||||
|
# BMExports.cpp
|
||||||
|
# )
|
||||||
|
|
||||||
|
# # generate shared library
|
||||||
|
# add_library(BMap
|
||||||
|
# SHARED
|
||||||
|
# ${bmap_sources}
|
||||||
|
# )
|
||||||
|
# target_link_libraries(BMap
|
||||||
|
# PRIVATE
|
||||||
|
# LibCmo
|
||||||
|
# IronPad
|
||||||
|
# )
|
||||||
|
# target_include_directories(BMap
|
||||||
|
# PRIVATE
|
||||||
|
# ${bmap_headers}
|
||||||
|
# )
|
||||||
|
|
||||||
|
# # set project standard
|
||||||
|
# set_target_properties(BMap
|
||||||
|
# PROPERTIES
|
||||||
|
# CXX_STANDARD 20
|
||||||
|
# CXX_STANDARD_REQUIRED 20
|
||||||
|
# CXX_EXTENSION OFF
|
||||||
|
# )
|
||||||
|
# # set default visibility to hidden
|
||||||
|
# set_target_properties(BMap
|
||||||
|
# PROPERTIES
|
||||||
|
# CXX_VISIBILITY_PRESET hidden
|
||||||
|
# )
|
||||||
|
# # add export used macro flag
|
||||||
|
# target_compile_definitions(BMap
|
||||||
|
# PUBLIC
|
||||||
|
# LIBCMO_EXPORTING
|
||||||
|
# )
|
||||||
|
|
7
CMake/LibCmoConfig.cmake.in
Normal file
7
CMake/LibCmoConfig.cmake.in
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
|
||||||
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
|
# Include targets file
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/LibCmoTargets.cmake")
|
||||||
|
|
||||||
|
check_required_components(LibCmo)
|
9
CMake/custom_import_iconv.cmake
Normal file
9
CMake/custom_import_iconv.cmake
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
if (WIN32)
|
||||||
|
# In Windows, we should not import Iconv.
|
||||||
|
# Send a notice to programmer.
|
||||||
|
message("Windows environment detected, skip finding Iconv!")
|
||||||
|
else ()
|
||||||
|
# In non-Windows, we simply import Iconv from CMake preset.
|
||||||
|
# It will produce Iconv::Iconv target for including and linking.
|
||||||
|
find_package(Iconv REQUIRED)
|
||||||
|
endif ()
|
14
CMake/custom_import_stb.cmake
Normal file
14
CMake/custom_import_stb.cmake
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Check stb path variable
|
||||||
|
if (NOT DEFINED STB_IMAGE_PATH)
|
||||||
|
message(FATAL_ERROR "You must set STB_IMAGE_PATH variable to the root directory of std-image repository.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Add library
|
||||||
|
add_library(stb-image INTERFACE IMPORTED)
|
||||||
|
# Add alias for it
|
||||||
|
add_library(stb::stb-image ALIAS stb-image)
|
||||||
|
# Setup header files
|
||||||
|
set_target_properties(stb-image PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
"${STB_IMAGE_PATH}"
|
||||||
|
)
|
11
CMake/custom_import_yycc.cmake
Normal file
11
CMake/custom_import_yycc.cmake
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
# Check YYCC path environment variable
|
||||||
|
if (NOT DEFINED YYCC_PATH)
|
||||||
|
message(FATAL_ERROR "You must set YYCC_PATH variable to one of YYCC CMake distribution installation path.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Find YYCC library
|
||||||
|
# It will produce YYCC::YYCCommonplace target for including and linking.
|
||||||
|
find_package(YYCCommonplace REQUIRED
|
||||||
|
HINTS ${YYCC_PATH} NO_DEFAULT_PATH
|
||||||
|
)
|
34
CMake/custom_import_zlib.cmake
Normal file
34
CMake/custom_import_zlib.cmake
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
if (WIN32)
|
||||||
|
# In Windows, we use custom way to import ZLib.
|
||||||
|
# Before using this CMake file in Windows, you should do following steps first.
|
||||||
|
# 1. Get ZLib repository: https://github.com/madler/zlib
|
||||||
|
# 2. Navigate to `contrib/vstudio` and choose a proper Visual Studio project according to your environment.
|
||||||
|
# 3. Open project file and build. Then you will get the built binary.
|
||||||
|
# 4. The directory binary located is the argument you should passed to ZLIB_BINARY_PATH, for example: `contrib/vstudio/vc14/x64/ZlibDllRelease`
|
||||||
|
|
||||||
|
# Check ZLib path variable
|
||||||
|
if (NOT DEFINED ZLIB_HEADER_PATH)
|
||||||
|
message(FATAL_ERROR "You must set ZLIB_HEADER_PATH to the root directory of ZLib repository.")
|
||||||
|
endif()
|
||||||
|
if (NOT DEFINED ZLIB_BINARY_PATH)
|
||||||
|
message(FATAL_ERROR "You must set ZLIB_BINARY_PATH to the directory where include binary built by contributed Visual Studio project.")
|
||||||
|
endif()
|
||||||
|
# Add imported library
|
||||||
|
add_library(ZLIB INTERFACE IMPORTED)
|
||||||
|
# Add alias for it to let it has the same behavior with CMake imported ZLib.
|
||||||
|
add_library(ZLIB::ZLIB ALIAS ZLIB)
|
||||||
|
# Setup header files
|
||||||
|
set_target_properties(ZLIB PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
"${ZLIB_HEADER_PATH}"
|
||||||
|
)
|
||||||
|
# Setup lib files
|
||||||
|
set_target_properties(ZLIB PROPERTIES
|
||||||
|
INTERFACE_LINK_LIBRARIES
|
||||||
|
"${ZLIB_BINARY_PATH}/zlibwapi.lib"
|
||||||
|
)
|
||||||
|
else ()
|
||||||
|
# In non-Windows, we simply import ZLib from CMake preset.
|
||||||
|
# It will produce ZLIB::ZLIB target for including and linking.
|
||||||
|
find_package(ZLIB REQUIRED)
|
||||||
|
endif ()
|
77
CMakeLists.txt
Normal file
77
CMakeLists.txt
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
cmake_minimum_required(VERSION 3.23)
|
||||||
|
project(NeMo
|
||||||
|
VERSION 0.1.0
|
||||||
|
LANGUAGES CXX
|
||||||
|
)
|
||||||
|
|
||||||
|
# Provide options
|
||||||
|
option(NEMO_BUILD_UNVIRT "Build Unvirt, the console interface operator of LibCmo." ON)
|
||||||
|
option(NEMO_BUILD_BMAP "Build BMap, the example use of LibCmo which can read and write Ballance game map." OFF)
|
||||||
|
option(NEMO_BUILD_DOC "Build document of LibCmo and all related stuff." OFF)
|
||||||
|
|
||||||
|
# Setup install path from CMake provided install path for convenient use.
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
set(NEMO_INSTALL_INCLUDE_PATH ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH
|
||||||
|
"Public header install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||||
|
set(NEMO_INSTALL_LIB_PATH ${CMAKE_INSTALL_LIBDIR} CACHE PATH
|
||||||
|
"Library install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||||
|
set(NEMO_INSTALL_BIN_PATH ${CMAKE_INSTALL_BINDIR} CACHE PATH
|
||||||
|
"Binary install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||||
|
set(NEMO_INSTALL_DOC_PATH ${CMAKE_INSTALL_DOCDIR} CACHE PATH
|
||||||
|
"Non-arch doc install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||||
|
|
||||||
|
# Import essential packages
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/CMake/custom_import_zlib.cmake)
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/CMake/custom_import_iconv.cmake)
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/CMake/custom_import_yycc.cmake)
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/CMake/custom_import_stb.cmake)
|
||||||
|
|
||||||
|
# If we are not in Windows environment, and we need to build shared library BMap,
|
||||||
|
# we should enable PIC (position independent code), otherwise build process will fail.
|
||||||
|
# Also we should let all symbols in final dll be hidden (not exported) in default.
|
||||||
|
# Because we only want export functions we ordered.
|
||||||
|
if ((NOT WIN32) AND NEMO_BUILD_BMAP)
|
||||||
|
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||||
|
set(CMAKE_C_VISIBILITY_PRESET hidden)
|
||||||
|
set(CMAKE_POSITION_INDEPENDENT_CODE True)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# Import build targets
|
||||||
|
add_subdirectory(LibCmo)
|
||||||
|
if (NEMO_BUILD_UNVIRT)
|
||||||
|
add_subdirectory(Unvirt)
|
||||||
|
endif ()
|
||||||
|
if (NEMO_BUILD_BMAP)
|
||||||
|
add_subdirectory(BMap)
|
||||||
|
endif ()
|
||||||
|
if (NEMO_BUILD_DOC)
|
||||||
|
add_subdirectory(Documents)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# Install target and package
|
||||||
|
# Install target
|
||||||
|
install(EXPORT LibCmoTargets
|
||||||
|
FILE LibCmoTargets.cmake
|
||||||
|
NAMESPACE NeMo::
|
||||||
|
DESTINATION ${YYCC_INSTALL_LIB_PATH}/cmake/LibCmo
|
||||||
|
)
|
||||||
|
# Package configuration file
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
|
write_basic_package_version_file(
|
||||||
|
LibCmoConfigVersion.cmake
|
||||||
|
VERSION ${PACKAGE_VERSION}
|
||||||
|
COMPATIBILITY SameMinorVersion
|
||||||
|
)
|
||||||
|
configure_package_config_file(
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/cmake/LibCmoConfig.cmake.in
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/LibCmoConfig.cmake"
|
||||||
|
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LibCmo
|
||||||
|
)
|
||||||
|
# Copy package files to install destination
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/LibCmoConfig.cmake"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/LibCmoConfigVersion.cmake"
|
||||||
|
DESTINATION
|
||||||
|
${CMAKE_INSTALL_LIBDIR}/cmake/LibCmo
|
||||||
|
)
|
18
Documents/CMakeLists.txt
Normal file
18
Documents/CMakeLists.txt
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# Configure Doxygen config file
|
||||||
|
configure_file(
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/Doxyfile.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||||
|
@ONLY
|
||||||
|
)
|
||||||
|
|
||||||
|
# Add custom target
|
||||||
|
add_custom_target (LibCmoDocuments
|
||||||
|
doxygen ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
COMMENT "Generating LibCmo documentation" VERBATIM
|
||||||
|
)
|
||||||
|
|
||||||
|
# Install built documentation
|
||||||
|
install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
|
||||||
|
DESTINATION ${NEMO_INSTALL_DOC_PATH}
|
||||||
|
)
|
2778
Documents/Doxyfile.in
Normal file
2778
Documents/Doxyfile.in
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -1,33 +0,0 @@
|
||||||
cmake_minimum_required(VERSION 3.12)
|
|
||||||
project(IronPad LANGUAGES CXX)
|
|
||||||
|
|
||||||
# add libcmo if not existed
|
|
||||||
if (NOT TARGET LibCmo)
|
|
||||||
add_subdirectory("../LibCmo" "LibCmo.out")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# setup sources
|
|
||||||
set(ironpad_headers ".")
|
|
||||||
set(ironpad_src IronPad.cpp)
|
|
||||||
|
|
||||||
# create static library
|
|
||||||
add_library(IronPad
|
|
||||||
STATIC
|
|
||||||
${ironpad_src}
|
|
||||||
)
|
|
||||||
target_link_libraries(IronPad
|
|
||||||
PRIVATE
|
|
||||||
LibCmo
|
|
||||||
)
|
|
||||||
target_include_directories(IronPad
|
|
||||||
PUBLIC
|
|
||||||
${ironpad_headers}
|
|
||||||
)
|
|
||||||
|
|
||||||
# set project standard
|
|
||||||
set_target_properties(IronPad
|
|
||||||
PROPERTIES
|
|
||||||
CXX_STANDARD 20
|
|
||||||
CXX_STANDARD_REQUIRED 20
|
|
||||||
CXX_EXTENSION OFF
|
|
||||||
)
|
|
|
@ -1,334 +0,0 @@
|
||||||
#include "IronPad.hpp"
|
|
||||||
|
|
||||||
// only include these header on windows.
|
|
||||||
// in other words, include these header when ironpad enabled.
|
|
||||||
#if defined(IRONPAD_ENABLED)
|
|
||||||
#include <Windows.h>
|
|
||||||
#include <DbgHelp.h>
|
|
||||||
#include <filesystem>
|
|
||||||
#include <cstdarg>
|
|
||||||
#include <cstdio>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace IronPad {
|
|
||||||
|
|
||||||
#if defined(IRONPAD_ENABLED)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief true if the exception handler already registered.
|
|
||||||
* This variable is served for singleton.
|
|
||||||
*/
|
|
||||||
static bool g_IsRegistered = false;
|
|
||||||
/**
|
|
||||||
* @brief true if a exception handler is running.
|
|
||||||
* This variable is served for blocking possible infinity recursive exception handling.
|
|
||||||
*/
|
|
||||||
static bool g_IsProcessing = false;
|
|
||||||
/**
|
|
||||||
* @brief The backup of original exception handler.
|
|
||||||
*/
|
|
||||||
LPTOP_LEVEL_EXCEPTION_FILTER g_ProcBackup;
|
|
||||||
|
|
||||||
#pragma region Exception Handler Detail
|
|
||||||
|
|
||||||
|
|
||||||
static HMODULE GetCurrentModule() {
|
|
||||||
// Reference: https://stackoverflow.com/questions/557081/how-do-i-get-the-hmodule-for-the-currently-executing-code
|
|
||||||
HMODULE hModule = NULL;
|
|
||||||
GetModuleHandleExW(
|
|
||||||
GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, // get address and do not inc ref counter.
|
|
||||||
(LPCWSTR)GetCurrentModule,
|
|
||||||
&hModule);
|
|
||||||
|
|
||||||
return hModule;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char* UExceptionGetCodeName(DWORD code) {
|
|
||||||
switch (code) {
|
|
||||||
case EXCEPTION_ACCESS_VIOLATION:
|
|
||||||
return "access violation";
|
|
||||||
case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
|
|
||||||
return "array index out of bound";
|
|
||||||
case EXCEPTION_BREAKPOINT:
|
|
||||||
return "breakpoint reached";
|
|
||||||
case EXCEPTION_DATATYPE_MISALIGNMENT:
|
|
||||||
return "misaligned data access";
|
|
||||||
case EXCEPTION_FLT_DENORMAL_OPERAND:
|
|
||||||
return "operand had denormal value";
|
|
||||||
case EXCEPTION_FLT_DIVIDE_BY_ZERO:
|
|
||||||
return "floating-point division by zero";
|
|
||||||
case EXCEPTION_FLT_INEXACT_RESULT:
|
|
||||||
return "no decimal fraction representation for value";
|
|
||||||
case EXCEPTION_FLT_INVALID_OPERATION:
|
|
||||||
return "invalid floating-point operation";
|
|
||||||
case EXCEPTION_FLT_OVERFLOW:
|
|
||||||
return "floating-point overflow";
|
|
||||||
case EXCEPTION_FLT_STACK_CHECK:
|
|
||||||
return "floating-point stack corruption";
|
|
||||||
case EXCEPTION_FLT_UNDERFLOW:
|
|
||||||
return "floating-point underflow";
|
|
||||||
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
|
||||||
return "illegal instruction";
|
|
||||||
case EXCEPTION_IN_PAGE_ERROR:
|
|
||||||
return "inaccessible page";
|
|
||||||
case EXCEPTION_INT_DIVIDE_BY_ZERO:
|
|
||||||
return "integer division by zero";
|
|
||||||
case EXCEPTION_INT_OVERFLOW:
|
|
||||||
return "integer overflow";
|
|
||||||
case EXCEPTION_INVALID_DISPOSITION:
|
|
||||||
return "documentation says this should never happen";
|
|
||||||
case EXCEPTION_NONCONTINUABLE_EXCEPTION:
|
|
||||||
return "can't continue after a noncontinuable exception";
|
|
||||||
case EXCEPTION_PRIV_INSTRUCTION:
|
|
||||||
return "attempted to execute a privileged instruction";
|
|
||||||
case EXCEPTION_SINGLE_STEP:
|
|
||||||
return "one instruction has been executed";
|
|
||||||
case EXCEPTION_STACK_OVERFLOW:
|
|
||||||
return "stack overflow";
|
|
||||||
default:
|
|
||||||
return "unknown exception";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UExceptionFormat(std::FILE* fs, const char* fmt, ...) {
|
|
||||||
// write to file
|
|
||||||
va_list arg1;
|
|
||||||
va_start(arg1, fmt);
|
|
||||||
std::vfprintf(fs, fmt, arg1);
|
|
||||||
va_end(arg1);
|
|
||||||
// write to stdout
|
|
||||||
va_list arg2;
|
|
||||||
va_start(arg2, fmt);
|
|
||||||
std::vfprintf(stdout, fmt, arg2);
|
|
||||||
va_end(arg2);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UExceptionPrint(std::FILE* fs, const char* strl) {
|
|
||||||
// write to file
|
|
||||||
std::fputs(strl, fs);
|
|
||||||
// write to stdout
|
|
||||||
std::fputs(strl, stdout);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UExceptionBacktrace(FILE* fs, LPCONTEXT context, int maxdepth) {
|
|
||||||
// setup loading symbol options
|
|
||||||
SymSetOptions(SymGetOptions() | SYMOPT_DEFERRED_LOADS | SYMOPT_LOAD_LINES); // lazy load symbol, and load line number.
|
|
||||||
|
|
||||||
// setup handle
|
|
||||||
HANDLE process = GetCurrentProcess();
|
|
||||||
HANDLE thread = GetCurrentThread();
|
|
||||||
|
|
||||||
// init symbol
|
|
||||||
if (!SymInitialize(process, 0, TRUE)) {
|
|
||||||
// fail to load. return
|
|
||||||
UExceptionPrint(fs, "Lost symbol file!\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ========== CORE DUMP ==========
|
|
||||||
// prepare frame. setup correct fields
|
|
||||||
// references:
|
|
||||||
// https://github.com/rust-lang/backtrace-rs/blob/9ed25b581cfd2ee60e5a3b9054fd023bf6dced90/src/backtrace/dbghelp.rs
|
|
||||||
// https://sourceforge.net/p/predef/wiki/Architectures/
|
|
||||||
DWORD machine_type = 0;
|
|
||||||
STACKFRAME64 frame;
|
|
||||||
memset(&frame, 0, sizeof(frame));
|
|
||||||
#if defined(_M_IX86) || defined(__i386__)
|
|
||||||
// x86
|
|
||||||
machine_type = IMAGE_FILE_MACHINE_I386;
|
|
||||||
frame.AddrPC.Offset = context->Eip;
|
|
||||||
frame.AddrStack.Offset = context->Esp;
|
|
||||||
frame.AddrFrame.Offset = context->Ebp;
|
|
||||||
#elif defined(_M_AMD64) || defined(__amd64__)
|
|
||||||
// amd64
|
|
||||||
machine_type = IMAGE_FILE_MACHINE_AMD64;
|
|
||||||
frame.AddrPC.Offset = context->Rip;
|
|
||||||
frame.AddrStack.Offset = context->Rsp;
|
|
||||||
frame.AddrFrame.Offset = context->Rbp;
|
|
||||||
#elif defined(_M_ARM) || defined(__arm__)
|
|
||||||
// arm (32bit)
|
|
||||||
machine_type = IMAGE_FILE_MACHINE_ARMNT;
|
|
||||||
frame.AddrPC.Offset = context->Pc;
|
|
||||||
frame.AddrStack.Offset = context->Sp;
|
|
||||||
frame.AddrFrame.Offset = context->R11;
|
|
||||||
#elif defined(_M_ARM64) || defined(__aarch64__)
|
|
||||||
// arm64
|
|
||||||
machine_type = IMAGE_FILE_MACHINE_ARM64;
|
|
||||||
frame.AddrPC.Offset = context->Pc;
|
|
||||||
frame.AddrStack.Offset = context->Sp;
|
|
||||||
frame.AddrFrame.Offset = context->DUMMYUNIONNAME.DUMMYSTRUCTNAME.Fp;
|
|
||||||
#else
|
|
||||||
#error "Unsupported platform"
|
|
||||||
//IA-64 anybody?
|
|
||||||
|
|
||||||
#endif
|
|
||||||
frame.AddrPC.Mode = AddrModeFlat;
|
|
||||||
frame.AddrStack.Mode = AddrModeFlat;
|
|
||||||
frame.AddrFrame.Mode = AddrModeFlat;
|
|
||||||
|
|
||||||
// other variables
|
|
||||||
char module_name_raw[MAX_PATH];
|
|
||||||
|
|
||||||
// stack walker
|
|
||||||
while (StackWalk64(machine_type, process, thread, &frame, context,
|
|
||||||
0, SymFunctionTableAccess64, SymGetModuleBase64, 0)) {
|
|
||||||
|
|
||||||
// depth breaker
|
|
||||||
--maxdepth;
|
|
||||||
if (maxdepth < 0) {
|
|
||||||
UExceptionPrint(fs, "...\n"); // indicate there are some frames not listed
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// get module name
|
|
||||||
DWORD64 module_base = SymGetModuleBase64(process, frame.AddrPC.Offset);
|
|
||||||
const char* module_name = "[unknown module]";
|
|
||||||
if (module_base && GetModuleFileNameA((HINSTANCE)module_base, module_name_raw, MAX_PATH)) {
|
|
||||||
module_name = module_name_raw;
|
|
||||||
}
|
|
||||||
|
|
||||||
// get source file and line
|
|
||||||
const char* source_file = "[unknow_source_file]";
|
|
||||||
DWORD64 source_file_line = 0;
|
|
||||||
DWORD dwDisplacement;
|
|
||||||
IMAGEHLP_LINE64 winline;
|
|
||||||
winline.SizeOfStruct = sizeof(IMAGEHLP_LINE64);
|
|
||||||
if (SymGetLineFromAddr64(process, frame.AddrPC.Offset, &dwDisplacement, &winline)) {
|
|
||||||
source_file = winline.FileName;
|
|
||||||
source_file_line = winline.LineNumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
// write to file
|
|
||||||
UExceptionFormat(fs, "0x%016llx(rel: 0x%016llx)[%s]\t%s#%llu\n",
|
|
||||||
frame.AddrPC.Offset, frame.AddrPC.Offset - module_base, module_name,
|
|
||||||
source_file, source_file_line
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// ========== END CORE DUMP ==========
|
|
||||||
|
|
||||||
// free symbol
|
|
||||||
SymCleanup(process);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void UExceptionCoreDump(LPCWSTR filename, LPEXCEPTION_POINTERS info) {
|
|
||||||
// open file and write
|
|
||||||
HANDLE hFile = CreateFileW(filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
|
||||||
if (hFile != INVALID_HANDLE_VALUE) {
|
|
||||||
MINIDUMP_EXCEPTION_INFORMATION exception_info;
|
|
||||||
exception_info.ThreadId = GetCurrentThreadId();
|
|
||||||
exception_info.ExceptionPointers = info;
|
|
||||||
exception_info.ClientPointers = TRUE;
|
|
||||||
MiniDumpWriteDump(
|
|
||||||
GetCurrentProcess(), GetCurrentProcessId(), hFile,
|
|
||||||
MiniDumpNormal,
|
|
||||||
&exception_info,
|
|
||||||
NULL, NULL
|
|
||||||
);
|
|
||||||
CloseHandle(hFile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static LONG WINAPI UExceptionImpl(LPEXCEPTION_POINTERS info) {
|
|
||||||
// detect loop calling
|
|
||||||
if (g_IsProcessing) {
|
|
||||||
goto end_proc;
|
|
||||||
}
|
|
||||||
// start process
|
|
||||||
g_IsProcessing = true;
|
|
||||||
|
|
||||||
{
|
|
||||||
// get main folder first
|
|
||||||
std::filesystem::path ironpad_path;
|
|
||||||
WCHAR module_path[MAX_PATH];
|
|
||||||
std::memset(module_path, 0, sizeof(module_path));
|
|
||||||
if (GetModuleFileNameW(GetCurrentModule(), module_path, MAX_PATH) == 0) {
|
|
||||||
goto failed;
|
|
||||||
}
|
|
||||||
ironpad_path = module_path;
|
|
||||||
ironpad_path = ironpad_path.parent_path();
|
|
||||||
|
|
||||||
// create 2 filename
|
|
||||||
auto logfilename = ironpad_path / "IronPad.log";
|
|
||||||
auto dmpfilename = ironpad_path / "IronPad.dmp";
|
|
||||||
std::fputc('\n', stdout);
|
|
||||||
std::fprintf(stdout, "Exception Log: %s\n", logfilename.string().c_str());
|
|
||||||
std::fprintf(stdout, "Exception Coredump: %s\n", dmpfilename.string().c_str());
|
|
||||||
|
|
||||||
// output log file
|
|
||||||
{
|
|
||||||
std::FILE* fs = _wfopen(logfilename.wstring().c_str(), L"w");
|
|
||||||
if (fs == nullptr) {
|
|
||||||
goto failed;
|
|
||||||
}
|
|
||||||
|
|
||||||
// record exception type first
|
|
||||||
PEXCEPTION_RECORD rec = info->ExceptionRecord;
|
|
||||||
fprintf(fs, "Unhandled exception occured at 0x%08p: %s (%lu).\n",
|
|
||||||
rec->ExceptionAddress,
|
|
||||||
UExceptionGetCodeName(rec->ExceptionCode),
|
|
||||||
rec->ExceptionCode
|
|
||||||
);
|
|
||||||
|
|
||||||
// special proc for 2 exceptions
|
|
||||||
if (rec->ExceptionCode == EXCEPTION_ACCESS_VIOLATION || rec->ExceptionCode == EXCEPTION_IN_PAGE_ERROR) {
|
|
||||||
if (rec->NumberParameters >= 2) {
|
|
||||||
const char* op =
|
|
||||||
rec->ExceptionInformation[0] == 0 ? "read" :
|
|
||||||
rec->ExceptionInformation[0] == 1 ? "written" : "executed";
|
|
||||||
fprintf(fs, "The data at memory address 0x%016" PRIxPTR " could not be %s.\n",
|
|
||||||
rec->ExceptionInformation[1], op);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// output stacktrace
|
|
||||||
UExceptionBacktrace(fs, info->ContextRecord, 1024);
|
|
||||||
|
|
||||||
std::fclose(fs);
|
|
||||||
}
|
|
||||||
|
|
||||||
// output minidump
|
|
||||||
{
|
|
||||||
UExceptionCoreDump(dmpfilename.wstring().c_str(), info);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// end process
|
|
||||||
failed:
|
|
||||||
g_IsProcessing = false;
|
|
||||||
// if backup proc can be run, run it
|
|
||||||
// otherwise directly return.
|
|
||||||
end_proc:
|
|
||||||
if (g_ProcBackup != nullptr) {
|
|
||||||
return g_ProcBackup(info);
|
|
||||||
} else {
|
|
||||||
return EXCEPTION_CONTINUE_SEARCH;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma endregion
|
|
||||||
|
|
||||||
void IronPadRegister() {
|
|
||||||
if (g_IsRegistered) return;
|
|
||||||
g_ProcBackup = SetUnhandledExceptionFilter(UExceptionImpl);
|
|
||||||
g_IsRegistered = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void IronPadUnregister() {
|
|
||||||
if (!g_IsRegistered) return;
|
|
||||||
SetUnhandledExceptionFilter(g_ProcBackup);
|
|
||||||
g_IsRegistered = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
// blank implement
|
|
||||||
|
|
||||||
void IronPadRegister() {}
|
|
||||||
void IronPadUnregister() {}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// only include VTUtils to get essential macro
|
|
||||||
#include <VTUtils.hpp>
|
|
||||||
|
|
||||||
#if defined(LIBCMO_BUILD_RELEASE) && defined(LIBCMO_OS_WIN32)
|
|
||||||
#define IRONPAD_ENABLED 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Debug IronPad used. Force enable IronPad.
|
|
||||||
//#define IRONPAD_ENABLED 1
|
|
||||||
|
|
||||||
namespace IronPad {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Register IronPad.
|
|
||||||
* @detail This function frequently called at the start of program.
|
|
||||||
*/
|
|
||||||
void IronPadRegister();
|
|
||||||
/**
|
|
||||||
* @brief Unregiister IronPad
|
|
||||||
* @detail This function frequently called at the end of program.
|
|
||||||
*/
|
|
||||||
void IronPadUnregister();
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<VCProjectVersion>16.0</VCProjectVersion>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<ProjectGuid>{a6454164-2153-45ae-bdb8-19c77014e0cc}</ProjectGuid>
|
|
||||||
<RootNamespace>IronPad</RootNamespace>
|
|
||||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="Shared">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_RELEASE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalLibraryDirectories>
|
|
||||||
</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_RELEASE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalLibraryDirectories>
|
|
||||||
</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="IronPad.hpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="IronPad.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,27 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Sources">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Headers">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resources">
|
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="IronPad.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="IronPad.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
|
@ -1,27 +1,13 @@
|
||||||
cmake_minimum_required(VERSION 3.12)
|
# Create static library
|
||||||
project(LibCmo LANGUAGES CXX)
|
add_library(LibCmo STATIC "")
|
||||||
|
# Setup static library sources
|
||||||
# find packages
|
target_sources(LibCmo
|
||||||
find_package(ZLIB REQUIRED)
|
PRIVATE
|
||||||
find_package(Iconv REQUIRED)
|
# Assistant source files
|
||||||
|
|
||||||
# manually check stb image path
|
|
||||||
if (NOT STB_IMAGE_PATH)
|
|
||||||
message(FATAL_ERROR "You must assign your stb_image library root path to STB_IMAGE_PATH when compiling this project.")
|
|
||||||
endif ()
|
|
||||||
if ((NOT EXISTS "${STB_IMAGE_PATH}/stb_image.h") OR (NOT EXISTS "${STB_IMAGE_PATH}/stb_image_resize.h") OR (NOT EXISTS "${STB_IMAGE_PATH}/stb_image_write.h"))
|
|
||||||
message(FATAL_ERROR "Invalid stb_image library path.")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# set up file list
|
|
||||||
set(libcmo_headers ".")
|
|
||||||
|
|
||||||
set(libcmo_vt_src
|
|
||||||
VTUtils.cpp
|
VTUtils.cpp
|
||||||
VTEncoding.cpp
|
VTEncoding.cpp
|
||||||
VTImage.cpp
|
VTImage.cpp
|
||||||
)
|
# CK2
|
||||||
set(libcmo_ck2_src
|
|
||||||
CK2/CKBitmapData.cpp
|
CK2/CKBitmapData.cpp
|
||||||
CK2/CKContext.cpp
|
CK2/CKContext.cpp
|
||||||
CK2/CKFileOthers.cpp
|
CK2/CKFileOthers.cpp
|
||||||
|
@ -31,16 +17,13 @@ set(libcmo_ck2_src
|
||||||
CK2/CKStateChunkOthers.cpp
|
CK2/CKStateChunkOthers.cpp
|
||||||
CK2/CKStateChunkReader.cpp
|
CK2/CKStateChunkReader.cpp
|
||||||
CK2/CKStateChunkWriter.cpp
|
CK2/CKStateChunkWriter.cpp
|
||||||
)
|
# CK2 Data Handler
|
||||||
set(libcmo_ck2_dh_src
|
|
||||||
CK2/DataHandlers/CKBitmapHandler.cpp
|
CK2/DataHandlers/CKBitmapHandler.cpp
|
||||||
)
|
# CK2 Manager
|
||||||
set(libcmo_ck2_mgr_src
|
|
||||||
CK2/MgrImpls/CKBaseManager.cpp
|
CK2/MgrImpls/CKBaseManager.cpp
|
||||||
CK2/MgrImpls/CKObjectManager.cpp
|
CK2/MgrImpls/CKObjectManager.cpp
|
||||||
CK2/MgrImpls/CKPathManager.cpp
|
CK2/MgrImpls/CKPathManager.cpp
|
||||||
)
|
# CK2 Object
|
||||||
set(libcmo_ck2_obj_src
|
|
||||||
CK2/ObjImpls/CK3dEntity.cpp
|
CK2/ObjImpls/CK3dEntity.cpp
|
||||||
CK2/ObjImpls/CKBeObject.cpp
|
CK2/ObjImpls/CKBeObject.cpp
|
||||||
CK2/ObjImpls/CKGroup.cpp
|
CK2/ObjImpls/CKGroup.cpp
|
||||||
|
@ -48,53 +31,205 @@ set(libcmo_ck2_obj_src
|
||||||
CK2/ObjImpls/CKMesh.cpp
|
CK2/ObjImpls/CKMesh.cpp
|
||||||
CK2/ObjImpls/CKObject.cpp
|
CK2/ObjImpls/CKObject.cpp
|
||||||
CK2/ObjImpls/CKTexture.cpp
|
CK2/ObjImpls/CKTexture.cpp
|
||||||
)
|
# VxMath
|
||||||
set(libcmo_vxmath_src
|
|
||||||
VxMath/VxMemoryMappedFile.cpp
|
VxMath/VxMemoryMappedFile.cpp
|
||||||
VxMath/VxMath.cpp
|
VxMath/VxMath.cpp
|
||||||
)
|
# X Container
|
||||||
set(libcmo_xcontainer_src
|
|
||||||
XContainer/XTypes.cpp
|
XContainer/XTypes.cpp
|
||||||
)
|
)
|
||||||
|
# Setup static library headers
|
||||||
# create static library
|
target_sources(LibCmo
|
||||||
add_library(LibCmo
|
PUBLIC
|
||||||
STATIC
|
FILE_SET HEADERS
|
||||||
${libcmo_vt_src}
|
FILES
|
||||||
${libcmo_ck2_src}
|
# Asststant header files
|
||||||
${libcmo_ck2_dh_src}
|
VTAll.hpp
|
||||||
${libcmo_ck2_mgr_src}
|
VTEncoding.hpp
|
||||||
${libcmo_ck2_obj_src}
|
VTUserAll.hpp
|
||||||
${libcmo_vxmath_src}
|
VTUtils.hpp
|
||||||
${libcmo_xcontainer_src}
|
# CK2
|
||||||
)
|
CK2/CKDefines.hpp
|
||||||
target_link_libraries(LibCmo
|
CK2/CKEnums.hpp
|
||||||
PRIVATE
|
CK2/CKGlobals.hpp
|
||||||
${ZLIB_LIBRARIES}
|
CK2/CKIdentifiers.hpp
|
||||||
${Iconv_LIBRARIES}
|
CK2/CKTypes.hpp
|
||||||
|
CK2/CKBitmapData.hpp
|
||||||
|
CK2/CKContext.hpp
|
||||||
|
CK2/CKFile.hpp
|
||||||
|
CK2/CKStateChunk.hpp
|
||||||
|
# CK2 Data Handler
|
||||||
|
CK2/DataHandlers/CKBitmapHandler.hpp
|
||||||
|
# CK2 Manager
|
||||||
|
CK2/MgrImpls/CKBaseManager.hpp
|
||||||
|
CK2/MgrImpls/CKObjectManager.hpp
|
||||||
|
CK2/MgrImpls/CKPathManager.hpp
|
||||||
|
# CK2 Object
|
||||||
|
CK2/ObjImpls/CK3dEntity.hpp
|
||||||
|
CK2/ObjImpls/CKBeObject.hpp
|
||||||
|
CK2/ObjImpls/CKGroup.hpp
|
||||||
|
CK2/ObjImpls/CKMaterial.hpp
|
||||||
|
CK2/ObjImpls/CKMesh.hpp
|
||||||
|
CK2/ObjImpls/CKObject.hpp
|
||||||
|
CK2/ObjImpls/CKTexture.hpp
|
||||||
|
CK2/ObjImpls/CK3dObject.hpp
|
||||||
|
CK2/ObjImpls/CKRenderObject.hpp
|
||||||
|
CK2/ObjImpls/CKSceneObject.hpp
|
||||||
|
# VxMath
|
||||||
|
VxMath/VxTypes.hpp
|
||||||
|
VxMath/VxMath.hpp
|
||||||
|
VxMath/VxEnums.hpp
|
||||||
|
VxMath/VxMemoryMappedFile.hpp
|
||||||
|
# X Container
|
||||||
|
XContainer/XTypes.hpp
|
||||||
)
|
)
|
||||||
|
# Setup include infomation
|
||||||
target_include_directories(LibCmo
|
target_include_directories(LibCmo
|
||||||
PUBLIC
|
PUBLIC
|
||||||
${libcmo_headers}
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>"
|
||||||
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
||||||
PRIVATE
|
PRIVATE
|
||||||
${STB_IMAGE_PATH}
|
YYCC::YYCCommonplace
|
||||||
${ZLIB_INCLUDE_DIRS}
|
ZLIB::ZLIB
|
||||||
${Iconv_INCLUDE_DIRS}
|
stb::stb-image
|
||||||
|
$<$<NOT:$<BOOL:${WIN32}>>:Iconv::Iconv>
|
||||||
)
|
)
|
||||||
|
# Setup linked library infomation
|
||||||
# set project standard
|
target_link_libraries(LibCmo
|
||||||
|
PRIVATE
|
||||||
|
YYCC::YYCCommonplace
|
||||||
|
ZLIB::ZLIB
|
||||||
|
stb::stb-image
|
||||||
|
$<$<NOT:$<BOOL:${WIN32}>>:Iconv::Iconv>
|
||||||
|
)
|
||||||
|
# Setup C++ standard
|
||||||
set_target_properties(LibCmo
|
set_target_properties(LibCmo
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
CXX_STANDARD 20
|
CXX_STANDARD 20
|
||||||
CXX_STANDARD_REQUIRED 20
|
CXX_STANDARD_REQUIRED 20
|
||||||
CXX_EXTENSION OFF
|
CXX_EXTENSION OFF
|
||||||
)
|
)
|
||||||
# add essential build macro and populate them
|
|
||||||
target_compile_definitions(LibCmo
|
target_compile_definitions(LibCmo
|
||||||
|
# LibCmo build type
|
||||||
PUBLIC
|
PUBLIC
|
||||||
$<$<CONFIG:Debug>:LIBCMO_BUILD_DEBUG>
|
"$<$<CONFIG:Debug>:LIBCMO_BUILD_DEBUG>"
|
||||||
$<$<CONFIG:Release>:LIBCMO_BUILD_RELEASE>
|
"$<$<CONFIG:Release,RelWithDebInfo,MinSize>:LIBCMO_BUILD_RELEASE>"
|
||||||
$<$<CONFIG:RelWithDebInfo>:LIBCMO_BUILD_RELEASE>
|
# Unicode charset for private using
|
||||||
$<$<CONFIG:MinSizeRel>:LIBCMO_BUILD_RELEASE>
|
PRIVATE
|
||||||
|
$<$<CXX_COMPILER_ID:MSVC>:UNICODE>
|
||||||
|
$<$<CXX_COMPILER_ID:MSVC>:_UNICODE>
|
||||||
|
)
|
||||||
|
target_compile_options(LibCmo
|
||||||
|
# Order build as UTF-8 in MSVC
|
||||||
|
PRIVATE
|
||||||
|
$<$<CXX_COMPILER_ID:MSVC>:/utf-8>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Install binary and headers
|
||||||
|
install(TARGETS LibCmo
|
||||||
|
EXPORT LibCmoTargets
|
||||||
|
LIBRARY DESTINATION ${NEMO_INSTALL_LIB_PATH}
|
||||||
|
ARCHIVE DESTINATION ${NEMO_INSTALL_LIB_PATH}
|
||||||
|
INCLUDES DESTINATION ${NEMO_INSTALL_INCLUDE_PATH}
|
||||||
|
FILE_SET HEADERS DESTINATION ${NEMO_INSTALL_INCLUDE_PATH}
|
||||||
|
)
|
||||||
|
|
||||||
|
# cmake_minimum_required(VERSION 3.12)
|
||||||
|
# project(LibCmo LANGUAGES CXX)
|
||||||
|
|
||||||
|
# # find packages
|
||||||
|
# find_package(ZLIB REQUIRED)
|
||||||
|
# find_package(Iconv REQUIRED)
|
||||||
|
|
||||||
|
# # manually check stb image path
|
||||||
|
# if (NOT STB_IMAGE_PATH)
|
||||||
|
# message(FATAL_ERROR "You must assign your stb_image library root path to STB_IMAGE_PATH when compiling this project.")
|
||||||
|
# endif ()
|
||||||
|
# if ((NOT EXISTS "${STB_IMAGE_PATH}/stb_image.h") OR (NOT EXISTS "${STB_IMAGE_PATH}/stb_image_resize.h") OR (NOT EXISTS "${STB_IMAGE_PATH}/stb_image_write.h"))
|
||||||
|
# message(FATAL_ERROR "Invalid stb_image library path.")
|
||||||
|
# endif ()
|
||||||
|
|
||||||
|
# # set up file list
|
||||||
|
# set(libcmo_headers ".")
|
||||||
|
|
||||||
|
# set(libcmo_vt_src
|
||||||
|
# VTUtils.cpp
|
||||||
|
# VTEncoding.cpp
|
||||||
|
# VTImage.cpp
|
||||||
|
# )
|
||||||
|
# set(libcmo_ck2_src
|
||||||
|
# CK2/CKBitmapData.cpp
|
||||||
|
# CK2/CKContext.cpp
|
||||||
|
# CK2/CKFileOthers.cpp
|
||||||
|
# CK2/CKFileReader.cpp
|
||||||
|
# CK2/CKFileWriter.cpp
|
||||||
|
# CK2/CKGlobals.cpp
|
||||||
|
# CK2/CKStateChunkOthers.cpp
|
||||||
|
# CK2/CKStateChunkReader.cpp
|
||||||
|
# CK2/CKStateChunkWriter.cpp
|
||||||
|
# )
|
||||||
|
# set(libcmo_ck2_dh_src
|
||||||
|
# CK2/DataHandlers/CKBitmapHandler.cpp
|
||||||
|
# )
|
||||||
|
# set(libcmo_ck2_mgr_src
|
||||||
|
# CK2/MgrImpls/CKBaseManager.cpp
|
||||||
|
# CK2/MgrImpls/CKObjectManager.cpp
|
||||||
|
# CK2/MgrImpls/CKPathManager.cpp
|
||||||
|
# )
|
||||||
|
# set(libcmo_ck2_obj_src
|
||||||
|
# CK2/ObjImpls/CK3dEntity.cpp
|
||||||
|
# CK2/ObjImpls/CKBeObject.cpp
|
||||||
|
# CK2/ObjImpls/CKGroup.cpp
|
||||||
|
# CK2/ObjImpls/CKMaterial.cpp
|
||||||
|
# CK2/ObjImpls/CKMesh.cpp
|
||||||
|
# CK2/ObjImpls/CKObject.cpp
|
||||||
|
# CK2/ObjImpls/CKTexture.cpp
|
||||||
|
# )
|
||||||
|
# set(libcmo_vxmath_src
|
||||||
|
# VxMath/VxMemoryMappedFile.cpp
|
||||||
|
# VxMath/VxMath.cpp
|
||||||
|
# )
|
||||||
|
# set(libcmo_xcontainer_src
|
||||||
|
# XContainer/XTypes.cpp
|
||||||
|
# )
|
||||||
|
|
||||||
|
# # create static library
|
||||||
|
# add_library(LibCmo
|
||||||
|
# STATIC
|
||||||
|
# ${libcmo_vt_src}
|
||||||
|
# ${libcmo_ck2_src}
|
||||||
|
# ${libcmo_ck2_dh_src}
|
||||||
|
# ${libcmo_ck2_mgr_src}
|
||||||
|
# ${libcmo_ck2_obj_src}
|
||||||
|
# ${libcmo_vxmath_src}
|
||||||
|
# ${libcmo_xcontainer_src}
|
||||||
|
# )
|
||||||
|
# target_link_libraries(LibCmo
|
||||||
|
# PRIVATE
|
||||||
|
# ${ZLIB_LIBRARIES}
|
||||||
|
# ${Iconv_LIBRARIES}
|
||||||
|
# )
|
||||||
|
# target_include_directories(LibCmo
|
||||||
|
# PUBLIC
|
||||||
|
# ${libcmo_headers}
|
||||||
|
# PRIVATE
|
||||||
|
# ${STB_IMAGE_PATH}
|
||||||
|
# ${ZLIB_INCLUDE_DIRS}
|
||||||
|
# ${Iconv_INCLUDE_DIRS}
|
||||||
|
# )
|
||||||
|
|
||||||
|
# # set project standard
|
||||||
|
# set_target_properties(LibCmo
|
||||||
|
# PROPERTIES
|
||||||
|
# CXX_STANDARD 20
|
||||||
|
# CXX_STANDARD_REQUIRED 20
|
||||||
|
# CXX_EXTENSION OFF
|
||||||
|
# )
|
||||||
|
# # add essential build macro and populate them
|
||||||
|
# target_compile_definitions(LibCmo
|
||||||
|
# PUBLIC
|
||||||
|
# $<$<CONFIG:Debug>:LIBCMO_BUILD_DEBUG>
|
||||||
|
# $<$<CONFIG:Release>:LIBCMO_BUILD_RELEASE>
|
||||||
|
# $<$<CONFIG:RelWithDebInfo>:LIBCMO_BUILD_RELEASE>
|
||||||
|
# $<$<CONFIG:MinSizeRel>:LIBCMO_BUILD_RELEASE>
|
||||||
|
# )
|
||||||
|
|
||||||
|
|
|
@ -1,242 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<VCProjectVersion>16.0</VCProjectVersion>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<ProjectGuid>{70f64f8d-099c-4c21-b29c-0a8f1e22fb2e}</ProjectGuid>
|
|
||||||
<RootNamespace>LibCmo</RootNamespace>
|
|
||||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="Shared">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>$(ZLIB_PATH);$(STB_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_RELEASE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>$(ZLIB_PATH);$(STB_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>$(ZLIB_PATH);$(STB_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalLibraryDirectories>
|
|
||||||
</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_RELEASE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>$(ZLIB_PATH);$(STB_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalLibraryDirectories>
|
|
||||||
</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="CK2\CKBitmapData.cpp" />
|
|
||||||
<ClCompile Include="CK2\CKFileOthers.cpp" />
|
|
||||||
<ClCompile Include="CK2\CKFileWriter.cpp" />
|
|
||||||
<ClCompile Include="CK2\CKGlobals.cpp" />
|
|
||||||
<ClCompile Include="CK2\CKStateChunkReader.cpp" />
|
|
||||||
<ClCompile Include="CK2\CKStateChunkWriter.cpp" />
|
|
||||||
<ClCompile Include="CK2\DataHandlers\CKBitmapHandler.cpp" />
|
|
||||||
<ClCompile Include="CK2\MgrImpls\CKBaseManager.cpp" />
|
|
||||||
<ClCompile Include="CK2\CKContext.cpp" />
|
|
||||||
<ClCompile Include="CK2\MgrImpls\CKObjectManager.cpp" />
|
|
||||||
<ClCompile Include="CK2\MgrImpls\CKPathManager.cpp" />
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CK3dEntity.cpp" />
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKBeObject.cpp" />
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKGroup.cpp" />
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKMaterial.cpp" />
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKMesh.cpp" />
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKObject.cpp" />
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKTexture.cpp" />
|
|
||||||
<ClCompile Include="VTEncoding.cpp" />
|
|
||||||
<ClCompile Include="CK2\CKFileReader.cpp" />
|
|
||||||
<ClCompile Include="CK2\CKStateChunkOthers.cpp" />
|
|
||||||
<ClCompile Include="VTImage.cpp" />
|
|
||||||
<ClCompile Include="VTUtils.cpp" />
|
|
||||||
<ClCompile Include="VxMath\VxMath.cpp" />
|
|
||||||
<ClCompile Include="VxMath\VxMemoryMappedFile.cpp" />
|
|
||||||
<ClCompile Include="XContainer\XTypes.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="CK2\CKBitmapData.hpp" />
|
|
||||||
<ClInclude Include="CK2\CKDefines.hpp" />
|
|
||||||
<ClInclude Include="CK2\CKEnums.hpp" />
|
|
||||||
<ClInclude Include="CK2\CKFile.hpp" />
|
|
||||||
<ClInclude Include="CK2\CKGlobals.hpp" />
|
|
||||||
<ClInclude Include="CK2\CKIdentifiers.hpp" />
|
|
||||||
<ClInclude Include="CK2\DataHandlers\CKBitmapHandler.hpp" />
|
|
||||||
<ClInclude Include="CK2\MgrImpls\CKBaseManager.hpp" />
|
|
||||||
<ClInclude Include="CK2\CKContext.hpp" />
|
|
||||||
<ClInclude Include="CK2\CKStateChunk.hpp" />
|
|
||||||
<ClInclude Include="CK2\CKTypes.hpp" />
|
|
||||||
<ClInclude Include="CK2\MgrImpls\CKObjectManager.hpp" />
|
|
||||||
<ClInclude Include="CK2\MgrImpls\CKPathManager.hpp" />
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CK3dEntity.hpp" />
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CK3dObject.hpp" />
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKBeObject.hpp" />
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKGroup.hpp" />
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKMaterial.hpp" />
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKMesh.hpp" />
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKRenderObject.hpp" />
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKSceneObject.hpp" />
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKTexture.hpp" />
|
|
||||||
<ClInclude Include="VTAll.hpp" />
|
|
||||||
<ClInclude Include="VTEncoding.hpp" />
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKObject.hpp" />
|
|
||||||
<ClInclude Include="VTUserAll.hpp" />
|
|
||||||
<ClInclude Include="VTUtils.hpp" />
|
|
||||||
<ClInclude Include="VxMath\VxEnums.hpp" />
|
|
||||||
<ClInclude Include="VxMath\VxMath.hpp" />
|
|
||||||
<ClInclude Include="VxMath\VxMemoryMappedFile.hpp" />
|
|
||||||
<ClInclude Include="VxMath\VxTypes.hpp" />
|
|
||||||
<ClInclude Include="XContainer\XTypes.hpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,231 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Sources">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Headers">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resources">
|
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Headers\CK2">
|
|
||||||
<UniqueIdentifier>{bef3546d-1182-4641-a95f-59edb8326e2a}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Headers\VxMath">
|
|
||||||
<UniqueIdentifier>{fe29ae7b-12c4-43b9-b7ae-c09c473e9ee9}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Headers\XContainer">
|
|
||||||
<UniqueIdentifier>{d8192b09-d1fa-438f-a4ae-a4019b05cef3}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Sources\CK2">
|
|
||||||
<UniqueIdentifier>{7724b40c-b489-4639-a5d8-0cefc7b5a951}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Sources\VxMath">
|
|
||||||
<UniqueIdentifier>{26f55ef2-f788-474f-a908-6488986ad03a}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Sources\XContainer">
|
|
||||||
<UniqueIdentifier>{3dee80b5-d27a-4071-9194-3c817ba38c4c}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Headers\CK2\MgrImpls">
|
|
||||||
<UniqueIdentifier>{bc2c80b7-8622-41f4-9bef-480a71430eb8}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Headers\CK2\ObjImpls">
|
|
||||||
<UniqueIdentifier>{9bec41df-78db-4753-ab80-86345545227d}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Sources\CK2\MgrImpls">
|
|
||||||
<UniqueIdentifier>{784282d9-4adb-40ca-bbac-902c74e9a2e5}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Sources\CK2\ObjImpls">
|
|
||||||
<UniqueIdentifier>{a8cd2188-b552-478c-9801-a6286b3d48a0}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Headers\CK2\DataHandlers">
|
|
||||||
<UniqueIdentifier>{d66924c0-b040-4f5d-8a8e-87d6d412af38}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Sources\CK2\DataHandlers">
|
|
||||||
<UniqueIdentifier>{cff15b64-e076-47af-9719-74af31d1804d}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="VTEncoding.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKObject.cpp">
|
|
||||||
<Filter>Sources\CK2\ObjImpls</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="VTUtils.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\MgrImpls\CKBaseManager.cpp">
|
|
||||||
<Filter>Sources\CK2\MgrImpls</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="VxMath\VxMemoryMappedFile.cpp">
|
|
||||||
<Filter>Sources\VxMath</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\CKFileOthers.cpp">
|
|
||||||
<Filter>Sources\CK2</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\CKFileReader.cpp">
|
|
||||||
<Filter>Sources\CK2</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\CKFileWriter.cpp">
|
|
||||||
<Filter>Sources\CK2</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\CKGlobals.cpp">
|
|
||||||
<Filter>Sources\CK2</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\CKContext.cpp">
|
|
||||||
<Filter>Sources\CK2</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\CKStateChunkOthers.cpp">
|
|
||||||
<Filter>Sources\CK2</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKBeObject.cpp">
|
|
||||||
<Filter>Sources\CK2\ObjImpls</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKGroup.cpp">
|
|
||||||
<Filter>Sources\CK2\ObjImpls</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CK3dEntity.cpp">
|
|
||||||
<Filter>Sources\CK2\ObjImpls</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\MgrImpls\CKObjectManager.cpp">
|
|
||||||
<Filter>Sources\CK2\MgrImpls</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\MgrImpls\CKPathManager.cpp">
|
|
||||||
<Filter>Sources\CK2\MgrImpls</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\DataHandlers\CKBitmapHandler.cpp">
|
|
||||||
<Filter>Sources\CK2\DataHandlers</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="VTImage.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="VxMath\VxMath.cpp">
|
|
||||||
<Filter>Sources\VxMath</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\CKBitmapData.cpp">
|
|
||||||
<Filter>Sources\CK2</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKTexture.cpp">
|
|
||||||
<Filter>Sources\CK2\ObjImpls</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKMaterial.cpp">
|
|
||||||
<Filter>Sources\CK2\ObjImpls</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\ObjImpls\CKMesh.cpp">
|
|
||||||
<Filter>Sources\CK2\ObjImpls</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="XContainer\XTypes.cpp">
|
|
||||||
<Filter>Sources\XContainer</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\CKStateChunkReader.cpp">
|
|
||||||
<Filter>Sources\CK2</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CK2\CKStateChunkWriter.cpp">
|
|
||||||
<Filter>Sources\CK2</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="VTUtils.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="VTEncoding.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\CKDefines.hpp">
|
|
||||||
<Filter>Headers\CK2</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\CKEnums.hpp">
|
|
||||||
<Filter>Headers\CK2</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\CKFile.hpp">
|
|
||||||
<Filter>Headers\CK2</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\CKGlobals.hpp">
|
|
||||||
<Filter>Headers\CK2</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\CKIdentifiers.hpp">
|
|
||||||
<Filter>Headers\CK2</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\CKContext.hpp">
|
|
||||||
<Filter>Headers\CK2</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\CKStateChunk.hpp">
|
|
||||||
<Filter>Headers\CK2</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\CKTypes.hpp">
|
|
||||||
<Filter>Headers\CK2</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="VxMath\VxMemoryMappedFile.hpp">
|
|
||||||
<Filter>Headers\VxMath</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="VxMath\VxTypes.hpp">
|
|
||||||
<Filter>Headers\VxMath</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="XContainer\XTypes.hpp">
|
|
||||||
<Filter>Headers\XContainer</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="VTAll.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKObject.hpp">
|
|
||||||
<Filter>Headers\CK2\ObjImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\MgrImpls\CKBaseManager.hpp">
|
|
||||||
<Filter>Headers\CK2\MgrImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKBeObject.hpp">
|
|
||||||
<Filter>Headers\CK2\ObjImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKSceneObject.hpp">
|
|
||||||
<Filter>Headers\CK2\ObjImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKGroup.hpp">
|
|
||||||
<Filter>Headers\CK2\ObjImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKRenderObject.hpp">
|
|
||||||
<Filter>Headers\CK2\ObjImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CK3dEntity.hpp">
|
|
||||||
<Filter>Headers\CK2\ObjImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CK3dObject.hpp">
|
|
||||||
<Filter>Headers\CK2\ObjImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\MgrImpls\CKObjectManager.hpp">
|
|
||||||
<Filter>Headers\CK2\MgrImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\MgrImpls\CKPathManager.hpp">
|
|
||||||
<Filter>Headers\CK2\MgrImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="VxMath\VxEnums.hpp">
|
|
||||||
<Filter>Headers\VxMath</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="VxMath\VxMath.hpp">
|
|
||||||
<Filter>Headers\VxMath</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\DataHandlers\CKBitmapHandler.hpp">
|
|
||||||
<Filter>Headers\CK2\DataHandlers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\CKBitmapData.hpp">
|
|
||||||
<Filter>Headers\CK2</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKTexture.hpp">
|
|
||||||
<Filter>Headers\CK2\ObjImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKMaterial.hpp">
|
|
||||||
<Filter>Headers\CK2\ObjImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CK2\ObjImpls\CKMesh.hpp">
|
|
||||||
<Filter>Headers\CK2\ObjImpls</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="VTUserAll.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
18
LibRef.props
18
LibRef.props
|
@ -1,18 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets" />
|
|
||||||
<PropertyGroup Label="UserMacros">
|
|
||||||
<STB_PATH>D:\CppLib\stb</STB_PATH>
|
|
||||||
<ZLIB_PATH>D:\zlib</ZLIB_PATH>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup />
|
|
||||||
<ItemDefinitionGroup />
|
|
||||||
<ItemGroup>
|
|
||||||
<BuildMacro Include="ZLIB_PATH">
|
|
||||||
<Value>$(ZLIB_PATH)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
<BuildMacro Include="STB_PATH">
|
|
||||||
<Value>$(STB_PATH)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
|
@ -1,18 +1,8 @@
|
||||||
cmake_minimum_required(VERSION 3.12)
|
# Create executable
|
||||||
project(Unvirt LANGUAGES CXX)
|
add_executable(Unvirt "")
|
||||||
|
# Setup sources
|
||||||
# add libcmo if not existed
|
target_sources(Unvirt
|
||||||
if (NOT TARGET LibCmo)
|
PRIVATE
|
||||||
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
|
AccessibleValue.cpp
|
||||||
CmdHelper.cpp
|
CmdHelper.cpp
|
||||||
StringHelper.cpp
|
StringHelper.cpp
|
||||||
|
@ -21,25 +11,97 @@ set(unvirt_sources
|
||||||
UnvirtContext.cpp
|
UnvirtContext.cpp
|
||||||
Unvirt.cpp
|
Unvirt.cpp
|
||||||
)
|
)
|
||||||
|
# Setup headers
|
||||||
# generate program
|
target_sources(Unvirt
|
||||||
add_executable(Unvirt ${unvirt_sources})
|
|
||||||
target_link_libraries(Unvirt
|
|
||||||
PRIVATE
|
PRIVATE
|
||||||
LibCmo
|
FILE_SET HEADERS
|
||||||
IronPad
|
FILES
|
||||||
|
AccessibleValue.hpp
|
||||||
|
CmdHelper.hpp
|
||||||
|
StringHelper.hpp
|
||||||
|
StructFormatter.hpp
|
||||||
|
TerminalHelper.hpp
|
||||||
|
UnvirtContext.hpp
|
||||||
)
|
)
|
||||||
|
# Setup header infomation
|
||||||
target_include_directories(Unvirt
|
target_include_directories(Unvirt
|
||||||
PRIVATE
|
PRIVATE
|
||||||
${unvirt_headers}
|
"${CMAKE_CURRENT_LIST_DIR}"
|
||||||
|
YYCC::YYCCommonplace
|
||||||
|
LibCmo
|
||||||
)
|
)
|
||||||
|
# Setup linked library infomation
|
||||||
# set project standard
|
target_link_libraries(Unvirt
|
||||||
|
PRIVATE
|
||||||
|
YYCC::YYCCommonplace
|
||||||
|
LibCmo
|
||||||
|
)
|
||||||
|
# Setup C++ standard
|
||||||
set_target_properties(Unvirt
|
set_target_properties(Unvirt
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
CXX_STANDARD 20
|
CXX_STANDARD 20
|
||||||
CXX_STANDARD_REQUIRED 20
|
CXX_STANDARD_REQUIRED 20
|
||||||
CXX_EXTENSION OFF
|
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}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# )
|
||||||
|
|
|
@ -1,197 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<VCProjectVersion>16.0</VCProjectVersion>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<ProjectGuid>{77e7adb6-0d0c-4ba4-8de7-a284c7f83941}</ProjectGuid>
|
|
||||||
<RootNamespace>Unvirt</RootNamespace>
|
|
||||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="Shared">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\LibRef.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;../IronPad;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>zlibwapi.lib;LibCmo.lib;IronPad.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ZLIB_PATH)\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;$(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SolutionDir)out\$(Platform)\$(Configuration)\IronPad;</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_RELEASE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;../IronPad;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>zlibwapi.lib;LibCmo.lib;IronPad.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ZLIB_PATH)\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;$(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SolutionDir)out\$(Platform)\$(Configuration)\IronPad;</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;../IronPad;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>zlibwapi.lib;LibCmo.lib;IronPad.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ZLIB_PATH)\contrib\vstudio\vc14\x64\ZlibDllReleaseWithoutAsm;$(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SolutionDir)out\$(Platform)\$(Configuration)\IronPad;</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<PreprocessorDefinitions>LIBCMO_BUILD_RELEASE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>../LibCmo;../IronPad;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalDependencies>zlibwapi.lib;LibCmo.lib;IronPad.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ZLIB_PATH)\contrib\vstudio\vc14\x64\ZlibDllReleaseWithoutAsm;$(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SolutionDir)out\$(Platform)\$(Configuration)\IronPad;</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="AccessibleValue.cpp" />
|
|
||||||
<ClCompile Include="CmdHelper.cpp" />
|
|
||||||
<ClCompile Include="StructFormatter.cpp" />
|
|
||||||
<ClCompile Include="TerminalHelper.cpp" />
|
|
||||||
<ClCompile Include="StringHelper.cpp" />
|
|
||||||
<ClCompile Include="Unvirt.cpp" />
|
|
||||||
<ClCompile Include="UnvirtContext.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="AccessibleValue.hpp" />
|
|
||||||
<ClInclude Include="CmdHelper.hpp" />
|
|
||||||
<ClInclude Include="StructFormatter.hpp" />
|
|
||||||
<ClInclude Include="TerminalHelper.hpp" />
|
|
||||||
<ClInclude Include="StringHelper.hpp" />
|
|
||||||
<ClInclude Include="UnvirtContext.hpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,60 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Sources">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Headers">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resources">
|
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="Unvirt.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="AccessibleValue.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="StringHelper.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="TerminalHelper.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CmdHelper.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="StructFormatter.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="UnvirtContext.cpp">
|
|
||||||
<Filter>Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="AccessibleValue.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="StringHelper.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="TerminalHelper.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CmdHelper.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="StructFormatter.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="UnvirtContext.hpp">
|
|
||||||
<Filter>Headers</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
72
libcmo21.sln
72
libcmo21.sln
|
@ -1,72 +0,0 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 16
|
|
||||||
VisualStudioVersion = 16.0.31702.278
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibCmo", "LibCmo\LibCmo.vcxproj", "{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Unvirt", "Unvirt\Unvirt.vcxproj", "{77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
{A6454164-2153-45AE-BDB8-19C77014E0CC} = {A6454164-2153-45AE-BDB8-19C77014E0CC}
|
|
||||||
{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E} = {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IronPad", "IronPad\IronPad.vcxproj", "{A6454164-2153-45AE-BDB8-19C77014E0CC}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E} = {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BMap", "BMap\BMap.vcxproj", "{0F0A8B98-35D7-4B8E-AF0A-041B1BD80FD2}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
{A6454164-2153-45AE-BDB8-19C77014E0CC} = {A6454164-2153-45AE-BDB8-19C77014E0CC}
|
|
||||||
{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E} = {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Debug|x86 = Debug|x86
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
Release|x86 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Release|x64.Build.0 = Release|x64
|
|
||||||
{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Release|x86.Build.0 = Release|Win32
|
|
||||||
{77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Release|x64.Build.0 = Release|x64
|
|
||||||
{77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Release|x86.Build.0 = Release|Win32
|
|
||||||
{A6454164-2153-45AE-BDB8-19C77014E0CC}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{A6454164-2153-45AE-BDB8-19C77014E0CC}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{A6454164-2153-45AE-BDB8-19C77014E0CC}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{A6454164-2153-45AE-BDB8-19C77014E0CC}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{A6454164-2153-45AE-BDB8-19C77014E0CC}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{A6454164-2153-45AE-BDB8-19C77014E0CC}.Release|x64.Build.0 = Release|x64
|
|
||||||
{A6454164-2153-45AE-BDB8-19C77014E0CC}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{A6454164-2153-45AE-BDB8-19C77014E0CC}.Release|x86.Build.0 = Release|Win32
|
|
||||||
{0F0A8B98-35D7-4B8E-AF0A-041B1BD80FD2}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{0F0A8B98-35D7-4B8E-AF0A-041B1BD80FD2}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{0F0A8B98-35D7-4B8E-AF0A-041B1BD80FD2}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{0F0A8B98-35D7-4B8E-AF0A-041B1BD80FD2}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{0F0A8B98-35D7-4B8E-AF0A-041B1BD80FD2}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{0F0A8B98-35D7-4B8E-AF0A-041B1BD80FD2}.Release|x64.Build.0 = Release|x64
|
|
||||||
{0F0A8B98-35D7-4B8E-AF0A-041B1BD80FD2}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{0F0A8B98-35D7-4B8E-AF0A-041B1BD80FD2}.Release|x86.Build.0 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {7C36D9F6-B130-4675-A20E-CE3523231D08}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
Loading…
Reference in New Issue
Block a user