Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 28 additions & 72 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,15 @@ jobs:
runs-on: ${{ matrix.os[0] }}
steps:
- uses: actions/checkout@v4
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '7a57b42f959ad138a5283477fe2e6c97a7cb852f'
- name: Install dependencies from vcpkg
shell: bash
run: |
$VCPKG_ROOT/vcpkg install vulkan-headers:${{ matrix.os[1] }}
- name: Checkout submodules
run: |
git submodule update --init -- "CMake"
git submodule update --init -- "external/vcpkg"
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgDirectory: '${{ github.workspace }}/external/vcpkg'
vcpkgJsonGlob: 'vcpkg.json'
- name: Setup OpenCppCoverage
id: setup_opencppcoverage
run: |
Expand All @@ -39,23 +37,11 @@ jobs:
- name: Create Build Environment
run: |
cmake -E make_directory ${{runner.workspace}}/build-${{ matrix.buildType }}
- name: Configure Warnings as errors (OFF)
if: github.event_name == 'push'
shell: bash
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
run: |
echo "PROJ_WAE=OFF" >> $GITHUB_ENV
- name: Configure Warnings as errors (ON)
if: github.event_name == 'pull_request'
shell: bash
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
run: |
echo "PROJ_WAE=ON" >> $GITHUB_ENV
- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
run: |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.buildType }} -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/package/rendergraph -DPROJECTS_WARNINGS_AS_ERRORS=$PROJ_WAE -DPROJECTS_COVERAGE=ON -DCRG_BUILD_STATIC=OFF -DCRG_UNITY_BUILD=ON -DCRG_BUILD_TESTS=ON -DVULKAN_HEADERS_INCLUDE_DIRS=$VCPKG_ROOT/installed/${{matrix.os[1]}}/include
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.buildType }} -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/external/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/package/rendergraph -DPROJECTS_COVERAGE=ON -DVULKAN_HEADERS_INCLUDE_DIRS=$VCPKG_ROOT/installed/${{matrix.os[1]}}/include --preset ci
- name: Build
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
shell: bash
Expand Down Expand Up @@ -98,37 +84,23 @@ jobs:
runs-on: ${{ matrix.os[0] }}
steps:
- uses: actions/checkout@v4
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: 'f740d6f22908ccd8a519228a26b267f7a68dda9c'
- name: Install dependencies from vcpkg
shell: bash
run: |
$VCPKG_ROOT/vcpkg install vulkan-headers:${{ matrix.os[1] }}
- name: Checkout submodules
run: |
git submodule update --init -- "CMake"
git submodule update --init -- "external/vcpkg"
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgDirectory: '${{ github.workspace }}/external/vcpkg'
vcpkgJsonGlob: 'vcpkg.json'
- name: Create Build Environment
run: |
cmake -E make_directory ${{runner.workspace}}/build-${{ matrix.buildType }}
- name: Configure Warnings as errors (OFF)
if: github.event_name == 'push'
shell: bash
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
run: |
echo "PROJ_WAE=OFF" >> $GITHUB_ENV
- name: Configure Warnings as errors (ON)
if: github.event_name == 'pull_request'
shell: bash
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
run: |
echo "PROJ_WAE=ON" >> $GITHUB_ENV
- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
run: |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.buildType }} -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/package/rendergraph -DPROJECTS_WARNINGS_AS_ERRORS=$PROJ_WAE -DCRG_UNITY_BUILD=ON -DCRG_BUILD_TESTS=ON -DVULKAN_HEADERS_INCLUDE_DIRS=$VCPKG_ROOT/installed/${{matrix.os[1]}}/include
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.buildType }} -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/external/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/package/rendergraph -DVULKAN_HEADERS_INCLUDE_DIRS=$VCPKG_ROOT/installed/${{matrix.os[1]}}/include --preset ci
- name: Build
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
shell: bash
Expand Down Expand Up @@ -166,32 +138,18 @@ jobs:
runs-on: ${{ matrix.os[0] }}
steps:
- uses: actions/checkout@v4
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: 'f740d6f22908ccd8a519228a26b267f7a68dda9c'
- name: Install dependencies from vcpkg
shell: bash
run: |
$VCPKG_ROOT/vcpkg install vulkan-headers:${{ matrix.os[1] }}
- name: Checkout submodules
run: |
git submodule update --init -- "CMake"
git submodule update --init -- "external/vcpkg"
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgDirectory: '${{ github.workspace }}/external/vcpkg'
vcpkgJsonGlob: 'vcpkg.json'
- name: Create Build Environment
run: |
cmake -E make_directory ${{runner.workspace}}/build-${{ matrix.buildType }}
- name: Configure Warnings as errors (OFF)
if: github.event_name == 'push'
shell: bash
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
run: |
echo "PROJ_WAE=OFF" >> $GITHUB_ENV
- name: Configure Warnings as errors (ON)
if: github.event_name == 'pull_request'
shell: bash
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
run: |
echo "PROJ_WAE=ON" >> $GITHUB_ENV
- name: Configure GCC version
shell: bash
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
Expand All @@ -202,7 +160,7 @@ jobs:
shell: bash
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
run: |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.buildType }} -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/package/rendergraph -DPROJECTS_WARNINGS_AS_ERRORS=$PROJ_WAE -DCRG_UNITY_BUILD=ON -DCRG_BUILD_TESTS=ON -DVULKAN_HEADERS_INCLUDE_DIRS=$VCPKG_ROOT/installed/${{matrix.os[1]}}/include
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.buildType }} -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/external/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/package/rendergraph -DVULKAN_HEADERS_INCLUDE_DIRS=$VCPKG_ROOT/installed/${{matrix.os[1]}}/include --preset ci
- name: Build
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
shell: bash
Expand Down Expand Up @@ -240,17 +198,15 @@ jobs:
runs-on: ${{ matrix.os[0] }}
steps:
- uses: actions/checkout@v4
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: 'f740d6f22908ccd8a519228a26b267f7a68dda9c'
- name: Install dependencies from vcpkg
shell: bash
run: |
$VCPKG_ROOT/vcpkg install vulkan-headers:${{ matrix.os[1] }}
- name: Checkout submodules
run: |
git submodule update --init -- "CMake"
git submodule update --init -- "external/vcpkg"
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgDirectory: '${{ github.workspace }}/external/vcpkg'
vcpkgJsonGlob: 'vcpkg.json'
- name: Create Build Environment
run: |
cmake -E make_directory ${{runner.workspace}}/build-${{ matrix.buildType }}
Expand All @@ -276,7 +232,7 @@ jobs:
shell: bash
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
run: |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.buildType }} -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/package/rendergraph -DPROJECTS_WARNINGS_AS_ERRORS=$PROJ_WAE -DCRG_UNITY_BUILD=ON -DCRG_BUILD_TESTS=ON -DVULKAN_HEADERS_INCLUDE_DIRS=$VCPKG_ROOT/installed/${{matrix.os[1]}}/include
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.buildType }} -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/external/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/package/rendergraph -DVULKAN_HEADERS_INCLUDE_DIRS=$VCPKG_ROOT/installed/${{matrix.os[1]}}/include --preset ci
- name: Build
working-directory: ${{runner.workspace}}/build-${{ matrix.buildType }}
shell: bash
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[submodule "CMake"]
path = CMake
url = https://github.com/DragonJoker/CMakeUtils.git
[submodule "external/vcpkg"]
path = external/vcpkg
url = https://github.com/microsoft/vcpkg.git
15 changes: 8 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,13 @@ endif ()
set( PROJECTS_UNITY_BUILD ${CRG_UNITY_BUILD} )

