Compare commits

..

2 Commits

32 changed files with 1398 additions and 0 deletions

2
.gitignore vendored
View File

@ -1,6 +1,8 @@
# Build directories # Build directories
build/ build/
build-*/ build-*/
bin/
bin-*/
cmake-build-*/ cmake-build-*/
# CMake generated files # CMake generated files

86
CMakeLists.txt Normal file
View File

@ -0,0 +1,86 @@
cmake_minimum_required (VERSION 3.29)
project(VulkanEngine)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Find all package dependencies
find_package( glm REQUIRED ) # just one package as an exemple
find_package( VulkanMemoryAllocator CONFIG REQUIRED )
find_package( sdl2 REQUIRED )
# fastgltf because it's not in nixpkgs
include(FetchContent)
FetchContent_Declare(
fastgltf
GIT_REPOSITORY https://github.com/spnda/fastgltf.git
GIT_TAG v0.8.0
)
FetchContent_MakeAvailable(fastgltf)
# Enables LTO
include(CheckIPOSupported)
check_ipo_supported(RESULT LTO_SUPPORTED OUTPUT LTO_ERROR)
if(LTO_SUPPORTED AND CMAKE_BUILD_TYPE STREQUAL "Release")
message(STATUS "LTO activated")
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
else()
message(WARNING "LTO not supported : ${LTO_ERROR}")
endif()
# A function to automate executables aditions
function ( addBinary BINARY_NAME )
cmake_parse_arguments ( BINARY "" "SHADER" "LIBS;TEXTURES;MODELS" ${ARGN} )
add_executable ( ${BINARY_NAME} src/${BINARY_NAME}.cpp )
# Sets the output dir to have clear separation between binaries
set_target_properties ( ${BINARY_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${BINARY_NAME} )
set_target_properties ( ${BINARY_NAME} PROPERTIES CXX_STANDARD 20 ) # Uses C++20
# Define VULKAN_HPP_HANDLE_ERROR_OUT_OF_DATE_AS_SUCCESS to treat VK_ERROR_OUT_OF_DATE_KHR as a success code
target_compile_definitions ( ${BINARY_NAME} PRIVATE "VULKAN_HPP_HANDLE_ERROR_OUT_OF_DATE_AS_SUCCESS" )
if (DEFINED BINARY_LIBS)
target_link_libraries ( ${BINARY_NAME} ${BINARY_LIBS} )
endif()
if (DEFINED BINARY_MODELS) # Adds the 3D models in the binary folder
set(RESOLVED_MODELS "")
foreach(MODEL_PATTERN ${BINARY_MODELS})
file(GLOB MATCHED_MODELS CONFIGURE_DEPENDS
"${CMAKE_SOURCE_DIR}/assets/models/${MODEL_PATTERN}"
)
list(APPEND RESOLVED_MODELS ${MATCHED_MODELS})
endforeach()
if (RESOLVED_MODELS)
file(COPY ${RESOLVED_MODELS} DESTINATION ${CMAKE_BINARY_DIR}/${BINARY_NAME}/models)
endif()
endif()
if (DEFINED BINARY_TEXTURES) # Adds the textures in the binary folder
set(RESOLVED_TEXTURES "")
foreach(TEX_PATTERN ${BINARY_TEXTURES})
file(GLOB MATCHED_TEXTURES CONFIGURE_DEPENDS
"${CMAKE_SOURCE_DIR}/assets/textures/${TEX_PATTERN}"
)
list(APPEND RESOLVED_TEXTURES ${MATCHED_TEXTURES})
endforeach()
if (RESOLVED_TEXTURES)
file(COPY ${RESOLVED_TEXTURES} DESTINATION ${CMAKE_BINARY_DIR}/${BINARY_NAME}/textures)
endif()
endif ()
endfunction()
# Adds the main binary
addBinary (
main
LIBS SDL2::SDL2
)

BIN
bin/.ninja_deps Normal file

Binary file not shown.

23
bin/.ninja_log Normal file
View File

@ -0,0 +1,23 @@
# ninja log v7
2 832 1776524224772581787 build.ninja 49485a7fb337b1e6
2 832 1776524224770019075 /home/alex/Developer/Code/Vulkan/bin/cmake_install.cmake 49485a7fb337b1e6
1 2544 1776523437569221238 _deps/fastgltf-build/CMakeFiles/fastgltf.dir/src/io.cpp.o 55102a173727ecf5
0 2839 1776523437568925562 _deps/fastgltf-build/CMakeFiles/fastgltf.dir/src/base64.cpp.o 24783971ab3df401
1 3179 1776523437569454443 _deps/fastgltf-build/CMakeFiles/fastgltf.dir/deps/simdjson/simdjson.cpp.o 81bd726d153d0dba
0 7845 1776523437568734172 _deps/fastgltf-build/CMakeFiles/fastgltf.dir/src/fastgltf.cpp.o 808ecdb040f91506
2 832 1776524224772581787 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build/cmake_install.cmake 49485a7fb337b1e6
2 234 1776523743038837711 _deps/fastgltf-build/libfastgltf.a 35ed20c53ec12f4b
3 443 1776523899323132202 CMakeFiles/main.dir/src/main.cpp.o.ddi 2c0b378e41ca85e7
3 14 1776523941796235970 CMakeFiles/main.dir/CXX.dd 64625a41e7cb2d24
3 14 1776523941796235970 CMakeFiles/main.dir/CXXModules.json 64625a41e7cb2d24
3 14 1776523941796235970 CMakeFiles/main.dir/src/main.cpp.o.modmap 64625a41e7cb2d24
452 2309 1776523899772136336 CMakeFiles/main.dir/src/main.cpp.o a3ec966cb9dd3537
4 803 1776524224772581787 build.ninja 49485a7fb337b1e6
4 803 1776524224772581787 /home/alex/Developer/Code/Vulkan/bin/cmake_install.cmake 49485a7fb337b1e6
4 803 1776524224772581787 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build/cmake_install.cmake 49485a7fb337b1e6
2 481 1776524224779019102 CMakeFiles/main.dir/src/main.cpp.o.ddi ad45a11344eefd19
481 491 1776524225259020540 CMakeFiles/main.dir/CXX.dd 64625a41e7cb2d24
481 491 1776524225259020540 CMakeFiles/main.dir/CXXModules.json 64625a41e7cb2d24
481 491 1776524225259020540 CMakeFiles/main.dir/src/main.cpp.o.modmap 64625a41e7cb2d24
491 2388 1776524225268140989 CMakeFiles/main.dir/src/main.cpp.o b37edae0e954e5dc
2388 2579 1776524227165026252 main/main 5d4e64b1fe423d3a

View File

@ -0,0 +1,37 @@
# ninja log v7
1 16 1776523434263396135 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-mkdir e7b554f212059804
1 16 1776523434263396135 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-mkdir e7b554f212059804
16 1402 1776523435649396820 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-download d6b057c3f4523864
16 1402 1776523435649396820 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-download d6b057c3f4523864
0 15 1776523941056234125 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-update 18ab84be450bf721
0 15 1776523941056234125 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-update 18ab84be450bf721
15 30 1776523941085234197 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch 4ddfc104a209a355
15 30 1776523941085234197 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch 4ddfc104a209a355
30 44 1776523941100234235 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-configure f003ba6b94beeb51
30 44 1776523941100234235 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-configure f003ba6b94beeb51
45 58 1776523941114234269 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-build 94eddf46f8205f82
45 58 1776523941114234269 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-build 94eddf46f8205f82
59 72 1776523941128234304 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install 8ab81e46393e391c
59 72 1776523941128234304 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install 8ab81e46393e391c
72 87 1776523941142234339 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-test 985ab92c32343512
72 87 1776523941142234339 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-test 985ab92c32343512
87 107 1776523941162234389 CMakeFiles/fastgltf-populate-complete 4f7c559732830105
87 107 1776523941162234389 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-done 4f7c559732830105
87 107 1776523941162234389 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/CMakeFiles/fastgltf-populate-complete 4f7c559732830105
87 107 1776523941162234389 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-done 4f7c559732830105
0 16 1776524224080017009 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-update 18ab84be450bf721
0 16 1776524224080017009 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-update 18ab84be450bf721
16 30 1776524224109017096 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch 4ddfc104a209a355
16 30 1776524224109017096 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch 4ddfc104a209a355
30 44 1776524224124017141 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-configure f003ba6b94beeb51
30 44 1776524224124017141 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-configure f003ba6b94beeb51
44 58 1776524224138017182 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-build 94eddf46f8205f82
44 58 1776524224138017182 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-build 94eddf46f8205f82
58 72 1776524224151017221 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install 8ab81e46393e391c
58 72 1776524224151017221 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install 8ab81e46393e391c
72 86 1776524224166017266 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-test 985ab92c32343512
72 86 1776524224166017266 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-test 985ab92c32343512
86 106 1776524224186017326 CMakeFiles/fastgltf-populate-complete 4f7c559732830105
86 106 1776524224186017326 fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-done 4f7c559732830105
86 106 1776524224186017326 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/CMakeFiles/fastgltf-populate-complete 4f7c559732830105
86 106 1776524224186017326 /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-done 4f7c559732830105

View File

@ -0,0 +1,42 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.
cmake_minimum_required(VERSION 4.1.2)
# Reject any attempt to use a toolchain file. We must not use one because
# we could be downloading it here. If the CMAKE_TOOLCHAIN_FILE environment
# variable is set, the cache variable will have been initialized from it.
unset(CMAKE_TOOLCHAIN_FILE CACHE)
unset(ENV{CMAKE_TOOLCHAIN_FILE})
# We name the project and the target for the ExternalProject_Add() call
# to something that will highlight to the user what we are working on if
# something goes wrong and an error message is produced.
project(fastgltf-populate NONE)
# Pass through things we've already detected in the main project to avoid
# paying the cost of redetecting them again in ExternalProject_Add()
set(GIT_EXECUTABLE [==[/etc/profiles/per-user/alex/bin/git]==])
set(GIT_VERSION_STRING [==[2.53.0]==])
set_property(GLOBAL PROPERTY _CMAKE_FindGit_GIT_EXECUTABLE_VERSION
[==[/etc/profiles/per-user/alex/bin/git;2.53.0]==]
)
include(ExternalProject)
ExternalProject_Add(fastgltf-populate
"UPDATE_DISCONNECTED" "False" "GIT_REPOSITORY" "https://github.com/spnda/fastgltf.git" "EXTERNALPROJECT_INTERNAL_ARGUMENT_SEPARATOR" "GIT_TAG" "v0.8.0"
SOURCE_DIR "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
BINARY_DIR "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
USES_TERMINAL_DOWNLOAD YES
USES_TERMINAL_UPDATE YES
USES_TERMINAL_PATCH YES
)

View File

@ -0,0 +1,208 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Ninja" Generator, CMake Version 4.1
# This file contains all the build statements describing the
# compilation DAG.
# =============================================================================
# Write statements declared in CMakeLists.txt:
#
# Which is the root file.
# =============================================================================
# =============================================================================
# Project: fastgltf-populate
# Configurations:
# =============================================================================
#############################################
# Minimal version of Ninja required by this file
ninja_required_version = 1.5
# =============================================================================
# Include auxiliary files.
#############################################
# Include rules file.
include CMakeFiles/rules.ninja
# =============================================================================
#############################################
# Logical path to working directory; prefix for absolute paths.
cmake_ninja_workdir = /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/
#############################################
# Utility command for fastgltf-populate
build fastgltf-populate: phony CMakeFiles/fastgltf-populate CMakeFiles/fastgltf-populate-complete fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-done fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-build fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-configure fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-download fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-mkdir fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-test fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-update
#############################################
# Utility command for edit_cache
build CMakeFiles/edit_cache.util: CUSTOM_COMMAND
COMMAND = cd /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
DESC = No interactive CMake dialog available...
restat = 1
build edit_cache: phony CMakeFiles/edit_cache.util
#############################################
# Utility command for rebuild_cache
build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
COMMAND = cd /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake --regenerate-during-build -S/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild -B/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild
DESC = Running CMake to regenerate build system...
pool = console
restat = 1
build rebuild_cache: phony CMakeFiles/rebuild_cache.util
#############################################
# Phony custom command for CMakeFiles/fastgltf-populate
build CMakeFiles/fastgltf-populate | ${cmake_ninja_workdir}CMakeFiles/fastgltf-populate: phony CMakeFiles/fastgltf-populate-complete
#############################################
# Custom command for CMakeFiles/fastgltf-populate-complete
build CMakeFiles/fastgltf-populate-complete fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-done | ${cmake_ninja_workdir}CMakeFiles/fastgltf-populate-complete ${cmake_ninja_workdir}fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-done: CUSTOM_COMMAND fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-mkdir fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-download fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-update fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-configure fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-build fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-test
COMMAND = cd /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E make_directory /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/CMakeFiles && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E touch /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/CMakeFiles/fastgltf-populate-complete && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E touch /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-done
DESC = Completed 'fastgltf-populate'
restat = 1
#############################################
# Custom command for fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-build
build fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-build | ${cmake_ninja_workdir}fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-build: CUSTOM_COMMAND fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-configure
COMMAND = cd /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E echo_append && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E touch /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-build
DESC = No build step for 'fastgltf-populate'
restat = 1
#############################################
# Custom command for fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-configure
build fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-configure | ${cmake_ninja_workdir}fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-configure: CUSTOM_COMMAND fastgltf-populate-prefix/tmp/fastgltf-populate-cfgcmd.txt fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch
COMMAND = cd /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E echo_append && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E touch /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-configure
DESC = No configure step for 'fastgltf-populate'
restat = 1
#############################################
# Custom command for fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-download
build fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-download | ${cmake_ninja_workdir}fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-download: CUSTOM_COMMAND fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-gitinfo.txt fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-mkdir
COMMAND = cd /home/alex/Developer/Code/Vulkan/bin/_deps && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE -P /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/tmp/fastgltf-populate-gitclone.cmake && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E touch /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-download
DESC = Performing download step (git clone) for 'fastgltf-populate'
pool = console
restat = 1
#############################################
# Custom command for fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install
build fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install | ${cmake_ninja_workdir}fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install: CUSTOM_COMMAND fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-build
COMMAND = cd /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E echo_append && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E touch /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install
DESC = No install step for 'fastgltf-populate'
restat = 1
#############################################
# Custom command for fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-mkdir
build fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-mkdir | ${cmake_ninja_workdir}fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-mkdir: CUSTOM_COMMAND
COMMAND = cd /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -Dcfgdir= -P /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/tmp/fastgltf-populate-mkdirs.cmake && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E touch /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-mkdir
DESC = Creating directories for 'fastgltf-populate'
restat = 1
#############################################
# Custom command for fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch
build fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch | ${cmake_ninja_workdir}fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch: CUSTOM_COMMAND fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch-info.txt fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-update
COMMAND = cd /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E echo_append && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E touch /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-patch
DESC = No patch step for 'fastgltf-populate'
pool = console
restat = 1
#############################################
# Custom command for fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-test
build fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-test | ${cmake_ninja_workdir}fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-test: CUSTOM_COMMAND fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-install
COMMAND = cd /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E echo_append && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -E touch /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-test
DESC = No test step for 'fastgltf-populate'
restat = 1
#############################################
# Custom command for fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-update
build fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-update | ${cmake_ninja_workdir}fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-update: CUSTOM_COMMAND fastgltf-populate-prefix/tmp/fastgltf-populate-gitupdate.cmake fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-update-info.txt fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-download
COMMAND = cd /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src && /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake -Dcan_fetch=YES -DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE -P /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/tmp/fastgltf-populate-gitupdate.cmake
DESC = Performing update step for 'fastgltf-populate'
pool = console
# =============================================================================
# Target aliases.
# =============================================================================
# Folder targets.
# =============================================================================
#############################################
# Folder: /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild
build codegen: phony
# =============================================================================
#############################################
# Folder: /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild
build all: phony fastgltf-populate
# =============================================================================
# Built-in targets
#############################################
# Re-run CMake if any of its inputs changed.
build build.ninja /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/cmake_install.cmake: RERUN_CMAKE | /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/CMakeGenericSystem.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/CMakeInitializeConfigs.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/CMakeSystemSpecificInformation.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/CMakeSystemSpecificInitialize.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/PatchInfo.txt.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/RepositoryInfo.txt.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/UpdateInfo.txt.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/cfgcmd.txt.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/gitclone.cmake.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/gitupdate.cmake.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/mkdirs.cmake.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/shared_internal_commands.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/Platform/Linux-Initialize.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/Platform/Linux.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/4.1.2/CMakeSystem.cmake CMakeLists.txt fastgltf-populate-prefix/tmp/fastgltf-populate-mkdirs.cmake
pool = console
#############################################
# A missing CMake input file is not an error.
build /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/CMakeGenericSystem.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/CMakeInitializeConfigs.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/CMakeSystemSpecificInformation.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/CMakeSystemSpecificInitialize.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/PatchInfo.txt.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/RepositoryInfo.txt.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/UpdateInfo.txt.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/cfgcmd.txt.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/gitclone.cmake.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/gitupdate.cmake.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/mkdirs.cmake.in /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/ExternalProject/shared_internal_commands.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/Platform/Linux-Initialize.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/Platform/Linux.cmake /nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/share/cmake-4.1/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/4.1.2/CMakeSystem.cmake CMakeLists.txt fastgltf-populate-prefix/tmp/fastgltf-populate-mkdirs.cmake: phony
#############################################
# Clean all the built files.
build clean: CLEAN
#############################################
# Print all primary targets available.
build help: HELP
#############################################
# Make the all target the default.
default all

View File

@ -0,0 +1,15 @@
# This is a generated file and its contents are an internal implementation detail.
# The download step will be re-executed if anything in this file changes.
# No other meaning or use of this file is supported.
method=git
command=/nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/tmp/fastgltf-populate-gitclone.cmake
source_dir=/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src
work_dir=/home/alex/Developer/Code/Vulkan/bin/_deps
repository=https://github.com/spnda/fastgltf.git
remote=origin
init_submodules=TRUE
recurse_submodules=--recursive
submodules=
CMP0097=NEW

View File

@ -0,0 +1,15 @@
# This is a generated file and its contents are an internal implementation detail.
# The download step will be re-executed if anything in this file changes.
# No other meaning or use of this file is supported.
method=git
command=/nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/tmp/fastgltf-populate-gitclone.cmake
source_dir=/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src
work_dir=/home/alex/Developer/Code/Vulkan/bin/_deps
repository=https://github.com/spnda/fastgltf.git
remote=origin
init_submodules=TRUE
recurse_submodules=--recursive
submodules=
CMP0097=NEW

View File

@ -0,0 +1,6 @@
# This is a generated file and its contents are an internal implementation detail.
# The update step will be re-executed if anything in this file changes.
# No other meaning or use of this file is supported.
command=
work_dir=

View File

@ -0,0 +1,7 @@
# This is a generated file and its contents are an internal implementation detail.
# The patch step will be re-executed if anything in this file changes.
# No other meaning or use of this file is supported.
command (connected)=/nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake;-Dcan_fetch=YES;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/tmp/fastgltf-populate-gitupdate.cmake
command (disconnected)=/nix/store/lxkvigfj5xy6w2bs7h4xwr3d7wb7piqb-cmake-4.1.2/bin/cmake;-Dcan_fetch=NO;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/tmp/fastgltf-populate-gitupdate.cmake
work_dir=/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src

View File

@ -0,0 +1,87 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.
cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake
if(EXISTS "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-gitclone-lastrun.txt" AND EXISTS "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-gitinfo.txt" AND
"/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-gitclone-lastrun.txt" IS_NEWER_THAN "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-gitinfo.txt")
message(VERBOSE
"Avoiding repeated git clone, stamp file is up to date: "
"'/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-gitclone-lastrun.txt'"
)
return()
endif()
# Even at VERBOSE level, we don't want to see the commands executed, but
# enabling them to be shown for DEBUG may be useful to help diagnose problems.
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
if(active_log_level MATCHES "DEBUG|TRACE")
set(maybe_show_command COMMAND_ECHO STDOUT)
else()
set(maybe_show_command "")
endif()
execute_process(
COMMAND ${CMAKE_COMMAND} -E rm -rf "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
RESULT_VARIABLE error_code
${maybe_show_command}
)
if(error_code)
message(FATAL_ERROR "Failed to remove directory: '/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src'")
endif()
# try the clone 3 times in case there is an odd git clone issue
set(error_code 1)
set(number_of_tries 0)
while(error_code AND number_of_tries LESS 3)
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git"
clone --no-checkout --config "advice.detachedHead=false" "https://github.com/spnda/fastgltf.git" "fastgltf-src"
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps"
RESULT_VARIABLE error_code
${maybe_show_command}
)
math(EXPR number_of_tries "${number_of_tries} + 1")
endwhile()
if(number_of_tries GREATER 1)
message(NOTICE "Had to git clone more than once: ${number_of_tries} times.")
endif()
if(error_code)
message(FATAL_ERROR "Failed to clone repository: 'https://github.com/spnda/fastgltf.git'")
endif()
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git"
checkout "v0.8.0" --
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
RESULT_VARIABLE error_code
${maybe_show_command}
)
if(error_code)
message(FATAL_ERROR "Failed to checkout tag: 'v0.8.0'")
endif()
set(init_submodules TRUE)
if(init_submodules)
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git"
submodule update --recursive --init
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
RESULT_VARIABLE error_code
${maybe_show_command}
)
endif()
if(error_code)
message(FATAL_ERROR "Failed to update submodules in: '/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src'")
endif()
# Complete success, update the script-last-run stamp file:
#
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-gitinfo.txt" "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-gitclone-lastrun.txt"
RESULT_VARIABLE error_code
${maybe_show_command}
)
if(error_code)
message(FATAL_ERROR "Failed to copy script-last-run stamp file: '/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/fastgltf-populate-gitclone-lastrun.txt'")
endif()

