cmake_minimum_required(VERSION 3.15) set(CMAKE_CXX_STANDARD 20) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) project(eval_def_generator) add_executable(${PROJECT_NAME}) target_link_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src) target_sources(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src/evalDefGenerator.cpp) set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin_x64/${CMAKE_BUILD_TYPE} CXX_STANDARD 17) # std-c++=20 will give error when executing binary, this is weird... add_custom_command( TARGET ${PROJECT_NAME} POST_BUILD COMMAND echo ${PROJECT_NAME} -o ${CMAKE_CURRENT_SOURCE_DIR}/src/shader/evaluation/eval_defs.glsl COMMAND ./${PROJECT_NAME} -o ${CMAKE_CURRENT_SOURCE_DIR}/src/shader/evaluation/eval_defs.glsl WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin_x64/${CMAKE_BUILD_TYPE} ) project(implicit_conversion_rendering) add_executable(${PROJECT_NAME}) include(cmake/Graphnode.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() set(OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin_${ARCH}) message(STATUS "-------------------------------") #find_package(Torch REQUIRED) # message(STATUS "--> using package LibTorch along with CUDA & CuDNN") find_package(OpenMP REQUIRED) message(STATUS "--> using package OpenMP") find_package(Graphviz REQUIRED) message(STATUS "--> using package Graphviz") set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}) # library for graphics rendering message(STATUS "-------------------------------") _add_package_GLM() _add_package_VMA() _add_package_VulkanSDK() _add_package_ImGUI() message(STATUS "--> using package ImGUI::GraphNode") #add_subdirectory(${BASE_DIRECTORY}/imgui-graphnode) _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() if(NOT EXISTS ${OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/shaders) file(MAKE_DIRECTORY ${OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/shaders) endif() compile_glsl_directory( SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/shader" DST "${OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/shaders" VULKAN_TARGET "vulkan1.3" DEPENDENCY ${VULKAN_BUILD_DEPENDENCIES} FLAGS ${GLSL_COMPILE_FLAGS} ) file(GLOB SOURCE_FILES src/*.cpp src/*.hpp) list(REMOVE_ITEM SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/evalDefGenerator.cpp) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src) target_include_directories(${PROJECT_NAME} PUBLIC ${Graphviz_INCLUDE_DIRECTORIES}) 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} PUBLIC ${TORCH_LIBRARIES} ${MKL_LIBRARIES} OpenMP::OpenMP_CXX) target_link_libraries(${PROJECT_NAME} PUBLIC ${PLATFORM_LIBRARIES} nvpro_core) # link nvpro_core libraries target_link_libraries(${PROJECT_NAME} PUBLIC Graphviz::Graphviz) add_dependencies(${PROJECT_NAME} eval_def_generator) #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}) # The following code block is suggested to be used on Windows. # According to https://github.com/pytorch/pytorch/issues/25457, # the DLLs need to be copied to avoid memory errors. set(LIBRARIES_COPIED 1) if(NOT LIBRARIES_COPIED) if(WIN32) if(MSVC) file(GLOB TORCH_DLLS "${TORCH_INSTALL_PREFIX}/lib/*.dll") add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${TORCH_DLLS} $) endif() endif() set(LIBRARIES_COPIED 1) endif() # install(FILES ${SPV_OUTPUT} CONFIGURATIONS Debug DESTINATION bin_${ARCH}_Debug/shaders) project(test_tracing_in_obj_space) add_executable(${PROJECT_NAME}) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/test ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/nvpro_core/nvmath) target_sources(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/test/test_tracing_in_obj_space.cpp) set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin_x64/${CMAKE_BUILD_TYPE}) project(test_projection) add_executable(${PROJECT_NAME}) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/test ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/nvpro_core/nvmath) target_sources(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/test/test_projection.cpp) set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin_x64/${CMAKE_BUILD_TYPE}) project(test_cal_bounding_analytical) add_executable(${PROJECT_NAME}) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/test ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/nvpro_core/nvmath) target_sources(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/test/test_cal_bounding_analytical.cpp) set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin_x64/${CMAKE_BUILD_TYPE})