You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.9 KiB
61 lines
1.9 KiB
cmake_minimum_required(VERSION 3.15)
|
|
project(implicit_surface_ray_tracing LANGUAGES C CXX)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
add_executable(${PROJECT_NAME})
|
|
include(cmake/func.cmake)
|
|
|
|
if(NOT BASE_DIRECTORY)
|
|
set(BASE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty)
|
|
endif()
|
|
if(EXISTS ${BASE_DIRECTORY}/nvpro_core/cmake/setup.cmake)
|
|
include(3rdparty/nvpro_core/cmake/setup.cmake)
|
|
include(3rdparty/nvpro_core/cmake/utilities.cmake)
|
|
endif()
|
|
|
|
_add_package_VulkanSDK()
|
|
_add_package_ImGUI()
|
|
_add_nvpro_core_lib()
|
|
|
|
_add_project_definitions(${PROJECT_NAME})
|
|
|
|
# compile all GLSL shader to Spirv
|
|
set(GLSL_COMPILE_FLAGS)
|
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
list(APPEND GLSL_COMPILE_FLAGS -DDEBUG_MODE)
|
|
endif()
|
|
compile_glsl_directory_by_shaderc(
|
|
SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/shader"
|
|
DST "${CMAKE_CURRENT_SOURCE_DIR}/src/autogen"
|
|
VULKAN_TARGET "vulkan1.3"
|
|
DEPENDENCY ${VULKAN_BUILD_DEPENDENCIES}
|
|
FLAGS ${GLSL_COMPILE_FLAGS}
|
|
)
|
|
|
|
file(GLOB SOURCE_FILES src/*.cpp src/*.hpp)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
|
|
|
|
source_group("shader files" FILES ${GLSL_SOURCES})
|
|
source_group("source files" FILES ${SOURCE_FILES})
|
|
|
|
target_sources(${PROJECT_NAME} PUBLIC ${SOURCE_FILES})
|
|
target_sources(${PROJECT_NAME} PUBLIC ${COMMON_SOURCE_FILES})
|
|
target_sources(${PROJECT_NAME} PUBLIC ${PACKAGE_SOURCE_FILES})
|
|
target_sources(${PROJECT_NAME} PUBLIC ${GLSL_SOURCES} ${GLSL_HEADERS})
|
|
|
|
target_link_libraries(${PROJECT_NAME} ${PLATFORM_LIBRARIES} nvpro_core)
|
|
|
|
foreach(DEBUGLIB ${LIBRARIES_DEBUG})
|
|
target_link_libraries(${PROJECT_NAME} debug ${DEBUGLIB})
|
|
endforeach(DEBUGLIB)
|
|
|
|
foreach(RELEASELIB ${LIBRARIES_OPTIMIZED})
|
|
target_link_libraries(${PROJECT_NAME} optimized ${RELEASELIB})
|
|
endforeach(RELEASELIB)
|
|
|
|
_finalize_target(${PROJECT_NAME})
|
|
|
|
install(FILES ${SPV_OUTPUT} CONFIGURATIONS Debug DESTINATION bin_${ARCH}_Debug/shaders)
|
|
|
|
project(Sphere_Tracing_CPU_Test LANGUAGES C CXX)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
add_executable(${PROJECT_NAME} test/sphereTracing.cpp)
|