View File

@ -0,0 +1,317 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.
cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake
# Even at VERBOSE level, we don't want to see the commands executed, but
# enabling them to be shown for DEBUG may be useful to help diagnose problems.
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
if(active_log_level MATCHES "DEBUG|TRACE")
set(maybe_show_command COMMAND_ECHO STDOUT)
else()
set(maybe_show_command "")
endif()
function(do_fetch)
message(VERBOSE "Fetching latest from the remote origin")
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git fetch --tags --force "origin"
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
COMMAND_ERROR_IS_FATAL LAST
${maybe_show_command}
)
endfunction()
function(get_hash_for_ref ref out_var err_var)
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git rev-parse "${ref}^0"
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
RESULT_VARIABLE error_code
OUTPUT_VARIABLE ref_hash
ERROR_VARIABLE error_msg
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(error_code)
set(${out_var} "" PARENT_SCOPE)
else()
set(${out_var} "${ref_hash}" PARENT_SCOPE)
endif()
set(${err_var} "${error_msg}" PARENT_SCOPE)
endfunction()
get_hash_for_ref(HEAD head_sha error_msg)
if(head_sha STREQUAL "")
message(FATAL_ERROR "Failed to get the hash for HEAD:\n${error_msg}")
endif()
if("${can_fetch}" STREQUAL "")
set(can_fetch "YES")
endif()
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git show-ref "v0.8.0"
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
OUTPUT_VARIABLE show_ref_output
)
if(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/remotes/")
# Given a full remote/branch-name and we know about it already. Since
# branches can move around, we should always fetch, if permitted.
if(can_fetch)
do_fetch()
endif()
set(checkout_name "v0.8.0")
elseif(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/tags/")
# Given a tag name that we already know about. We don't know if the tag we
# have matches the remote though (tags can move), so we should fetch. As a
# special case to preserve backward compatibility, if we are already at the
# same commit as the tag we hold locally, don't do a fetch and assume the tag
# hasn't moved on the remote.
# FIXME: We should provide an option to always fetch for this case
get_hash_for_ref("v0.8.0" tag_sha error_msg)
if(tag_sha STREQUAL head_sha)
message(VERBOSE "Already at requested tag: v0.8.0")
return()
endif()
if(can_fetch)
do_fetch()
endif()
set(checkout_name "v0.8.0")
elseif(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/heads/")
# Given a branch name without any remote and we already have a branch by that
# name. We might already have that branch checked out or it might be a
# different branch. It isn't fully safe to use a bare branch name without the
# remote, so do a fetch (if allowed) and replace the ref with one that
# includes the remote.
if(can_fetch)
do_fetch()
endif()
set(checkout_name "origin/v0.8.0")
else()
get_hash_for_ref("v0.8.0" tag_sha error_msg)
if(tag_sha STREQUAL head_sha)
# Have the right commit checked out already
message(VERBOSE "Already at requested ref: ${tag_sha}")
return()
elseif(tag_sha STREQUAL "")
# We don't know about this ref yet, so we have no choice but to fetch.
if(NOT can_fetch)
message(FATAL_ERROR
"Requested git ref \"v0.8.0\" is not present locally, and not "
"allowed to contact remote due to UPDATE_DISCONNECTED setting."
)
endif()
# We deliberately swallow any error message at the default log level
# because it can be confusing for users to see a failed git command.
# That failure is being handled here, so it isn't an error.
if(NOT error_msg STREQUAL "")
message(DEBUG "${error_msg}")
endif()
do_fetch()
set(checkout_name "v0.8.0")
else()
# We have the commit, so we know we were asked to find a commit hash
# (otherwise it would have been handled further above), but we don't
# have that commit checked out yet. We don't need to fetch from the remote.
set(checkout_name "v0.8.0")
if(NOT error_msg STREQUAL "")
message(WARNING "${error_msg}")
endif()
endif()
endif()
set(git_update_strategy "REBASE")
if(git_update_strategy STREQUAL "")
# Backward compatibility requires REBASE as the default behavior
set(git_update_strategy REBASE)
endif()
if(git_update_strategy MATCHES "^REBASE(_CHECKOUT)?$")
# Asked to potentially try to rebase first, maybe with fallback to checkout.
# We can't if we aren't already on a branch and we shouldn't if that local
# branch isn't tracking the one we want to checkout.
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git symbolic-ref -q HEAD
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
OUTPUT_VARIABLE current_branch
OUTPUT_STRIP_TRAILING_WHITESPACE
# Don't test for an error. If this isn't a branch, we get a non-zero error
# code but empty output.
)
if(current_branch STREQUAL "")
# Not on a branch, checkout is the only sensible option since any rebase
# would always fail (and backward compatibility requires us to checkout in
# this situation)
set(git_update_strategy CHECKOUT)
else()
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git for-each-ref "--format=%(upstream:short)" "${current_branch}"
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
OUTPUT_VARIABLE upstream_branch
OUTPUT_STRIP_TRAILING_WHITESPACE
COMMAND_ERROR_IS_FATAL ANY # There is no error if no upstream is set
)
if(NOT upstream_branch STREQUAL checkout_name)
# Not safe to rebase when asked to checkout a different branch to the one
# we are tracking. If we did rebase, we could end up with arbitrary
# commits added to the ref we were asked to checkout if the current local
# branch happens to be able to rebase onto the target branch. There would
# be no error message and the user wouldn't know this was occurring.
set(git_update_strategy CHECKOUT)
endif()
endif()
elseif(NOT git_update_strategy STREQUAL "CHECKOUT")
message(FATAL_ERROR "Unsupported git update strategy: ${git_update_strategy}")
endif()
# Check if stash is needed
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git status --porcelain
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
RESULT_VARIABLE error_code
OUTPUT_VARIABLE repo_status
)
if(error_code)
message(FATAL_ERROR "Failed to get the status")
endif()
string(LENGTH "${repo_status}" need_stash)
# If not in clean state, stash changes in order to be able to perform a
# rebase or checkout without losing those changes permanently
if(need_stash)
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git stash save --quiet;--include-untracked
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
COMMAND_ERROR_IS_FATAL ANY
${maybe_show_command}
)
endif()
if(git_update_strategy STREQUAL "CHECKOUT")
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git checkout "${checkout_name}"
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
COMMAND_ERROR_IS_FATAL ANY
${maybe_show_command}
)
else()
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git rebase "${checkout_name}"
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
RESULT_VARIABLE error_code
OUTPUT_VARIABLE rebase_output
ERROR_VARIABLE rebase_output
)
if(error_code)
# Rebase failed, undo the rebase attempt before continuing
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git rebase --abort
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
${maybe_show_command}
)
if(NOT git_update_strategy STREQUAL "REBASE_CHECKOUT")
# Not allowed to do a checkout as a fallback, so cannot proceed
if(need_stash)
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git stash pop --index --quiet
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
${maybe_show_command}
)
endif()
message(FATAL_ERROR "\nFailed to rebase in: '/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src'."
"\nOutput from the attempted rebase follows:"
"\n${rebase_output}"
"\n\nYou will have to resolve the conflicts manually")
endif()
# Fall back to checkout. We create an annotated tag so that the user
# can manually inspect the situation and revert if required.
# We can't log the failed rebase output because MSVC sees it and
# intervenes, causing the build to fail even though it completes.
# Write it to a file instead.
string(TIMESTAMP tag_timestamp "%Y%m%dT%H%M%S" UTC)
set(tag_name _cmake_ExternalProject_moved_from_here_${tag_timestamp}Z)
set(error_log_file ${CMAKE_CURRENT_LIST_DIR}/rebase_error_${tag_timestamp}Z.log)
file(WRITE ${error_log_file} "${rebase_output}")
message(WARNING "Rebase failed, output has been saved to ${error_log_file}"
"\nFalling back to checkout, previous commit tagged as ${tag_name}")
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git tag -a
-m "ExternalProject attempting to move from here to ${checkout_name}"
${tag_name}
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
COMMAND_ERROR_IS_FATAL ANY
${maybe_show_command}
)
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git checkout "${checkout_name}"
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
COMMAND_ERROR_IS_FATAL ANY
${maybe_show_command}
)
endif()
endif()
if(need_stash)
# Put back the stashed changes
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git stash pop --index --quiet
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
RESULT_VARIABLE error_code
${maybe_show_command}
)
if(error_code)
# Stash pop --index failed: Try again dropping the index
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git reset --hard --quiet
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
${maybe_show_command}
)
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git stash pop --quiet
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
RESULT_VARIABLE error_code
${maybe_show_command}
)
if(error_code)
# Stash pop failed: Restore previous state.
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git reset --hard --quiet ${head_sha}
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
${maybe_show_command}
)
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git" --git-dir=.git stash pop --index --quiet
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
${maybe_show_command}
)
message(FATAL_ERROR "\nFailed to unstash changes in: '/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src'."
"\nYou will have to resolve the conflicts manually")
endif()
endif()
endif()
set(init_submodules "TRUE")
if(init_submodules)
execute_process(
COMMAND "/etc/profiles/per-user/alex/bin/git"
--git-dir=.git
submodule update --recursive --init
WORKING_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src"
COMMAND_ERROR_IS_FATAL ANY
${maybe_show_command}
)
endif()

