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)