cmake_minimum_required(VERSION 3.19) project(RenderingCookbook2 CXX C) set_property(GLOBAL PROPERTY USE_FOLDERS ON) add_subdirectory(deps/src/lightweightvk/third-party/deps/src/ldrutils) set(KTX_FEATURE_DOC OFF CACHE BOOL "") set(KTX_FEATURE_GL_UPLOAD OFF CACHE BOOL "") set(KTX_FEATURE_JNI OFF CACHE BOOL "") set(KTX_FEATURE_KTX1 ON CACHE BOOL "") set(KTX_FEATURE_KTX2 ON CACHE BOOL "") set(KTX_FEATURE_LOADTEST_APPS OFF CACHE BOOL "") set(KTX_FEATURE_STATIC_LIBRARY ON CACHE BOOL "") set(KTX_FEATURE_TESTS OFF CACHE BOOL "") set(KTX_FEATURE_TOOLS OFF CACHE BOOL "") set(KTX_FEATURE_VK_UPLOAD OFF CACHE BOOL "") add_subdirectory(deps/src/lightweightvk/third-party/deps/src/ktx-software) set(LVK_WITH_SAMPLES OFF CACHE BOOL "") set(LVK_WITH_TRACY ON CACHE BOOL "") set(LVK_WITH_TRACY_GPU ON CACHE BOOL "") add_subdirectory(deps/src/lightweightvk) lvk_set_folder(ktx "third-party/ktx-software") lvk_set_folder(ktx_read "third-party/ktx-software") lvk_set_folder(ktx_version "third-party/ktx-software") lvk_set_folder(obj_basisu_cbind "third-party/ktx-software") lvk_set_folder(objUtil "third-party/ktx-software") if(TARGET astcenc-avx2-static) lvk_set_folder(astcenc-avx2-static "third-party/ktx-software") endif() # # cmake-format: on # set(ASSIMP_NO_EXPORT ON CACHE BOOL "") set(ASSIMP_BUILD_DRACO OFF CACHE BOOL "") set(ASSIMP_BUILD_ASSIMP_TOOLS OFF CACHE BOOL "") set(ASSIMP_BUILD_TESTS OFF CACHE BOOL "") set(ASSIMP_INSTALL_PDB OFF CACHE BOOL "") set(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT OFF CACHE BOOL "") set(ASSIMP_BUILD_OBJ_IMPORTER ON CACHE BOOL "") set(ASSIMP_BUILD_GLTF_IMPORTER ON CACHE BOOL "") set(ASSIMP_BUILD_ZLIB ON CACHE BOOL "") # add_subdirectory(deps/src/assimp) if(APPLE) target_compile_options(assimp PRIVATE -Wno-deprecated-declarations) endif() # set(MESHOPT_BUILD_DEMO OFF CACHE BOOL "") # set(MESHOPT_BUILD_TOOLS OFF CACHE BOOL "") # set(MESHOPT_BUILD_SHARED_LIBS OFF CACHE BOOL "") add_subdirectory(deps/src/lightweightvk/third-party/deps/src/meshoptimizer) if(WIN32) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() add_definitions(-DGLM_ENABLE_EXPERIMENTAL) include_directories(deps/src/lightweightvk/third-party/deps/src/taskflow) include_directories(deps/src/lightweightvk/third-party/deps/src/glm) include_directories(deps/src/lightweightvk/third-party/deps/src/imgui) # # add_subdirectory(deps/cmake/ImGuizmo) # set_property(TARGET assimp PROPERTY FOLDER "third-party") set_property(TARGET LUtils PROPERTY FOLDER "third-party") set_property(TARGET meshoptimizer PROPERTY FOLDER "third-party") if(WIN32) if(TARGET zlibstatic) set_property(TARGET zlibstatic PROPERTY FOLDER "third-party") endif() if(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs) set_property(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs PROPERTY FOLDER "third-party") endif() endif() set_property(TARGET uninstall PROPERTY FOLDER "third-party") # # # shared utils code add_subdirectory(shared) # add_subdirectory(data) # # add_dependencies(SharedUtils Dependencies) # # disable warnings in third-party code if(MSVC) target_compile_options(assimp PRIVATE /wd4267) target_compile_options(SPIRV PRIVATE /wd4267) endif() set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "") if(CMAKE_EXPORT_COMPILE_COMMANDS) set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}) endif() # BINARIES add_subdirectory(Chapter01/01_CMake) add_subdirectory(Chapter01/02_GLFW) add_subdirectory(Chapter01/03_Taskflow) add_subdirectory(Chapter01/04_GLSLang) add_subdirectory(Chapter01/05_BC7Compression) add_subdirectory(Chapter02/01_Swapchain) add_subdirectory(Chapter03/01_Assimp) add_subdirectory(Chapter04/04_CubeMap) add_subdirectory(Chapter05/01_MeshOptimizer)