Skip to content
Snippets Groups Projects
Verified Commit 8dc05e71 authored by Tobias Frisch's avatar Tobias Frisch
Browse files

[#18] Fixed execution paths, GCC on Windows support and example module

parent 46f2ee6a
No related branches found
No related tags found
1 merge request!21Resolve "First Triangle"
Pipeline #24855 passed
...@@ -12,6 +12,7 @@ if (CMAKE_BUILD_TYPE) ...@@ -12,6 +12,7 @@ if (CMAKE_BUILD_TYPE)
endif() endif()
message("-- Language: [ C++ " ${CMAKE_CXX_STANDARD} " ]") message("-- Language: [ C++ " ${CMAKE_CXX_STANDARD} " ]")
message("-- Compiler: [ " ${CMAKE_CXX_COMPILER_ID} " " ${CMAKE_CXX_COMPILER_VERSION} " ]")
# setting up different paths # setting up different paths
set(vkcv_config ${PROJECT_SOURCE_DIR}/config) set(vkcv_config ${PROJECT_SOURCE_DIR}/config)
...@@ -36,6 +37,9 @@ if (vkcv_build_debug) ...@@ -36,6 +37,9 @@ if (vkcv_build_debug)
endif() endif()
endif() endif()
# add modules as targets
add_subdirectory(modules)
# add source files for compilation # add source files for compilation
include(${vkcv_config}/Sources.cmake) include(${vkcv_config}/Sources.cmake)
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
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 MSVC)
set(vkcv_libraries stdc++fs) set(vkcv_libraries stdc++fs)
# optimization for loading times # optimization for loading times
list(APPEND vkcv_flags -pthread) list(APPEND vkcv_flags -pthread)
......
# Add new modules here:
add_subdirectory(testing)
cmake_minimum_required(VERSION 3.16)
project(vkcv_testing)
# setting c++ standard for the project
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(vkcv_testing_source ${PROJECT_SOURCE_DIR}/src)
set(vkcv_testing_include ${PROJECT_SOURCE_DIR}/include)
set(vkcv_testing_sources
${vkcv_testing_include}/vkcv/testing/Test.hpp
${vkcv_testing_source}/vkcv/testing/Test.cpp
)
# adding source files to the project
add_library(vkcv_testing STATIC ${vkcv_testing_sources})
# add the own include directory for public headers
target_include_directories(vkcv_testing BEFORE PUBLIC ${vkcv_testing_include})
#pragma once
namespace vkcv::testing {
class Test {
private:
public:
void test(int test_value);
};
}
#include "vkcv/testing/Test.hpp"
namespace vkcv::testing {
void Test::test(int test_value) {
// TODO: this is an example
}
}
first_triangle
\ No newline at end of file
...@@ -5,14 +5,20 @@ project(first_triangle) ...@@ -5,14 +5,20 @@ project(first_triangle)
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/shaders/vert.spv DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/shaders) # this should fix the execution path to load local files from the project
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/shaders/frag.spv DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/shaders) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
# adding source files to the project # adding source files to the project
add_executable(first_triangle src/main.cpp) add_executable(first_triangle src/main.cpp)
# this should fix the execution path to load local files from the project (for MSVC)
if(MSVC)
set_target_properties(first_triangle PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
set_target_properties(first_triangle PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
endif()
# including headers of dependencies and the VkCV framework # including headers of dependencies and the VkCV framework
target_include_directories(first_triangle SYSTEM BEFORE PRIVATE ${vkcv_include} ${vkcv_includes}) target_include_directories(first_triangle SYSTEM BEFORE PRIVATE ${vkcv_include} ${vkcv_includes} ${vkcv_testing_include})
# linking with libraries from all dependencies and the VkCV framework # 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} vkcv_testing)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment