Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 119-graphicspipeline-refactoring
  • 129-projekte-und-assets-auslagern
  • 132-denoising-module
  • 143-ar-vr-support-via-openxr
  • 43-multi-threading
  • 91-compute-first-network
  • 95-arm64-raspberry-pi-4-support
  • develop
  • master
  • optimizations
  • 0.1.0
  • 0.2.0
12 results

Target

Select target project
  • vulkan2021/vkcv-framework
1 result
Select Git revision
  • 119-graphicspipeline-refactoring
  • 129-projekte-und-assets-auslagern
  • 132-denoising-module
  • 143-ar-vr-support-via-openxr
  • 43-multi-threading
  • 91-compute-first-network
  • 95-arm64-raspberry-pi-4-support
  • develop
  • master
  • optimizations
  • 0.1.0
  • 0.2.0
12 results
Show changes
Commits on Source (6)
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
project(vkcv) project(vkcv)
# settings c++ standard for the framework
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
# checking build type and setting up a variable
if (CMAKE_BUILD_TYPE) if (CMAKE_BUILD_TYPE)
string(TOLOWER "${CMAKE_BUILD_TYPE}" _vkcv_build_type) string(TOLOWER "${CMAKE_BUILD_TYPE}" _vkcv_build_type)
set(vkcv_build_${_vkcv_build_type} 1) set(vkcv_build_${_vkcv_build_type} 1)
...@@ -11,15 +13,19 @@ endif() ...@@ -11,15 +13,19 @@ endif()
message("-- Language: [ C++ " ${CMAKE_CXX_STANDARD} " ]") message("-- Language: [ C++ " ${CMAKE_CXX_STANDARD} " ]")
# setting up different paths
set(vkcv_config ${PROJECT_SOURCE_DIR}/config) set(vkcv_config ${PROJECT_SOURCE_DIR}/config)
set(vkcv_config_ext ${vkcv_config}/ext) set(vkcv_config_ext ${vkcv_config}/ext)
set(vkcv_lib lib) set(vkcv_lib lib)
set(vkcv_source ${PROJECT_SOURCE_DIR}/src) set(vkcv_source ${PROJECT_SOURCE_DIR}/src)
set(vkcv_include ${PROJECT_SOURCE_DIR}/include)
# initializes compiler flags with defaults
set(vkcv_flags ${CMAKE_CXX_FLAGS}) set(vkcv_flags ${CMAKE_CXX_FLAGS})
# enabling warnings in the debug build
if (vkcv_build_debug) if (vkcv_build_debug)
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(vkcv_flags ${vkcv_flags} " -Weverything") set(vkcv_flags ${vkcv_flags} " -Weverything")
...@@ -30,19 +36,21 @@ if (vkcv_build_debug) ...@@ -30,19 +36,21 @@ if (vkcv_build_debug)
endif() endif()
endif() endif()
# add source files for compilation
include(${vkcv_config}/Sources.cmake) include(${vkcv_config}/Sources.cmake)
# configure everything to use the required dependencies
include(${vkcv_config}/Libraries.cmake) include(${vkcv_config}/Libraries.cmake)
# set the compiler flags for the framework
set(CMAKE_CXX_FLAGS ${vkcv_flags}) set(CMAKE_CXX_FLAGS ${vkcv_flags})
message("-- Flags: [ ${CMAKE_CXX_FLAGS} ]") message("-- Flags: [ ${CMAKE_CXX_FLAGS} ]")
# set the compile definitions aka preprocessor variables
add_compile_definitions(${vkcv_definitions}) add_compile_definitions(${vkcv_definitions})
if (vkcv_directories) # create VkCV framework as static library using all source files
include_directories(${vkcv_directories})
endif()
add_library(vkcv STATIC ${vkcv_sources}) add_library(vkcv STATIC ${vkcv_sources})
if(MSVC) if(MSVC)
...@@ -53,9 +61,17 @@ if(MSVC) ...@@ -53,9 +61,17 @@ if(MSVC)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${vkcv_sources}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${vkcv_sources})
endif() endif()
# add include directories from dependencies as system includes
target_include_directories(vkcv SYSTEM BEFORE PRIVATE ${vkcv_includes}) target_include_directories(vkcv SYSTEM BEFORE PRIVATE ${vkcv_includes})
# add the own include directory for public headers
target_include_directories(vkcv BEFORE PUBLIC ${vkcv_include})
# link the framework using all required libraries
target_link_libraries(vkcv ${vkcv_libraries}) target_link_libraries(vkcv ${vkcv_libraries})
# add sub-projects/examples as targets
add_subdirectory(projects) add_subdirectory(projects)
# add doxygen as target if installed
include(${vkcv_config}/ext/Doxygen.cmake) include(${vkcv_config}/ext/Doxygen.cmake)
...@@ -864,7 +864,8 @@ WARN_LOGFILE = ...@@ -864,7 +864,8 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched. # Note: If this tag is empty the current directory is searched.
INPUT = src INPUT = src \
include
# This tag can be used to specify the character encoding of the source files # This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
......
set(vkcv_config_lib ${vkcv_config}/lib)
set(vkcv_config_lib ${vkcv_config}/lib)
set(vkcv_lib_path ${PROJECT_SOURCE_DIR}/${vkcv_lib}) set(vkcv_lib_path ${PROJECT_SOURCE_DIR}/${vkcv_lib})
if(NOT WIN32) if(NOT WIN32)
...@@ -10,21 +10,27 @@ if(NOT WIN32) ...@@ -10,21 +10,27 @@ if(NOT WIN32)
list(APPEND vkcv_flags -fopenmp) list(APPEND vkcv_flags -fopenmp)
endif() endif()
# some formatted printing
set(vkcv_config_msg " - Library: ") set(vkcv_config_msg " - Library: ")
# load dependencies via separate cmake file
include(${vkcv_config_lib}/GLFW.cmake) # glfw-x11 / glfw-wayland # libglfw3-dev include(${vkcv_config_lib}/GLFW.cmake) # glfw-x11 / glfw-wayland # libglfw3-dev
include(${vkcv_config_lib}/Vulkan.cmake) # vulkan-intel / vulkan-radeon / nvidia # libvulkan-dev include(${vkcv_config_lib}/Vulkan.cmake) # vulkan-intel / vulkan-radeon / nvidia # libvulkan-dev
# cleanup of compiler flags
if (vkcv_flags) if (vkcv_flags)
list(REMOVE_DUPLICATES vkcv_flags) list(REMOVE_DUPLICATES vkcv_flags)
endif() endif()
# cleanup of include directories from dependencies
if (vkcv_includes) if (vkcv_includes)
list(REMOVE_DUPLICATES vkcv_includes) list(REMOVE_DUPLICATES vkcv_includes)
endif () endif ()
# fix dependencies for different Linux distros (looking at you Ubuntu)
include(${vkcv_config_ext}/CheckLibraries.cmake) include(${vkcv_config_ext}/CheckLibraries.cmake)
# cleanup of compiler definitions aka preprocessor variables
if (vkcv_definitions) if (vkcv_definitions)
list(REMOVE_DUPLICATES vkcv_definitions) list(REMOVE_DUPLICATES vkcv_definitions)
endif () endif ()
......
# adding all source files and header files of the framework:
set(vkcv_sources set(vkcv_sources
${vkcv_source}/vkcv/Context.hpp ${vkcv_include}/vkcv/Context.hpp
${vkcv_source}/vkcv/Context.cpp ${vkcv_source}/vkcv/Context.cpp
${vkcv_source}/vkcv/Window.hpp ${vkcv_include}/vkcv/Window.hpp
${vkcv_source}/vkcv/Window.cpp ${vkcv_source}/vkcv/Window.cpp
${vkcv_source}/vkcv/CoreManager.hpp ${vkcv_source}/vkcv/CoreManager.hpp
${vkcv_source}/vkcv/CoreManager.cpp ${vkcv_source}/vkcv/CoreManager.cpp
......
# cleanup of dependency libraries
list(REMOVE_DUPLICATES vkcv_libraries) list(REMOVE_DUPLICATES vkcv_libraries)
# fixing paths of libraries to work on most Linux distros
foreach (a_lib IN LISTS vkcv_libraries) foreach (a_lib IN LISTS vkcv_libraries)
if (NOT EXISTS "${a_lib}") if (NOT EXISTS "${a_lib}")
string(REGEX MATCH ^/usr/lib/x86_64-linux-gnu/.*$ vkcv_usr_lib_u_match ${a_lib}) string(REGEX MATCH ^/usr/lib/x86_64-linux-gnu/.*$ vkcv_usr_lib_u_match ${a_lib})
......
File moved
File moved
# Add new projects/examples here:
add_subdirectory(first_triangle) add_subdirectory(first_triangle)
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
project(first_triangle) project(first_triangle)
# setting c++ standard for the project
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
# adding source files to the project
add_executable(first_triangle src/main.cpp) add_executable(first_triangle src/main.cpp)
target_include_directories(first_triangle SYSTEM BEFORE PRIVATE ${vkcv_source} ${vkcv_includes}) # including headers of dependencies and the VkCV framework
target_include_directories(first_triangle SYSTEM BEFORE PRIVATE ${vkcv_include} ${vkcv_includes})
# linking with libraries from all dependencies and the VkCV framework
target_link_libraries(first_triangle vkcv ${vkcv_libraries}) target_link_libraries(first_triangle vkcv ${vkcv_libraries})
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @brief Context class to handle instance, physical-device and device * @brief Context class to handle instance, physical-device and device
*/ */
#include "Context.hpp" #include "vkcv/Context.hpp"
#include "CoreManager.hpp" #include "CoreManager.hpp"
namespace vkcv { namespace vkcv {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @brief Window class to handle a basic rendering surface and input * @brief Window class to handle a basic rendering surface and input
*/ */
#include "Window.hpp" #include "vkcv/Window.hpp"
#include "CoreManager.hpp" #include "CoreManager.hpp"
namespace vkcv { namespace vkcv {
......