change output folder for generated files to build dir
This commit is contained in:
@@ -36,8 +36,10 @@ if ("${BASH_EXECUTABLE}" STREQUAL "")
|
|||||||
set(BASH_EXECUTABLE ${BASH_PROGRAM} CACHE FILEPATH "Path to bash executable" FORCE)
|
set(BASH_EXECUTABLE ${BASH_PROGRAM} CACHE FILEPATH "Path to bash executable" FORCE)
|
||||||
endif()
|
endif()
|
||||||
set(ROOT_FOLDER ${CMAKE_CURRENT_SOURCE_DIR})
|
set(ROOT_FOLDER ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
set(SHADER_OUTPUT_DEST ${CMAKE_BINARY_DIR}/GeneratedShaderData)
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/TryCompileShaders.cmake.in ${CMAKE_BINARY_DIR}/TryCompileShaders.cmake @ONLY)
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/TryCompileShaders.cmake.in ${CMAKE_BINARY_DIR}/TryCompileShaders.cmake @ONLY)
|
||||||
execute_process(COMMAND ${BASH_EXECUTABLE} CompileShaders.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Scripts)
|
execute_process(COMMAND ${BASH_EXECUTABLE} CompileShaders.sh "${SHADER_OUTPUT_DEST}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Scripts)
|
||||||
|
file(GLOB GENERATED_SHADER_SOURCES "${SHADER_OUTPUT_DEST}/*")
|
||||||
|
|
||||||
if(IOS)
|
if(IOS)
|
||||||
set(CMAKE_Swift_LANGUAGE_VERSION 5.0)
|
set(CMAKE_Swift_LANGUAGE_VERSION 5.0)
|
||||||
@@ -50,7 +52,7 @@ else()
|
|||||||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "openVulkanoCpp/*.h" "openVulkanoCpp/*.c" "openVulkanoCpp/*.hpp" "openVulkanoCpp/*.cpp" "examples/*.hpp" "examples/*.cpp")
|
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "openVulkanoCpp/*.h" "openVulkanoCpp/*.c" "openVulkanoCpp/*.hpp" "openVulkanoCpp/*.cpp" "examples/*.hpp" "examples/*.cpp")
|
||||||
file(GLOB SHADER_SRC_FILES ${ROOT_FOLDER}/openVulkanoCpp/Shader/*)
|
file(GLOB SHADER_SRC_FILES ${ROOT_FOLDER}/openVulkanoCpp/Shader/*)
|
||||||
list(FILTER SHADER_SRC_FILES EXCLUDE REGEX ".*\\.(hpp|cpp)$")
|
list(FILTER SHADER_SRC_FILES EXCLUDE REGEX ".*\\.(hpp|cpp)$")
|
||||||
add_executable(openVulkanoCpp examples/main.cpp ${SHADER_SRC_FILES})
|
add_executable(openVulkanoCpp examples/main.cpp ${SHADER_SRC_FILES} ${GENERATED_SHADER_SOURCES})
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||||
source_group("Shaders" FILES ${SHADER_SRC_FILES})
|
source_group("Shaders" FILES ${SHADER_SRC_FILES})
|
||||||
@@ -62,7 +64,7 @@ SetWarningSettings(openVulkanoCpp)
|
|||||||
set_property(TARGET openVulkanoCpp PROPERTY CXX_STANDARD 20)
|
set_property(TARGET openVulkanoCpp PROPERTY CXX_STANDARD 20)
|
||||||
|
|
||||||
target_sources(openVulkanoCpp PRIVATE ${sources})
|
target_sources(openVulkanoCpp PRIVATE ${sources})
|
||||||
target_include_directories(openVulkanoCpp PUBLIC openVulkanoCpp)
|
target_include_directories(openVulkanoCpp PUBLIC openVulkanoCpp ${SHADER_OUTPUT_DEST})
|
||||||
|
|
||||||
# Setup IOS
|
# Setup IOS
|
||||||
if(IOS)
|
if(IOS)
|
||||||
@@ -98,7 +100,7 @@ endif ()
|
|||||||
SetupVulkan(openVulkanoCpp)
|
SetupVulkan(openVulkanoCpp)
|
||||||
SetShaderDependency(openVulkanoCpp
|
SetShaderDependency(openVulkanoCpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/openVulkanoCpp/Shader
|
${CMAKE_CURRENT_SOURCE_DIR}/openVulkanoCpp/Shader
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/openVulkanoCpp/GeneratedShaderData)
|
${SHADER_OUTPUT_DEST})
|
||||||
|
|
||||||
if (NOT ANDROID AND NOT IOS)
|
if (NOT ANDROID AND NOT IOS)
|
||||||
target_link_libraries(openVulkanoCpp PRIVATE glfw pugixml)
|
target_link_libraries(openVulkanoCpp PRIVATE glfw pugixml)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ if [[ "$(uname)" == "Darwin" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
GENERATED_DATA_PATH="$(dirname "$SCRIPT_DIR")/openVulkanoCpp/GeneratedShaderData"
|
GENERATED_DATA_PATH="$1"
|
||||||
SHADER_PATH="$(dirname "$SCRIPT_DIR")/openVulkanoCpp/Shader"
|
SHADER_PATH="$(dirname "$SCRIPT_DIR")/openVulkanoCpp/Shader"
|
||||||
|
|
||||||
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
|
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
|
||||||
@@ -28,14 +28,12 @@ check_return_code() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
rm -f *.spv
|
rm -f *.spv
|
||||||
#rm -f "$GENERATED_DATA_PATH"/*
|
|
||||||
mkdir -p "$GENERATED_DATA_PATH"
|
mkdir -p "$GENERATED_DATA_PATH"
|
||||||
touch "$GENERATED_DATA_PATH"/GeneratedShaderData.h
|
touch "$GENERATED_DATA_PATH"/GeneratedShaderData.h
|
||||||
touch "$GENERATED_DATA_PATH"/GeneratedShaderData.c
|
touch "$GENERATED_DATA_PATH"/GeneratedShaderData.c
|
||||||
|
|
||||||
echo "// Auto generated file" > "$GENERATED_DATA_PATH"/GeneratedShaderData.h
|
echo "// Auto generated file" > "$GENERATED_DATA_PATH"/GeneratedShaderData.h
|
||||||
echo -e "#ifndef GeneratedShaderData_H_INCLUDED\n#define GeneratedShaderData_H_INCLUDED" >> "$GENERATED_DATA_PATH"/GeneratedShaderData.h
|
echo -e "#ifndef GeneratedShaderData_H_INCLUDED\n#define GeneratedShaderData_H_INCLUDED" >> "$GENERATED_DATA_PATH"/GeneratedShaderData.h
|
||||||
#echo -e "extern \"C\" {" >> "$GENERATED_DATA_PATH"/GeneratedShaderData.h
|
|
||||||
echo -e "#include \"GeneratedShaderData.h\"" > "$GENERATED_DATA_PATH"/GeneratedShaderData.c
|
echo -e "#include \"GeneratedShaderData.h\"" > "$GENERATED_DATA_PATH"/GeneratedShaderData.c
|
||||||
|
|
||||||
# put data from all files with same name into single file
|
# put data from all files with same name into single file
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ function(SetShaderDependency TARGET SHADER_SRC_FOLDER SHADER_OUTPUT_FOLDER)
|
|||||||
set(SHADER_EXPECTED_OUTPUT ${OUTPUT_HEADERS} ${OUTPUT_SOURCES})
|
set(SHADER_EXPECTED_OUTPUT ${OUTPUT_HEADERS} ${OUTPUT_SOURCES})
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${SHADER_EXPECTED_OUTPUT}
|
add_custom_command(OUTPUT ${SHADER_EXPECTED_OUTPUT}
|
||||||
COMMAND ${CMAKE_COMMAND} -DROOT_FOLDER=${CMAKE_SOURCE_DIR} -P ${CMAKE_BINARY_DIR}/TryCompileShaders.cmake
|
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/TryCompileShaders.cmake
|
||||||
DEPENDS ${SHADER_SRC_FILES}
|
DEPENDS ${SHADER_SRC_FILES}
|
||||||
COMMENT "Recompiling shaders")
|
COMMENT "Recompiling shaders")
|
||||||
add_custom_target(RecompileShaders ALL
|
add_custom_target(RecompileShaders ALL
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
execute_process(COMMAND "@BASH_EXECUTABLE@" CompileShaders.sh WORKING_DIRECTORY "@ROOT_FOLDER@/Scripts" RESULT_VARIABLE res_var)
|
execute_process(COMMAND "@BASH_EXECUTABLE@" CompileShaders.sh "@SHADER_OUTPUT_DEST@"
|
||||||
|
WORKING_DIRECTORY "@ROOT_FOLDER@/Scripts"
|
||||||
|
RESULT_VARIABLE res_var)
|
||||||
if(NOT "${res_var}" STREQUAL "0")
|
if(NOT "${res_var}" STREQUAL "0")
|
||||||
message(FATAL_ERROR "Failed to recompile shaders")
|
message(FATAL_ERROR "Failed to recompile shaders")
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
#include "GeneratedShaderData/GeneratedShaderData.h"
|
#include "GeneratedShaderData.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace OpenVulkano
|
namespace OpenVulkano
|
||||||
|
|||||||
Reference in New Issue
Block a user