Packaging
Some checks failed
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 43s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 43s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m16s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m4s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m5s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 49s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 50s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m19s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m19s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 58s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 58s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m20s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m10s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m6s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 49s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 50s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m6s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m9s
Bin2CPP / Clang Format Checks (push) Successful in 8s
Conan Packaging / Package Bin2CPP/1.0.0 (push) Failing after 57s
Some checks failed
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 43s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 43s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m16s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m4s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m5s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 49s
Bin2CPP / Build & Test Debug with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 50s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m19s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m19s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 58s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 58s
Bin2CPP / Build & Test RelWithDebInfo with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m20s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 1m10s
Bin2CPP / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 1m6s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: OFF) (push) Successful in 49s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd (Unity Build: ON) (push) Successful in 50s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: OFF) (push) Successful in 1m6s
Bin2CPP / Build & Test Release with ./ConanProfiles/clangd_asan (Unity Build: ON) (push) Successful in 1m9s
Bin2CPP / Clang Format Checks (push) Successful in 8s
Conan Packaging / Package Bin2CPP/1.0.0 (push) Failing after 57s
This commit is contained in:
55
.gitea/workflows/package.yml
Normal file
55
.gitea/workflows/package.yml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
name: Conan Packaging
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- '**'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
env:
|
||||||
|
CCACHE_BASEDIR: ${{ github.workspace }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
conan-packages:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 120
|
||||||
|
container:
|
||||||
|
image: git.romainboullard.com/bigfootdev/linuxcppbuilder:main
|
||||||
|
env:
|
||||||
|
ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }}
|
||||||
|
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
|
||||||
|
name: "Package Bin2CPP/1.0.0"
|
||||||
|
steps:
|
||||||
|
- name: Set BRANCH_NAME
|
||||||
|
run: echo "BRANCH_NAME=$(echo $GITHUB_REF_NAME | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Install Node.js
|
||||||
|
run: apt-get update && apt-get install -y nodejs
|
||||||
|
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v6
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Show ccache stats before
|
||||||
|
run: ccache --zero-stats
|
||||||
|
|
||||||
|
- name: Run Conan packaging
|
||||||
|
run: |
|
||||||
|
echo "Building Bin2CPP@$1.0.0"
|
||||||
|
CONAN_LOGIN_USERNAME=${ARTIFACTORY_USER} \
|
||||||
|
CONAN_PASSWORD=${ARTIFACTORY_PASSWORD} \
|
||||||
|
conan create . \
|
||||||
|
--version=1.0.0 \
|
||||||
|
--user=bigfootdev \
|
||||||
|
--channel=${{ env.BRANCH_NAME }} \
|
||||||
|
-pr:b=./ConanProfiles/clang -pr:h=./ConanProfiles/clang \
|
||||||
|
--build=missing --remote=bigfootpackages
|
||||||
|
|
||||||
|
CONAN_LOGIN_USERNAME=${ARTIFACTORY_USER} \
|
||||||
|
CONAN_PASSWORD=${ARTIFACTORY_PASSWORD} \
|
||||||
|
conan upload Bin2CPP/1.0.0@bigfootdev/${{ env.BRANCH_NAME }} \
|
||||||
|
--only-recipe --remote=bigfootpackages
|
||||||
|
|
||||||
|
- name: Show ccache stats after
|
||||||
|
run: ccache --show-stats
|
||||||
@@ -50,3 +50,7 @@ if(${ASAN})
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
########INSTALL
|
||||||
|
|
||||||
|
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bin2CPPLib)
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bin2CPPLib)
|
||||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bin2CPPExe)
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bin2CPP)
|
||||||
23
CMake/Bin2CPPTargets.cmake
Normal file
23
CMake/Bin2CPPTargets.cmake
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
if(NOT TARGET Bin2CPP)
|
||||||
|
if(CMAKE_CROSSCOMPILING)
|
||||||
|
find_program(BIN2CPP_EXECUTABLE
|
||||||
|
NAMES Bin2CPP
|
||||||
|
PATHS ENV PATH
|
||||||
|
NO_DEFAULT_PATH
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
find_program(BIN2CPP_EXECUTABLE
|
||||||
|
NAMES Bin2CPP
|
||||||
|
PATHS "${CMAKE_CURRENT_LIST_DIR}"
|
||||||
|
NO_DEFAULT_PATH
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(BIN2CPP_EXECUTABLE)
|
||||||
|
get_filename_component(BIN2CPP_EXECUTABLE "${BIN2CPP_EXECUTABLE}" ABSOLUTE)
|
||||||
|
add_executable(Bin2CPP IMPORTED)
|
||||||
|
set_property(TARGET Bin2CPP PROPERTY IMPORTED_LOCATION ${BIN2CPP_EXECUTABLE})
|
||||||
|
else()
|
||||||
|
message(WARNING "Bin2CPP executable not found in ${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
@@ -15,11 +15,7 @@ else()
|
|||||||
find_package(mimalloc REQUIRED)
|
find_package(mimalloc REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${IS_MULTI_CONFIG})
|
find_package(cpptrace REQUIRED)
|
||||||
find_package(cpptrace REQUIRED)
|
|
||||||
elseif(${CMAKE_BUILD_TYPE} STREQUAL "Debug" OR ${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo")
|
|
||||||
find_package(cpptrace REQUIRED)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUILD_TESTS)
|
if(BUILD_TESTS)
|
||||||
find_package(GTest REQUIRED)
|
find_package(GTest REQUIRED)
|
||||||
|
|||||||
@@ -34,6 +34,3 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bin2CPP/Sources)
|
|||||||
if(${BUILD_TESTS})
|
if(${BUILD_TESTS})
|
||||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bin2CPP/Tests)
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bin2CPP/Tests)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_custom_target(NatVis SOURCES
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Vendor/NatVis/EASTL/EASTL.natvis)
|
|
||||||
761
Vendor/NatVis/EASTL/EASTL.natvis
vendored
761
Vendor/NatVis/EASTL/EASTL.natvis
vendored
@@ -1,761 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
This is a Microsoft natvis file, which allows visualization of complex variables in the
|
|
||||||
Microsoft debugger starting with VS2012. It's a successor to the AutoExp.dat file format.
|
|
||||||
|
|
||||||
This file needs to go into your C:\Users\<user>\Documents\Visual Studio 2011\Visualizers\
|
|
||||||
folder. Microsoft documentation states that it should go into a 2012 folder, but testing
|
|
||||||
in June of 2013 suggests that it still needs to be the 2011 folder.
|
|
||||||
|
|
||||||
You don't need to restart Visual Studio to use it, you just need to restart the debug
|
|
||||||
session. You can have multiple .natvis files and they will all be used.
|
|
||||||
|
|
||||||
VS2017 natvis documentation:
|
|
||||||
https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects
|
|
||||||
-->
|
|
||||||
|
|
||||||
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
|
|
||||||
|
|
||||||
<Type Name="eastl::unique_ptr<*>">
|
|
||||||
<DisplayString Condition="mPair.mFirst != nullptr">({(void*)mPair.mFirst} = {*mPair.mFirst})</DisplayString>
|
|
||||||
<DisplayString Condition="mPair.mFirst == nullptr">({nullptr})</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[pointer]">(void*)mPair.mFirst</Item>
|
|
||||||
<Item Name="[value]">*mPair.mFirst</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::shared_ptr<*>">
|
|
||||||
<DisplayString Condition="mpValue != nullptr">({(void*)mpValue} = {*mpValue})</DisplayString>
|
|
||||||
<DisplayString Condition="mpValue == nullptr">({nullptr})</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[pointer]">(void*)mpValue</Item>
|
|
||||||
<Item Name="[value]">*mpValue</Item>
|
|
||||||
<Item Name="[reference count]">mpRefCount->mRefCount</Item>
|
|
||||||
<Item Name="[weak reference count]">mpRefCount->mWeakRefCount</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::weak_ptr<*>">
|
|
||||||
<DisplayString>{((mpRefCount && mpRefCount->mRefCount) ? mpValue : nullptr)}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<ExpandedItem>mpRefCount && mpRefCount->mRefCount ? mpValue : nullptr</ExpandedItem>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::array<*,*>">
|
|
||||||
<DisplayString Condition="$T2 == 0">[{$T2}] {{}}</DisplayString>
|
|
||||||
<DisplayString Condition="$T2 == 1">[{$T2}] {{ {*mValue} }}</DisplayString>
|
|
||||||
<DisplayString Condition="$T2 == 2">[{$T2}] {{ {*mValue}, {*(mValue+1)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="$T2 == 3">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="$T2 == 4">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="$T2 == 5">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="$T2 == 6">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)}, {*(mValue+5)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="$T2 > 6">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)}, {*(mValue+5)}, ... }}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[size]">$T2</Item>
|
|
||||||
<ArrayItems>
|
|
||||||
<Size>$T2</Size>
|
|
||||||
<ValuePointer>mValue</ValuePointer>
|
|
||||||
</ArrayItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::basic_string<*>">
|
|
||||||
<DisplayString Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">"{mPair.mFirst.heap.mpBegin,sb}"</DisplayString>
|
|
||||||
<DisplayString Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">"{mPair.mFirst.sso.mData,sb}"</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[length]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mnSize</Item>
|
|
||||||
<Item Name="[capacity]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(mPair.mFirst.heap.mnCapacity & ~kHeapMask)</Item>
|
|
||||||
<Item Name="[value]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mpBegin,sb</Item>
|
|
||||||
|
|
||||||
<Item Name="[length]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(SSOLayout::SSO_CAPACITY - mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize)</Item>
|
|
||||||
<Item Name="[capacity]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">SSOLayout::SSO_CAPACITY</Item>
|
|
||||||
<Item Name="[value]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.sso.mData,sb</Item>
|
|
||||||
|
|
||||||
<Item Name="[uses heap]">!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
|
|
||||||
<Type Name="eastl::basic_string<wchar_t,*>">
|
|
||||||
<DisplayString Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">{mPair.mFirst.heap.mpBegin,su}</DisplayString>
|
|
||||||
<DisplayString Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">{mPair.mFirst.sso.mData,su}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[length]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mnSize</Item>
|
|
||||||
<Item Name="[capacity]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(mPair.mFirst.heap.mnCapacity & ~kHeapMask)</Item>
|
|
||||||
<Item Name="[value]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mpBegin,su</Item>
|
|
||||||
|
|
||||||
<Item Name="[length]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(SSOLayout::SSO_CAPACITY - mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize)</Item>
|
|
||||||
<Item Name="[capacity]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">SSOLayout::SSO_CAPACITY</Item>
|
|
||||||
<Item Name="[value]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.sso.mData,su</Item>
|
|
||||||
|
|
||||||
<Item Name="[uses heap]">!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::pair<*>">
|
|
||||||
<DisplayString>({first}, {second})</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="first">first</Item>
|
|
||||||
<Item Name="second">second</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::span<*>">
|
|
||||||
<DisplayString Condition="mnSize == 0">[{mnSize}] {{}}</DisplayString>
|
|
||||||
<DisplayString Condition="mnSize == 1">[{mnSize}] {{ {*mpData} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mnSize == 2">[{mnSize}] {{ {*mpData}, {*(mpData+1)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mnSize == 3">[{mnSize}] {{ {*mpData}, {*(mpData+1)}, {*(mpData+2)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mnSize == 4">[{mnSize}] {{ {*mpData}, {*(mpData+1)}, {*(mpData+2)}, {*(mpData+3)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mnSize == 5">[{mnSize}] {{ {*mpData}, {*(mpData+1)}, {*(mpData+2)}, {*(mpData+3)}, {*(mpData+4)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mnSize == 6">[{mnSize}] {{ {*mpData}, {*(mpData+1)}, {*(mpData+2)}, {*(mpData+3)}, {*(mpData+4)}, {*(mpData+5)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mnSize > 6">[{mnSize}] {{ {*mpData}, {*(mpData+1)}, {*(mpData+2)}, {*(mpData+3)}, {*(mpData+4)}, {*(mpData+5)}, ... }}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[size]">mnSize</Item>
|
|
||||||
<ArrayItems>
|
|
||||||
<Size>mnSize</Size>
|
|
||||||
<ValuePointer>mpData</ValuePointer>
|
|
||||||
</ArrayItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::VectorBase<*>">
|
|
||||||
<DisplayString Condition="mpEnd == mpBegin">[{mpEnd - mpBegin}] {{}}</DisplayString>
|
|
||||||
<DisplayString Condition="mpEnd - mpBegin == 1">[{mpEnd - mpBegin}] {{ {*mpBegin} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mpEnd - mpBegin == 2">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mpEnd - mpBegin == 3">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mpEnd - mpBegin == 4">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mpEnd - mpBegin == 5">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mpEnd - mpBegin == 6">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)}, {*(mpBegin+5)} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mpEnd - mpBegin > 6">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)}, {*(mpBegin+5)}, ... }}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[size]">mpEnd - mpBegin</Item>
|
|
||||||
<Item Name="[capacity]">mCapacityAllocator.mFirst - mpBegin</Item>
|
|
||||||
<ArrayItems>
|
|
||||||
<Size>mpEnd - mpBegin</Size>
|
|
||||||
<ValuePointer>mpBegin</ValuePointer>
|
|
||||||
</ArrayItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::DequeBase<*,*,*>">
|
|
||||||
<DisplayString Condition="mItBegin.mpCurrent == mItEnd.mpCurrent">
|
|
||||||
[0] {{}}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin) == 1">
|
|
||||||
[1] {{ {*mItBegin.mpCurrent} }}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin) != 0">
|
|
||||||
[{(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)}]
|
|
||||||
{{
|
|
||||||
{*mItBegin.mpCurrent},
|
|
||||||
...
|
|
||||||
}}
|
|
||||||
</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[size]">(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)</Item>
|
|
||||||
<IndexListItems>
|
|
||||||
<Size>(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)</Size>
|
|
||||||
<ValueNode>mItBegin.mpCurrentArrayPtr[(mItBegin.mpCurrent-mItBegin.mpBegin + $i) / $T3][(mItBegin.mpCurrent-mItBegin.mpBegin + $i) % $T3]</ValueNode>
|
|
||||||
</IndexListItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::DequeIterator<*>">
|
|
||||||
<DisplayString>{*mpCurrent}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="Value">*mpCurrent</Item>
|
|
||||||
<Item Name="Previous" Condition="mpCurrent == mpBegin">*(*(mpCurrentArrayPtr-1) + (mpEnd-mpBegin) - 1)</Item>
|
|
||||||
<Item Name="Previous" Condition="mpCurrent != mpBegin">*(mpCurrent-1)</Item>
|
|
||||||
<Item Name="Next" Condition="mpCurrent+1 == mpEnd">**(mpCurrentArrayPtr+1)</Item>
|
|
||||||
<Item Name="Next" Condition="mpCurrent+1 != mpEnd">*(mpCurrent+1)</Item>
|
|
||||||
<Item Name="Begin">mpCurrent == mpBegin</Item>
|
|
||||||
<Item Name="End">mpCurrent+1 == mpEnd</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::queue<*>">
|
|
||||||
<AlternativeType Name="eastl::priority_queue<*>" />
|
|
||||||
<AlternativeType Name="eastl::stack<*>" />
|
|
||||||
<DisplayString>{c}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<ExpandedItem>c</ExpandedItem>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::ListBase<*>">
|
|
||||||
<DisplayString Condition="mNodeAllocator.mFirst.mpNext == &mNodeAllocator.mFirst">
|
|
||||||
[0] {{}}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="mNodeAllocator.mFirst.mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext == &mNodeAllocator.mFirst">
|
|
||||||
[1] {{ {((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext)->mValue} }}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="mNodeAllocator.mFirst.mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext->mpNext == &mNodeAllocator.mFirst">
|
|
||||||
[2]
|
|
||||||
{{
|
|
||||||
{((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext)->mValue},
|
|
||||||
{((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext->mpNext)->mValue}
|
|
||||||
}}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="mNodeAllocator.mFirst.mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext->mpNext != &mNodeAllocator.mFirst">
|
|
||||||
[?]
|
|
||||||
{{
|
|
||||||
{((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext)->mValue},
|
|
||||||
{((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext->mpNext)->mValue},
|
|
||||||
...
|
|
||||||
}}
|
|
||||||
</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Synthetic Name="NOTE!">
|
|
||||||
<DisplayString>Content of lists will repeat indefinitely. Keep that in mind!</DisplayString>
|
|
||||||
</Synthetic>
|
|
||||||
<LinkedListItems>
|
|
||||||
<HeadPointer>mNodeAllocator.mFirst.mpNext</HeadPointer>
|
|
||||||
<NextPointer>mpNext</NextPointer>
|
|
||||||
<ValueNode>((eastl::ListNode<$T1>*)this)->mValue</ValueNode>
|
|
||||||
</LinkedListItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::ListNode<*>">
|
|
||||||
<DisplayString>{mValue}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="Value">mValue</Item>
|
|
||||||
<Item Name="Next">*(eastl::ListNode<$T1>*)mpNext</Item>
|
|
||||||
<Item Name="Previous">*(eastl::ListNode<$T1>*)mpPrev</Item>
|
|
||||||
<Synthetic Name="NOTE!">
|
|
||||||
<DisplayString>Content of lists will repeat indefinitely. Keep that in mind!</DisplayString>
|
|
||||||
</Synthetic>
|
|
||||||
<Synthetic Name="List">
|
|
||||||
<DisplayString>The rest of the list follows:</DisplayString>
|
|
||||||
</Synthetic>
|
|
||||||
<LinkedListItems>
|
|
||||||
<HeadPointer>(eastl::ListNode<$T1>*)mpNext->mpNext</HeadPointer>
|
|
||||||
<NextPointer>(eastl::ListNode<$T1>*)mpNext</NextPointer>
|
|
||||||
<ValueNode>mValue</ValueNode>
|
|
||||||
</LinkedListItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::ListIterator<*>">
|
|
||||||
<DisplayString>{*mpNode}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<ExpandedItem>*(eastl::ListNode<$T1>*)mpNode</ExpandedItem>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::SListBase<*>">
|
|
||||||
<DisplayString Condition="mNode.mpNext == 0">
|
|
||||||
[0] {{}}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="mNode.mpNext != 0 && mNode.mpNext->mpNext == 0">
|
|
||||||
[1]
|
|
||||||
{{
|
|
||||||
{((eastl::SListNode<$T1>*)mNode.mpNext)->mValue}
|
|
||||||
}}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="mNode.mpNext != 0 && mNode.mpNext->mpNext != 0 && mNode.mpNext->mpNext->mpNext == 0">
|
|
||||||
[2]
|
|
||||||
{{
|
|
||||||
{((eastl::SListNode<$T1>*)mNode.mpNext)->mValue},
|
|
||||||
{((eastl::SListNode<$T1>*)mNode.mpNext->mpNext)->mValue}
|
|
||||||
}}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="mNode.mpNext != 0 && mNode.mpNext->mpNext != 0 && mNode.mpNext->mpNext->mpNext != 0">
|
|
||||||
[?]
|
|
||||||
{{
|
|
||||||
{((eastl::SListNode<$T1>*)mNode.mpNext)->mValue},
|
|
||||||
{((eastl::SListNode<$T1>*)mNode.mpNext->mpNext)->mValue},
|
|
||||||
...
|
|
||||||
}}
|
|
||||||
</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<LinkedListItems>
|
|
||||||
<HeadPointer>mNode.mpNext</HeadPointer>
|
|
||||||
<NextPointer>mpNext</NextPointer>
|
|
||||||
<ValueNode>((eastl::SListNode<$T1>*)this)->mValue</ValueNode>
|
|
||||||
</LinkedListItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::SListNode<*>">
|
|
||||||
<DisplayString>{mValue}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="Value">mValue</Item>
|
|
||||||
<Item Name="Next">*(eastl::SListNode<$T1>*)mpNext</Item>
|
|
||||||
<Synthetic Name="List">
|
|
||||||
<DisplayString>The rest of the list follows:</DisplayString>
|
|
||||||
</Synthetic>
|
|
||||||
<LinkedListItems>
|
|
||||||
<HeadPointer>mpNext == nullptr ? nullptr : (eastl::SListNode<$T1>*)mpNext->mpNext</HeadPointer>
|
|
||||||
<NextPointer>(eastl::SListNode<$T1>*)mpNext</NextPointer>
|
|
||||||
<ValueNode>mValue</ValueNode>
|
|
||||||
</LinkedListItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::SListIterator<*>">
|
|
||||||
<DisplayString>{*mpNode}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<ExpandedItem>*(eastl::SListNode<$T1>*)mpNode</ExpandedItem>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::intrusive_list_base">
|
|
||||||
<DisplayString Condition="mAnchor.mpNext == &mAnchor">[0] {{}}</DisplayString>
|
|
||||||
<DisplayString Condition="mAnchor.mpNext != &mAnchor && mAnchor.mpNext->mpNext == &mAnchor">[1] {{ {mAnchor.mpNext} }}</DisplayString>
|
|
||||||
<DisplayString Condition="mAnchor.mpNext != &mAnchor && mAnchor.mpNext->mpNext != &mAnchor">[?] {{ {mAnchor.mpNext}, ... }}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Synthetic Name="NOTE!">
|
|
||||||
<DisplayString>Content of intrusive lists will repeat indefinitely. Keep that in mind!</DisplayString>
|
|
||||||
</Synthetic>
|
|
||||||
<LinkedListItems>
|
|
||||||
<HeadPointer>mAnchor.mpNext</HeadPointer>
|
|
||||||
<NextPointer>mpNext</NextPointer>
|
|
||||||
<ValueNode>*this</ValueNode>
|
|
||||||
</LinkedListItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::intrusive_list_iterator<*>">
|
|
||||||
<DisplayString>{*($T1*)mpNode}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<ExpandedItem>*($T1*)mpNode</ExpandedItem>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::set<*>">
|
|
||||||
<AlternativeType Name="eastl::multiset<*>" />
|
|
||||||
<DisplayString Condition="mnSize == 0">
|
|
||||||
[0] {{}}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="mnSize == 1">
|
|
||||||
[1]
|
|
||||||
{{
|
|
||||||
{((eastl::rbtree_node<$T1>*)mAnchor.mpNodeLeft)->mValue}
|
|
||||||
}}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="mnSize > 1">
|
|
||||||
[{mnSize}]
|
|
||||||
{{
|
|
||||||
{((eastl::rbtree_node<$T1>*)mAnchor.mpNodeLeft)->mValue},
|
|
||||||
...
|
|
||||||
}}
|
|
||||||
</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[size]">mnSize</Item>
|
|
||||||
<TreeItems>
|
|
||||||
<Size>mnSize</Size>
|
|
||||||
<HeadPointer>mAnchor.mpNodeParent</HeadPointer>
|
|
||||||
<LeftPointer>mpNodeLeft</LeftPointer>
|
|
||||||
<RightPointer>mpNodeRight</RightPointer>
|
|
||||||
<ValueNode>((eastl::rbtree_node<$T1>*)this)->mValue</ValueNode>
|
|
||||||
</TreeItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::rbtree<*,*>">
|
|
||||||
<DisplayString Condition="mnSize == 0">
|
|
||||||
[0] {{}}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="mnSize == 1">
|
|
||||||
[1]
|
|
||||||
{{
|
|
||||||
{((eastl::rbtree_node<$T2>*)mAnchor.mpNodeLeft)->mValue}
|
|
||||||
}}
|
|
||||||
</DisplayString>
|
|
||||||
<DisplayString Condition="mnSize > 1">
|
|
||||||
[{mnSize}]
|
|
||||||
{{
|
|
||||||
{((eastl::rbtree_node<$T2>*)mAnchor.mpNodeLeft)->mValue},
|
|
||||||
...
|
|
||||||
}}
|
|
||||||
</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[size]">mnSize</Item>
|
|
||||||
<TreeItems>
|
|
||||||
<Size>mnSize</Size>
|
|
||||||
<HeadPointer>mAnchor.mpNodeParent</HeadPointer>
|
|
||||||
<LeftPointer>mpNodeLeft</LeftPointer>
|
|
||||||
<RightPointer>mpNodeRight</RightPointer>
|
|
||||||
<ValueNode>((eastl::rbtree_node<$T2>*)this)->mValue</ValueNode>
|
|
||||||
</TreeItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::rbtree_node<*>">
|
|
||||||
<DisplayString>{mValue}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="Value">mValue</Item>
|
|
||||||
<Synthetic Name="NOTE!">
|
|
||||||
<DisplayString>It is possible to expand parents that do not exist.</DisplayString>
|
|
||||||
</Synthetic>
|
|
||||||
<Item Name="Parent">*(eastl::rbtree_node<$T1>*)mpNodeParent</Item>
|
|
||||||
<Item Name="Left">*(eastl::rbtree_node<$T1>*)mpNodeLeft</Item>
|
|
||||||
<Item Name="Right">*(eastl::rbtree_node<$T1>*)mpNodeRight</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::rbtree_iterator<*>">
|
|
||||||
<DisplayString>{*(eastl::rbtree_node<$T1>*)mpNode}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="Node">*(eastl::rbtree_node<$T1>*)mpNode</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
|
|
||||||
<Type Name="eastl::hashtable<*>">
|
|
||||||
<DisplayString Condition="mnElementCount == 0">[{mnElementCount}] {{}}</DisplayString>
|
|
||||||
<DisplayString Condition="mnElementCount != 0">[{mnElementCount}] {{ ... }}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<ArrayItems IncludeView="detailed">
|
|
||||||
<Size>mnBucketCount</Size>
|
|
||||||
<ValuePointer>mpBucketArray</ValuePointer>
|
|
||||||
</ArrayItems>
|
|
||||||
<CustomListItems ExcludeView="detailed">
|
|
||||||
<Variable Name="bucketIndex" InitialValue="0"/>
|
|
||||||
<Variable Name="entry" InitialValue ="mpBucketArray[bucketIndex]"/>
|
|
||||||
<Loop>
|
|
||||||
<Item Condition="entry != nullptr">entry->mValue</Item>
|
|
||||||
<If Condition="entry != nullptr">
|
|
||||||
<Exec>entry = entry->mpNext</Exec>
|
|
||||||
</If>
|
|
||||||
<If Condition="entry == nullptr">
|
|
||||||
<Exec>bucketIndex++</Exec>
|
|
||||||
<Break Condition="bucketIndex == mnBucketCount"/>
|
|
||||||
<Exec>entry = mpBucketArray[bucketIndex]</Exec>
|
|
||||||
</If>
|
|
||||||
</Loop>
|
|
||||||
</CustomListItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<!-- specifically for hash_map (instead of base implementation hashtable),
|
|
||||||
show the key as name, and value as value, instead of index -> pair<key, value> -->
|
|
||||||
<Type Name="eastl::hash_map<*>">
|
|
||||||
<DisplayString Condition="mnElementCount == 0">[{mnElementCount}] {{}}</DisplayString>
|
|
||||||
<DisplayString Condition="mnElementCount != 0">[{mnElementCount}] {{ ... }}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<CustomListItems ExcludeView="detailed">
|
|
||||||
<Variable Name="bucketIndex" InitialValue="0"/>
|
|
||||||
<Variable Name="entry" InitialValue ="mpBucketArray[bucketIndex]"/>
|
|
||||||
<Loop>
|
|
||||||
<Item Name="[{entry->mValue.first}]" Condition="entry != nullptr">entry->mValue.second</Item>
|
|
||||||
<If Condition="entry != nullptr">
|
|
||||||
<Exec>entry = entry->mpNext</Exec>
|
|
||||||
</If>
|
|
||||||
<If Condition="entry == nullptr">
|
|
||||||
<Exec>bucketIndex++</Exec>
|
|
||||||
<Break Condition="bucketIndex == mnBucketCount"/>
|
|
||||||
<Exec>entry = mpBucketArray[bucketIndex]</Exec>
|
|
||||||
</If>
|
|
||||||
</Loop>
|
|
||||||
</CustomListItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::hash_node<*>">
|
|
||||||
<DisplayString Condition="this != 0 && mpNext != 0"> {mValue}, {*mpNext}</DisplayString>
|
|
||||||
<DisplayString Condition="this != 0 && mpNext == 0"> {mValue}</DisplayString>
|
|
||||||
<DisplayString Condition="this == 0"></DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<LinkedListItems>
|
|
||||||
<HeadPointer>this</HeadPointer>
|
|
||||||
<NextPointer>mpNext</NextPointer>
|
|
||||||
<ValueNode>mValue</ValueNode>
|
|
||||||
</LinkedListItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::hashtable_iterator_base<*>">
|
|
||||||
<DisplayString>{mpNode->mValue}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<ExpandedItem>mpNode->mValue</ExpandedItem>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::reverse_iterator<*>">
|
|
||||||
<DisplayString>{*(mIterator-1)}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<ExpandedItem>mIterator-1</ExpandedItem>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::bitset<*>">
|
|
||||||
<DisplayString>{{count = {kSize}}}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[count]">kSize</Item>
|
|
||||||
<CustomListItems>
|
|
||||||
<Variable Name="iWord" InitialValue="0" />
|
|
||||||
<Variable Name="iBitInWord" InitialValue="0" />
|
|
||||||
<Variable Name="bBitValue" InitialValue="false" />
|
|
||||||
|
|
||||||
<Size>kSize</Size>
|
|
||||||
|
|
||||||
<Loop>
|
|
||||||
<Exec>bBitValue = ((mWord[iWord] >> iBitInWord) % 2) != 0 ? true : false</Exec>
|
|
||||||
<Item>bBitValue</Item>
|
|
||||||
<Exec>iBitInWord++</Exec>
|
|
||||||
<If Condition="iBitInWord == kBitsPerWord">
|
|
||||||
<Exec>iWord++</Exec>
|
|
||||||
<Exec>iBitInWord = 0</Exec>
|
|
||||||
</If>
|
|
||||||
</Loop>
|
|
||||||
</CustomListItems>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::ring_buffer<*,*,*>">
|
|
||||||
<DisplayString>{c}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<ExpandedItem>c</ExpandedItem>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::basic_string_view<*>">
|
|
||||||
<DisplayString>{mpBegin,[mnCount]}</DisplayString>
|
|
||||||
<StringView>mpBegin,[mnCount]</StringView>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::compressed_pair_imp<*>">
|
|
||||||
<DisplayString Condition="($T3) == 0" Optional="true">({mFirst}, {mSecond})</DisplayString>
|
|
||||||
<DisplayString Condition="($T3) == 1" Optional="true">({mSecond})</DisplayString>
|
|
||||||
<DisplayString Condition="($T3) == 2" Optional="true">({mFirst})</DisplayString>
|
|
||||||
<DisplayString Condition="($T3) == 3" Optional="true">(empty)</DisplayString>
|
|
||||||
<DisplayString Condition="($T3) == 4" Optional="true">(empty)</DisplayString>
|
|
||||||
<DisplayString Condition="($T3) == 5" Optional="true">({mFirst}, {mSecond})</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::optional<*>">
|
|
||||||
<Intrinsic Name="value" Expression="*($T1*)&val"/>
|
|
||||||
<DisplayString Condition="!engaged">nullopt</DisplayString>
|
|
||||||
<DisplayString Condition="engaged">{value()}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Condition="engaged" Name="value">value()</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::ratio<*>">
|
|
||||||
<DisplayString>{$T1} to {$T2}}</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
|
|
||||||
<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1000000000> >">
|
|
||||||
<DisplayString>{mRep} nanoseconds</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1000000> >">
|
|
||||||
<DisplayString>{mRep} microseconds</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1000> >">
|
|
||||||
<DisplayString>{mRep} milliseconds</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1> >">
|
|
||||||
<DisplayString>{mRep} seconds</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::chrono::duration<*,eastl::ratio<60,1> >">
|
|
||||||
<DisplayString>{mRep} minutes</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::chrono::duration<*,eastl::ratio<3600,1> >">
|
|
||||||
<DisplayString>{mRep} hours</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::chrono::duration<*,eastl::ratio<*,*> >">
|
|
||||||
<DisplayString>{mRep} duration with ratio = [{$T2} : {$T3}] </DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Type Name="eastl::function<*>">
|
|
||||||
<DisplayString Condition="mInvokeFuncPtr == nullptr">empty</DisplayString>
|
|
||||||
<DisplayString>{mInvokeFuncPtr}</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
|
|
||||||
<Type Name="eastl::reference_wrapper<*>">
|
|
||||||
<DisplayString>{*val}</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
This implementation isn't ideal because it can't switch between showing inline value vs values stored in a heap allocation.
|
|
||||||
We are hitting the limit of natvis scripting that we can't workaround unless we change the implementation of eastl::any.
|
|
||||||
-->
|
|
||||||
<Type Name="eastl::any">
|
|
||||||
<DisplayString Condition="m_handler == nullptr">empty</DisplayString>
|
|
||||||
<DisplayString Condition="m_handler != nullptr">{m_storage.external_storage}</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
|
|
||||||
<Type Name="eastl::atomic<*>">
|
|
||||||
<DisplayString>{mAtomic}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<ExpandedItem>mAtomic</ExpandedItem>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::atomic_flag">
|
|
||||||
<DisplayString>{mFlag.mAtomic}</DisplayString>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::variant<*>">
|
|
||||||
<Intrinsic Name="index" Expression="(int)mIndex"/>
|
|
||||||
<DisplayString Condition="index() == size_t(-1)">[valueless_by_exception]</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 0" Optional="true">{{ index=0, value={($T1*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 1" Optional="true">{{ index=1, value={($T2*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 2" Optional="true">{{ index=2, value={($T3*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 3" Optional="true">{{ index=3, value={($T4*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 4" Optional="true">{{ index=4, value={($T5*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 5" Optional="true">{{ index=5, value={($T6*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 6" Optional="true">{{ index=6, value={($T7*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 7" Optional="true">{{ index=7, value={($T8*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 8" Optional="true">{{ index=8, value={($T9*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 9" Optional="true">{{ index=9, value={($T10*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 10" Optional="true">{{ index=10, value={($T11*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 11" Optional="true">{{ index=11, value={($T12*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 12" Optional="true">{{ index=12, value={($T13*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 13" Optional="true">{{ index=13, value={($T14*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 14" Optional="true">{{ index=14, value={($T15*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 15" Optional="true">{{ index=15, value={($T16*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 16" Optional="true">{{ index=16, value={($T17*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 17" Optional="true">{{ index=17, value={($T18*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 18" Optional="true">{{ index=18, value={($T19*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 19" Optional="true">{{ index=19, value={($T20*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 20" Optional="true">{{ index=20, value={($T21*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 21" Optional="true">{{ index=21, value={($T22*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 22" Optional="true">{{ index=22, value={($T23*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 23" Optional="true">{{ index=23, value={($T24*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 24" Optional="true">{{ index=24, value={($T25*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 25" Optional="true">{{ index=25, value={($T26*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 26" Optional="true">{{ index=26, value={($T27*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 27" Optional="true">{{ index=27, value={($T28*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 28" Optional="true">{{ index=28, value={($T29*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 29" Optional="true">{{ index=29, value={($T30*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<DisplayString Condition="index() == 30" Optional="true">{{ index=30, value={($T31*)mStorage.mBuffer.mCharData}}</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="index">index()</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 0" Optional="true">($T1*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 1" Optional="true">($T2*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 2" Optional="true">($T3*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 3" Optional="true">($T4*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 4" Optional="true">($T5*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 5" Optional="true">($T6*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 6" Optional="true">($T7*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 7" Optional="true">($T8*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 8" Optional="true">($T9*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 9" Optional="true">($T10*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 10" Optional="true">($T11*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 11" Optional="true">($T12*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 12" Optional="true">($T13*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 13" Optional="true">($T14*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 14" Optional="true">($T15*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 15" Optional="true">($T16*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 16" Optional="true">($T17*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 17" Optional="true">($T18*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 18" Optional="true">($T19*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 19" Optional="true">($T20*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 20" Optional="true">($T21*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 21" Optional="true">($T22*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 22" Optional="true">($T23*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 23" Optional="true">($T24*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 24" Optional="true">($T25*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 25" Optional="true">($T26*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 26" Optional="true">($T27*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 27" Optional="true">($T28*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 28" Optional="true">($T29*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 29" Optional="true">($T30*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
<Item Name="[value]" Condition="index() == 30" Optional="true">($T31*)mStorage.mBuffer.mCharData</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
|
|
||||||
<Type Name="eastl::tuple<>">
|
|
||||||
<DisplayString IncludeView="noparens"></DisplayString>
|
|
||||||
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
||||||
<Expand/>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::tuple<*>">
|
|
||||||
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}</DisplayString>
|
|
||||||
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::tuple<*,*>">
|
|
||||||
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}</DisplayString>
|
|
||||||
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::tuple<*,*,*>">
|
|
||||||
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}</DisplayString>
|
|
||||||
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::tuple<*,*,*,*>">
|
|
||||||
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}</DisplayString>
|
|
||||||
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::tuple<*,*,*,*,*>">
|
|
||||||
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue}</DisplayString>
|
|
||||||
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[4]">(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::tuple<*,*,*,*,*,*>">
|
|
||||||
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue}</DisplayString>
|
|
||||||
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[4]">(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[5]">(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
<Type Name="eastl::tuple<*,*,*,*,*,*,*>">
|
|
||||||
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<6,$T7,0>*)&mImpl)).mValue}</DisplayString>
|
|
||||||
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
||||||
<Expand>
|
|
||||||
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[4]">(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[5]">(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue</Item>
|
|
||||||
<Item Name="[6]">(*((eastl::Internal::TupleLeaf<6,$T7,0>*)&mImpl)).mValue</Item>
|
|
||||||
</Expand>
|
|
||||||
</Type>
|
|
||||||
|
|
||||||
|
|
||||||
</AutoVisualizer>
|
|
||||||
24
conanfile.py
24
conanfile.py
@@ -6,7 +6,7 @@ import os
|
|||||||
required_conan_version = ">=1.33.0"
|
required_conan_version = ">=1.33.0"
|
||||||
|
|
||||||
class Bin2CPP(ConanFile):
|
class Bin2CPP(ConanFile):
|
||||||
name = "Bin2CPP"
|
name = "bin2cpp"
|
||||||
homepage = "https://git.romainboullard.com/rboullard/Bin2CPP"
|
homepage = "https://git.romainboullard.com/rboullard/Bin2CPP"
|
||||||
description = "A utility that converts files to CPP headers"
|
description = "A utility that converts files to CPP headers"
|
||||||
topics = ("utility")
|
topics = ("utility")
|
||||||
@@ -33,6 +33,11 @@ class Bin2CPP(ConanFile):
|
|||||||
|
|
||||||
generators = "CMakeDeps"
|
generators = "CMakeDeps"
|
||||||
|
|
||||||
|
def export_sources(self):
|
||||||
|
copy(self, "CMakeLists.txt", self.recipe_folder, self.export_sources_folder)
|
||||||
|
copy(self, os.path.join("Bin2CPP", "*"), self.recipe_folder, self.export_sources_folder)
|
||||||
|
copy(self, os.path.join("CMake", "*"), self.recipe_folder, self.export_sources_folder)
|
||||||
|
|
||||||
def layout(self):
|
def layout(self):
|
||||||
cmake_layout(self)
|
cmake_layout(self)
|
||||||
|
|
||||||
@@ -49,7 +54,6 @@ class Bin2CPP(ConanFile):
|
|||||||
self.requires("mimalloc/3.2.8@bigfootdev/main", transitive_headers=True)
|
self.requires("mimalloc/3.2.8@bigfootdev/main", transitive_headers=True)
|
||||||
self.requires("cli11/2.6.1@bigfootdev/main")
|
self.requires("cli11/2.6.1@bigfootdev/main")
|
||||||
|
|
||||||
if(self.settings.build_type == "RelWithDebInfo" or self.settings.build_type == "Debug"):
|
|
||||||
self.requires("cpptrace/1.0.4", transitive_headers=True)
|
self.requires("cpptrace/1.0.4", transitive_headers=True)
|
||||||
|
|
||||||
if(self.options.build_tests):
|
if(self.options.build_tests):
|
||||||
@@ -68,3 +72,19 @@ class Bin2CPP(ConanFile):
|
|||||||
cmake = CMake(self)
|
cmake = CMake(self)
|
||||||
cmake.configure()
|
cmake.configure()
|
||||||
cmake.build()
|
cmake.build()
|
||||||
|
|
||||||
|
def package(self):
|
||||||
|
copy(self, pattern="LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
|
||||||
|
cmake = CMake(self)
|
||||||
|
cmake.install()
|
||||||
|
|
||||||
|
copy(self, "Bin2CPPTargets.cmake",
|
||||||
|
src=os.path.join(self.source_folder, "CMake"),
|
||||||
|
dst=os.path.join(self.package_folder, "bin"))
|
||||||
|
|
||||||
|
@property
|
||||||
|
def _module_path(self):
|
||||||
|
return os.path.join("bin", "Bin2CPPTargets.cmake")
|
||||||
|
|
||||||
|
def package_info(self):
|
||||||
|
self.cpp_info.set_property("cmake_build_modules", [self._module_path])
|
||||||
7
test_package/CMakeLists.txt
Normal file
7
test_package/CMakeLists.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.15)
|
||||||
|
project(test_package LANGUAGES C)
|
||||||
|
|
||||||
|
find_package(Bin2CPP REQUIRED CONFIG)
|
||||||
|
|
||||||
|
find_program(BIN2CPP_EXECUTABLE NAMES Bin2CPP)
|
||||||
|
execute_process(COMMAND ${BIN2CPP_EXECUTABLE} -h)
|
||||||
18
test_package/conanfile.py
Normal file
18
test_package/conanfile.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
from conan import ConanFile
|
||||||
|
from conan.tools.build import can_run
|
||||||
|
from conan.tools.cmake import CMake, cmake_layout
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
class TestPackageConan(ConanFile):
|
||||||
|
settings = "os", "arch", "compiler", "build_type"
|
||||||
|
generators = "CMakeToolchain", "CMakeDeps", "VirtualRunEnv"
|
||||||
|
|
||||||
|
def layout(self):
|
||||||
|
cmake_layout(self)
|
||||||
|
|
||||||
|
def requirements(self):
|
||||||
|
self.requires(self.tested_reference_str)
|
||||||
|
|
||||||
|
def test(self):
|
||||||
|
self.run("Bin2CPP --help", env="conanrun")
|
||||||
Reference in New Issue
Block a user