if ( MSVC OR NOT "${CMAKE_BUILD_TYPE}" STREQUAL "" )
if ( NOT DEFINED VULKAN_HEADERS_INCLUDE_DIRS )
find_path( VULKAN_HEADERS_INCLUDE_DIRS "vulkan/vk_icd.h" )
endif ()
# RenderGraph library
project( RenderGraph )
set( ${PROJECT_NAME}_HDR_FILES
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/Attachment.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/AttachmentTransition.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/BufferData.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/BufferViewData.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/DotExport.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/Exception.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/FrameGraph.hpp
Expand All @@ -90,6 +89,7 @@ if ( MSVC OR NOT "${CMAKE_BUILD_TYPE}" STREQUAL "" )
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/GraphContext.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/GraphNode.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/GraphVisitor.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/Hash.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/Id.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/ImageData.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/ImageViewData.hpp
Expand All @@ -102,7 +102,6 @@ if ( MSVC OR NOT "${CMAKE_BUILD_TYPE}" STREQUAL "" )
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/Signal.hpp
${CRG_SOURCE_DIR}/include/${PROJECT_NAME}/WriteDescriptorSet.hpp
${CRG_SOURCE_DIR}/source/${PROJECT_NAME}/GraphBuilder.hpp
${CRG_SOURCE_DIR}/source/${PROJECT_NAME}/FramePassDependenciesBuilder.hpp
)
set( ${PROJECT_NAME}_SRC_FILES
${CRG_SOURCE_DIR}/source/${PROJECT_NAME}/Attachment.cpp
Expand All @@ -111,7 +110,6 @@ if ( MSVC OR NOT "${CMAKE_BUILD_TYPE}" STREQUAL "" )
${CRG_SOURCE_DIR}/source/${PROJECT_NAME}/FrameGraph.cpp
${CRG_SOURCE_DIR}/source/${PROJECT_NAME}/FrameGraphPrerequisites.cpp
${CRG_SOURCE_DIR}/source/${PROJECT_NAME}/FramePass.cpp
${CRG_SOURCE_DIR}/source/${PROJECT_NAME}/FramePassDependenciesBuilder.cpp
${CRG_SOURCE_DIR}/source/${PROJECT_NAME}/FramePassGroup.cpp
${CRG_SOURCE_DIR}/source/${PROJECT_NAME}/FramePassTimer.cpp
${CRG_SOURCE_DIR}/source/${PROJECT_NAME}/GraphBuilder.cpp
Expand Down Expand Up @@ -248,9 +246,12 @@ if ( MSVC OR NOT "${CMAKE_BUILD_TYPE}" STREQUAL "" )
$<BUILD_INTERFACE:${CRG_BINARY_DIR}>
$<BUILD_INTERFACE:${Vulkan_INCLUDE_DIR}>
$<INSTALL_INTERFACE:include>
PRIVATE
${VULKAN_HEADERS_INCLUDE_DIRS}
)
find_package( VulkanHeaders CONFIG )
target_link_libraries( ${PROJECT_NAME}
PRIVATE
Vulkan::Headers
)
set_target_properties( ${PROJECT_NAME}
PROPERTIES
CXX_STANDARD 20
Expand Down
16 changes: 15 additions & 1 deletion CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"description": "Developer build configuration using Visual Studio",
"inherits": "default-base",
"cacheVariables": {
"PROJECTS_WARNINGS_AS_ERRORS": true
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/external/vcpkg/scripts/buildsystems/vcpkg.cmake",
"PROJECTS_WARNINGS_AS_ERRORS": true,
"VCPKG_MANIFEST_FEATURES": "tests"
}
},
{
Expand Down Expand Up @@ -92,6 +94,18 @@
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
},
{
"name": "ci",
"installDir": "${sourceDir}/package/Castor3D",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/external/vcpkg/scripts/buildsystems/vcpkg.cmake",
"CRG_BUILD_STATIC": false,
"CRG_UNITY_BUILD": true,
"CRG_BUILD_TESTS": true,
"PROJECTS_WARNINGS_AS_ERRORS": true,
"VCPKG_MANIFEST_FEATURES": "tests"
}
}
]
}
1 change: 1 addition & 0 deletions external/vcpkg
Submodule vcpkg added at e140b1
Loading
Loading