View File

@ -0,0 +1,27 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.
cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake
# If CMAKE_DISABLE_SOURCE_CHANGES is set to true and the source directory is an
# existing directory in our source tree, calling file(MAKE_DIRECTORY) on it
# would cause a fatal error, even though it would be a no-op.
if(NOT EXISTS "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src")
file(MAKE_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src")
endif()
file(MAKE_DIRECTORY
"/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build"
"/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix"
"/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/tmp"
"/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp"
"/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src"
"/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp"
)
set(configSubDirs )
foreach(subDir IN LISTS configSubDirs)
file(MAKE_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp/${subDir}")
endforeach()
if(cfgdir)
file(MAKE_DIRECTORY "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-subbuild/fastgltf-populate-prefix/src/fastgltf-populate-stamp${cfgdir}") # cfgdir has leading slash
endif()

349
bin/build.ninja Normal file

File diff suppressed because one or more lines are too long

32
bin/compile_commands.json Normal file
View File

@ -0,0 +1,32 @@
[
{
"directory": "/home/alex/Developer/Code/Vulkan/bin",
"command": "/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0/bin/g++ -DVULKAN_HPP_HANDLE_ERROR_OUT_OF_DATE_AS_SUCCESS -isystem /nix/store/55g2yvciw0whi44h5614q58lfv8akh5d-sdl2-compat-2.32.62-dev/include -isystem /nix/store/55g2yvciw0whi44h5614q58lfv8akh5d-sdl2-compat-2.32.62-dev/include/SDL2 -g -std=gnu++20 -fmodules-ts -fmodule-mapper=CMakeFiles/main.dir/src/main.cpp.o.modmap -MD -fdeps-format=p1689r5 -x c++ -o CMakeFiles/main.dir/src/main.cpp.o -c /home/alex/Developer/Code/Vulkan/src/main.cpp",
"file": "/home/alex/Developer/Code/Vulkan/src/main.cpp",
"output": "/home/alex/Developer/Code/Vulkan/bin/CMakeFiles/main.dir/src/main.cpp.o"
},
{
"directory": "/home/alex/Developer/Code/Vulkan/bin",
"command": "/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0/bin/g++ -DFASTGLTF_DISABLE_CUSTOM_MEMORY_POOL=0 -DFASTGLTF_ENABLE_DEPRECATED_EXT=0 -DFASTGLTF_USE_64BIT_FLOAT=0 -DFASTGLTF_USE_CUSTOM_SMALLVECTOR=0 -DSIMDJSON_TARGET_VERSION=\\\"3.9.4\\\" -I/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/include -I/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/deps/simdjson -g -Wall -Wno-unknown-pragmas -flax-vector-conversions -fpermissive -finline-functions -o _deps/fastgltf-build/CMakeFiles/fastgltf.dir/src/fastgltf.cpp.o -c /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/src/fastgltf.cpp",
"file": "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/src/fastgltf.cpp",
"output": "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build/CMakeFiles/fastgltf.dir/src/fastgltf.cpp.o"
},
{
"directory": "/home/alex/Developer/Code/Vulkan/bin",
"command": "/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0/bin/g++ -DFASTGLTF_DISABLE_CUSTOM_MEMORY_POOL=0 -DFASTGLTF_ENABLE_DEPRECATED_EXT=0 -DFASTGLTF_USE_64BIT_FLOAT=0 -DFASTGLTF_USE_CUSTOM_SMALLVECTOR=0 -DSIMDJSON_TARGET_VERSION=\\\"3.9.4\\\" -I/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/include -I/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/deps/simdjson -g -Wall -Wno-unknown-pragmas -flax-vector-conversions -fpermissive -finline-functions -o _deps/fastgltf-build/CMakeFiles/fastgltf.dir/src/base64.cpp.o -c /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/src/base64.cpp",
"file": "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/src/base64.cpp",
"output": "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build/CMakeFiles/fastgltf.dir/src/base64.cpp.o"
},
{
"directory": "/home/alex/Developer/Code/Vulkan/bin",
"command": "/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0/bin/g++ -DFASTGLTF_DISABLE_CUSTOM_MEMORY_POOL=0 -DFASTGLTF_ENABLE_DEPRECATED_EXT=0 -DFASTGLTF_USE_64BIT_FLOAT=0 -DFASTGLTF_USE_CUSTOM_SMALLVECTOR=0 -DSIMDJSON_TARGET_VERSION=\\\"3.9.4\\\" -I/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/include -I/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/deps/simdjson -g -Wall -Wno-unknown-pragmas -flax-vector-conversions -fpermissive -finline-functions -o _deps/fastgltf-build/CMakeFiles/fastgltf.dir/src/io.cpp.o -c /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/src/io.cpp",
"file": "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/src/io.cpp",
"output": "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build/CMakeFiles/fastgltf.dir/src/io.cpp.o"
},
{
"directory": "/home/alex/Developer/Code/Vulkan/bin",
"command": "/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0/bin/g++ -DFASTGLTF_DISABLE_CUSTOM_MEMORY_POOL=0 -DFASTGLTF_ENABLE_DEPRECATED_EXT=0 -DFASTGLTF_USE_64BIT_FLOAT=0 -DFASTGLTF_USE_CUSTOM_SMALLVECTOR=0 -DSIMDJSON_TARGET_VERSION=\\\"3.9.4\\\" -I/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/include -I/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/deps/simdjson -g -Wall -Wno-unknown-pragmas -flax-vector-conversions -fpermissive -finline-functions -o _deps/fastgltf-build/CMakeFiles/fastgltf.dir/deps/simdjson/simdjson.cpp.o -c /home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/deps/simdjson/simdjson.cpp",
"file": "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-src/deps/simdjson/simdjson.cpp",
"output": "/home/alex/Developer/Code/Vulkan/bin/_deps/fastgltf-build/CMakeFiles/fastgltf.dir/deps/simdjson/simdjson.cpp.o"
}
]

BIN
bin/main/main Executable file

Binary file not shown.

87
src/engine/engine.h Normal file
View File

@ -0,0 +1,87 @@
#pragma once
// Normal header
#include "types.h"
#include <vulkan/vulkan_core.h>
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
class Engine {
public:
bool _isInitialized { false };
int _frameNumber { 0 };
VkExtent2D _windowExtent { 1700, 900 };
struct SDL_Window* _window { nullptr };
void init();
void cleanup();
void draw();
void run();
};
#ifdef ENGINE_IMPL
// Implementation
// Change this to use GLFW later
#include "initializers.h"
void Engine::init() {
#ifndef NDEBUG
fmt::println("Initializing the engine...")
#endif
glfwInit();
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
window = glfwCreateWindow(
static_cast<uint32_t>(windowExtent.width),
static_cast<uint32_t>(windowExtent.height),
"Engine",
nullptr,
nullptr
);
_isInitialized = true;
#ifndef NDEBUG
fmt::println("Engine Initialized !")
#endif
}
void Engine::cleanup() {
if (_isInitialized) {
SDL_DestroyWindow(_window);
}
}
void Engine::draw() {
// Todo
}
void Engine::run() {
SDL_Event e;
bool bQuit = false;
while (!bQuit) {
while ( SDL_PollEvent(&e) != 0 ) {
if ( e.type == SDL_QUIT ) {
bQuit = true;
}
if (!GLFW_VISIBLE) {
// Window is not visible (minimized or somehting else), throttle render
}
draw();
}
}
}
#endif

7
src/engine/images.h Normal file
View File

@ -0,0 +1,7 @@
#pragma once
// Normal header
#ifdef IMAGES_IMPL
// Implementation
#endif

View File

@ -0,0 +1,7 @@
#pragma once
// Normal header
#ifdef INITIALIZERS_IMPL
// Implementation
#endif

7
src/engine/pipelines.h Normal file
View File

@ -0,0 +1,7 @@
#pragma once
// Normal header
#ifdef PIPELINES_IMPL
// Implementation
#endif

25
src/engine/types.h Normal file
View File

@ -0,0 +1,25 @@
#pragma once
// Normal header
#include <memory>
#include <optional>
#include <string>
#include <vector>
#include <span>
#include <array>
#include <functional>
#include <deque>
#include <vulkan/vulkan.h>
#include <vulkan/vk_enum_string_helper.h>
#include <vk_mem_alloc.h>
#include <fmt/core.h>
#include <glm/mat4x4.hpp>
#include <glm/vec4.hpp>
#ifdef TYPES_IMPL
// Implementation
#endif

11
src/main.cpp Normal file
View File

@ -0,0 +1,11 @@
#define ENGINE_IMPL
#include "engine/engine.h"
int main(int argc, char* argv[]) {
Engine engine;
engine.init();
// Just works :)
return 0;
}